Как закрыть от индексации страницы вложений media в WordPress без потери полезного трафика

Страницы вложений в WordPress — это отдельные URL для изображений, PDF и других файлов, которые часто создаются автоматически. На небольшом сайте они могут быть незаметны, но на проектах с большим количеством медиа именно attachment-страницы начинают попадать в индекс, собирать мусорный трафик и плодить дубли. Проблема обычно не в самих файлах, а в том, что WordPress по умолчанию умеет показывать для них отдельную HTML-страницу.

Если у вас в отчётах появляются URL вида /attachment/, /image-name/ или страницы вложений с пустым контентом, их лучше привести в порядок. Ниже — рабочие способы закрыть такие страницы от индексации, не ломая доступ к самим файлам и не создавая лишних редиректов там, где они не нужны.

Когда attachment-страницы становятся проблемой

Сами по себе страницы вложений не всегда вредны. Но на практике они часто содержат только изображение, заголовок и минимум текста. Для поисковика это слабая страница, а для сайта — ещё один URL, который нужно обходить, хранить в индексе и иногда показывать вместо нормальной страницы записи.

Типичные симптомы:

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

Что важно не перепутать

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

Диагностика: как понять, что у вас именно эта проблема

Сначала проверьте, как WordPress отдаёт страницу вложения. Откройте URL изображения как отдельной страницы, а не сам файл. Если вместо файла вы видите страницу с заголовком, описанием и картинкой, значит attachment-страница существует и может индексироваться.

Полезно посмотреть и технические признаки:

  • в исходном коде страницы есть обычный HTML-шаблон темы;
  • в адресной строке нет прямой ссылки на файл вроде .jpg или .png;
  • в Search Console есть URL с типом страницы, похожим на запись, но без содержимого;
  • в sitemap попадают URL вложений, если их добавляет тема или плагин.

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

Пошаговое решение: что делать на практике

Есть три рабочих подхода: редиректить attachment-страницы на родительскую запись, ставить noindex на сами страницы или отключать их вывод на уровне темы/плагина. Выбор зависит от структуры сайта.

ПодходКогда подходитМинус
Редирект на родительскую записьЕсли вложения не нужны как отдельные страницыНужно аккуратно обработать файлы без родителя
noindex для attachment-страницЕсли хотите оставить страницу доступной, но не в индексеСтраница остаётся в обходе поисковика
Отключение шаблона вложенийЕсли attachment-страницы не используются вообщеТребует кода и проверки темы

Вариант 1. Редирект attachment-страниц на родительскую запись

Это самый практичный вариант для большинства сайтов. Пользователь и бот попадают не на пустую страницу вложения, а на нормальный контент. Если у вложения есть родительская запись, редирект ведёт туда. Если родителя нет, можно отправлять на главную или на сам файл — в зависимости от логики сайта.

<?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;
});

Этот код можно добавить в дочернюю тему или в собственный мини-плагин. Для продакшена мини-плагин надёжнее: он не сломается при смене темы.

Вариант 2. Оставить страницу, но поставить noindex

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

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

    return $robots;
});

Такой вариант особенно полезен, если у вас есть старые ссылки на attachment-страницы из писем, архивов или внешних источников, и вы не хотите сразу менять всю структуру.

Вариант 3. Отключить вывод attachment-страниц в теме

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

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

Как проверить, что решение сработало

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

  • Откройте attachment-URL в браузере и проверьте, куда он ведёт: на родителя, главную или остаётся на месте.
  • Посмотрите исходный код страницы и найдите мета-тег robots или заголовок X-Robots-Tag, если он используется.
  • Проверьте ответ через curl -I https://example.com/attachment-url/ или через инструменты разработчика.
  • В Search Console отправьте URL на повторную проверку и посмотрите, меняется ли статус индексации.
curl -I https://example.com/sample-attachment/

Если вы используете редирект, в ответе должен быть 301 и новый адрес в заголовке Location. Если используете noindex, страница должна открываться, но в HTML или заголовках должен быть запрет на индексацию.

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

Редирект поставили слишком широко

Иногда разработчики вешают редирект на все медиа-URL, включая прямые файлы. В результате картинки перестают открываться как файлы, а это уже ломает сайт. Проверяйте условие именно на is_attachment(), а не на весь каталог загрузок.

Закрыли от индексации не страницу, а файл

Если в robots.txt или на уровне сервера запретить доступ к папке uploads целиком, поисковик может перестать видеть сами изображения. Это не то же самое, что закрыть HTML-страницу вложения. Для SEO и корректной работы сайта это разные вещи.

Не учли вложения без родителя

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

Плагин SEO и собственный код конфликтуют

Если SEO-плагин уже ставит noindex, а вы дополнительно делаете редирект, результат может быть непредсказуемым. Сначала проверьте, что именно делает плагин, и только потом добавляйте свой код. Два решения одной задачи часто мешают друг другу.

Чек-лист перед публикацией изменений

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

Безопасность и производительность

Любой код для редиректа или фильтра robots лучше хранить не в functions.php основной темы, а в дочерней теме или отдельном плагине. Тогда вы не потеряете настройку после обновления шаблона. Если сайт большой, лишние attachment-страницы ещё и создают нагрузку на обход: бот тратит время на пустые URL вместо полезных страниц.

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

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

Как использовать Transients API в WordPress для ускорения калькуляторов
27.09.2026
Как отладить 404 ошибки после смены структуры URL в WordPress
23.08.2026
Оптимизация выполнения PHP кода в WordPress: практические методы и примеры
25.09.2026
Как закрыть от индексации архивы тегов в WordPress
02.10.2026
Как добавить расчет налогов в WordPress калькуляторе: примеры и решения
27.09.2026
×

AI-плагин

WPGPT
Сам создает статьи для вашего сайта WordPress

SEO и мета-теги

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

Изображения

Комментарии

Подробнее