ax.SEO
🐱 🦊 🐼 🦝 🐰 🦉
Кто сегодня с нами? 🐾

Животные меняются при загрузке страницы

Главная / Блог / Как настроить robots.txt для больших файлов медиа‑ресурсов в CMS Drupal 9

Как настроить robots.txt для больших файлов медиа‑ресурсов в CMS Drupal 9

Как быстро настроить robots.txt для больших медиа‑файлов в Drupal 9: шаги, проверка и советы по избежанию ошибок.
🐱
Читать проще с подсказками

Карточки, чек-листы, таблицы и примеры помогают быстро найти нужный ответ.

✅ чек-листы 📈 SEO-практика ⚡ быстро

Большие медиа‑ресурсы, часто отнимают crawl‑budget в Drupal. Показано, как быстро и надёжно настроить robots.txt, проверить работу и избежать типичных ошибок.

Определите, какие файлы действительно тяжёлые, сформируйте правила в robots.txt, проверьте их через Search Console и командную строку, затем мониторьте индексацию. При правильной настройке боты обходят медиа‑файлы, не теряя бюджет.

Что нужно подготовить

Смысл

Точный список каталогов, где хранятся большие медиа‑ресурсы, и проверка доступа из файловой системы и админки Drupal.

Проверка
  • Список каталогов с медиа‑файлами (например, /sites/default/files, /sites/default/files/private, /sites/default/files/large).
  • Проверка прав доступа: чтение для веб‑сервера и админ‑пользователя.
  • Доступ к административной панели Drupal (роль «Администратор»).
  • Возможность экспортировать конфигурацию и редактировать robots.txt через файловую систему или модуль.
  • Наличие резервной копии текущего robots.txt.
Действия
  1. Подключитесь к серверу через SSH и выполните find /var/www/html/sites/default/files -type f -size +10M – получите список файлов >10 МБ.
  2. Запишите пути к каталогам, которые будут блокироваться (например, /sites/default/files/large).
  3. Войдите в Drupal как администратор, откройте «Конфигурация» → «Система» → «Robots.txt» (если модуль включён) или откройте файл robots.txt в корне сайта.
  4. Сделайте копию текущего robots.txt в /var/backups/robots.txt.bak.
  5. Подготовьте шаблон правил: User-agent: * Disallow: /sites/default/files/large/ – повторяйте для всех каталогов.
Акцент

После определения каталогов и проверки доступа можно менять robots.txt. Иначе поисковики продолжат обходить большие файлы, и сайт потеряет crawl‑budget.

Как определить тяжёлые медиа‑ресурсы

Смысл

Тяжёлый медиа‑ресурс – файл, который потребляет много ресурсов поисковых ботов и может отнять crawl‑budget. В Drupal 9 считаем его тяжёлым, если размер превышает 5 МБ и он запрашивается более 10 000 раз в месяц.

Чтобы определить, какие ресурсы попадают под эти критерии, можно использовать три источника данных:

  • Логи веб‑сервера. В Apache/Nginx логах поле bytes_sent (или bytes) показывает размер ответа. С помощью скрипта (awk, grep) можно подсчитать количество запросов и средний размер за месяц. Пример: awk '$9 ~ /\\.mp4$/ {size+=$10; count++} END{print size/1024/1024, count}' /var/log/nginx/access.log.
  • Google Analytics. Если файлы скачиваются через download ссылки, можно настроить событие event: download и отслеживать количество кликов. В разделе Поведение → События появятся отчёты по типу файла и количеству скачиваний.
  • Drupal‑модули. Модуль File Usage хранит информацию о том, где используется каждый файл. Комбинируя его с File Statistics (если установлен), можно получить частоту запросов прямо в административной панели. Также полезен Media с настройкой File: Size в свойствах медиа‑объекта.

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

Формируем правила в robots.txt

Действия
  1. Перейдите в корневую папку сайта (обычно public_html, webroot).
  2. Если файла robots.txt нет, создайте его; если есть – откройте для редактирования.
  3. Добавьте строку Disallow: /sites/default/files/large/ – это блокирует весь каталог больших файлов.
  4. Если некоторые медиа в этом каталоге должны индексироваться, добавьте отдельный Allow‑запись, например:
    Allow: /sites/default/files/large/images/.
  5. Сохраните файл, установите права 644, чтобы поисковые боты могли читать его.
User-agent: *
Disallow: /sites/default/files/large/
Allow: /sites/default/files/large/images/
Проверка
  • Файл robots.txt находится в корне сайта.
  • Содержит строку Disallow для /sites/default/files/large/.
  • При необходимости есть Allow‑запись для нужных подкаталогов.
  • Права файла 644.
  • В Google Search Console в разделе «Проверка robots.txt» нет ошибок.
  • С помощью инструмента URL Inspection / Проверка URL убедитесь, что файл доступен и возвращает 200.

