Целевая страница на многоязычном сайте: Канонический И x-по умолчанию
Я прочитал так много учебных пособий о каноническом и альтернативном x-по умолчанию, но я все еще не уверен на 100 процентов, правильно ли это:
У меня есть многоязычная страница, которая структурирована следующим образом:
https://www.example.com/lang
И т.д.
Пользователь, посетивший https://www.example.com
, будет 301-перенаправлен на соответствующий язык (/de, /en, /fr, /it и т.д.) ИЛИ в/ru, если не найден лучший язык.
Это означает, что www.example.com
никогда не будет отображаться пользователю, но всегда перенаправлять. Это теперь исправьте:
Правильно ли включать rel="alternate"
всех языков ПЛЮС каноническую ссылку на www.example.com
в языковые подсайты (/de
, /en
, /fr
) и т.д.? И: Должен ли быть x-default, связанный с основным доменом (без вложенной папки)? Или должен ли x-значение по умолчанию перейти к /en
Я просто не могу этого понять. До сих пор я не нашел никакого последовательного объяснения этому.
2 answers
Это запутанное положение дел, но вот некоторые указания:
Не используйте канонический тег так, как вы думали. Контент, переведенный на несколько языков, не является дублирующим контентом. Так что вы вообще не хотите указывать /fr/ --canonical--> /en/
. Вместо этого используйте rel="alternate" hreflang="en"
. Используйте канонический в пределах данного языка для учета дубликатов. Пример:
www.example.com/en/page1.html
www.example.com/en/page1.html?somerandomparameter=4
www.example.com/fr/page1.html
www.example.com/fr/page1.html?somerandomparameter=4
Вы должны использовать два канонических тега:
en/page1.html?somerandomparameter=4 --> en/page1.html
fr/page1.html?somerandomparameter=4 --> fr/page1.html
Обратите внимание, что французская страница никогда не указывает на канонический Английская версия. Чтобы справиться с языковыми различиями, мы также используем взаимные теги hreflang:
fr/page1.html <--> en/page1.html
Еще одним важным аспектом hreflang является то, что страница должна ссылаться не только на другие языки, но и на саму себя. Итак, на англоязычной странице у вас будет:
<link rel="alternate" hreflang="en" href="www.example.com/en/page1.html" />
<link rel="alternate" hreflang="fr" href="www.example.com/fr/page1.html" />
Собрав все это вместе, вот теги canonical и hreflang для моего примера. Я перечислил страницу, а затем с отступом указаны все теги, которые должны быть в исходном коде эта страница:
www.example.com/en/page1.html
<link rel="alternate" hreflang="en" href="www.example.com/en/page1.html" />
<link rel="alternate" hreflang="fr" href="www.example.com/fr/page1.html" />
www.example.com/en/page1.html?somerandomparameter=4
<link rel="canonical" href="www.example.com/en/page1.html" />
www.example.com/fr/page1.html
<link rel="alternate" hreflang="en" href="www.example.com/en/page1.html" />
<link rel="alternate" hreflang="fr" href="www.example.com/fr/page1.html" />
www.example.com/fr/page1.html?somerandomparameter=4
<link rel="canonical" href="www.example.com/fr/page1.html" />
Обратите внимание, что параметризованные страницы не должны пересекаться друг с другом: Google в каждом случае следует канонической инструкции, и затем понимает, что существует несколько версий page1.html
на разных языках.
Наконец, не идеально перенаправлять посетителей 301 в зависимости от предпочтений языка браузера или местоположения. Робот Googlebot всегда ползает из США и не отдает предпочтения какому-либо другому языку, кроме английского. Принуждение к 301-перенаправление может означать, что Googlebot тратит большую часть своего бюджета на сканирование на англоязычных страницах и может даже никогда не увидеть другие языки. Убедитесь, что Google может, по крайней мере, получить доступ к подпапкам на других языках - доступен ли для обхода ваш выбор языка?
Редактировать 1: Я только что понял, что не ответил на часть вашего вопроса о x-default. В вашем случае, учитывая, что вы перенаправляете пользователей в подпапку /en/
(т. Е. Никто на самом деле не собирается использовать корневую папку), то ваш x-значение по умолчанию должно быть www.example.com/en/
, а не www.example.com
Редактировать 2: Я понимаю вашу озабоченность, но я все равно рекомендую использовать x-default
, чтобы указать на папку /en/
. Причина в том, что это на самом деле более точно описывает способ работы вашего сайта: в вашей корневой папке на самом деле вообще нет языка - она просто служит перенаправлением.
Поведение вашего сайта таково, что английский действительно функционирует как язык по умолчанию, и ваш hreflang должен отражать это. В конце концов, как вы уже сказали, когда вы не можете найти для них лучшего языка, вы отправляете пользователя в папку /en/
.
Google разделяет вашу цель предоставления языкового контента и полагается на ваш x-default в качестве сигнала. Если на вашем сайте были только версии на французском, английском и испанском языках, а пользователь говорит на немецком языке, выполняя поиск по Google.de
, имеет больше смысла, чтобы страница /en/
отображалась в результатах Google. Это обеспечивает более простой пользовательский интерфейс - это язык по умолчанию, и пользователь отправляется прямо на него - вместо того, чтобы Google отправлял их на страницу, которая в любом случае функционирует только как перенаправление на английский контент. Кроме того, пользователю не нужно ждать перенаправления, что ускоряет процесс и улучшает взаимодействие.
В принципе, вы, вероятно, хотите свести к минимуму прямой трафик в корневую папку. Настройте значение x по умолчанию на /en/
и позвольте Google выполнить работу по выбору языка для каждого пользователя за вас.
В документации Google четко указано
Для выбора языка/страны или автоматического перенаправления домашних страниц следует добавить аннотацию для значения hreflang "x-по умолчанию"
Так что в этом случае ваш x-default
должен быть www.example.com
, а не www.example.com/en/
.
Чтобы упростить ответ, ваш вариант использования, похоже, вообще не указывает на необходимость в rel=canonical. Вы должны быть в порядке с использованием только Hreflang. Вы можете протестировать свою реализацию тегов Hreflang здесь.