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

|

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

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

Когда страницы вложений действительно мешают

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

Типичные признаки проблемы

Диагностика: что именно индексируется

Перед изменениями стоит понять, как у вас устроены вложения. В WordPress есть два разных URL: сам файл в медиа-библиотеке и страница вложения. Закрывать нужно именно второе, а не доступ к файлу.

Проверьте несколько вещей вручную:

  1. Откройте страницу вложения из медиа-библиотеки и посмотрите, есть ли на ней контент.
  2. Проверьте исходный код: есть ли <link rel="canonical"> на файл, на родительскую запись или на саму attachment-страницу.
  3. Посмотрите, не ведут ли на эти URL внутренние ссылки из старых материалов, sitemap или хлебных крошек.

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

ПодходЧто делаетПлюсМинус
Плагин SEOДобавляет noindex или редиректБыстро и без кодаЗависит от настроек и логики плагина
Код в теме/плагинеМеняет canonical и редиректит attachmentКонтроль над поведениемНужно аккуратно тестировать
Удаление шаблонаЛомает страницу вложения целикомПростоЧасто даёт 404 и побочные эффекты

Рабочее решение: редиректить attachment-страницы на файл или родительскую запись

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

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

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

    $attachment_id = get_queried_object_id();
    $file_url = wp_get_attachment_url( $attachment_id );

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

    $parent_id = wp_get_post_parent_id( $attachment_id );
    if ( $parent_id ) {
        wp_safe_redirect( get_permalink( $parent_id ), 301 );
        exit;
    }

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

Этот вариант хорош тем, что:

Если нужен именно noindex, а не редирект

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

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

    return $robots;
} );

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

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

  1. Определите, есть ли у attachment-страниц полезный контент. Если нет — редирект лучше, чем noindex.
  2. Проверьте, не использует ли тема отдельный шаблон для вложений. Иногда там уже есть логика canonical или хлебных крошек.
  3. Добавьте редирект или noindex в дочернюю тему, mu-plugin или собственный мини-плагин, а не в файл темы, который может затереться при обновлении.
  4. Очистите кэш сайта и CDN, если они есть.
  5. Переобойдите несколько URL вручную и проверьте код ответа.

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

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

Для быстрой проверки ответа сервера удобно использовать:

curl -I https://example.com/sample-attachment/

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

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

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

Это частая «заглушка», но она плохо работает на больших сайтах. Пользователь теряет контекст, а поисковик получает слишком общий сигнал. Лучше редиректить на файл или на родительскую запись, если она есть.

Закрыли файл вместо attachment-страницы

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

Оставили старые внутренние ссылки

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

Сделали noindex, но canonical остался на саму страницу

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

Что учесть для безопасности и производительности

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

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

Если нужен более широкий контроль над дублями, canonical и технической чисткой сайта, можно посмотреть в сторону инструментов уровня Clearfy Pro: https://wpshop.ru/plugins/clearfy. Но даже с плагином полезно понимать, что именно он меняет в шаблоне и ответах сервера.

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

Как установить и настроить OmniDirect в WordPress для автоматизации рассылок
17.09.2026
Автоматическое отключение неиспользуемых плагинов в WordPress: практические решения
18.09.2026
Как создать динамические таблицы в WordPress с помощью шорткодов
19.08.2026
Как отключить emoji в WordPress и убрать лишний код из head
01.09.2026
Автоматическое изменение стоимости товаров в WooCommerce по условиям
03.10.2026
×
-15%
на премиум-тему
Bono

Создай магазин мечты
на WordPress!

↓ ↓ ↓ ↓ ↓
Купить со скидкой »