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

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

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

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

Страница вложения нужна WordPress по умолчанию, но далеко не всегда нужна сайту. Отключение обычно оправдано, если:

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

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

Что именно нужно отключить: архивы вложений, а не сами файлы

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

После отключения должны продолжать работать:

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

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

Самый безопасный вариант: перенаправлять attachment URL

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

Есть три практических варианта перенаправления:

ВариантКогда подходитКуда ведёт
На родительскую записьЕсли вложение прикреплено к статье или страницеНа контент, где файл был использован
На сам файлЕсли файл должен открываться напрямуюНа изображение, PDF или другой медиафайл
На главнуюЕсли родителя нет и прямой файл не нуженНа главную страницу сайта

Для SEO обычно предпочтительнее редирект на родительскую запись, если она есть. Так поисковик и пользователь попадают в контекст, а не в пустую медиастраницу.

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

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

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

Пример кода, который перенаправляет attachment URL на родительскую запись, а если родителя нет — на сам файл:

add_filter( 'attachment_link', function( $link, $post_id ) {
    $parent_id = wp_get_post_parent_id( $post_id );

    if ( $parent_id ) {
        return get_permalink( $parent_id );
    }

    $file = wp_get_attachment_url( $post_id );
    return $file ? $file : home_url( '/' );
}, 10, 2 );

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

Как сделать редирект со старых attachment-страниц

Чтобы пустые страницы не висели в индексе и не отдавали 200 OK, лучше отправлять их с кодом 301 на новый адрес. Для этого можно использовать хук template_redirect. Он срабатывает до вывода шаблона и позволяет безопасно перенаправить запрос.

Ниже пример, который отправляет attachment-страницы на родительскую запись, а если родителя нет — на сам файл:

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

    $attachment_id = get_queried_object_id();
    $parent_id     = wp_get_post_parent_id( $attachment_id );

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

    $file = wp_get_attachment_url( $attachment_id );
    if ( $file ) {
        wp_redirect( $file, 301 );
        exit;
    }

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

Перед внедрением учтите два момента. Во-первых, этот код нужно тестировать на staging-копии или хотя бы на небольшом участке сайта. Во-вторых, если у вас есть отдельные страницы вложений, которые вы хотите сохранить, такой универсальный редирект их тоже затронет. Тогда потребуется более точечная логика.

Если не хотите писать код: что можно сделать плагином

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

Если вы выбираете плагин, смотрите не на название функции, а на результат:

  • страницы attachment должны отдавать редирект, а не 200 OK;
  • в индексе не должно оставаться новых пустых URL;
  • медиафайлы должны продолжать открываться по прямым ссылкам;
  • внутренние ссылки на изображения не должны ломаться.

Как проверить, что всё работает

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

Проверьте три сценария:

  1. attachment с родителем — должен вести на запись или страницу;
  2. attachment без родителя — должен вести на файл или на главную, в зависимости от вашей логики;
  3. прямой URL файла — должен открываться отдельно, если вы его не закрывали специально.

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

Чего не стоит делать

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

Не стоит также массово удалять медиафайлы из библиотеки, если проблема только в страницах вложений. Это разные сущности. Удаление файлов может сломать изображения в старых записях и привести к битым ссылкам.

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

Как добавить поддержку JSON-LD в WordPress
09.09.2026
Как отключить XML-карту сайта в WordPress без потери контроля над индексацией
25.09.2026
Как отключить архив таксономии в WordPress без дублей и лишнего контента
14.09.2026
Как использовать WPCommunity для создания форума на WordPress
23.09.2026
Как использовать WPRemark для автоматического размещения отзывов в WordPress
24.09.2026