Stop three route bundles being prefetched onto the homepage

Performancekamo-marketing
Ya
20 Agosti 2026, 01:43 UTC
Mwandishi
Kamo
Ahadi ya
94118e4

Lighthouse's 103 KiB of "unused JavaScript" named four chunks, two of them essentially 100% unused. None of them appear in the homepage's HTML — they are other routes' code, pulled down by <Link> prefetch because the nav and footer link to those routes. So they are unused in the most literal sense: downloaded on this page, for a page nobody has navigated to. Three of the four had a cause worth fixing rather than accepting. 124 KB OF INDUSTRY PAGE COPY. `app/lib/industries/index.ts` imports all 37 industry data modules, and two client components imported from it — SolutionsHubClient for `INDUSTRY_CATEGORIES`, a small map of category names to slugs, and SitemapClient for `industries`, to render a list of links. Both therefore dragged every industry's SEO copy, feature lists and FAQ text into a client bundle. `INDUSTRY_CATEGORIES` now lives in its own data-free module, and the sitemap takes `{slug, name}[]` from its server page. The barrel re-exports the map so server-side imports are unchanged. No client chunk in the build carries that data any more. 108 KB OF ***. `***Provider` was a static import in ContactClient and DemoClient, so the widget sat in those routes' initial chunks — and every link to /contact or /demo prefetched it. It is `next/dynamic` with `ssr: false` now (the widget registers a custom element against `window` on import), so it arrives when the form renders. FRAMER MOTION, from the shared chrome. Toast and CookieConsentBanner were the last two components in the site-wide layout using it, which meant the animation runtime was in the deferred chrome of every page. Both are CSS entrances now. Neither had an exit animation worth keeping: a toast auto-dismisses on a timer and the consent banner is dismissed deliberately, so the presence transition that used to wrap the banner is replaced by an early return. The library is still used by other routes' own components, so their chunks still carry it — that is a separate piece of work. The fourth chunk is Next's `polyfill-nomodule.js`, which is documented in next.config.ts and cannot be reached from this side. Also, both taking the report at its word: · The backdrop drops to quality 30, the floor of the configured list. It said increase compression. · The theme-host preconnect gets its `crossorigin` twin back. Lighthouse reported the hint as unused *and* asked for the origin as a candidate worth 80 ms in the same breath, which is what a credentials-mode mismatch looks like: a socket opened without `crossorigin` cannot serve a CORS request, and this host is asked for both — a plain <link> for the theme stylesheet, and `fetch` for the HLS playlist. Two hints, two sockets, both used.

Mabadiliko yote

Je, unaona nini kuhusu usafiri?

Kila moja ya hizi updates ardhi katika nafasi yako ya kazi moja kwa moja. Kuanza bure na kuangalia kukua wiki baada ya wiki.

Kuwa Huru MileleMtazamo wa bei