Генератор Sitemap
Введите URL — сканер обойдёт внутренние ссылки (до 200 страниц), оставит только страницы, которые поисковик мог бы проиндексировать (статус 200, без noindex, canonical на саму себя), и запишет простой XML sitemap, который можно скачать или скопировать. Он также прочитает sitemap, который сайт уже публикует, и покажет оба пробела: индексируемые страницы, которых в нём нет, и URL из sitemap, до которых обход не добрался. lastmod, priority и changefreq не выдумываются. Ничего не хранится дольше 24 часов.
Сканирование выполняется на нашем сервере: один запрос в секунду, с соблюдением robots.txt, без JavaScript. Хранятся только стартовый URL и эта сводка — 24 часа.
Как это работает
1. Наш сканер (InsighthackerzBot, один запрос в секунду, без JavaScript) сначала загружает robots.txt и объявленные в нём sitemap, затем начинает с указанного URL и обходит внутренние ссылки в ширину — только тот же хост; www и домен без www считаются одним сайтом 2. Ограничения: 50, 100 или 200 страниц за запуск, 2 МБ на страницу, 15 с на запрос, 5 редиректов на URL; URL, закрытые в вашем robots.txt для нашего user-agent, пропускаются и подсчитываются; страницы с nofollow загружаются, но их ссылки не обходятся 3. Каждая HTML-страница проходит через тот же движок, что и проверка on-page SEO: title, description, H1, canonical, директивы robots, число слов, изображения без alt — предупреждения и ошибки сохраняются по странице, HTML — нет 4. Внутренние ссылки, оказавшиеся битыми при обходе (4xx, 5xx, тайм-ауты), перечисляются вместе со страницами, которые на них ссылаются; внешние ссылки проверяются только HEAD-запросом (один GET, если сервер отвергает HEAD), не более 100 за запуск, ссылки с nofollow исключены 5. Результат — одна задача на нашем сервере: она содержит только стартовый URL и сводку, удаляется через 24 часа и ни для чего другого не используется 6. Правило sitemap: URL попадает в список, если вернул 200, не несёт noindex (meta или X-Robots-Tag) и его canonical отсутствует или указывает на него самого; редиректы, ошибки и страницы с canonical на другой адрес исключаются. Вывод — только <loc>, в алфавитном порядке
Об XML sitemap и о том, что включает генератор
XML sitemap — это список URL, о которых вы хотите сообщить поисковым системам. Он не заставляет страницу ранжироваться и не принуждает к индексации; это подсказка, помогающая сканерам найти страницы, до которых они иначе добрались бы поздно или не добрались вовсе — глубокие, новые, с малым числом внутренних ссылок. Google читает элемент <loc> и, когда доверяет ему, <lastmod>; о <priority> и <changefreq> он публично сказал, что игнорирует их. Этот генератор пишет только <loc>, потому что обход не может знать, когда страница менялась в последний раз, а угадывание обесценило бы поле.
Настоящий вопрос — какие страницы должны быть в sitemap, и именно здесь большинство сгенерированных карт ошибаются. Sitemap должен перечислять канонические индексируемые URL и ничего больше: URL, который редиректит, отдаёт ошибку, помечен noindex или объявляет другой URL своим canonical, посылает Google противоречивый сигнал — «индексируй это» из sitemap и «не индексируй» со страницы. Генератор применяет ровно эти четыре фильтра и показывает, какие страницы исключены и почему, так что список, который вы скачиваете, — это список, который поисковик примет.
Сравнение с существующим sitemap сайта часто полезнее нового файла. Индексируемые страницы, которых нет в опубликованном sitemap, — обычно те, о которых забыла CMS: добавленная позже категория, посадочная страница вне блога; URL из sitemap, до которых обход не дошёл, либо не имеют ссылок (сироты, о которых знает только sitemap), либо исчезли. Обход в 200 страниц не видит большой сайт целиком — воспринимайте оба списка как выборку, а не как аудит.
Для часто меняющихся сайтов сгенерированный sitemap устаревает на следующий день после загрузки. Правильный долгосрочный ответ — sitemap, который CMS или фреймворк создают сами; этот инструмент для разовых случаев — статический сайт, проверка при переезде, клиентский сайт, которым вы не управляете — и чтобы увидеть, что сканер реально находит, следуя по вашим ссылкам.
Частые вопросы
- Почему страницы нет в сгенерированном sitemap?
- Четыре причины, все намеренные: страница вернула не 200, несёт noindex, её canonical указывает на другой URL, или обход не добрался до неё в пределах лимита страниц. Вкладка аудита перечисляет каждую просканированную страницу с её статусом и директивами; загляните туда, прежде чем считать, что сканер её пропустил.
- Почему нет lastmod?
- Потому что обход не знает, когда страница менялась — HTTP-заголовок Last-Modified на большинстве сайтов отсутствует или неверен, а выдуманная дата научит Google не доверять вашему sitemap. Google использует lastmod только когда он стабильно точен. Если ваша CMS знает даты, их должен нести её собственный sitemap; этот файл не притворяется.
- Использует ли Google priority и changefreq?
- Нет. Google с 2015 года говорит, что игнорирует оба, а в 2023 году убрал их из документации. Bing говорит примерно то же. Здесь они опущены, чтобы файл оставался честным и небольшим.
- Что значит «нет в существующем sitemap»?
- Сканер загрузил sitemap, объявленные в вашем robots.txt (или /sitemap.xml), и сравнил их с найденными страницами. Страницы, которые он мог бы проиндексировать, но которых нет в вашем sitemap, перечислены там — обычно это страницы, добавленные после генерации sitemap, или разделы, которые CMS не включает. Обратный список — URL из sitemap, до которых обход не дошёл, — указывает на осиротевшие или удалённые страницы.
- На моём сайте больше 200 страниц. Что тогда?
- Обход останавливается на лимите и сообщает об этом. Сгенерированный файл тогда — выборка, а не полный sitemap: полезен для проверки структуры, не для загрузки. Большим сайтам нужен sitemap, созданный CMS, разбитый на файлы не более 50 000 URL и 50 МБ каждый с индексом sitemap сверху.
- Куда положить файл?
- По соглашению — в корень сайта (/sitemap.xml), и расположение должно быть на том же хосте, что и перечисленные URL. Затем объявите его в robots.txt строкой Sitemap: и один раз отправьте в Search Console; после этого Google перезагружает его по своему расписанию.
- Безопасен ли обход для моего сайта?
- Он делает один запрос в секунду, представляется как InsighthackerzBot, соблюдает ваш robots.txt, читает не более 200 страниц по 2 МБ каждая и не выполняет JavaScript. Сайт, который не выдерживает такую нагрузку, имеет проблему посерьёзнее sitemap. Если хотите его не пускать, запретите InsighthackerzBot в robots.txt — обход остановится на первой странице.