Ответ вслух Senior SSR, SSG, ISR, гидрация обновлено

Ускорить медленную SSR-страницу

Вопрос

SSR-страница отдаётся 2 секунды, потому что ждёт три API. Как ускоришь?

Попробуйте сами

Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.

Показать ответ и разбор

Коротко

Сначала измеряю: смотрю трейс сервера и Web Vitals, какой запрос медленный и выстроены ли они цепочкой. Часто запросы идут последовательно через await друг за другом, хотя не зависят друг от друга, тогда Promise.all сразу экономит время.

Что должно прозвучать в ответе

  • Измерить: какой запрос медленный, TTFB, LCP

  • Запросы параллельно, а не последовательно

  • Стриминг: оболочка сразу, медленные блоки в Suspense

  • Кеш данных и страниц (ISR, CDN, кеш fetch), если данные не персональные

  • Некритичное перенести на клиент или подгружать позже

  • Таймауты и фолбэки, чтобы один медленный API не держал страницу

Что могут спросить следом

  • Как кешировать персональную страницу?
  • Как это отразится на SEO?

Разбор

Сначала измеряю: смотрю трейс сервера и Web Vitals, какой запрос медленный и выстроены ли они цепочкой. Часто запросы идут последовательно через await друг за другом, хотя не зависят друг от друга, тогда Promise.all сразу экономит время. Дальше стриминг: оболочка и важный контент уходят сразу, а медленный блок оборачиваю в Suspense со скелетоном. Если данные не персональные, кеширую: ISR, кеш на CDN или кеш запросов с тегами и ревалидацией. Некритичное, вроде рекомендаций, можно грузить на клиенте после гидрации. И ставлю таймауты с фолбэком, чтобы падение одного сервиса не делало всю страницу медленной.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.