Проблемы больших обходов
Сайт с сотнями тысяч страниц создаёт три проблемы: обход длится часами или днями, программе не хватает памяти и на сервер ложится заметная нагрузка. Если запустить краулер без настроек, он может нарушить работу сайта, особенно на слабом хостинге.
Основные настройки
| Настройка | Зачем | Рекомендация |
|---|---|---|
| Число потоков и пауза | Ограничить нагрузку на сервер | Начинать с малого числа потоков и повышать, наблюдая за временем ответа |
| Исключения по шаблонам | Не обходить бесполезные адреса | Исключить параметры сортировки, сессий, календарей |
| Ограничение глубины | Не уходить в бесконечные ветки | Задать разумный предел глубины |
| Ограничение числа адресов | Прервать обход при ловушке | Поставить предел выше ожидаемого размера |
| Режим хранения данных | Экономить память | Использовать хранение данных на диске, если оно есть |
| Пользовательский агент | Отличать обход в журналах | Указать понятное название |
| Выполнение JavaScript | Видеть содержимое, созданное скриптами | Включать только когда нужно: обход медленнее |
Сегментация обхода
Вместо одного гигантского обхода разбейте сайт на части: по разделам, типам страниц, папкам. Каждый сегмент проще анализировать, легче повторять и безопаснее для сервера.
- Обходите отдельно каталог, карточки, блог и служебные разделы.
- Используйте карту сайта как список адресов: индексный файл для крупных проектов. Это быстро и показывает, что сайт считает важным.
- Дополните обход по ссылкам обходом по карте: расхождения подскажут страницы-сироты и лишние адреса.
Защита сервера
- Предупредите администратора: обход может выглядеть как нагрузка или атака.
- Проведите обход в часы меньшей нагрузки.
- Следите за временем ответа во время обхода: если оно растёт, снижайте скорость.
- Если сервер защищён от автоматических запросов, добавьте адрес краулера в разрешённые.
- Соблюдайте правила robots.txt, если обходите чужой сайт: настройка robots.txt.
Расписание и хранение результатов
Для регулярного контроля запускайте обход по расписанию и сохраняйте результаты, чтобы сравнивать. Для больших проектов достаточно ежемесячного полного обхода и еженедельных выборочных проверок ключевых разделов. Сравнение обходов пригодится при любых изменениях структуры: сравнение адресов до и после переезда.
Что смотреть в первую очередь. Число найденных адресов, распределение по кодам ответа, глубину, страницы с параметрами и долю индексируемых: метрики качества структуры. Про выбор инструмента — в статье обзор краулеров.
Частые вопросы
Как не перегрузить сервер при сканировании?
Ограничить число потоков и добавить паузы, обходить в часы малой нагрузки и следить за временем ответа сервера.
Зачем разбивать обход на сегменты?
Так проще анализировать результаты, повторять проверки и контролировать нагрузку; один гигантский обход трудно завершить и разобрать.
Как использовать карту сайта при сканировании?
Как список адресов для проверки и как способ найти расхождения с обходом по ссылкам: они указывают на сирот и лишние адреса.
Готовый адрес можно собрать прямо сейчас: откройте генератор ЧПУ — он транслитерирует фразу по таблице Яндекса, уберёт служебные слова и покажет длину адреса.