Животные меняются при загрузке страницы
Как настроить robots.txt для больших файлов медиа‑ресурсов в CMS Drupal 9
Карточки, чек-листы, таблицы и примеры помогают быстро найти нужный ответ.
Большие медиа‑ресурсы, часто отнимают 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.
- Подключитесь к серверу через SSH и выполните
find /var/www/html/sites/default/files -type f -size +10M– получите список файлов >10 МБ. - Запишите пути к каталогам, которые будут блокироваться (например, /sites/default/files/large).
- Войдите в Drupal как администратор, откройте «Конфигурация» → «Система» → «Robots.txt» (если модуль включён) или откройте файл robots.txt в корне сайта.
- Сделайте копию текущего robots.txt в /var/backups/robots.txt.bak.
- Подготовьте шаблон правил:
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
- Перейдите в корневую папку сайта (обычно public_html, webroot).
- Если файла robots.txt нет, создайте его; если есть – откройте для редактирования.
- Добавьте строку
Disallow: /sites/default/files/large/– это блокирует весь каталог больших файлов. - Если некоторые медиа в этом каталоге должны индексироваться, добавьте отдельный
Allow‑запись, например:Allow: /sites/default/files/large/images/. - Сохраните файл, установите права 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‑типа и логов помогает быстро понять, почему файл не индексируется.
- Откройте Google Search Console, выберите URL Inspection, введите путь к файлу (например, /sites/default/files/large/video.mp4) и посмотрите статус индексации.
- В терминале выполните:
curl -I https://example.com/sites/default/files/large/video.mp4. Убедитесь, что ответ 200 OK, заголовокContent-Typeсоответствует формату (video/mp4, image/jpeg и т.д.) и нет заголовкаX-Robots-Tag: noindex. - Проверьте логи сервера:
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.SEO готовит материалы о SEO, разработке, AI, аналитике, маркетинге и росте digital-проектов.
Проверяет практическую применимость рекомендаций, корректность терминов и соответствие материала digital-тематике.