Pugofka / Tools / SEO
Генератор hreflang
Соберите HTML-теги alternate для языковых версий страницы с проверкой кодов и URL.
Когда пригодится генератор hreflang
Hreflang нужен, когда у одной страницы есть полноценные варианты на разных языках или для разных регионов. Запишите каждой версии код языка и её абсолютный URL; x-default используйте для нейтральной страницы выбора языка, если она действительно существует. Готовый набор тегов должен присутствовать на каждой версии, включая ссылку на саму себя. Если русский и английский адреса указаны только на одной из двух страниц, поисковику сложнее подтвердить связь. Перед вставкой проверьте, что каждая страница отдаёт успешный ответ и не ведёт через длинную цепочку редиректов.
Не создавайте hreflang ради одной переведённой кнопки или общего шаблона, если основной текст остаётся на прежнем языке. Такая разметка не переводит содержимое и не заменяет правильные локализованные страницы. Коды должны описывать реально существующие языковые версии; географический суффикс применяйте только тогда, когда контент отличается для региона. При добавлении нового языка обновите набор ссылок на всех связанных страницах. Если сайт большой, поддерживайте соответствия в CMS или генераторе страниц, а не копируйте теги вручную в сотни шаблонов.
Как пользоваться: генератор hreflang
Записывайте код языка и абсолютный адрес через точку с запятой. Готовые link-теги вставьте в head каждой взаимосвязанной версии.
Начните с кнопки «Вставить пример», чтобы увидеть ожидаемый формат ввода. Затем замените демонстрационные значения своими данными в полях «Исходные данные». Нажмите «Получить результат». Если формат неверный, инструмент покажет ошибку на русском языке; исправьте исходные данные и повторите действие.
Готовый результат можно скопировать одной кнопкой или скачать в файл hreflang.html. Проверьте итог перед публикацией на рабочем сайте: инструмент видит только переданные ему данные и не знает особенностей вашего проекта. Для больших выгрузок удобно сначала обработать небольшой фрагмент и убедиться, что структура результата подходит дальнейшему процессу.
Пример входных данных и результата
Строка ru;https://example.com/ru/page превращается в link rel="alternate" hreflang="ru".
ru;https://example.com/ru/page en;https://example.com/en/page x-default;https://example.com/page
Пример показывает форму исходных данных. Результат создаётся только после запуска виджета, поэтому вы можете изменить пример и сразу увидеть, как это влияет на вывод. Если вы работаете с клиентским сайтом, используйте обезличенный образец для первой проверки, затем переходите к полному файлу.
Какие ошибки проверить вручную
Генератор не проверяет обратные ссылки на опубликованных страницах и не переводит содержимое.
Технически корректный результат ещё не означает, что он подходит бизнес-логике сайта. Например, URL может быть синтаксически верным, но вести на удалённую страницу; XML может быть хорошо сформированным, но не соответствовать настройкам конкретной площадки. После автоматической проверки откройте итог в целевой системе или браузере и сравните его с ожидаемым поведением.
Если инструмент сообщает об ошибке, начните с названного поля или строки. При обработке файлов проверьте кодировку, переносы строк, кавычки и спецсимволы. Они часто попадают в данные при экспорте из Excel, CMS или интеграции и могут менять смысл результата.
Практические ограничения и следующий шаг
Типичная ошибка — указать один адрес для нескольких языков или склеить языковую и каноническую версию без ясной логики. Сначала определите canonical каждой локализованной страницы, затем свяжите равнозначные версии через alternate. Проверяйте исходный HTML после публикации: клиентский компонент может визуально показать теги, но поисковику нужна корректная разметка в документе. Инструмент генерирует только HTML-фрагмент. Он не обходит взаимные ссылки на сайте; для этого понадобится отдельная проверка опубликованных страниц.
Для повторяющихся задач сохраните входной пример и ожидаемый результат как проверочный сценарий. После обновления сайта или формата данных прогоните его снова: небольшое изменение шаблона экспорта иногда меняет поведение без явной ошибки. Если результат используется в производственной системе, проверьте не только синтаксис, но и последствия на нескольких реальных записях. При публикации конфигурации или метатегов сравните исходный HTML и ответ сервера с тем, что вы видите в форме.
Как применить результат: генератор hreflang
Если русский раздел расположен на /ru/, а английский на /en/, соберите соответствия для одной и той же смысловой страницы, а не просто для двух главных каталогов. Страница товара на русском должна ссылаться на английскую версию именно этого товара. Когда перевода ещё нет, лучше не придумывать alternate на главную английского раздела. Для каталога удобно хранить связку локализованных ID в данных и генерировать теги из неё. При удалении перевода обновите связи во всех версиях, иначе останутся ссылки на 404 или нерелевантную страницу.
Частая проблема — смесь hreflang и canonical, который у всех языков ведёт на одну версию. В таком случае поисковик может считать остальные варианты дублями и игнорировать их как самостоятельные страницы. Проверьте, что каждая версия имеет собственное содержимое и последовательную каноническую стратегию. После деплоя протестируйте HTML на нескольких типах страниц: главная, категория, товар, статья. Тег, созданный в форме, работает только после вставки в исходный документ. Если фреймворк генерирует метаданные автоматически, используйте его API, а не ручное добавление дубликатов в разных компонентах.
Проверка перед публикацией
Сохраните исходный пример и результат рядом с задачей, чтобы при следующем обновлении можно было повторить проверку. Откройте итоговый файл в целевой системе и сравните не только отсутствие ошибки, но и число обработанных записей, конечные адреса, отображение кириллицы и поведение на мобильном экране, если результат используется в интерфейсе. Для конфигурации сервера сначала примените изменения на тестовом окружении и выполните запрос к реальному URL. Для данных каталога выберите несколько контрольных SKU с разными ценами и остатками. Если расхождение найдено, исправляйте источник данных или шаблон генерации, а не только один скачанный файл. Так следующая автоматическая выгрузка не вернёт проблему.
Приватность и обработка в браузере
Поля этого инструмента обрабатываются в вашем браузере. Содержимое не отправляется на сервер Pugofka, а локальный файл читается только после вашего выбора. Для XML определяется кодировка из объявления или BOM; при отсутствии подсказки сначала пробуется UTF-8, затем Windows-1251. Виджет скрыт от записи содержимого в Вебвизоре; в Яндекс Метрику передаются slug инструмента и тип действия — открытие, первое взаимодействие, запуск, получение результата, копирование или скачивание.
При копировании данные попадают в системный буфер обмена устройства, где их могут видеть другие приложения с соответствующим доступом. Если исходник содержит секреты или персональные данные, очистите поле после работы. Скачанный файл остаётся на устройстве, в выбранной браузером папке загрузок.
Что делать после проверки
Используйте результат как рабочий черновик: вставьте его в конфигурацию, страницу или документ и повторно проверьте там, где он будет применяться. Если вы меняете индексируемые страницы, обновите связанные ссылки и карту сайта. Для миграции URL дополнительно запустите сетевую проверку редиректов, чтобы увидеть фактические HTTP-ответы после публикации.
Если задача связана с каталогом, импортом или поддержкой интернет-магазина, команда Pugofka может помочь встроить такую проверку в регулярный обмен данными и исправить источник ошибок. Одноразовая онлайн-утилита полезна для диагностики, а постоянный поток данных обычно требует автоматической проверки на стороне проекта.
Частые вопросы
- Как начать работу с «Генератор hreflang»?
- Нажмите «Вставить пример», посмотрите формат полей, затем замените пример собственными данными и нажмите «Получить результат». Для файла используйте загрузку рядом с текстовым полем. Если увидите сообщение об ошибке, исправьте указанное поле и запустите инструмент снова.
- Можно ли скачать результат?
- Да. После успешной обработки появится кнопка скачивания файла hreflang.html. Кнопка создаёт файл в браузере, поэтому данные не отправляются на сервер. Если нужно вставить итог в редактор или CMS, воспользуйтесь кнопкой копирования.
- Отправляются ли введённые данные на сервер?
- Нет. Обработка этого инструмента выполняется на устройстве посетителя. Даже при загрузке локального файла его содержимое читается браузером для обработки на странице. В аналитические события не включаются введённые значения, адреса и содержимое результата.
- Что означает сообщение об ошибке?
- Обычно исходные данные не соответствуют ожидаемому формату. Проверьте поля «Исходные данные», кавычки, разделители и адреса. Вернитесь к встроенному примеру, чтобы сравнить структуру своего ввода с рабочим образцом.
- Есть ли ограничение на размер файла?
- Виджет принимает локальный текстовый файл размером до 5 МБ. Большой файл лучше разбить на части: это уменьшает нагрузку на браузер и упрощает поиск конкретной ошибочной строки. Если файл бинарный, его следует открыть в подходящем приложении, а не вставлять как текст.
- Можно ли использовать результат сразу на рабочем сайте?
- Сначала проверьте его на тестовой странице или небольшом фрагменте данных. Генератор не проверяет обратные ссылки на опубликованных страницах и не переводит содержимое. Итог может быть синтаксически верным, но не учитывать особенности вашего сервера, CMS или обмена данными.
- Будет ли результат доступен после перезагрузки страницы?
- Нет. Введённые данные и результат хранятся в состоянии открытой страницы. Скопируйте или скачайте итог до обновления вкладки. Такой подход также снижает риск случайного хранения чувствительных данных на общем устройстве.
- Чем эта проверка отличается от проверки опубликованного сайта?
- Локальный инструмент работает с тем, что вы вставили или загрузили. Он не делает запросы к внешнему сайту и не подтверждает, что опубликованная страница или файл совпадают с вашим образцом. После применения изменений отдельно проверьте фактический ответ сервера.
Нужна помощь с сайтом?
Поможем разобраться с технической задачей и оценить её решение.