Зміст
Коротко
На Dev.to опублікували практичний чеклист, як прискорити сайти на Next.js App Router: менше JavaScript на клієнті, стабільна верстка без CLS, оптимізація зображень, серверний рендер із кешем і заміри на throttled mobile, а не на dev-ноутбуці. Автор пов’язує швидкість із конверсією та Core Web Vitals як ranking-сигналом Google.
Що сталося
Стаття йде від найважчого важеля до інфраструктурних звичок.
1. Менше JS на клієнті. Більшість «повільних React-сайтів» — це гідратація сотень кілобайт JS, які користувачу не потрібні. Рецепт: Server Components за замовчуванням, 'use client' лише там, де потрібні state і browser API, і опускати client boundary вниз по дереву, а не піднімати на всю сторінку. Важкі блоки (charts, 3D, modals) — через next/dynamic з ssr: false.
2. Запобігання CLS. Явні width/height у next/image (або fill + контейнер із розміром), резерв місця під async-контент, шрифти через next/font з display: 'swap'.
3. Зображення як головна вага сторінки. next/image дає AVIF/WebP, sizing і lazy load; hero — з priority, решта — lazy; не віддавати 4000px фото в слот 400px.
4. SSR і кеш. Static/ISR для всього, що не персоналізовано per-request; fetch caching і revalidate; third-party через next/script з strategy="lazyOnload".
5. Заміри. Lighthouse у mobile mode з CPU throttling; field data в Search Console (CrUX). Опційно — performance budget у CI (наприклад, < 150 KB JS на first load).
Чому це важливо
Чеклист не про «екзотику», а про послідовне виконання нудних правил App Router. Server Components — не опція, а default: кожен зайвий 'use client' на layout тягне все піддерево в bundle.
Core Web Vitals безпосередньо впливають на SEO і bounce rate; локальні заміри на MacBook з fiber систематично завищують результат. Throttled mobile + CrUX ближче до того, що бачить Google і реальні користувачі.
Performance budget у CI ловить «повільне повзуче погіршення» на етапі PR — дешевше, ніж розслідувати просадку конверсії після релізу.
На практиці
Пройдіть чеклист перед продакшен-релізом Next.js:
- Аудит
'use client': чи можна компонент залишити server-only? - Hero і above-the-fold — без lazy; below-the-fold charts —
dynamic(..., { ssr: false }). - Усі
<Image>з розмірами; шрифти — лише черезnext/font. - Сторінки каталогу/блогу — static або ISR; персоналізацію не змішувати з public cache без потреби.
- Analytics/chat widgets —
lazyOnload, не блокувати main thread. - Lighthouse mobile + перевірка CrUX; при зростанні JS — fail build за budget.
Якщо сайт «здається швидким» лише у вас — перепровірте на Slow 4G і mid-tier Android.
Підсумок
Миттєве завантаження Next.js — це App Router done right: server-first, мінімальний client JS, дисципліна з медіа та кешем, чесні метрики. Чеклист з Dev.to зручний як runbook перед кожним великим релізом фронтенду.

