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

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

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

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

Сама по себе страница вложения не всегда вредна. Проблема начинается, когда:

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

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

Диагностика: как понять, что у вас именно эта проблема

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

Проверка через поиск и Search Console

В поиске можно быстро увидеть, есть ли attachment-страницы в индексе. Ищите по шаблону:

site:example.com inurl:attachment

Если Google показывает такие URL, откройте несколько страниц и посмотрите, что на них есть. Обычно это пустой заголовок, картинка и минимум текста.

В Google Search Console проверьте:

  • отчёт по страницам, исключённым из индекса;
  • страницы с пометками про дубли или «просканировано, но не проиндексировано»;
  • URL inspection для конкретной attachment-страницы.

Проверка в самой WordPress

Если нужен быстрый аудит, посмотрите, как ведут себя ссылки на медиа. Откройте запись с изображением и кликните по нему. Если URL ведёт на отдельную страницу вложения, а не на файл или на саму запись, это уже кандидат на правку.

Ещё один признак: в HTML есть ссылки вида /wp-content/uploads/... или attachment permalink, и они не закрыты от индексации.

Что делать: три рабочих подхода

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

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

Вариант 1: закрыть attachment-страницы от индексации

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

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

    return $robots;
});

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

Вариант 2: редиректить attachment-страницы

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

Пример через template_redirect:

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

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

    $parent_id = $post->post_parent;

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

    $file_url = wp_get_attachment_url($post->ID);
    if ($file_url) {
        wp_safe_redirect($file_url, 301);
        exit;
    }
});

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

Вариант 3: отключить attachment URL на уровне настроек темы или плагина

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

Если вы работаете с кастомной темой или своим набором оптимизаций, код выше остаётся самым предсказуемым вариантом. Он не зависит от интерфейса плагина и не ломается при смене настроек в админке.

Пошаговая схема внедрения

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

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

Проверка должна быть не только визуальной. Нужны три уровня контроля.

1. Проверка ответа сервера

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

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

Если вы настроили редирект, должен быть 301 и заголовок Location с целевым URL. Если используете noindex без редиректа, страница должна открываться с кодом 200, но в HTML или заголовках должен быть запрет на индексацию.

2. Проверка robots и canonical

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

3. Проверка в Search Console

После переобхода URL проверьте, как Google видит страницу. Если это редирект, в инспекторе URL должен отображаться конечный адрес. Если это noindex, страница должна уйти из индекса после повторного сканирования.

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

Редирект на несуществующую цель

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

Закрыли в robots.txt вместо noindex

Это частая ошибка. Если вы просто запретите обход в robots.txt, поисковик может продолжать держать URL в индексе без контента. Для уже известных страниц это слабое решение. Лучше использовать редирект или noindex.

Сломали медиа-галереи и лайтбоксы

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

Добавили код в родительскую тему

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

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

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

  • не делайте тяжёлые запросы к базе внутри редиректа;
  • не вызывайте лишние функции, если is_attachment() уже вернул false;
  • не используйте цепочки редиректов 301 -> 302 -> 301;
  • проверяйте, что редирект не создаёт петлю на саму attachment-страницу.

Если у вас много технических правок по индексации и дублям, удобнее держать их в одном месте: отдельный mu-plugin или набор настроек в SEO-плагине. Так проще сопровождать сайт и не потерять логику после обновления темы.

Когда лучше не трогать attachment-страницы

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

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

Как найти и убрать дубли страниц в WordPress без потери индексации
15.08.2026
Как найти и убрать дубли изображений в WordPress без потери SEO
26.08.2026
Как удалить каскадно удалённые посты в WordPress
08.09.2026
Как автоматизировать создание и удаление черновиков в WordPress
20.09.2026
Использование WPCommunity для создания социальной сети на WordPress с уникальными функциями
03.10.2026