Москва, ул. Верхоянская, 18к2
8 сентября 2026

🎯 Locale в URL — это не для красоты

Переключение языка через cookie и JS — любимый способ сэкономить на маршрутизации. Разработчик доволен, архитектура чище. Googlebot видит один URL с одним контентом и понятия не имеет, что у сайта есть русская версия.

Статья разбирает правильную схему на Next.js App Router: locale как первый динамический сегмент (/en/, /ru/), валидация через isLocale() с 404 на неизвестные локали, генерация метаданных через generateMetadata() с учётом языка. Отдельно — как работает hreflang через alternates в metadata API (без ручных тегов в head), canonical на каждую языковую версию на саму себя, sitemap с обеими версиями каждого URL.

Есть и про нюанс с OAuth callbacks: после внешнего редиректа пользователь рискует вернуться не на ту языковую версию, с которой ушёл, если locale не зашита в параметр next.

Для SEO это скорее чеклист: если что-то из перечисленного не сделано, поисковик либо проигнорирует языковую версию, либо засчитает дубли. Разработчику, который сейчас собирается делать многоязычный проект на Next.js — читать до старта.

Полный разбор с кодом — на Хабре

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