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

Если в индексе появились страницы вложений, архивы медиафайлов или пустые attachment-страницы, это обычно не про «плохой SEO-плагин», а про настройки темы, шаблонов и robots/meta-логики. На небольшом сайте проблема выглядит безобидно, но на контентном проекте такие страницы создают дубли, размывают краулинговый бюджет и иногда перетягивают на себя показы по картинкам.

Ниже — рабочая схема, как закрыть медиабиблиотеку от индексации в WordPress, не ломая загрузку изображений в статьях и не мешая поиску понимать основной контент страницы.

Когда проблема действительно есть

Сначала стоит убедиться, что речь именно об индексации вложений, а не о нормальной выдаче изображений в Google Images. Проверка простая: в поиске смотрят не только URL файлов вида /wp-content/uploads/..., но и attachment-страницы, например /sample-image/ или /attachment/123/, если они создаются темой или плагином.

Что проверить в первую очередь

  • в поиске по сайту есть страницы вложений с пустым или почти пустым контентом;
  • в Search Console растут URL с типом attachment или похожими служебными страницами;
  • в теме у изображений включены ссылки на отдельную страницу медиафайла;
  • SEO-плагин не переопределяет robots/meta для attachment-страниц;
  • в sitemap попадают медиа-URL, хотя это не нужно для вашей модели индексации.

Если у вас уже есть статья про запрет индексации самих видеофайлов, не путайте её с этой задачей: здесь речь именно о страницах вложений и медиа-архиве WordPress, а не о файлах в uploads.

Какие варианты решения есть и чем они отличаются

ПодходЧто делаетПлюсыМинусы
SEO-плагинСтавит noindex и убирает вложения из sitemapБыстро, без кодаНе всегда закрывает все сценарии темы
Код в теме или плагинеОтключает attachment-страницы и задаёт noindexТочно и предсказуемоНужно аккуратно тестировать после обновлений
robots.txtЗапрещает обход части путейПростоНе решает уже проиндексированные URL и не заменяет noindex

На практике лучше сочетать noindex для attachment-страниц и проверку шаблонов ссылок на изображения. Если закрыть только robots.txt, поисковик может продолжать держать URL в индексе без обхода содержимого.

Пошаговое решение без плагина

Если нужен контролируемый вариант, проще всего добавить код в небольшой mu-plugin или в functions.php дочерней темы. Так вы не зависите от конкретного SEO-плагина и не теряете настройку после обновления темы.

1. Отключить отдельные страницы вложений

Этот код перенаправляет attachment-страницы на родительскую запись, если она есть. Если родителя нет, пользователь попадёт на главную. Для SEO это обычно лучше, чем оставлять пустую страницу вложения в индексе.

<?php
add_action('template_redirect', function () {
    if (is_attachment()) {
        $parent = wp_get_post_parent_id(get_queried_object_id());

        if ($parent) {
            wp_safe_redirect(get_permalink($parent), 301);
            exit;
        }

        wp_safe_redirect(home_url('/'), 301);
        exit;
    }
});

Этот вариант полезен, если тема или старый плагин уже создали attachment-страницы, а вы хотите убрать их из обхода и из выдачи без ручной чистки сотен URL.

2. Добавить noindex для attachment-страниц

Если вы используете SEO-плагин, он может делать это сам. Но когда нужна независимая логика, можно добавить meta robots через wp_robots. Это современный и штатный фильтр WordPress.

<?php
add_filter('wp_robots', function (array $robots) {
    if (is_attachment()) {
        $robots['noindex'] = true;
        $robots['nofollow'] = true;
    }

    return $robots;
});

Такой подход не мешает картинкам отображаться в записях. Он влияет именно на HTML-страницу вложения, а не на сам файл изображения.

3. Убрать вложения из sitemap, если они там есть

Если sitemap генерируется SEO-плагином, проверьте его настройки: медиа-страницы часто можно исключить без кода. Если sitemap собирается вручную или кастомно, не добавляйте attachment-посты в список опубликованных URL.

При кастомной генерации карты сайта логика обычно сводится к исключению пост-типов и записей с типом attachment. Это не универсальный код для всех сайтов, но принцип простой: в sitemap должны попадать только те URL, которые вы реально хотите индексировать.

Если вы используете SEO-плагин

В большинстве проектов удобнее не писать всё с нуля, а использовать плагин для мета-логики и чистки дублей. Например, в Clearfy Pro есть инструменты для удаления дублей и технической оптимизации, если вам нужно закрыть служебные страницы и не держать это в теме. На стороне WordPress это обычно проще сопровождать, чем разбрасывать правила по шаблонам.

Но даже с плагином стоит проверить, что он не конфликтует с темой: некоторые темы сами выводят ссылку на attachment-страницу у изображения, и тогда noindex есть, а лишний переход всё равно остаётся.

Проверка результата после внедрения

После изменений не ограничивайтесь просмотром исходника главной. Нужно проверить именно те URL, которые вы закрывали.

  • Откройте attachment-страницу в браузере и убедитесь, что она редиректит на родительскую запись или главную.
  • Посмотрите исходный код страницы, если редирект не используется: в <head> должен быть noindex.
  • Проверьте robots.txt, если вы добавляли туда правила, но не рассчитывайте только на него.
  • В Search Console отправьте на повторную проверку несколько старых URL вложений.
  • Убедитесь, что изображения в статьях по-прежнему открываются и не ломаются ссылки на медиафайлы.

Для быстрой проверки можно использовать curl -I и посмотреть статус ответа:

curl -I https://example.com/sample-image/

Если всё настроено правильно, вы увидите 301 на родительскую запись или заголовки, где нет признаков indexable-страницы. Для attachment-страниц без редиректа ищите meta robots в HTML и отсутствие их в sitemap.

Частые ошибки и как их исправить

Закрыли только папку uploads в robots.txt

Это частая ошибка. Robots.txt не удаляет уже проиндексированные URL и не мешает поисковику хранить их в индексе. Если цель — убрать attachment-страницы, нужен noindex или редирект.

Поставили noindex, но оставили ссылки на attachment-страницы

Так бывает, когда в настройках медиа WordPress выбран переход на страницу вложения. Пользователь кликает по картинке и попадает на пустую страницу, хотя она уже закрыта от индексации. Исправление — поменять поведение ссылок в редакторе или в шаблоне вывода изображений.

Сломали изображения в контенте

Это обычно происходит, когда пытаются запретить доступ к самим файлам в uploads через серверные правила. Не делайте этого, если изображения используются на публичных страницах. Закрывать нужно HTML-страницы вложений, а не сами медиафайлы, которые нужны для отображения контента.

Переадресация ведёт на главную для всех вложений

Такой вариант допустим, но не всегда идеален. Если у изображения есть родительская запись, логичнее вести туда. Иначе пользователь теряет контекст, а поисковик получает менее точный сигнал о связи медиа и статьи.

Практика безопасности и производительности

Если вы вносите код вручную, не правьте файл темы на живом сайте. Лучше использовать дочернюю тему или маленький mu-plugin. Так вы не потеряете изменения после обновления и не сломаете сайт при ошибке в синтаксисе.

Ещё один полезный момент: не плодите несколько решений одновременно. Если SEO-плагин уже ставит noindex, а тема ещё и редиректит attachment-страницы, отладка становится сложнее. Выберите один основной механизм и проверьте его до конца.

Для сайтов с большим количеством медиа имеет смысл периодически проверять, не появились ли новые attachment-URL после смены темы, импорта контента или установки галерейного плагина. Именно после таких изменений служебные страницы чаще всего снова начинают индексироваться.

Если нужен более широкий технический аудит дублей, служебных страниц и мусорной индексации, удобно сначала убрать базовые дубли на уровне SEO-логики, а уже потом чистить sitemap и шаблоны. Это дешевле, чем потом вручную вычищать сотни URL из индекса.

Успешная интеграция видео в WooCommerce и исправление ошибок загрузки
26.05.2026
Как использовать видео субтитры в WordPress: технические советы и примеры
24.03.2026
Как использовать видео-шорткоды с параметрами для управления воспроизведением в WordPress
02.07.2026
Как удалить водяной знак с видео в WordPress без потери производительности
09.04.2026
Как добавить автоматическое транскрибирование видео в WordPress
26.12.2025