Как убрать дубли attachment-страниц в WordPress и сохранить SEO

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

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

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

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

Проблема обычно проявляется в одном из сценариев:

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

Быстрая диагностика

Сначала проверьте, действительно ли WordPress отдаёт attachment-страницы как отдельные документы. Проще всего открыть в браузере URL изображения и посмотреть, не редиректит ли он на вложение. Ещё полезнее — поискать в Search Console запросом site:example.ru inurl:attachment или проверить покрытие индекса по URL медиафайлов.

Если есть доступ к серверу, посмотрите заголовки ответа:

curl -I https://example.ru/2024/10/photo-name/

Если вместо редиректа на родительскую запись или сам файл вы видите обычный 200 OK с HTML-страницей, attachment-URL живёт своей жизнью и его нужно отключать.

Что лучше: редирект, noindex или полное отключение

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

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

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

Пошаговое решение через код

Ниже вариант без плагинов. Он отключает просмотр 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;
    }

    $file_url = wp_get_attachment_url(get_queried_object_id());

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

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

Что делает этот код:

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

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

<?php
add_action('wp_head', function () {
    if (is_attachment()) {
        echo '<meta name="robots" content="noindex,follow">' . "\n";
    }
});

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

Как сделать это через плагин и не усложнять поддержку

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

Плагин удобен, когда:

  • сайт поддерживает не разработчик, а редактор или администратор;
  • нужно централизованно управлять SEO-настройками;
  • есть риск, что код в теме потеряется при обновлении.

Код предпочтительнее, если нужен предсказуемый результат и минимальная зависимость от стороннего интерфейса. Для production-сайта я бы выбирал один способ и не дублировал его сразу в плагине и в теме.

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

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

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

Полезно проверить и внутренние ссылки. Если тема выводит миниатюры через ссылку на attachment-страницу, редирект спасёт от индексации, но не исправит саму разметку. В таком случае лучше искать шаблон, который формирует ссылку, и заменить её на прямой URL файла или на ссылку на запись-родитель.

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

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

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

Код добавили в файл темы, а потом обновили тему

После обновления правка исчезает. Для таких задач используйте дочернюю тему или отдельный мини-плагин.

Поставили и редирект, и noindex одновременно в разных местах

Так легко получить конфликт логики: один плагин отдаёт 301, другой пытается вставить мета-тег, третий меняет canonical. В итоге диагностика становится сложнее, чем сама проблема. Оставьте один источник истины.

Не проверили, как тема использует изображения

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

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

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

Если вы правите кодом, используйте только wp_safe_redirect() и не подставляйте в редирект произвольные пользовательские данные. Для attachment-страниц это не критично, но привычка писать безопасные редиректы полезна в любом проекте.

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

Короткий чек-лист перед публикацией правки

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

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

Вам также может быть интересно:

Как закрыть дубли архивов тегов в WordPress и не сломать индексацию
16.09.2026
Как закрыть поиск по сайту WordPress от индексации и убрать дубли страниц
23.09.2026
Как закрыть открытые XML sitemap в WordPress и не сломать индексацию
19.09.2026
×

AI-плагин от WPShop.ru

анализирует конкурентов

пишет статьи

готовит SEO

генерирует изображения

и еще кое-что...
WPGPT
Плагин, который наполняет ваш сайт WordPress
Узнать больше