Целевая страница на многоязычном сайте: Канонический И 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

Я просто не могу этого понять. До сих пор я не нашел никакого последовательного объяснения этому.

Author: Sathiya Kumar, 2015-11-18

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 выполнить работу по выбору языка для каждого пользователя за вас.

 6
Author: Stephan, 2015-11-19 18:46:29

В документации Google четко указано

Для выбора языка/страны или автоматического перенаправления домашних страниц следует добавить аннотацию для значения hreflang "x-по умолчанию"

Так что в этом случае ваш x-default должен быть www.example.com, а не www.example.com/en/.

Чтобы упростить ответ, ваш вариант использования, похоже, вообще не указывает на необходимость в rel=canonical. Вы должны быть в порядке с использованием только Hreflang. Вы можете протестировать свою реализацию тегов Hreflang здесь.

 2
Author: tinkerr, 2015-12-29 23:16:09