Наверное, таких вопросов миллион и новички задолбали не новичков.
Но помогите разобраться.
Есть сайт (новостной портал, много новостей под каждый регион)
https://site.com/
и появилась польская версия
https://site.com/pl/
<link rel=alternate hreflang=en href=https://site.com/>
<link rel=alternate hreflang=pl href=https://site.com/pl/>
Так правильно?
А как на других страницах? На обычных страницах тоже указывать этот хрефланг или только на главной?
Смотрю на templatemonster, так они на каждой странице указывают, другую страницу на другом языке.
У нас много новостей, на одном языке эта новость будет, на другом нет.
Что-то я запутался. Помогите распутаться)
На всех указывается, плюс дефолтная:
<link rel="alternate" hreflang="ru" href="https://site.com/">
<link rel="alternate" hreflang="en" href="https://site.com/en/">
<link rel="alternate" href="https://site.com/" hreflang="x-default">В карту сайта должны войти все адреса всех языков.
См. https://support.google.com/webmasters/answer/189077?hl=ru
ЦитироватьВ элемент <head> каждого варианта страницы нужно добавить набор элементов <link> со ссылками на все версии страницы, включая ее саму. Во всех версиях страницы используется один и тот же набор ссылок.
Цитата: Coder от 27-09-2019, 14:12:57
На всех указывается, плюс дефолтная:
<link rel="alternate" hreflang="ru" href="https://site.com/">
<link rel="alternate" hreflang="en" href="https://site.com/en/">
<link rel="alternate" href="https://site.com/" hreflang="x-default">
В карту сайта должны войти все адреса всех языков.
См. https://support.google.com/webmasters/answer/189077?hl=ru
<link rel="alternate" href="https://site.com/" hreflang="x-default">
Не совсем понимаю для чего указывается дефолтная?
Её нужно ставить только на главную?
Вообще
<link rel="alternate" hreflang="ru" href="https://site.com/">
<link rel="alternate" hreflang="en" href="https://site.com/en/">
<link rel="alternate" href="https://site.com/" hreflang="x-default">
Это всё для главных страниц? Или для внутренних тоже пилить?
Приведу пример.
Есть страница на английском
site.com/zakazat-tovar119
Есть страница на польском
site.com/pl/zakazat-tovar119
Нужно ли на этих страницах ставить хрефланги друг на друга и если да, то нужно ли ставить и дефолтный хрефланг?
Что делать, если альтернативной версии страницы нет на другом языке?
Пример,
site.com/zakazat-tovar118
Что на этой странице указываем?
Такие же хрефланги, как и для главной?
Ставится на всех. Дефолтная показывается тогда, когда нет нужного языка
ЦитироватьСтандартный код языка и региона в соответствии с настройками таргетинга страницы или тег x-default для языков, которые не указаны в атрибуте hreflang страницы.
Есть инструкции и иным надо следовать, если есть желание построить что правильно.
Цитата: Coder от 27-09-2019, 14:28:14
Ставится на всех. Дефолтная показывается тогда, когда нет нужного языкаЕсть инструкции и иным надо следовать, если есть желание построить что правильно.
Поправьте если я не прав.
Мы указываем этот блок в хеде страницы
<link rel=alternate hreflang=en href=https://site.com/>
<link rel=alternate hreflang=pl href=https://site.com/pl/>
<link rel="alternate" hreflang="x-default"> href="https://site.com/"
а если у внутренних страницах нет альтернативных версий на другом языке, то мы на этих страницах всё равно указываем тот же блок
<link rel=alternate hreflang=en href=https://site.com/>
<link rel=alternate hreflang=pl href=https://site.com/pl/>
<link rel="alternate" hreflang="x-default"> href="https://site.com/"
а вот, если уже есть альтернатива, то пишем
<link rel=alternate hreflang=en href=https://site.com/tovar119>
<link rel=alternate hreflang=pl href=https://site.com/pl/tovar119>
<link rel="alternate" hreflang="x-default"> href="https://site.com/tovar119"
так?
Нет. Каждая страница долджна содержать ссылки на все страницы, включая саму себя.
ЦитироватьКаждая языковая версия страницы должна содержать ссылку на остальные версии, а также на саму себя.
URL вариантов страниц должны быть указаны полностью, включая названия протокола (http или https):
https://example.com/foo, а не //example.com/foo или /foo.
ЦитироватьЕсли страницы не ссылаются друг на друга, теги будут игнорироваться. Это сделано для того, чтобы на других сайтах нельзя было добавить тег, указывающий, что страница является вариантом одной из ваших страниц.
Почитайте внимательно по ссылке - большего не скажешь. Все просто, не нужно выдумывать.
Обратите внимание на рaздел "Отладка ошибок в атрибуте hreflang" и на ссылки по валидаторам.
Если у Вас страница на одном только языке, то hreflang и не нужен - единственно - что у Вас будет показываться человеку по выбранному языку, варианты которого есть на других языках, на той, где только один язык?
То есть - у вас есть url для каждого языка. В таком случае, вам все одно надо будет генерировать страницу и на не имеющемся языке для соответствующего url на другом языке - или тогда у вас выпадут страницы, которые могут быть важными - например, политика конфиденциальности, которая только на англ, например - уж лучше и на русском показать ее, чем совсем ничего не показать. x-default, в общем.
The hreflang Tags Generator Tool https://www.aleydasolis.com/english/international-seo-tools/hreflang-tags-generator/
Извините, но запутался снова ::)
Если у меня страница на английском, но на польском её нет, то вообще ничего не указываем на ней ?
Я чет думал, что мы вот эти теги
<link rel=alternate hreflang=en href=https://site.com/>
<link rel=alternate hreflang=pl href=https://site.com/pl/>
<link rel="alternate" hreflang="x-default"> href="https://site.com/"
указываем на всех страницах.
А вот если уже у нас есть страница и на английском и на польском, то тогда пишем:
<link rel=alternate hreflang=en href=https://site.com/tovar119>
<link rel=alternate hreflang=pl href=https://site.com/pl/tovar119>
<link rel="alternate" hreflang="x-default"> href="https://site.com/tovar119"
Значит тогда так?
Для главных:
<link rel=alternate hreflang=en href=https://site.com/>
<link rel=alternate hreflang=pl href=https://site.com/pl/>
<link rel="alternate" hreflang="x-default"> href="https://site.com/"
Для других страниц ничего не указываем,
а если версия есть, то
<link rel=alternate hreflang=en href=https://site.com/>
<link rel=alternate hreflang=pl href=https://site.com/pl/>
<link rel="alternate" hreflang="x-default"> href="https://site.com/"
так?)
Извините, что мучаю вас. Справка-справкой (я её читал), но не врубаюсь.
Смотрите: Один и тот же блок hreflang указывается НА ВСЕХ страницах, на которых есть альтернатива - для учета ссылок и многоязыковости ПС.
Если у Вас есть страница, для которой нет альтернативы, то hreflang не нужен. То есть, ВЗАИМНЫЕ hreflang для соответствующих страниц - а без взаимности и ничего не нужно.
Но есть вопрос к вам - что вы покажете пользователю по по языковому префиксу/постфиксу), на котором множество страниц, по url с этим же языковым префиксом, но для которого перевода нет? Или эта информация/страницы вызовут 404 ошибку?
Или все-таки стоит указать страницу, пусть и с дефолтным вариантом?
) Выбор, всегда вопрос выбора...)
PS Все нормально, не мучаете, все в порядке.
Цитата: Coder от 27-09-2019, 15:10:21
Но есть вопрос к вам - что вы покажете пользователю по по языковому префиксу/постфиксу), на котором множество страниц, по url с этим же языковым префиксом, но для которого перевода нет? Или эта информация/страницы вызовут 404 ошибку?
Или все-таки стоит указать страницу, пусть и с дефолтным вариантом?
) Выбор, всегда вопрос выбора...)
Сегодня мой мозг уже не в состоянии работать, а еще английский вечером ждёт ???
**
На одном сайте нашел ошибку, там тупо на всех страницах стоит
<link rel=alternate hreflang=en href=https://site.com/>
<link rel=alternate hreflang=pl href=https://site.com/pl/>
Без изменения естественно урла) Интересно как гугл это воспринимает)
Цитата: CharaDaa от 27-09-2019, 15:26:23Без изменения естественно урла) Интересно как гугл это воспринимает)
Никак) - Игнорирует. Или учитывает линк верхней иерархии, остальные для него не существуют.
Впрочем - что там Google думает) - вопрос в тумане на всегда - они и сами не очень-то понимают, что там в точности и как учтется)
Для каждого языка и региона нужно ставить link rel=alternate hreflang=... на всех страницах сайта, чтобы поисковики правильно ассоциировали локализации.
На главной обязательно, на страницах новостей тоже, даже если контента на другом языке нет, чтобы исключить риск ошибок в индексировании или дублей. Тем более, что поисковики используют эти аннотации при формировании выдачи.