Как отключить архивы вложений в WordPress

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

Ниже — рабочие способы, которые реально применяют в WordPress. Сразу скажу главное: полностью «удалить» attachment-страницы из WordPress нельзя одним переключателем в ядре, но можно либо перенаправлять их на родительскую запись, либо отключить их вывод через код, либо закрыть их для индексации и убрать из навигации. Выбор зависит от того, нужны ли вам старые URL и есть ли уже трафик на такие страницы.

Что именно отключают, когда говорят об архивах вложений

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

Проблема в том, что такие страницы могут:

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

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

Самый безопасный вариант: перенаправить страницы вложений

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

В WordPress это можно сделать через functions.php дочерней темы или через небольшой mu-plugin. Второй вариант надёжнее: код не пропадёт при смене темы.

Пример редиректа attachment-страниц на родительскую запись, если она есть:

add_action( 'template_redirect', function () {
    if ( is_attachment() ) {
        $parent_id = wp_get_post_parent_id( get_queried_object_id() );

        if ( $parent_id ) {
            wp_redirect( get_permalink( $parent_id ), 301 );
            exit;
        }

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

Что здесь важно:

  • is_attachment() срабатывает только на страницах вложений, а не на самих файлах;
  • wp_get_post_parent_id() пытается найти запись, к которой прикреплён файл;
  • 301 нужен, чтобы поисковики поняли: адрес переехал надолго.

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

Как полностью отключить открытие attachment-страниц

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

Технически это делается тем же хуком template_redirect, только вместо редиректа можно вернуть 404. Этот вариант стоит использовать осторожно: если старые URL уже где-то опубликованы или проиндексированы, пользователи будут натыкаться на ошибку.

Пример жёсткого отключения:

add_action( 'template_redirect', function () {
    if ( is_attachment() ) {
        global $wp_query;
        $wp_query->set_404();
        status_header( 404 );
        nocache_headers();
        include get_query_template( '404' );
        exit;
    }
} );

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

Как убрать архивы вложений из индекса, если страницы пока оставляете

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

Здесь есть важная оговорка: одного мета-тега noindex недостаточно, если страница уже давно в индексе и на неё ведут внутренние ссылки. Нужно одновременно:

  • убрать ссылки на attachment-страницы из шаблонов и контента, если они есть;
  • добавить noindex для страниц вложений;
  • при возможности настроить редирект вместо простого noindex.

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

Что делать с уже существующими ссылками и старыми URL

Самая частая ошибка — отключить attachment-страницы и забыть про старые адреса. В результате часть ссылок начинает отдавать 404, а это уже не просто косметическая проблема. Если такие URL были в индексе или на них есть внутренние ссылки, после отключения нужно проверить, куда они ведут.

Практически это выглядит так:

  1. Откройте несколько старых URL вложений вручную.
  2. Проверьте, идёт ли редирект на родительскую запись, файл или главную страницу.
  3. Если вместо редиректа видите 404, решите, нужен ли вам 301.
  4. Проверьте внутренние ссылки в контенте и шаблонах, если они ведут на attachment-страницы.

Для проверки удобно использовать обычный браузер и инструменты разработчика, а также любой HTTP-проверщик. В ответе должен быть либо 301 с понятным целевым URL, либо 404, если вы сознательно решили убрать страницу без замены. Если вы видите цепочку редиректов, её стоит сократить: лишние переходы замедляют обход и иногда ломают аналитику.

Как понять, что настройка сработала

После изменения проверьте три вещи: открытие attachment-страницы, код ответа и наличие страницы в поиске. Для сайта на WordPress этого обычно достаточно, чтобы понять, что настройка работает как задумано.

Минимальная проверка выглядит так:

  • откройте адрес вложения в браузере;
  • убедитесь, что он не показывает пустую attachment-страницу;
  • проверьте HTTP-статус: 301 при редиректе или 404 при полном отключении;
  • посмотрите, не остались ли ссылки на attachment в меню, хлебных крошках, блоках «Похожие материалы» и в контенте.

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

Когда лучше не отключать архивы вложений полностью

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

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

Если коротко: для нового сайта подойдёт жёсткое отключение или редирект на родителя, для старого сайта с индексом — редирект 301, а для промежуточного варианта — noindex плюс чистка внутренних ссылок. Именно редирект обычно даёт самый аккуратный результат и не создаёт битых переходов.

Как закрыть от индексации страницы вложений в WordPress
13.10.2026
Как использовать хуки для изменения функциональности WordPress
10.09.2026
Обновление WordPress без проблем и сохранение данных
10.09.2026
Как отключить архивы вложений в WordPress
16.10.2026

Ресурс о CMS WordPress, скоро открытие, подождите еще немного :)