Как создать Sitemap XML из списка URL без плагинов и CMS

Генератор sitemap xml нужен, когда CMS не пишет файл, пишет его с ошибками или его нет вовсе: статический сайт, выгрузка из базы, список после переезда. Достаточно канонических абсолютных URL. Плагин WordPress, модуль «SEO-пакета» и доступ в админку для этой задачи не требуются. Собрать файл можно в браузере: вставить список, выбрать lastmod, скачать XML и, если файлов несколько, индекс Sitemap.

Так устроен бесплатный генератор Sitemap прямо в браузере. Список обрабатывается на устройстве. На сервер ничего не уходит и не сохраняется. Это не отправка в Google и не обещание, что адрес появится в выдаче. Карта — подсказка для обнаружения.

Справка Google о сборке и отправке Sitemap задаёт рамку, которой генератор следует: один файл — до 50 000 URL или 50 МБ без сжатия, что наступит раньше; кодировка UTF-8; в <loc> — абсолютные URL; priority и changefreq Google игнорирует; lastmod учитывается, если дата правдива и её можно сверить. Файл, не отправленный через Search Console, влияет только на потомков своего каталога — поэтому карту обычно кладут в корень.

Что класть в список

Только канонические адреса, которые должны быть в поиске: HTML с ответом 200, без noindex, без цепочки редиректа, без дубля с параметрами. Не класть:

  • редиректы и «спасибо за заказ»;
  • внутренний поиск, сортировки, сессии, utm;
  • PDF и файлы, если для них нет отдельной политики в поиске;
  • URL с другого хоста в той же карте, которую потом укажут в robots.txt этого сайта — справка предупреждает не смешивать сайты в одном файле, привязанном к robots.txt.

Источники списка: выгрузка CMS или базы опубликованных страниц; обход своего краулера по каноникалам с 200; старый sitemap.xml, из которого вынули адреса и почистили. Генератор умеет импортировать URL из уже существующей карты по адресу файла — это разбор инвентаря, не статус в поиске. После импорта дубликаты снимаются, спецсимволы в XML экранируются. В список всё равно стоит смотреть глазами: импорт не отличает каноникал от редиректа.

В <loc> нужны полные абсолютные адреса. Относительный путь /page.html робот попытается обойти как написано — и не найдёт. Кодировка файла — UTF-8. Значения внутри XML экранируют сущностями (&amp;, &lt;, &gt;, кавычки). Генератор делает экранирование за список; руками в «Блокноте» это легко забыть.

lastmod: нет / сегодня / своя дата

Три режима в инструменте:

  • не добавлять — в XML нет <lastmod>. Так делают, если реальных дат нет. Лучше пустой тег, чем одна и та же «сегодня» на всём каталоге: тогда поисковик учится тег игнорировать.
  • сегодняшняя дата — одна дата на все URL. Имеет смысл только если список — это страницы, которые сегодня действительно существенно обновили. Для архива это ложный сигнал.
  • выбранная дата — одна пользовательская дата на пачку, когда выгрузка уже несёт известный день среза.

«Существенное обновление» в справке Google — правка основного текста, разметки или ссылок, а не смена года в подвале. Генератор не знает, что происходило на странице. Он только пишет ту дату, которую выбрали.

Нарезка: 50 000 URL или 50 МБ

Длинные адреса с параметрами заполняют 50 МБ раньше, чем 50 000 строк. Инструмент режет список по этому двойному лимиту. Если файлов больше одного, собирается индекс Sitemap — отдельный XML, который указывает на части. Для скачивания нескольких файлов задают базовый URL, по которому они будут лежать на сайте (обычно корень). Имена должны совпасть с тем, что реально положат на сервер.

Порядок URL внутри файла Google не использует. Важны хост, абсолютность, экранирование служебных символов в XML и то, что в списке нет редиректов.

Куда положить и как указать

  1. Скачайте каждый XML и, если он есть, файл индекса.
  2. Положите их в корень сайта, например https://example.com/sitemap.xml или https://example.com/sitemap-index.xml.
  3. Отправьте индекс (или единственный файл) в отчёте Sitemaps Search Console.
  4. Добавьте строку, которую даёт генератор:
Sitemap: https://example.com/sitemap-index.xml

Строка в robots.txt не заменяет отчёт Search Console. Отчёт показывает, забрал ли робот файл и какие ошибки разобрал. Карта не гарантирует обход каждой строки и не ставит документ в выдачу.

Если карт несколько по разделам, их можно перечислить несколькими строками Sitemap: — лимита на число строк в справке нет. Для нескольких сайтов с одним местом хранения карт — отдельный сценарий cross-submit из той же справки; в список одного robots.txt чужой хост всё равно не кладут.

После выкладки имеет смысл открыть каждый скачанный файл: объявление urlset или sitemapindex, все <loc> с https://, без пустых строк и комментариев в текстовой карте. Если индекс ссылается на https://example.com/sitemap-2.xml, на сервере должен лежать именно этот путь. Имя «sitemap.xml» не обязательно, расширение .xml для XML-формата — да. Текстовый формат карты (один URL в строке, файл .txt) Google тоже принимает; этот генератор собирает XML, потому что так удобнее lastmod, нарезка и индекс.

Чего генератор не делает

Не ставит priority и changefreq: Google их игнорирует, поля только шумят. Не проверяет, жив ли URL: мёртвый адрес в карте остаётся мёртвым. Не подменяет каноникал. Не является плагином CMS и не обновляется сам при новой публикации — после выгрузки список собирают снова.

Как создать Sitemap XML из списка URL без плагинов и CMS, в одном проходе: чистый список каноникалов → lastmod по правде или без тега → нарезка по лимиту → индекс, если файлов несколько → корень сайта, Search Console, строка в robots.txt. Генератор sitemap xml здесь — сборщик файла. Решение держать URL в индексе остаётся за поисковиком.

Повторная сборка нужна после появления новых каноникалов или после чистки мёртвых. Старый файл с адресами, которых уже нет, продолжает подсказывать роботу ходить туда. Данные по-прежнему считаются в браузере: закрыли вкладку — списка на сервере нет. Это удобно для выгрузки, которую нельзя класть на чужой хостинг, и бесполезно как «облачный» архив карт. Когда карта выложена, отправить новые адреса на переобход можно в SpeedyIndex.

Вопросы

Нужны ли в файле priority и changefreq?

Нет. Google оба значения игнорирует.

Гарантирует ли карта индексацию?

Нет. Файл помогает обнаружить адреса. Попадёт ли страница в индекс, зависит от неё самой.

Можно ли в одной карте смешать два домена?

Файл, указанный в robots.txt сайта, должен содержать URL этого сайта. Инструмент предупреждает, если в списке разные хосты.

Где размещать файлы?

Обычно в корне, чтобы карта покрывала весь сайт, если её не отправляют через Search Console.

Telegram: t.me/SpeedyIndexOfficial · Бот: t.me/speedyindexbot · X: x.com/speedyindexbot · Facebook: facebook.com/speedyindexbot · YouTube: youtube.com/@speedyindex_com

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *