Если при переключении на английскую версию сайт выдаёт ошибку, зависает на загрузке или просто открывает ту же страницу на русском — чаще всего дело в одной из трёх вещей: неправильном редиректе по языковому коду, отсутствующем или некорректном атрибуте hreflang, либо в закэшированной версии страницы, которая застряла в браузере или на сервере.
Почему браузер открывает не ту версию
Многие сайты определяют язык автоматически — по заголовку Accept-Language или по cookie, которую ставит переключатель языков. Если cookie не сохраняется (например, заблокированы сторонние куки или домен /en/ считается отдельным поддоменом), сайт каждый раз откатывается на язык по умолчанию. Проверить это просто: откройте страницу в режиме инкогнито и посмотрите, предлагается ли выбор языка заново.
Как проверить, в чём именно проблема
- Откройте адрес английской версии напрямую (обычно это /en/ или поддомен en.) — если он не грузится вовсе, проблема на сервере, а не в переключателе.
- Посмотрите код ответа через инструменты разработчика (F12 → вкладка Network): код 404 значит, что страницы для этого языка просто нет, код 301/302 в цикл — редирект зациклен.
- Проверьте исходный код страницы на наличие тегов link rel=»alternate» hreflang — если они указывают на несуществующий или неправильный URL, поисковик и сами пользователи будут попадать не туда.
- Сбросьте кэш браузера и CDN-кэш сайта отдельно — иногда английская версия физически существует, но отдаётся старая закэшированная копия без переключателя.
Что делать, если версия пропала совсем
Если английские страницы раньше существовали, а теперь ведут на 404, значит их либо удалили, либо изменили структуру URL без настройки редиректов со старых адресов на новые. В этом случае нужно восстановить карту соответствия старых и новых путей и прописать 301-редиректы, а не оставлять пользователей на странице ошибки. Заодно стоит обновить sitemap.xml и убедиться, что в нём отдельно перечислены языковые версии — иначе поисковик может продолжать индексировать удалённые страницы ещё долгое время.
Если же проблема разовая и появилась внезапно на работавшем ранее сайте — скорее всего, дело в обновлении плагина локализации или в изменении конфигурации сервера, и стоит проверить логи последних изменений перед тем, как переписывать логику переключения языка с нуля.