Задать вопрос
Shlop
@Shlop
Full Stack Developer (PHP/Laravel/JavaScript)

Как правильно организовать мультиязычные URL в Next.js для SEO?

Делаю мультиязычный сайт на Next.js (App Router), сейчас есть RU и EN версии. Думаю над правильной структурой URL с точки зрения SEO и i18n.

Пока рассматриваю такой вариант:
* https://domain.com — RU версия
* https://domain.com/about — RU версия

И:

* https://domain.com/en — EN версия
* https://domain.com/en/about — EN версия
То есть русский язык — default locale без префикса, а английский — с /en.

Вопросы:

1. Это нормальная практика для SEO ?
2. Как лучше поступить с `/ru` — вообще не создавать его или делать 301 redirect на `/`?
3. Нет ли проблем с Яндексом при такой структуре?
4. Может ли быть лучше вариант с симметричными URL:

* /ru/...
* /en/...

Дополнительно:

* используется Next.js App Router
* планирую hreflang + canonical
* сайт SEO-ориентированный
* основная аудитория RU, но нужна полноценная EN версия

Интересно услышать практический опыт и рекомендации.
  • Вопрос задан
  • 54 просмотра
Подписаться 1 Средний Комментировать
Помогут разобраться в теме Все курсы
  • МИПО
    Интернет-маркетинг
    5 месяцев
    Далее
  • Skillbox
    Профессия Интернет-маркетолог с нуля до PRO
    7 месяцев
    Далее
  • Digital Skills Academy
    Mini-MBA: Интернет-маркетолог
    4 месяца
    Далее
Решения вопроса 1
Mike_Ro
@Mike_Ro Куратор тега Поисковая оптимизация
Python, JS, WordPress, SEO, Bots, Adversting
1. Это нормальная практика для SEO ?

Да.
2. Как лучше поступить с `/ru` — вообще не создавать его или делать 301 redirect на `/`?

У вас итак ru уже есть, это https://domain.com, а главная страница en - https://domain.com/en.
3. Нет ли проблем с Яндексом при такой структуре?

Нет, но обязательно используйте методы указания альтернативных страниц, в частности атрибут hreflang.
4. Может ли быть лучше вариант с симметричными URL:

Не лучше.
* сайт SEO-ориентированный

* используется Next.js App Router

Надеюсь в формате SSR/SSG?
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
opium
@opium
Просто люблю качественно работать
по реализации: hreflang в App Router — generateMetadata + alternates.languages:

alternates: {
  languages: {
    'ru': 'https://domain.com' + path,
    'en': 'https://domain.com/en' + path,
    'x-default': 'https://domain.com' + path,
  }
}


canonical ставишь на текущую языковую версию страницы, не на ru-корень.
Для роутинга с ru без префикса — next-intl с localePrefix: 'as-needed'.

p.s. SSR/SSG не строго обязателен (гуглобот рендерит js), но Яндексу лучше давать статику
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы