Чаще всего проблема не в самих изображениях или видео, а в том, что WordPress создаёт отдельные страницы вложений. Они могут попадать в индекс, дублировать контент записи и собирать мусорный трафик из поиска. При этом закрывать нужно не файлы в /uploads/, а именно страницы attachment и связанные с ними URL.
Если сделать это грубо, можно сломать просмотр вложений, потерять часть внутренней перелинковки или случайно закрыть от индексации весь медиаконтент. Ниже — рабочая схема: сначала диагностируем, что именно индексируется, потом закрываем только лишнее, а результат проверяем по факту.
Что именно нужно закрывать от индексации
В WordPress есть три разных сущности, которые часто путают:
- сам файл в медиабиблиотеке:
/wp-content/uploads/2026/01/photo.jpg; - страница вложения:
/photo/или/attachment/photo/в зависимости от темы и настроек; - архивы и страницы, где эти вложения выводятся как часть контента.
Если цель — убрать дубли и мусорные страницы из поиска, обычно закрывают именно attachment pages. Сами файлы при этом остаются доступными для сайта и браузера.
Диагностика: что уже попало в индекс
Перед изменениями проверьте, какие URL реально индексируются. Это можно сделать вручную через поиск по сайту и в панели вебмастеров. Ищите запросы вида site:example.ru inurl:attachment, site:example.ru inurl:/uploads/ и страницы с пустым или почти пустым описанием.
Если у вас есть доступ к серверу, полезно посмотреть, как WordPress отдаёт страницы вложений сейчас. Иногда они уже редиректят на файл или на родительскую запись, а иногда отдают полноценную отдельную страницу. От этого зависит способ исправления.
Признаки проблемы
- в поиске есть страницы вложений без полезного текста;
- в отчётах вебмастеров растёт число дублей и малоценных страниц;
- внутренние ссылки ведут на attachment URL, а не на запись;
- после удаления записи остаются индексируемые страницы вложений.
Пошаговое решение: закрываем attachment pages
Самый безопасный вариант — не трогать файлы в uploads, а отключить индексирование страниц вложений и при необходимости редиректить их на родительскую запись или на сам файл.
Вариант 1: редирект attachment page на родительскую запись
Если вложения не нужны как отдельные страницы, можно отправлять пользователя на родительский пост. Это уменьшает число дублей и не ломает доступ к файлу.
<?php
add_action('template_redirect', function () {
if (!is_attachment()) {
return;
}
$parent_id = wp_get_post_parent_id(get_queried_object_id());
if ($parent_id) {
wp_safe_redirect(get_permalink($parent_id), 301);
exit;
}
wp_safe_redirect(home_url('/'), 301);
exit;
});Этот код лучше добавлять в мини-плагин или в functions.php дочерней темы. После внедрения проверьте, что URL вложения отдаёт 301, а не 200.
Вариант 2: поставить noindex на страницы вложений
Если редирект не подходит, можно оставить страницу доступной, но запретить её индексацию. Это полезно, когда attachment page нужна для внутреннего просмотра, но не должна попадать в поиск.
<?php
add_filter('wp_robots', function (array $robots) {
if (is_attachment()) {
$robots['noindex'] = true;
$robots['follow'] = true;
}
return $robots;
});Такой подход не удаляет страницу из поиска мгновенно, но даёт поисковикам понятный сигнал. Если на сайте уже есть SEO-плагин, проверьте, не переопределяет ли он robots meta на attachment pages.
Вариант 3: отключить страницы вложений через SEO-плагин
Если у вас уже стоит SEO-плагин, начните с его настроек. Во многих случаях там есть отдельная опция для медиа-страниц или вложений. Это проще, чем писать код, но важно убедиться, что плагин не закрывает лишнее.
| Подход | Плюсы | Минусы |
|---|---|---|
| Редирект через код | Быстро убирает дубли, контролируемое поведение | Нужно тестировать родительские ссылки |
| noindex через код | Не ломает доступ к странице | Индекс может очищаться не сразу |
| Настройка в SEO-плагине | Удобно для редакторов | Зависит от конкретного плагина и его логики |
Если нужно закрыть только медиатеку, а не весь uploads
Иногда под «закрыть медиатеку» имеют в виду запрет на индексацию страниц вложений, но оставить сами файлы открытыми для браузера и вставок в контент. Это нормальный сценарий. А вот закрывать каталог /uploads/ в robots.txt обычно не нужно: поисковик перестанет видеть и сами файлы, и их контекст, а это не всегда полезно.
Если вы всё же хотите ограничить обход, делайте это осознанно и только после проверки, что изображения и видео не нужны в поиске как самостоятельные документы. Для большинства сайтов достаточно noindex на attachment pages и редиректа с пустых вложений.
Проверка результата после внедрения
После правки не ограничивайтесь открытием URL в браузере. Проверьте поведение так, как его видит поисковый робот.
- Откройте attachment URL в режиме инкогнито и убедитесь, что он либо редиректит, либо отдаёт
noindex. - Проверьте заголовки ответа через
curl -I https://site.ru/attachment-page/. - Посмотрите исходный код страницы и найдите
meta name="robots". - В панели вебмастера отправьте URL на переобход, если страница уже была в индексе.
Пример проверки заголовков:
curl -I https://example.ru/sample-attachment/Если вы видите 301 и целевой URL — редирект работает. Если страница остаётся с кодом 200, но в HTML есть noindex, это тоже допустимо, если вы сознательно выбрали этот вариант.
Частые ошибки и как их исправить
Закрыли весь каталог uploads в robots.txt
Это слишком грубо. Поисковик перестаёт обходить не только вложения, но и сами файлы. Если изображения участвуют в поиске или используются на страницах, такой запрет может ухудшить видимость сайта. Исправление: уберите запрет на каталог и закройте только attachment pages.
Поставили noindex, но страница всё равно в индексе
Это нормально на переходный период. Поисковику нужно время, чтобы переобойти URL и убрать его из выдачи. Если страница давно не обновлялась, ускорьте процесс через вебмастер и проверьте, не блокируется ли URL в robots.txt раньше, чем робот увидит noindex.
Редирект отправляет не туда
Если у вложения нет родительской записи, редирект на главную — рабочий, но не всегда лучший вариант. Иногда логичнее отправлять на сам файл или на релевантную рубрику. Главное — не оставлять пустую attachment page с кодом 200.
SEO-плагин перезаписывает ваши настройки
Такое бывает, если в плагине включены собственные шаблоны robots meta или canonical. Проверьте настройки медиа-страниц, canonical и редиректов. Если плагин не даёт нужного поведения, оставьте одну точку управления: либо код, либо плагин, но не оба сразу.
Чек-лист перед публикацией изменений
- проверены реальные attachment URL;
- выбрано одно поведение: редирект или noindex;
- не закрыт весь
/uploads/без необходимости; - проверены заголовки ответа и meta robots;
- в вебмастере отправлены страницы на переобход;
- не сломаны ссылки на вложения из контента и медиа-блоков.
Практические советы по безопасности и производительности
Если вы вносите код, не правьте напрямую основной файл темы. Для такой задачи лучше использовать дочернюю тему или небольшой must-use плагин. Так вы не потеряете изменения после обновления.
Ещё один практичный момент: не ставьте несколько решений одновременно без проверки. Например, редирект в коде, noindex в SEO-плагине и запрет в robots.txt могут конфликтовать и усложнить диагностику. Сначала выберите один сценарий, потом измеряйте результат.
Если на сайте много медиа и дублей, имеет смысл дополнительно почистить служебные страницы и лишние архивы. Для этого часто используют инструменты вроде Clearfy Pro, но только после проверки, какие именно типы страниц вам реально нужны в индексе: https://wpshop.ru/plugins/clearfy.
В рабочем режиме ориентируйтесь не на «скрыть всё», а на понятную схему: файлы доступны, пустые attachment pages не индексируются, дубли не копятся, а внутренние ссылки ведут на полезные страницы. Это и есть нормальная техническая гигиена для WordPress-сайта с большим количеством медиа.