Файл robots.txt: синтаксис, директивы Allow, Disallow и Clean-param
1. Архитектура и принцип работы
При каждом обращении к сайту роботы Яндекса, Google и LLM-агенты первыми запрашивают файл `https://домен/robots.txt`. Интерпретатор краулера ищет секцию `User-agent`, соответствующую его имени (например, `Yandex`, `Googlebot`, `GPTBot` или универсальную `*`), и сопоставляет URL страницы с правилами `Allow` и `Disallow`. В современном SEO жесткий запрет через `Disallow` применяется только к служебным директориям (`/admin/`, `/cart/`, `/personal/`), тогда как динамические параметры фильтрации и UTM-метки обрабатываются через директиву `Clean-param`.
2. Математическая механика и триггеры ранжирования
Алгоритмы сопоставления правил в Яндексе и Google опираются на длину префикса пути (спецификация RFC 9309): при конфликте `Allow` и `Disallow` побеждает более длинное (специфичное) правило. При равной длине приоритет отдается `Allow`. Критическая особенность Яндекса — поддержка директивы `Clean-param`: она указывает роботу игнорировать перечисленные GET-параметры (`utm_source`, `sort`, `PAGEN_1`) и склеивать сигналы со основной страницей без потери краулингового бюджета. При этом файлы `.css`, `.js` и изображения должны быть всегда открыты для обхода, чтобы рендерер поисковика корректно рассчитал метрики LCP, CLS и мобильную адаптивность.
3. Специфика в Яндекс (YATI) vs Google
Яндекс нативно поддерживает директиву `Clean-param` (до 500 символов в строке), которая является главным инструментом борьбы с дублями фасетных фильтров и рекламных меток. Google директиву `Clean-param` игнорирует — для Googlebot дубли GET-параметров консолидируются исключительно через атрибут `rel="canonical"` в HTML-коде страницы.
4. Нормативы SLA и диагностическая матрица
| Параметр / Метрика | Эталон по SLA | Критическая ошибка |
|---|---|---|
| Код ответа и кодировка /robots.txt | 200 OK, UTF-8 без BOM, размер до 32 КБ | 404/500 или редирект 302 (краулер приостанавливает обход) |
| Доступность CSS/JS для рендеринга | 100% ресурсов первого экрана открыты через Allow | Disallow на папки шаблона или статики CMS |
| Покрытие GET-параметров в Clean-param | Все UTM, yclid, gclid и сортировки перечислены | Слив >25% краулингового бюджета на страницы с ?utm_ |
5. Пошаговый инженерный протокол внедрения
- Откройте обязательный доступ к статике (`Allow: /*.css`, `Allow: /*.js`, `Allow: /*.webp`) для корректного рендеринга страниц.
- Вынесите все рекламные и сортировочные GET-параметры (`utm_*`, `yclid`, `gclid`, `sort`, `view`) в директиву `Clean-param` для секции `User-agent: Yandex`.
- Закройте от индексации результаты внутреннего поиска (`Disallow: /search/`, `Disallow: /*?q=`), корзину и личный кабинет.
- Укажите абсолютный путь к `Sitemap: https://ваш-домен.ru/sitemap.xml` в нижней части файла.
User-agent: *
Allow: /*.css
Allow: /*.js
Allow: /*.webp
Disallow: /cart/
Disallow: /personal/
Disallow: /search/
User-agent: Yandex
Clean-param: utm_source&utm_medium&utm_campaign&utm_content&utm_term&yclid&gclid
Clean-param: sort&order&view&limit
Sitemap: https://promo-star.ru/sitemap.xml
6. Типичные ошибки при оптимизации
- Блокировка папок `/bitrix/cache/`, `/wp-content/themes/` или `/assets/`, ломающая рендеринг мобильной версии в Google Search Console.
- Попытка удалить уже проиндексированные дубли страниц через `Disallow` вместо `rel="canonical"` или `Clean-param` (страница зависает в индексе без сниппета).
- Использование устаревшей директивы `Host` вместо настройки серверного 301-редиректа между зеркалами домена.
