SEO
Начинаем со структуры страниц и базовой metadata.
Next.js III: SEO, i18n 2026
Учебный проект для SEO, i18n и паттернов App Router.
Начинаем со структуры страниц и базовой metadata.
Держим locale в URL до перевода интерфейса.
Разделяем страницы, shared UI и простые серверные компоненты.
Demo Lab
Небольшие изолированные страницы для проверки паттернов перед переносом в EventMap.
Читаем город из URL searchParams и фильтруем демо-события на сервере.
Проверяем raw-объекты до того, как они попадут в UI EventCard.
Показываем fallback-данные вместо красного экрана при сбое внешних данных.
Смотрим, где в текущих маршрутах EventMap появляются [locale], [id] и query string.
Смотрим, какие пары locale и event id подготовлены для next build.
Сравниваем controlled event id и live Ticketmaster id перед статической сборкой detail pages.
Сравниваем controlled content, live fetch cache и preview no-store.
Сравниваем static, dynamic, ISR, no-store и client routes в EventMap.
Смотрим, как live-данные Ticketmaster возвращаются в EventMap через cache policy.
Смотрим, почему результаты после useEffect слабы для SEO.
Смотрим, как [[...segments]] превращает clean search URL в server filters.
Active filters, reset links и pagination без client state.
Смотрим, как product search сначала пробует Ticketmaster, а затем откатывается к controlled events.
Проверяем title, description, canonical, hreflang, sitemap и robots в финальном SEO baseline.
Смотрим, как layout одновременно рендерит children и @modal slot.
Сравниваем UX modal route и полноценную SEO detail page.
Смотрим, как shell страницы появляется раньше медленного server block.
Смотрим, где browser client, server client, Auth и Postgres находятся в EventMap.
Смотрим, как таблица favorites, grants и RLS policies защищают строки пользователя.
Смотрим, как Magic Link, Google OAuth, callback route и safe redirect работают вместе.
Смотрим, как guest localStorage favorites переключаются на account-based favorites с RLS.
Карта Product EventMap, Demo Lab, server/client границ и backend-направлений.