Как отключить индексацию attachment-страниц в WordPress и убрать дубли из поиска

Attachment-страницы в WordPress часто остаются незаметными до тех пор, пока в индексе не появляются тонкие страницы без контента, дубли заголовков и лишние URL из медиафайлов. На небольшом сайте это выглядит как косметическая проблема, но на контентном проекте такие страницы могут размывать релевантность и создавать шум в отчётах по индексации.

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

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

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

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

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

Диагностика: как понять, что индексируются именно attachment-страницы

Проверка занимает несколько минут и не требует доступа к серверу. Сначала откройте поиск по сайту в Google с оператором site:example.com attachment или просто site:example.com inurl:attachment. Если в выдаче есть страницы вложений, значит они уже попали в индекс.

Дальше проверьте исходный код такой страницы. Если в <head> нет noindex, а canonical указывает на саму attachment-страницу, поисковик получает сигнал считать её самостоятельной страницей. Это и есть типичный источник дублей.

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

  • мета-тег robots на attachment-странице;
  • rel="canonical";
  • редирект с attachment URL на исходную запись или медиафайл;
  • настройки SEO-плагина, если он управляет индексированием архивов и медиа;
  • поведение темы: не все шаблоны одинаково обрабатывают страницы вложений.

Как отключить индексацию: три рабочих подхода

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

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

Вариант 1: закрыть attachment-страницы от индексации через SEO-плагин

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

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

Вариант 2: редирект attachment-страниц на файл или родительскую запись

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

Ниже пример для functions.php дочерней темы или небольшого mu-plugin. Он редиректит attachment-страницы на родительскую запись, если она есть, иначе — на сам файл вложения.

<?php
add_action( 'template_redirect', function () {
    if ( ! is_attachment() ) {
        return;
    }

    $post = get_post();
    if ( ! $post ) {
        return;
    }

    $redirect_url = '';

    if ( $post->post_parent ) {
        $redirect_url = get_permalink( $post->post_parent );
    } else {
        $file_url = wp_get_attachment_url( $post->ID );
        if ( $file_url ) {
            $redirect_url = $file_url;
        }
    }

    if ( $redirect_url ) {
        wp_safe_redirect( $redirect_url, 301 );
        exit;
    }
} );

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

Вариант 3: добавить noindex программно

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

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

    return $robots;
} );

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

Пошаговая настройка без лишних рисков

  1. Сначала определите, нужен ли attachment-URL пользователю. Если нет — выбирайте редирект.
  2. Если на сайте уже есть SEO-плагин, проверьте, не управляет ли он robots-мета и canonical для медиа.
  3. Сделайте резервную копию файлов темы или вынесите код в отдельный mu-plugin.
  4. Внедрите noindex или редирект только для attachment-страниц, не трогая сами медиафайлы.
  5. Проверьте несколько URL вручную: обычное изображение, вложение с родителем и вложение без родителя.
  6. После обновления sitemap и переобхода проверьте Search Console и индекс по оператору site:.

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

Проверка должна быть не только визуальной. Откройте attachment-страницу и убедитесь, что:

  • при редиректе URL отдаёт 301 и ведёт на нужную цель;
  • при noindex в исходном коде есть соответствующий robots-сигнал;
  • canonical не указывает на саму бесполезную attachment-страницу, если вы хотите её исключить;
  • в выдаче по site:example.com inurl:attachment новые страницы больше не появляются;
  • в отчётах Search Console уменьшается число URL с низкой ценностью или дублирующихся страниц, если они были связаны именно с медиа.

Если вы используете кэш-плагин, очистите кэш после изменений. Иначе можно проверить старую версию страницы и сделать ложный вывод, что настройка не сработала.

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

Редирект на главную страницу без логики

Это частая ошибка в старых темах и самописных сниппетах. На первый взгляд проблема решается, но на практике вы теряете контекст и создаёте лишние переходы. Лучше редиректить на родительскую запись или на сам файл, если это оправдано.

Закрыли только robots.txt

Disallow в robots.txt не равен noindex. Если страница уже в индексе, запрет на обход не гарантирует её удаление. Для удаления из поиска нужен именно сигнал на уровне страницы или редирект.

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

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

Не учли кэш и CDN

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

Если нужен более чистый сайт: что ещё проверить рядом

Когда вы уже разбираете attachment-страницы, имеет смысл посмотреть и на другие источники дублей: архивы автора на маленьких сайтах, тонкие теги, страницы поиска по сайту и устаревшие медиа-URL из старых публикаций. Если задача шире, чем одна настройка, удобно использовать инструменты для очистки служебных страниц и дублей. Например, Clearfy Pro уместен именно как набор точечных SEO- и технических настроек, когда не хочется собирать всё вручную: https://wpshop.ru/plugins/clearfy.

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

Решение ошибки WP XML-RPC Timeout в WordPress
25.09.2026
Решение ошибки Duplicate Content в WordPress: как обнаружить и исправить
28.09.2026
Решение ошибки Error Establishing a Database Connection в WordPress
02.10.2026
Решение ошибки Invalid post type в WordPress
03.10.2026
Решение ошибки WooCommerce Checkout Not Working в WordPress
13.09.2026