Медиана

Краулер для аудита сайта: что смотреть в первую очередь

Настольный краулер обходит сайт как робот и выгружает всё в таблицу. Какие настройки менять до запуска и в каком порядке читать отчёты после.

Обновлено 29.09.2026 · 6 мин чтения

Краулер — программа, которая обходит сайт по ссылкам так же, как поисковый робот, и сохраняет всё увиденное в таблицу: коды ответа, заголовки, метатеги, канонические адреса, директивы индексирования, связи между страницами. Он отвечает на вопрос «что доступно роботу и в каком виде», но не отвечает на вопрос «что робот делал», — для второго нужны серверные журналы.

Коротко

  • Краулер обходит сайт по ссылкам и выкладывает в таблицу коды ответа, заголовки, директивы и связи между страницами.
  • Настройки до запуска меняют результат сильнее, чем любая последующая фильтрация отчётов.
  • Первым читают не список ошибок, а список кодов ответа: остальное имеет смысл только на доступных страницах.
  • Краулер показывает, что доступно роботу, но не показывает, куда робот на самом деле ходил.
  • Число найденных предупреждений не измеряет качество сайта и не задаёт порядок работы.

Что краулер делает и чего от него ждать

Настольный краулер запрашивает страницы сайта одну за другой, переходя по найденным ссылкам, и складывает результат в таблицу. Каждая строка — адрес, каждый столбец — свойство: код ответа, заголовок, описание, H1, канонический адрес, директивы индексирования, число входящих и исходящих ссылок, вес документа.

Ценность этого не в поиске «ошибок», а в том, что появляется полная выборка. Проверить сорок страниц вручную можно, четыре тысячи — нет. Краулер превращает вопросы вида «а везде ли у нас так» из предположения в запрос к таблице.

Важно сразу понимать границу. Программа показывает состояние сайта на момент обхода, то есть то, что доступно роботу. Она не показывает, что робот выбрал, что попало в базу и что получает показы. Полный технический аудит складывается минимум из трёх источников: краулера, панели вебмастера и серверных журналов.

Настройки, которые меняют результат

Половина неверных выводов рождается до запуска — из-за того, что обход шёл не в тех условиях.

Соблюдение robots.txt. По умолчанию его стоит соблюдать: тогда выборка совпадает с доступной роботу. Отдельный обход с игнорированием правил показывает, сколько сайта закрыто и что именно там лежит — сопоставление двух наборов полезнее каждого по отдельности, а сама механика описана в разборе robots.txt.

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

Исполнение скриптов. Выключено — быстро и совпадает с базовым поведением робота. Включено — медленно, но показывает содержимое, появляющееся после отрисовки. Разница между двумя режимами на одних и тех же страницах и есть ответ на вопрос, теряет ли робот содержимое.

Учёт параметров в адресе. Если оставить всё как есть, обход каталога с фильтрами может не закончиться никогда: комбинации параметров перемножаются. Правила отсечения задаются до старта, иначе выборка утонет в вариантах одного и того же документа.

Дополнительные источники адресов. Обход по ссылкам плюс загруженный список из карты сайта плюс выгрузка адресов из панели. Только так находятся страницы без входящих ссылок — их не видно при обходе по определению.

Порядок чтения отчётов

Отчёты читаются не по интересности, а по зависимости: каждый следующий имеет смысл только на том, что прошло предыдущий.

ОчередьЧто смотрятПочему именно здесь
1Коды ответаОшибки и переадресации отсекают часть сайта; остальные проверки на них бессмысленны
2Директивы индексированияnoindex и запреты решают, попадёт ли страница в базу, независимо от её содержания
3Канонические адресаПоказывают, какие страницы объявлены копиями и не окажется ли среди них нужная
4Заголовки и описанияПустые, дублирующиеся, обрезанные — влияют на показ в выдаче
5Глубина и входящие ссылкиСтраницы на четвёртом уровне и без входящих ссылок обходятся редко
6Размер и время ответаМедленные шаблоны видны как класс, а не как отдельные случаи

Смысл порядка виден на примере. Тысяча предупреждений о пустых описаниях выглядит страшно, пока не выясняется, что девятьсот из них — на страницах с noindex, которые в выдаче не появятся никогда. Работа над ними даст ноль.

Практический приём, который экономит больше всего времени: после первого прохода отфильтровать выгрузку до строк с кодом 200 и без запретов индексирования, сохранить как отдельный набор и дальше работать только с ним. Всё, что отсеялось, разбирается один раз и целыми классами — «весь раздел закрыт», «вся пагинация переадресуется», — а не постранично. Разбор по одной строке на таких объёмах не заканчивается никогда, потому что причины у строк общие.

Первые три строки таблицы читаются как один блок: вместе они отвечают на вопрос, какие страницы вообще претендуют на попадание в индекс.

Как сверить обход с картой сайта

Расхождение между числом адресов в карте сайта и числом найденных при обходе — быстрый способ обнаружить и потерянные страницы, и мусор в карте.

curl -s 'https://example.com/sitemap.xml' | grep -c '<loc>'
cut -d',' -f1 internal_all.csv | tail -n +2 | sort -u | wc -l

Первая команда считает адреса в карте сайта, вторая — уникальные адреса в выгрузке краулера. Как читать разницу:

  • Числа близки — карта соответствует реальной структуре. Дальше сравнивают уже поимённо, а не по количеству.
  • В карте заметно больше — там перечислены адреса, до которых нет пути по ссылкам, либо удалённые страницы. Робот попадёт на них позже и с меньшим приоритетом, а часть встретит ошибкой.
  • При обходе найдено заметно больше — сайт генерирует адреса, не попадающие в карту: параметры фильтров, страницы пагинации, варианты со слешем и без. Здесь же обычно обнаруживаются дубли из-за структуры адресов.
  • Вторая команда вернула единицу — в выгрузке только заголовок, обход не состоялся. Обычно это запрет в robots.txt на стартовый адрес или блокировка со стороны защиты сайта.

Разделитель в cut указан запятой; если выгрузка сохранена с другим разделителем, значение флага -d меняется. tail -n +2 отбрасывает строку заголовков.

Симптом → причина → что делать

Обход остановился на нескольких десятках адресов. Чаще всего запрет в robots.txt, требование авторизации или защита от ботов, отдающая ошибку. Проверьте код ответа для стартового адреса и повторите обход с другим user-agent.

В отчёте тысячи страниц с одинаковыми заголовками. Обычно это варианты одного документа с параметрами сортировки и фильтров, а не отдельные страницы. Прежде чем править метатеги, выясните, сколько из этих адресов вообще должны существовать — разбор в материале о дублях.

Краулер нашёл страницы, о которых вы не знали. Остатки старого движка, тестовые разделы, чужие страницы после взлома. По каждому классу решение своё — переадресация, удаление с кодом 404 или закрытие от обхода.

Много страниц на глубине четыре и дальше. Путь по ссылкам от главной слишком длинный, и робот доходит туда редко. Лечится не настройками краулера, а сокращением маршрута — приёмы собраны в перелинковке.

Чего краулер не покажет

Ограничения принципиальные и не снимаются настройками.

Он не знает, что делал робот. Обход программой показывает доступность, а не факт посещения. Страница может быть идеально настроена и при этом не запрашиваться месяцами. Ответ на этот вопрос есть только в журналах сервера.

Он не знает, что в индексе. Наличие страницы в выгрузке не означает ничего, кроме того, что она открылась. Сопоставление с реальным попаданием в базу делается через панель вебмастера.

Он не оценивает содержание. Столбец с числом слов не отличает полезный текст от набора шаблонных фраз. Решение «эта страница тонкая» принимает человек, программа только сортирует.

Он не измеряет скорость для людей. Время ответа сервера в выгрузке — это не то же самое, что скорость загрузки у посетителя с медленным устройством; разница разобрана в материале про скорость.

Он ничего не решает про приоритеты. Число предупреждений не измеряет качество сайта. Двести пустых описаний на страницах без показов менее важны, чем один неверный канонический адрес на разделе, приносящем половину трафика.

Спорное место

Отчёт краулера легко превратить в список задач: выгрузил, отфильтровал по столбцу «ошибка», отдал в работу. Получается длинный, конкретный и внешне обоснованный план.

Слабость такого плана в том, что программа сортирует по формальным признакам, а важность определяется совсем другим — тем, приносит ли страница показы и рассчитываете ли вы на неё вообще. Технически безупречный сайт из страниц, которые никому не нужны, остаётся сайтом из ненужных страниц.

Практичнее сначала свести выгрузку краулера с выгрузкой показов из панели и работать сверху вниз по трафику, а не сверху вниз по числу предупреждений. Это менее эффектно в отчёте: вместо «устранено 1400 ошибок» получается «исправлено 12 адресов». Зато исправленное относится к страницам, которые кто-то открывает.

Частые вопросы

Чем краулер отличается от панели вебмастера?

Краулер обходит сайт сейчас и показывает его текущее состояние целиком, включая страницы, которых нет в индексе и о которых поисковая система не знает. Панель показывает результат работы поисковой системы за прошедший период и только по тем адресам, которые она обошла. Первый отвечает на вопрос о доступности, вторая — о попадании в индекс.

Нужно ли исполнять скрипты при обходе?

Режим с исполнением скриптов включают, когда содержимое или ссылки появляются только после отрисовки. Он идёт заметно медленнее и требует больше ресурсов, поэтому по умолчанию его не используют. Практичный порядок такой: сначала обход без исполнения скриптов, затем сравнение выборочных страниц с режимом отрисовки — расхождение и покажет, чего лишается робот.

Почему краулер нашёл меньше страниц, чем есть на сайте?

Он идёт по ссылкам, поэтому находит только то, на что где-то есть ссылка. Страницы без входящих ссылок не попадут в обход, даже если они существуют и открываются по прямому адресу. Чтобы их обнаружить, обход дополняют списком адресов из карты сайта и выгрузкой из панели вебмастера, а затем сравнивают наборы.

Обязательно ли соблюдать robots.txt при обходе своего сайта?

Режим игнорирования правил существует и бывает полезен, чтобы увидеть, что скрыто за запретами. Но основной обход разумно делать с соблюдением файла: тогда картина совпадает с тем, что доступно поисковому роботу. Разница между двумя обходами — отдельный полезный отчёт, показывающий объём закрытой части сайта.

Не навредит ли обход работе сайта?

Краулер способен создать нагрузку, сравнимую с наплывом посетителей, потому что запрашивает страницы без пауз. На слабом хостинге это приводит к замедлению и отказам. Перед обходом крупного сайта ограничивают число потоков и скорость запросов, а сам обход планируют на время низкой посещаемости.

Источники

  1. Поисковый робот — Wikipedia
  2. Общие сведения о сканировании и индексировании — Google
Артём Строев
Пишу про измеримый маркетинг и видимость в ИИ-поиске. Публикуюсь под псевдонимом — почему так.