Техническое SEO

Краулинговый бюджет: практический гид для больших платформ

Обложка статьи: Краулинговый бюджет — практический гид

Пошаговый аудит краулингового бюджета: анализ логов, Google Search Console, источники «слива» (параметрные URL, фасеты, временные страницы), меры устранения, настройка Sitemap index, rate limiting, KPI и дорожная карта для Dev/SEO-команд.

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

Куда уходит краулинговый бюджет: полезные страницы конкурируют с фильтрами, UTM-метками и пагинацией за внимание бота.
Google официально разделяет два понятия: crawl rate limit (как часто бот может приходить, не перегружая сервер) и crawl demand (сколько страниц Google хочет обойти исходя из их ценности). Краулинговый бюджет — пересечение этих двух факторов. Оптимизация даёт эффект именно на крупных платформах.
5–10×

Перерасход бюджета

Типичное соотношение реально обходимых URL к полезным страницам на неоптимизированном e-commerce

60–80%

Потери на дублях

Доля бюджета, съедаемая параметрными URL и пагинацией при отсутствии мер

2–4 нед.

Задержка индексации

Типичная задержка появления нового SKU в индексе при забитом бюджете

>50 тыс.

Порог проблемы

Платформы с более чем 50 000 URL уже ощущают влияние краулинговогобюджета

Шаг 1: сбор и анализ логов краулера

Логи веб-сервера — первичный источник правды о том, что именно обходит Googlebot. Анализ логов показывает реальную частоту запросов, какие разделы бот игнорирует, а на каких «застревает», и какие ответы отдаёт сервер. Без логов любая оптимизация — это стрельба вслепую.

Извлечение запросов Googlebot из Nginx/Apache

BASH
# Отфильтровать только запросы Googlebot за последние 7 дней
grep 'Googlebot' /var/log/nginx/access.log \
  | awk '{print $7}' \
  | sort | uniq -c | sort -rn \
  | head -50

# Статус-коды, которые видит Googlebot
grep 'Googlebot' /var/log/nginx/access.log \
  | awk '{print $9}' \
  | sort | uniq -c | sort -rn

# Топ URL с ответом 404
grep 'Googlebot' /var/log/nginx/access.log \
  | awk '$9 == "404" {print $7}' \
  | sort | uniq -c | sort -rn | head -30

Для структурированного анализа на больших объёмах логов используйте специализированные инструменты: Screaming Frog Log File Analyser, Semrush Log Analyser или ELK-стек (Elasticsearch + Kibana). Они автоматически группируют URL по шаблонам и строят графики crawl rate.

МетрикаЧто показываетНормальный диапазон
Crawl rate (req/day)Интенсивность обхода — сколько страниц Googlebot запрашивает в суткиЗависит от размера сайта; отслеживайте динамику
Pages crawled/dayУникальных URL, обойдённых за день — основной KPI бюджетаДолжен расти после оптимизации
200 / (301+302) / 404 / 500 ratioДоля разных HTTP-ответов среди всех запросов бота200 > 90%; 404 < 5%; 500 ≈ 0%
% duplicate URLs in crawlДоля параметрных и дублированных URL в логахПосле оптимизации < 15%
New pages / total crawledСоотношение новых страниц к повторным обходамЦелевой показатель — рост доли новых

Шаг 2: Google Search Console и анализ ответов сервера

Google Search Console предоставляет агрегированные данные о краулинге без необходимости доступа к серверным логам. Раздел «Статистика сканирования» (Crawl Stats) — ключевая точка входа. Здесь видно среднее число запросов в день, скорость загрузки страниц по восприятию Googlebot и распределение ответных кодов.

  • GSC → Настройки → Статистика сканирования: график crawl requests, разбивка по типу файлов и ответным кодам. Ищите всплески 404/500 и провалы после деплоев.
  • GSC → Индексирование → Страницы: число проиндексированных URL vs. причины неиндексации. «Обнаружено, не проиндексировано» — сигнал нехватки бюджета.
  • GSC → Инструмент проверки URL: ручная проверка статуса конкретной страницы — когда была обойдена, что видит Googlebot.
  • GSC → Настройки → Скорость сканирования: можно ограничить crawl rate, если бот нагружает сервер. Обычно не нужно — ограничивайте только при проблемах с производительностью.
Статус «Обнаружено, не проиндексировано» в GSC — самый прямой сигнал нехватки краулингового бюджета. Google знает о существовании страниц (нашёл по ссылкам или в сайтмапе), но не успевает их обойти. Первоочередная задача — освободить бюджет от мусорных URL.

Источники «слива» краулингового бюджета

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

Сравнение неоптимального и оптимального расхода краулингового бюджета.

Параметрные URL

