18 октября 2026

🧩 Каталог без URL у карточки — подарок конкурентам

Половина интернет-магазинов и каталогов открывает карточки через модалки на `useState`. Красиво, быстро — и полностью невидимо для поискового робота. Адрес не меняется, `` не меняется, canonical ведёт на список. Каждая карточка технически существует, но в индексе её нет.

Паттерн с Parallel Routes и Intercepting Routes в Next.js App Router закрывает эту дыру. При переходе из списка карточка открывается модалью, при прямом запросе или reload — как обычная страница. Один URL, два режима рендеринга, и поисковый робот видит полноценные страницы с метатегами и canonical.

Фишка в деталях: `returnTo` в query-параметре сохраняет контекст фильтров при закрытии модали, но в canonical не попадает. Пользователь возвращается туда, откуда пришёл, а индексируется чистый URL без служебного мусора.

Применимо к любому каталогу: товары, события, объявления, вакансии. Кто сейчас сидит на `useState`-модалках и думает «потом разберёмся» — вот разбор с кодом и рабочим примером.

Разбор с демо-проектом: Habr - SEO

Источник Habr - SEO
Все новости Telegram MAX