Пример robots.txt для Drupal 9

Смысл

Для Drupal 9 медиа‑ресурсы находятся в /sites/default/files/. Большие файлы (изображения, видео, PDF) быстро исчерпывают crawl‑budget, поэтому в robots.txt нужно явно разрешить их индексацию и ограничить лишние запросы к динамическим каталогам.

# robots.txt для Drupal 9
# Разрешаем поисковым ботам доступ к медиа‑файлам, но блокируем лишние каталоги
User-agent: *
# Сайтмап
Sitemap: https://example.com/sitemap.xml

# Разрешаем доступ к папке с медиа‑ресурсами
Allow: /sites/default/files/
# Запрещаем доступ к временным и кэш‑папкам
Disallow: /sites/default/files/tmp/
Disallow: /sites/default/files/cache/
# Ограничиваем crawl‑budget, чтобы не перегружать сервер
Crawl-delay: 10

# Блокируем административные пути
Disallow: /admin/
Disallow: /user/
Disallow: /node/add/
Disallow: /node/*/edit/
Disallow: /node/*/delete/
Disallow: /node/*/revision/
Disallow: /node/*/comment/
Disallow: /node/*/comment/*/edit/
Disallow: /node/*/comment/*/delete/

# Дополнительно блокируем пути, которые генерируются динамически и не нужны поисковым системам
Disallow: /search/
Disallow: /taxonomy/
Disallow: /user/*

# Проверка синтаксиса: https://www.robots.txt-validator.com/

Проверка корректности

Смысл

Тестирование подтверждает, что большие медиа‑файлы в /sites/default/files доступны ботам без ошибок. Проверка статуса, MIME‑типа и логов помогает быстро понять, почему файл не индексируется.

Действия
  1. Откройте Google Search Console, выберите URL Inspection, введите путь к файлу (например, /sites/default/files/large/video.mp4) и посмотрите статус индексации.
  2. В терминале выполните: curl -I https://example.com/sites/default/files/large/video.mp4. Убедитесь, что ответ 200 OK, заголовок Content-Type соответствует формату (video/mp4, image/jpeg и т.д.) и нет заголовка X-Robots-Tag: noindex.
  3. Проверьте логи сервера: tail -n 100 /var/log/nginx/access.log | grep /sites/default/files/large/video.mp4 (или путь к Apache). Ищите коды 403, 404, 500. Если файл возвращается с 403, проверьте права доступа и ACL.
Проверка
  • URL Inspection: статус “Indexed” или “Not indexed” + причина.
  • curl: код 200, правильный MIME‑тип, отсутствие noindex.
  • Логи: отсутствие 403/404/500, достаточный объём запросов.

Частые ошибки и как их избежать

Ошибка
  • Блокировка всей папки /sites/default/files/
    Если правило Disallow: /sites/default/files/ применено, все медиа‑ресурсы, включая изображения в контенте, становятся недоступными для ботов. Это приводит к «broken image»‑тегам, ухудшает UX и снижает качество страниц. Чтобы избежать, блокируйте только лишние подпапки (например, /private/) и оставьте /sites/default/files/ открытым, либо используйте Allow: /sites/default/files/ после общего Disallow: /.
  • Неправильный порядок директив
    Порядок директив важен: правило, записанное позже, переопределяет предыдущее. Если сначала Disallow: /, а потом Allow: /sites/default/files/, последнее правило будет игнорировано, если оно ниже. Чтобы избежать, размещайте Allow перед Disallow для тех же путей, либо используйте отдельный блок User-agent: * с чёткой иерархией.
  • Отсутствие обновления sitemap.xml после изменения структуры файлов
    При переносе медиа‑файлов (например, в /media/) старый sitemap продолжает ссылаться на старые URL, что приводит к 404‑ам и потере индексации. Чтобы избежать, включите автоматическое обновление sitemap в процессе деплоя (модуль XML Sitemap, hook_update или cron) и проверьте наличие новых URL в Google Search Console после каждого изменения.

Мониторинг после релиза

Мониторинг
  • Coverage в Search Console – ежедневно проверяйте вкладку Coverage. Ищите новые ошибки 404, 500, «Blocked by robots.txt» и сравнивайте с предыдущими периодами. Увеличение «неиндексируемых» страниц указывает на конфликт в robots.txt.
  • Логи сервера – в течение недели соберите статистику запросов к медиа‑директориям (например, /sites/default/files/). Смотрите количество запросов, долю 200‑ответов и 404/410. Если запросы растут, но ответы 404, файл, возможно, удалён, но ссылка осталась.
  • Индексация страниц с медиа‑ресурсами – в Search Console через URL‑инспектор проверьте несколько страниц, где используются большие файлы. Убедитесь, что статус «Indexed, not submitted to index» отсутствует. Если страница «Crawled - currently not indexed», проверьте наличие или правил в robots.txt, блокирующих путь к файлу.

Когда не стоит блокировать медиа‑ресурсы

Риски

Блокировка медиа‑ресурсов, которые участвуют в контенте, приводит к нескольким проблемам.

  • Потеря релевантного контента. Изображения в статьях часто содержат ключевые слова в названиях файлов и атрибутах alt. Если они не индексируются, поисковики теряют часть семантики, что снижает позиции.
  • Нарушение социальных превью. Метатеги og:image и twitter:image берут URL‑ы изображений. Если файлы заблокированы, превью в соцсетях пусты, что снижает CTR.
  • Дублирование и канонические проблемы. При блокировке изображений на отдельном домене поисковики могут создать отдельные страницы, считая их самостоятельным контентом. Это приводит к дублированию и потере веса оригинальной страницы.
  • Потеря crawl budget. Бот тратит время на попытки загрузить заблокированные файлы, не получая полезной информации, и пропускает другие важные ресурсы.
  • Проблемы с индексацией страниц. Если медиа‑ресурсы находятся на отдельном домене и блокируются, поисковик может не увидеть их как часть контента, что приводит к неверной оценке релевантности.
  • UX‑риски. Пользователи видят пустые блоки вместо изображений, что ухудшает восприятие страницы и повышает показатель отказов.
  • Технические ошибки. Блокировка через robots.txt не блокирует доступ по HTTP‑статусу 200, но может вызывать 403/404 в случае динамических путей, что приводит к ошибкам в логах и снижает доверие поисковиков.

Если медиа‑ресурсы размещены на отдельном домене, убедитесь, что они доступны для поисковиков и соцсетей. Блокировка через robots.txt должна быть ограничена только лишними файлами (логотипами, скриптами), а не самими изображениями.

Вопросы и ответы

Нужно ли блокировать все медиа‑ресурсы в robots.txt?

Блокировать все медиа не обязательно. Если файлы нужны для работы сайта, оставьте их открытыми. Блокируйте только те, которые не нужны поисковым ботам, например, временные файлы.

Как проверить, что поисковый бот видит медиа‑файлы?

Используйте инструмент URL Inspection в Google Search Console. Введите URL медиа‑файла, убедитесь, что статус «Виден» и нет ошибок «Заблокировано robots.txt».

Какие директивы использовать для больших файлов в robots.txt?

Для больших файлов применяйте директиву Disallow с указанием пути и при необходимости добавьте Crawl-delay, чтобы ограничить частоту обхода.

Как исключить только определённые типы медиа?

В robots.txt можно использовать правило Disallow с маской * для конкретного расширения, например Disallow: /*.tmp. Это блокирует только файлы с данным расширением.

Как избежать лишнего индексации медиа‑ресурсов?

Добавьте meta‑тег noindex в шаблон медиа‑страниц, либо используйте директиву X‑Robots‑Tag в заголовке HTTP для файлов, которые не должны индексироваться.

Как проверить статус индексации медиа‑файлов?

В Google Search Console откройте вкладку Coverage, фильтруйте по типу «Файл», чтобы увидеть, какие медиа‑файлы проиндексированы и какие ошибки возникли.

Как оптимизировать robots.txt для Drupal 9?

В Drupal 9 robots.txt генерируется автоматически. Убедитесь, что в настройках модуля SEO включён «Allow all» для публичных файлов и отключите «Disallow /sites/*/private», если файлы нужны поисковикам.

Как использовать .htaccess для ограничения доступа к медиа‑файлам?

В .htaccess добавьте RewriteRule, чтобы возвращать 403 для определённых путей, например RewriteRule ^files/private/ - [F,L]. Это блокирует доступ к файлам, но не влияет на robots.txt.

Как проверить время отклика (INP) для медиа‑ресурсов?

В Chrome DevTools откройте вкладку Performance, запустите запись и посмотрите показатель INP для загрузки медиа‑файлов. Это покажет, насколько быстро бот получает данные.

Как избежать дублирования медиа‑ресурсов в индексе?

Установите canonical‑теги на страницах, где медиа‑файлы повторяются, и убедитесь, что robots.txt не блокирует их, чтобы поисковик индексировал только один экземпляр.

Важно

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

Редакционная проверка

Материал подготовлен и проверен редакцией AX.SEO

Проверено
AX
Автор Редакция AX.SEO
Digital-редактор 7 лет опыта

Редакция AX.SEO готовит материалы о SEO, разработке, AI, аналитике, маркетинге и росте digital-проектов.

Проверил Александр SEO
SEO-специалист 10 лет опыта

Проверяет практическую применимость рекомендаций, корректность терминов и соответствие материала digital-тематике.

AX.SEO объясняет digital простым языком: без магии, пустых обещаний и “секретных кнопок роста”.