?sort=price&filter=red&page=3 генерируют экспоненциальное количество уникальных URL с идентичным или почти идентичным контентом.

Бесконечная пагинация

Страницы /catalog?page=N — тысячи URL со снижающейся ценностью. Бот может бесконечно обходить старые страницы каталога.

Дублированный контент

Одинаковые страницы на разных URL: /category/ и /category?utm_source=email, HTTP и HTTPS, www и без www.

Временные страницы

Лендинги вебинаров, демо-макеты, страницы с ?preview=1, черновики — появляются и исчезают, но бот тратит на них бюджет.

Пустые шаблоны

Страницы категорий без товаров, профили без контента, автогенерированные страницы тегов — низкокачественный контент, генерируемый тысячами.

Сессионные параметры

?sessionid=abc123, ?token=xyz — уникальные URL для каждой сессии. Каждый такой URL — новая «страница» для бота.

Параметры URL и дубли: меры

Параметрные URL — главный источник потерь на e-commerce платформах. Нет единого инструмента; правильное решение зависит от природы параметра.

Тип параметраПримерРекомендуемая мера
Сортировка/порядок?sort=price_ascDisallow в robots.txt или canonical на страницу без параметра
Фильтры без уникального контента?color=red&size=XLCanonical на чистую страницу категории + noindex через meta robots
Пагинация?page=5Canonical страниц 2+ на страницу 1 (или Disallow для глубокой пагинации)
Tracking/UTM?utm_source=emailCanonical на URL без UTM на каждой странице или настройка в GSC
Сессии/токены?sessionid=abcDisallow: /*?sessionid= в robots.txt; исправить генерацию URL в коде
Preview/draft?preview=1&draft=trueDisallow: /*?preview= и /*?draft= в robots.txt
Пример конфигурации Nginx для канонизации параметров:
TEXT
# robots.txt — блокировка параметрных URL
User-agent: *

# Параметры сортировки и фильтров
Disallow: /*?sort=
Disallow: /*?order=
Disallow: /*?filter=
Disallow: /*?color=
Disallow: /*?size=

# Пагинация глубже 3-й страницы (пример через Allow/Disallow)
Disallow: /*?page=
Allow: /*?page=1
Allow: /*?page=2
Allow: /*?page=3

# Сессионные и tracking-параметры
Disallow: /*?sessionid=
Disallow: /*?token=
Disallow: /*?ref=
Disallow: /*?utm_

# Preview и черновики
Disallow: /*?preview=
Disallow: /*?draft=
Для параметров с частично уникальным контентом (например, фильтр по бренду с уникальным текстом) canonical предпочтительнее Disallow: бот может посетить страницу, прочитать canonical и передать ссылочный вес основной странице. Disallow полностью исключает страницу из обхода и потенциально из индекса.

Фильтры, фасеты и пагинация

Faceted navigation — наиболее сложный кейс. Фасетный поиск генерирует комбинаторный взрыв URL: 10 фильтров с 5 значениями каждый дают потенциально более миллиона комбинаций. Задача — сохранить ценные фасеты (бренд + категория) и заблокировать бесполезные комбинации.

  1. Выявите ценные фасеты: страницы с высоким органическим трафиком или уникальным SEO-контентом (например, /catalog/nike/ с брендовым текстом) — оставить в индексе с canonical на себя.
  2. Добавьте noindex + follow для малоценных комбинаций: страница рендерится (ссылки следуются), но в индекс не попадает. Используйте <meta name="robots" content="noindex, follow"> в шаблоне при наличии более одного активного фасета.
  3. Disallow для чисто технических параметров: сортировка, цвет, размер — если за ними нет SEO-ценности — Disallow в robots.txt.
  4. AJAX-загрузка фасетов: если фасеты подгружаются JavaScript и не отражаются в URL — бот не видит дополнительных URL. Это решает проблему на уровне архитектуры.

Пагинация: canonical vs Disallow

Для пагинации каталога оптимальная стратегия зависит от объёма: при до 10 страниц — разрешить обход и поставить canonical на страницу 1 у страниц 2+. При сотнях страниц пагинации — Disallow глубже 3–5 страницы. Infinite scroll без URL-параметров бот воспринимает как одну страницу — это хорошо для бюджета.

Временные страницы: вебинары, макеты, демо

Временные страницы — скрытый пожиратель бюджета на платформах с маркетинговыми командами. Лендинги вебинаров, демо-макеты, превью для клиентов, страницы A/B-тестов — они появляются быстро и часто остаются навсегда, продолжая потреблять краулинговый бюджет.

  • meta robots noindex: добавить <meta name="robots" content="noindex, nofollow"> в шаблон всех временных страниц. Бот посетит, прочитает директиву и исключит URL из индекса. Самый простой метод при наличии доступа к шаблону.
  • X-Robots-Tag в HTTP-заголовке: если временные страницы не имеют собственного HTML-шаблона (например, это PDF или генерируемые файлы), используйте HTTP-заголовок: X-Robots-Tag: noindex, nofollow.
  • Disallow по префиксу пути: если временные страницы живут в предсказуемых разделах, закрыть через robots.txt. Нет гарантии удаления из индекса, если URL уже проиндексирован, но новые URL не будут обходиться.
  • HTTP-авторизация: для staging и preview-страниц это единственный надёжный способ полной изоляции. Googlebot не имеет credentials и не обойдёт страницу.
Пример разметки noindex в теге и HTTP-заголовке:
TEXT
# robots.txt — паттерны для временных страниц
User-agent: *

# Вебинары и события
Disallow: /webinars/
Disallow: /events/draft-
Disallow: /landing/test-

# Макеты и превью
Disallow: /_preview/
Disallow: /mockups/
Disallow: /demo/

# A/B-тесты и эксперименты
Disallow: /*?variant=
Disallow: /*?experiment=
Disallow: /*?ab_test=

# Preview-параметры шаблонов
Disallow: /*?preview=
Disallow: /*?draft=
Disallow: /*?revision=
Disallow не удаляет страницу из индекса, если она уже была проиндексирована. Для удаления уже проиндексированных временных страниц используйте noindex (бот должен иметь доступ, чтобы прочитать директиву), а после исчезновения страницы из индекса — верните Disallow или настройте HTTP-авторизацию.

Sitemap index при больших объёмах

При миллионах URL один XML-сайтмап неэффективен: он ограничен 50 000 URL и 50 МБ. Sitemap Index — это файл-оглавление, который ссылается на дочерние сайтмапы. Он позволяет структурировать приоритеты и подавать бюджет туда, где он нужен.

XML
<?xml version="1.0" encoding="UTF-8"?>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <!-- Приоритетные разделы — сканируются первыми -->
  <sitemap>
    <loc>https://example.com/sitemap-products.xml</loc>
    <lastmod>2026-05-15</lastmod>
  </sitemap>
  <sitemap>
    <loc>https://example.com/sitemap-categories.xml</loc>
    <lastmod>2026-05-15</lastmod>
  </sitemap>
  <!-- Менее приоритетные разделы -->
  <sitemap>
    <loc>https://example.com/sitemap-blog.xml</loc>
    <lastmod>2026-05-10</lastmod>
  </sitemap>
  <!-- НЕ включать временные страницы и дубли! -->
</sitemapindex>
Рекомендации по структуре индексного сайтмапа:
  • Разделяйте сайтмапы по типам контента: товары, категории, блог, статические страницы — в отдельных файлах. Это позволяет видеть в GSC статистику по каждому разделу отдельно.
  • Обновляйте lastmod честно: lastmod сигнализирует боту о свежести контента. Ставьте дату последнего реального изменения, а не текущую дату — иначе бот перестанет доверять этому сигналу.
  • Не включайте заблокированные URL: страницы с noindex и Disallow не должны присутствовать в сайтмапе — это противоречивые сигналы для бота.
  • Лимит дочернего сайтмапа: каждый дочерний файл — максимум 50 000 URL или 50 МБ (сжатый). При превышении — разбивать на части: sitemap-products-1.xml, sitemap-products-2.xml.
Рекомендации по структуре индексного сайтмапа:

Настройки сервера и rate limiting

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

HTTP-кодИнтерпретация GooglebotРекомендуемое действие
200 OKСтраница существует, бот обходит и индексируетНорма для публичных страниц
301/302Редирект — бот следует, бюджет тратится на оба URLМинимизировать цепочки редиректов; устранять мёртвые ссылки
404 Not FoundСтраница не существует, бот прекращает обход URLДопустимо для удалённых страниц; 404 в логах Googlebot > 5% — проблема
429 Too Many RequestsВременное ограничение — бот замедляет crawl rateИспользовать при реальной перегрузке; Googlebot уважает 429
503 Service UnavailableВременная недоступность — бот вернётся позжеКорректная реакция при техобслуживании; не злоупотреблять
500 Server ErrorОшибка сервера — бот возвращается, тратит бюджет на повторыУстранить причины 500; каждый 5xx — потеря бюджета
Пример конфигурации Nginx для управления краулингом:
NGINX
# Nginx: вернуть 429 при слишком частых запросах от любого краулера
limit_req_zone $http_user_agent zone=crawlers:10m rate=10r/s;

location / {
    limit_req zone=crawlers burst=20 nodelay;
    limit_req_status 429;
    # ... остальные настройки
}
Пример конфигурации Nginx для управления краулингом:
Для управления crawl rate Googlebot используйте GSC → Настройки → Скорость сканирования, а не Crawl-delay в robots.txt — Google официально игнорирует Crawl-delay. Crawl-delay работает для Яндекса и Bing.

KPI и мониторинг

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

Ключевые KPI краулингового бюджета

Целевые значения для оптимизированной крупной платформы

Доля 200 OK среди запросов Googlebot> 90%
Доля 404 среди запросов Googlebot< 5%
Доля дублированных URL в краулинге< 15%
Новые страницы в индексе / поданные в Sitemap> 85%

  • Еженедельно: сравнивайте crawl requests в GSC за текущую и предыдущую неделю. Резкий рост — сигнал новых дублей после деплоя.
  • Ежемесячно: проверяйте GSC → Страницы → «Обнаружено, не проиндексировано». Рост этого числа при неизменном объёме сайта = проблема с бюджетом.
  • После каждого крупного деплоя: прогоняйте Screaming Frog по сайту, проверяйте количество уникальных URL. Сравнивайте с предыдущим снапшотом.
  • Раз в квартал: полный лог-анализ за 30 дней. Ищите новые паттерны параметрных URL, которые генерирует обновлённый код.
  • Алерты: настройте уведомление, если 5xx-ответы превышают 1% от всех запросов Googlebot за день.

Быстрые победы и дорожная карта

Оптимизация краулингового бюджета — это не разовая задача, а процесс. Разделите работу на быстрые меры (эффект за 1–2 недели) и системные изменения (1–3 месяца).

Неделя 1Блокировка временных страниц и preview-параметров

Добавить noindex в шаблоны вебинаров, макетов и демо. Добавить Disallow для ?preview=, ?draft= в robots.txt.

Эффект: -10–30% от бюджета
Неделя 2Disallow для tracking-параметров и сессий

?utm_, ?sessionid=, ?ref= — в robots.txt. Canonical для UTM-версий на всех шаблонах.

Эффект: -5–15% от бюджета
Месяц 1Оптимизация Sitemap index

Разбить на тематические сайтмапы. Убрать из сайтмапа noindex-страницы. Добавить честный lastmod.

Эффект: улучшение покрытия индексации
Месяц 1–2Canonical и noindex для фасетов

Определить ценные и мусорные комбинации фасетов. Реализовать noindex + follow для малоценных комбинаций.

Эффект: -20–50% от бюджета
Месяц 2–3Оптимизация серверных ответов

Устранить цепочки редиректов. Сократить 404 по логам. Оптимизировать TTFB для краулируемых разделов.

Эффект: рост crawl rate
ПостоянноМониторинг и регулярный ревью

Дашборд в GSC, алерты на 5xx, квартальный лог-анализ. Проверка после каждого крупного деплоя.

Эффект: предотвращение регрессий

Чеклист быстрых побед

  • noindex добавлен во все шаблоны временных страниц (вебинары, макеты, демо)
  • Disallow для ?preview=, ?draft=, ?sessionid=, ?utm_ в robots.txt
  • Canonical на чистые URL на всех параметрных страницах (сортировка, пагинация 2+)
  • Из Sitemap исключены страницы с noindex и Disallow
  • Sitemap index разбит по разделам с актуальным lastmod
  • Цепочки 301 сведены к одному редиректу
  • 404 в логах Googlebot < 5% — мёртвые ссылки устранены
  • Настроен еженедельный мониторинг в GSC

FAQ

Google рекомендует уделять вопросу внимание при более чем 1 миллионе URL. На практике проблемы начинаются раньше — при 50–100 тысячах URL с активной генерацией параметрных страниц. Если в GSC растёт число «Обнаружено, не проиндексировано» — пора проводить аудит независимо от размера.
Оба инструмента важны и дополняют друг друга. Sitemap гарантирует, что бот узнает о существовании страниц. Внутренние ссылки передают PageRank и показывают боту, какие страницы важнее. Страница без внутренних ссылок и только в Sitemap будет обходиться реже, чем страница с сотнями внутренних ссылок.
Да, косвенно. CDN ускоряет ответы сервера, что позволяет Googlebot обходить больше страниц за единицу времени при том же crawl rate limit. Быстрый TTFB — один из факторов, влияющих на интенсивность обхода.
Canonical не блокирует обход страницы — бот всё равно может её посетить. Однако после прочтения canonical бот понимает, что эта страница — дубль, и снижает частоту её повторных обходов. Canonical решает проблему индексации дублей, но не полностью решает проблему краулинга — для этого эффективнее Disallow или noindex.
Да. После освобождения бюджета обновите Sitemap с корректным lastmod для новых страниц. Используйте Indexing API Google для прямой отправки URL на индексацию (работает для новостей и вакансий по документации, но на практике помогает и для других типов контента). Создайте внутренние ссылки из авторитетных разделов на новые страницы.