Русская ссылка открывается у зарубежного посетителя на английском, а поисковый робот получает только одну языковую версию. Автоматическое определение языка может лишить остальные страницы стабильного доступа. Проверка начинается с прямых URL версий и возможности выбрать язык вручную.
Явный языковой URL должен открываться напрямую
Обнаружение версий надёжнее проверять по обычным ссылкам с доступными href. Официальная документация.
Услуга /ru/service/ и её английская версия /en/service/ должны иметь собственные понятные адреса. Посетитель может открыть русский URL намеренно, даже если браузер настроен на английский. Автоматическое решение по IP или Accept-Language — предпочитаемому языку, переданному браузером, — не знает этого намерения. Задайте отдельно поведение /ru/, /en/ и корня /. Для корня возможен выбор или подсказка, а для явной версии требуется стабильный доступ. Это предотвращает ситуацию, когда каждый адрес фактически ведёт только к одному языку и остальные материалы невозможно открыть напрямую.
Проверьте обе версии и корень сайта
| Вход на сайт | Что известно о языке | Какой ответ нужен | Что проверить без cookie |
|---|---|---|---|
| /ru/service/ | Явно русский URL | Сохранить доступ | Разные Accept-Language |
| /en/service/ | Явно английский URL | Сохранить доступ | Правильный контент |
| / | Нейтральный вход | Отдельная политика | Проверить выбор |
| Переключатель языка | Воля пользователя | Соответствующая страница | Не всегда главная |
Повторите запрос с другим языком браузера
Запросите каждый языковой URL с Accept-Language: ru, с Accept-Language: en и без этого заголовка. Используйте чистый сеанс, затем повторите с сохранённым выбором. Запишите статус, Location и конечный текст. Если сохранённый в cookie выбор языка отличается от заголовка браузера, заранее решите, какой выбор сохранять. Не принимайте успешный переход одного тестировщика как универсальное поведение. Серверная геолокация — дополнительная переменная, если она действительно используется; её проверяют по разрешённой инфраструктуре и журналам, а не выводят из одного публичного запроса с другого IP.
Для русского URL с английским языком запроса выполните в терминале или передайте разработчику:
curl -sS -H 'Accept-Language: en' -D headers.txt -o response.html 'https://example.com/ru/service/'В headers.txt будет первый ответ без перехода по Location. Для указанного /ru/service/ ожидайте русскую страницу даже при Accept-Language: en. Проверьте язык response.html отдельно от текста заголовков. Замените example.com своим доменом; этот GET не изменяет настройки сайта. Справка curl.
Русский URL должен сохранять русскую страницу. Затем запросите /en/service/ с Accept-Language: ru. Для / проверьте отдельный выбор языка. curl не выполняет JavaScript, поэтому клиентское переключение проверьте также в браузере.
Сохраните ручной выбор языка
Сделайте обычные ссылки переключения языка с корректными href. Клиентская подсказка может предлагать другой язык, сохраняя возможность остаться на выбранной версии. Если сервер продолжает определять язык на корне, не распространяйте правило безусловно на /ru/ и /en/. Проверьте прямой вход из закладки и внешней ссылки. IP и настройка браузера могут отличаться от предпочтения человека, поэтому интерфейс должен дать управляемый выбор. Попросите владельца сайта подтвердить, что явный адрес языка должен сохраняться, а автоматическую подсказку можно показывать на корне.
Проверьте canonical и hreflang
Canonical задаёт предпочтительный адрес страницы, а hreflang сообщает о её языковых версиях. У русской страницы проверьте canonical на её собственный URL и hreflang на английский перевод. На английской проверьте обратную ссылку и canonical на английский URL. Не канонизируйте все переводы на один язык автоматически: у них разные тексты для разных посетителей. Убедитесь, что hreflang указывает на соответствующий материал, а не на главную. Для отсутствующего перевода не добавляйте фиктивную пару. Проверяйте конечные URL и статусы каждого назначения. Эти теги описывают отношения между доступными страницами, но не отменяют ошибочную маршрутизацию и не гарантируют, что поисковик всегда покажет выбранную вами версию.
Переключите язык на вложенной странице
Ссылка языка ведёт на соответствующую услугу, а не автоматически на главную. После обновления и открытия сохранённой ссылки версия остаётся доступной. Сравните весь основной текст: переведённый title при прежнем содержимом ещё не означает рабочую языковую версию.
Читайте также: Международное SEO: как продвигать сайт на разных языках и Hreflang: как настроить мультиязычность для SEO. Проверки сайта доступны на странице технического аудита reChecker.