Посмотрите сам конструктор
Один сайт, до восьми языков, с автоматически генерируемыми hreflang и self-canonical для каждой страницы.
«Почему Google показывает мою английскую страницу тому, кто ищет на французском?» — почти всегда проблема с hreflang, и почти всегда небольшая, тихая. Hreflang — простая идея, которая ломается незаметно: ошибитесь немного — и ничего не выдаст ошибку, ничего не предупредит, поисковики просто перестанут его учитывать. Вот что он делает, несколько способов, которыми он ломается, и как проверить свой вручную.

(в страницы или, что равнозначно, в XML-sitemap) — по одному на каждый языковой или региональный вариант, и все они ссылаются друг на друга.У ошибок hreflang есть общая черта: ни одна из них нигде не вызывает ошибку. Страница по-прежнему загружается. Теги по-прежнему на месте. Они просто неверны так, что это замечает только поисковая система — или внимательная проверка человеком.
Невзаимные теги Если страница A объявляет альтернативу, указывающую на страницу B, но страница B не объявляет альтернативу, указывающую обратно на A, пара разорвана — и задокументированное поведение крупных поисковых систем состоит в том, чтобы не доверять невзаимным аннотациям или игнорировать их, а не учитывать частично. Это самая частая на практике ошибка hreflang, потому что легко добавить страницу на новом языке и забыть обновить набор тегов всех остальных языков так, чтобы они на неё ссылались.
Теги, указывающие на неканонический, перенаправляющий или отдающий 404 URL Альтернатива должна указывать на реальную, работающую, каноническую версию страницы на этом языке — не на старый URL, который теперь перенаправляет, и не на URL, требующий входа в систему или возвращающий ошибку поисковому роботу.
Частичное покрытие внутри кластера Hreflang, корректно проставленный на части страниц переведённого раздела, но отсутствующий на остальных, даёт противоречивый сигнал по всему кластеру, что обычно подрывает доверие и к тем тегам, которые верны.
Дублирующиеся или конфликтующие теги из нескольких источников На сайтах, где теги в head может вставлять более одного участка кода — скажем, скрипт уровня страницы и общий для сайта макет, — состязание между ними может оставить в итоговой разметке дублирующиеся или противоречащие друг другу теги hreflang. Это реальный и незаметный класс ошибок именно потому, что он невидим при беглом визуальном осмотре отрисованной страницы; он проявляется только при внимательном чтении исходного кода .
Hreflang без соответствующей записи в sitemap Поисковые системы используют sitemap как сигнал приоритета обхода; URL, объявленный языковой альтернативой, но никогда не появляющийся в sitemap, может просто обходиться позже или реже, чем страницы, которые вы на самом деле пытаетесь продвинуть.
. Для двух-трёх языковых пар убедитесь, что каждый указывает обратно: если /page объявляет hreflang="es", указывающий на /es/page, откройте /es/page и убедитесь, что она объявляет тег, указывающий обратно на /page. Затем убедитесь, что существует ровно один x-default, ведущий на рабочую страницу, и что каждый URL в наборе загружается напрямую — без редиректа, без 404 — и совпадает с собственным каноническим URL этой страницы. На небольшом сайте такой ручной проход отлавливает большинство реальных ошибок.Каждая языковая версия страницы перечисляет все остальные языковые версии — включая саму себя — как альтернативные, поэтому набор полностью взаимный, а не односторонняя догадка.
x-default, который всегда открываетсяРовно одна альтернатива помечена как x-default, и она указывает на реальную работающую страницу — обычно на версию на вашем языке по умолчанию.
Тег canonical каждой языковой версии указывает на неё саму, а не на версию на языке по умолчанию: страница не должна одновременно объявлять себя альтернативой другого URL и его каноническим дубликатом.
На любом сайте крупнее нескольких страниц ручное написание взаимных наборов тегов для каждой языковой пары — ровно та задача, которая незаметно расходится с реальностью. Генерация набора из единого источника истины (объявленного списка языков страницы) делает теги всех страниц согласованными по построению.

Альтернативы hreflang и x-default на сайте Olmira генерируются из одного источника — заявленного списка языков страницы — в тот момент, когда активны два языка или больше. Взаимность здесь — побочный продукт того, как построены теги, а не то, что задаётся вручную для каждой страницы, и теги генерируются один раз, централизованно, для каждого маршрута — специально, чтобы избежать описанного выше сбоя с дублирующимися и рассинхронизированными тегами.
x-default всегда ведёт на собственный URL сайта на языке по умолчанию без префикса, а каждая языковая версия несёт собственный самоссылающийся канонический URL. Какие языки вести и насколько полным должен быть каждый перед публикацией — остаётся на ваше усмотрение: это тема руководства по многоязычной структуре; механика тегов работает одинаково на каждой странице конструктора сайтов.
Один сайт, до восьми языков, с автоматически генерируемыми hreflang и self-canonical для каждой страницы.
Шаблоны URL, что должно происходить при отсутствии перевода и что переводить в первую очередь.
Какой контент можно безопасно перевести машинным способом с лёгкой проверкой, а какой всегда требует участия человека.