Как закрыть медиатеку WordPress от индексации без поломки сайта

Чаще всего проблема не в самих изображениях или видео, а в том, что 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-сайта с большим количеством медиа.

Как сделать автоматический транскодер видео в WordPress
22.02.2026
Как исправить ошибку «Не загружается видео» в WooCommerce на WordPress
02.05.2026
Оптимизация видео для WooCommerce без плагинов
07.08.2026
Как исправить ошибку «Не загружается видео» в WordPress при использовании WooCommerce
20.04.2026
Как создать автозапуск видео при клике в WordPress
02.04.2026