/tool/sitemap-generator/ работает обходит сайт
Дайте адрес сайта — сервер пройдёт по внутренним ссылкам, соберёт список страниц, выбросит закрытые от индексации и битые, проставит даты из ответа сервера. Готовая карта скачивается файлом: xml, xml.gz или архивом с частями и индексом. Уже лежащую на сайте карту сервер забирает по её адресу и сверяет с обходом.
Тот же отчёт, ради которого запускают настольные обходчики: код ответа, глубина, дата и причина, по которой адрес не попал в карту.
Карту по её адресу забирает наш сервер: сжатую распаковывает, индексную раскрывает по частям. Дальше — сколько в ней адресов, что в них сломано и чем она разошлась с обходом сайта.
Оставьте пусто — возьмём /sitemap.xml в корне обойдённого сайта. После обхода сюда сам подставляется адрес, объявленный в robots.txt. Понимаются xml, xml.gz, индексный файл со ссылками на части и текстовый список по адресу в строке.
Годится и sitemap.xml, и sitemap.xml.gz, и текстовый список. Нужно, когда карту ещё не выложили.
Индексный файл перечисляет части, и каждая — отдельный запрос к серверу. У сайта с сотней частей разбирать все незачем: по первым уже видно, как устроена карта.
Карту не разбирали
| Адрес | Что не так | Обход |
|---|
Карту ещё не разбирали.
Вставьте адрес сайта и нажмите «Обойти». Сервер пройдёт по внутренним ссылкам и вернёт список страниц с кодами ответа; ниже он ляжет в поле, где его можно править руками.
Нажмите «Проверить страницы подробно». Каждый адрес опрашивается отдельно: оттуда берутся дата из Last-Modified, meta robots и X-Robots-Tag, canonical и языковые версии. Закрытые от индексации, битые и указывающие canonical на чужой адрес помечаются и в карту не идут.
Посмотрите таблицу «Адреса и что с ними». Там видно, почему каждый исключённый адрес исключён; лишнее можно убрать кнопкой, а всю таблицу — скачать CSV.
Выберите приоритет и частоту, при желании поставьте общую дату. Если у адресов есть свои даты и приоритеты — они сильнее общей настройки, кроме «Не указывать».
Скачайте файл. Один файл — sitemap.xml или сжатый sitemap.xml.gz; больше 50 000 адресов — архив с частями и индексным sitemap-index.xml. Рядом лежат HTML-карта для посетителей и простой текстовый список, который Google тоже принимает.
Положите файл в корень сайта и добавьте в robots.txt готовую строку Sitemap — она напечатана справа от карты.
Если карта уже лежит на сайте, начните с последнего блока: нажмите «Разобрать», и сервер принесёт её сам. Индексный файл раскроется по частям, .gz распакуется. Инструмент покажет число адресов, ошибки формата и — если перед этим был обход — чего в карте не хватает и что в ней осталось от прошлой версии сайта.
Исходные данные — те же, что стоят в полях по умолчанию: их можно пересчитать в уме и убедиться, что инструмент не врёт.
Глубина — это число частей пути. У корня их ноль, у /about/ одна, у /blog/first-post/ две.
Приоритет: 1,0 − 0,2 × глубину. Получается 1,0 для корня, 0,8 для /about/ и /blog/, 0,6 для записи блога.
Каждый адрес занимает четыре строки: открывающий url, loc, priority и закрывающий url.
Сверху две служебные строки — объявление XML и открывающий urlset, снизу одна закрывающая.
В карте 4 адреса и 19 строк: 2 сверху, 4 × 4 = 16 на адреса и 1 снизу. Ровно это показывают счётчики. После обхода живого сайта в тех же строках появятся даты из ответа сервера, а исключённые адреса уйдут в таблицу с причиной.
За один запрос сервер отдаёт сотню адресов, а выбранный предел набирается несколькими заходами: до пятисот. Ограничитель общий для всех инструментов сайта — триста обращений с адреса в час, и обход чужого сайта целиком в него всё равно не помещается. Для сайта крупнее берите список из своей CMS и вставляйте в поле: проверка, деление на части и скачивание работают одинаково.
Ответы 4xx и 5xx, страницы с noindex в мета-теге или в заголовке X-Robots-Tag, страницы с canonical на другой адрес и адреса, закрытые в robots.txt. Каждый такой адрес остаётся в таблице с причиной — это отчёт, а не молчаливое удаление.
Из заголовка Last-Modified ответа при подробной проверке. Если сервер его не отдаёт, тег не ставится вовсе: выдуманная дата хуже отсутствующей. Поле «дата для всех адресов» перебивает найденные даты — это ручное переопределение.
Спецификация требует форму W3C Datetime: ГГГГ-ММ-ДД либо полная дата со временем, и тогда часовой пояс обязателен — 2024-05-17T09:30:00+03:00. Проверка ругается на дату не той формы, на несуществующее число вроде 31 апреля и на дату из будущего. Отдельно отмечается случай, когда у всех адресов дата одна и та же: это обычно штамп времени сборки, и признаком изменения страницы он не служит.
По спецификации sitemaps.org — до 50 000 адресов и до 50 МБ в несжатом виде. Инструмент режет карту сам: части называются sitemap-1.xml, sitemap-2.xml и так далее, а рядом собирается sitemap-index.xml со ссылками на них. Всё это скачивается одним архивом.
Обязателен только loc. Google сообщал, что priority и changefreq не использует. Оставлять их не вредно, но рассчитывать на них не стоит: частота обхода зависит от того, как часто страница действительно меняется, а не от того, что написано в файле.
Файл забирает наш сервер, поэтому разрешение чужого домена на чтение из браузера больше ни при чём: сжатая карта распаковывается, индексная раскрывается по частям, каждая часть разбирается как XML — вместе с языковыми ссылками xhtml:link, которые при разборе как HTML теряются. Дальше считаются адреса, повторы, относительные адреса, кириллица в loc, чужие домены, сломанный lastmod, priority вне промежутка и changefreq не из списка. Если перед этим был обход, сверху ложится сравнение в обе стороны: чего в карте нет и что в ней осталось от прошлой версии сайта.
Не нужно. Карта относится к тому сайту, где она лежит, и чужие адреса из неё не берут. Для поддомена делают свою карту в его корне; инструмент предупредит, если в списке или в проверяемой карте смешались домены.
В файл адрес пишется в том виде, в каком его отдаёт сервер: домен в punycode, путь — процентным кодированием. Кириллица в чистом виде в loc не годится, генератор такие строки отметит — и в своей карте, и в чужой.
Показывает весь путь от адреса до конечной страницы и коды ответа.
Открыть
Строит дерево заголовков страницы и находит пропущенные уровни.
Открыть
Пишет title и description и сразу показывает, как это выглядит в выдаче.
Открыть