1. Введение: зачем нужна директива crawl-delay
В процессе продвижения сайта и его индексации поисковики посылают запросы (боты) к вашему серверу, сканируя страницы сайта, переходя по ссылкам и собирая данные. Если сайт большой, с динамическими разделами, параметрами URL и множеством дублей, то неблагоразумные запросы — особенно со стороны многих роботов — могут создать большую нагрузку на сервер. В таких случаях директива crawl-delay может быть использована как инструмент, чтобы снизить нагрузку и плавно распределить сканирование по времени.
Однако важно понимать: crawl-delay не является стандартной директивой, и не все поисковые роботы её уважают. Более того, Google официально не поддерживает crawl-delay — он просто игнорирует эту директиву.
В то же время Яндекс поддерживает crawl-delay, и вы можете указать, с каким интервалом робот Яндекса должен обращаться к сайту. Кроме того, Bing и Yahoo (и некоторые другие роботы) внимательно реагируют на crawl-delay.
Иначе говоря: директива crawl-delay — это инструмент «мягкого управления», особенно для робота Яндекса и менее строгих роботов, но не гарантированный метод для всех поисковых систем.
2. Что такое robots.txt и как он работает
Прежде чем углубляться в crawl-delay, давайте вспомним, что такое файл robots.txt, как поисковые системы его читают и какие директивы поддерживаются.
- robots.txt — это текстовый файл, расположенный в корневой директории сайта (обычно https://example.com/robots.txt). Только файл в корне домена понимается как управляющий всей зоной этого домена и протокола.
- При посещении сайта поисковый робот сначала запрашивает robots.txt, анализирует его содержимое (директивы) и на основании этого решает, какие URL он может посещать и когда.
- robots.txt поддерживает такие стандартные директивы, как User-agent, Disallow, Allow, Sitemap.
- Формат: каждая строка имеет : , комментарии начинаются с #. Любые пробелы перед и после отбросываются.
- Директивы Allow и Disallow указывают, какие пути URL разрешены или запрещены для сканирования конкретным роботом (user agent).
- Директива Sitemap (указывается один или несколько полных URL к карте сайта) помогает поисковикам найти XML-карты сайта.
Важно: robots.txt не гарантирует, что URL не будут индексироваться — если URL запрещён к сканированию, поисковик может всё равно показывать его адрес в выдаче без сниппета.
Также считается, что robots.txt файл не должен превышать 500 KiB — всё, что следует после этого объёма, игнорируется.
3. Официальные директивы: user-agent, allow, disallow, sitemap
Чтобы грамотно применить crawl-delay, нужно понимать, как работают стандартные (официальные) директивы:
- User-agent — указывает, к какому роботу применяются нижеследующие правила. Например:User-agent: *
Disallow: /private/Здесь * означает «всех роботов». - Disallow — запрещает доступ к указанному пути (URL, каталогу). Путь относительно корня, начинается с /. Если Disallow: без пути — запрет не применяется.
- Allow — более тонкий инструмент: разрешает доступ к некоторым подстраницам внутри запрещённой области. Применим, когда вы хотите закрыть всю директорию, но оставить доступ к одному ресурсу.
- Sitemap — указывает полные URL-ссылки на карту сайта — помогает поисковикам ориентироваться. Пример:Sitemap: https://example.com/sitemap.xml
Эти директивы — официальные, поддерживаемые большинством поисковых систем (включая Google) и основу файла robots.txt.
Важно: директива crawl-delay не входит в официальный стандарт (Robots Exclusion Protocol) и считается неформальным расширением — поэтому её поддержка зависит от конкретной поисковой системы.
4. Директива crawl-delay: определение, синтаксис и значение
Что такое crawl-delay
Директива crawl-delay указывает для робота (user agent), сколько секунд он должен ждать между запросами к серверу при сканировании сайта.
User-agent: Yandex
Crawl-delay: 5
означает, что робот Яндекса должен делать паузу 5 секунд между запросами к разным URL.
В тексте файла robots.txt директива пишется в строке после директивы User-agent или в той же группе. Например:
User-agent: *
Crawl-delay: 10
Disallow: /admin/
Здесь Crawl-delay: 10 говорит всем роботам (user-agent: *) делать паузу 10 секунд.
Значение числа — это именно секунды, целое число. Нельзя указывать дробные значения — большинство роботов не распознают дроби.
Если указать Crawl-delay: 0 — это означает «без задержки» или директива игнорируется.
5. Как поисковые системы относятся к crawl-delay
Очень важно понимать, что не все поисковые роботы уважают директиву crawl-delay.
- Googlebot игнорирует директиву crawl-delay.
- Если вы хотите ограничить скорость Googlebot, нужно использовать настройку crawl rate в Google Search Console.
Яндекс
- Яндекс поддерживает директиву crawl-delay.
- Можно указать время задержки в секундах, и робот Яндекса будет уважать это указание.
Bing, Yahoo и др.
- Bing и Yahoo частично поддерживают crawl-delay.
- То есть если вы укажете crawl-delay: 10, Bing может подождать 10 секунд между запросами.
6. Примеры записи crawl-delay в robots.txt
Пример 1: для всех роботов
User-agent: *
Crawl-delay: 10
Disallow: /private/
Sitemap: https://example.com/sitemap.xml
Пример 2: только для Яндекса
User-agent: Yandex
Crawl-delay: 5
Disallow: /tmp/
Allow: /tmp/allowed-page.html
Пример 3: разные группы
User-agent: Yandex
Crawl-delay: 3
Disallow: /old/User-agent: Bingbot
Crawl-delay: 8
Disallow: /beta/
7. Когда и зачем использовать crawl-delay (и когда не стоит)
Использовать стоит:
- Если сервер перегружен запросами роботов.
- Если сайт большой, с множеством URL и параметров.
- Если основной бот для продвижения — Яндекс.
Использовать не стоит:
- Если сайт небольшой.
- Если ваш трафик и индексация завязаны в основном на Google.
- Если скорость индексации для вас критична.
8. Риски и ограничения директивы crawl-delay
- Google игнорирует директиву.
- Большое значение задержки может замедлить индексацию.
- Не все боты уважают crawl-delay.
- Ошибки в синтаксисе robots.txt могут заблокировать сайт.
9. Альтернативные методы управления скоростью индексации
- Настройка скорости обхода в Google Search Console, Яндекс.Вебмастере, Bing Webmaster Tools.
- Ограничения на уровне сервера (rate limiting, 503 или 429).
- Оптимизация структуры сайта: canonical, noindex, clean-param.
- Использование CDN и кеширования.
10. Проверка, тестирование и отладка robots.txt
- Используйте валидаторы robots.txt.
- Проверяйте логи сервера.
- Тестируйте изменения на копии сайта.
11. Кейс: интернет-магазин
Крупный магазин на 100 000 товаров страдал от нагрузки бота Яндекса. Решение:
User-agent: Yandex
Crawl-delay: 5
Disallow: /filter/
Sitemap: https://shop.example.com/sitemap.xml
В итоге нагрузка снизилась, сайт работает стабильно, индексация сохраняется.
12. Советы по технической оптимизации
- Используйте кэширование и CDN.
- Минимизируйте response.
- Уберите ненужные плагины.
- Оптимизируйте базу данных.
13. Рекомендации для CMS и WordPress
- Используйте плагины для редактирования robots.txt.
- Следите, чтобы автоматические обновления не ломали файл.
- Для динамических сайтов — применяйте canonical, noindex.
14. Частые ошибки и как их избежать
- Указывать crawl-delay без user-agent.
- Ставить слишком большие задержки.
- Блокировать CSS и JS.
- Забывать про зеркала и субдомены.
15. Заключение
Директива crawl-delay полезна для Яндекса и некоторых других роботов. Но Google её игнорирует. Используйте crawl-delay с осторожностью, проверяйте логи, комбинируйте с другими методами.