wp3.ru wordpress wp3.ru

Как отключить индексацию attachment-страниц в WordPress без потери полезного трафика

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

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

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

Сценарий типичный: в поиске появляются URL вида /image-name/, ?attachment_id=123 или похожие страницы вложений. Пользователь кликает на них из выдачи и попадает не на статью, а на пустую страницу с картинкой или минимальным шаблоном темы. Для SEO это слабый сигнал, а для аналитики — лишний мусор.

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

Как быстро диагностировать проблему

  • В Google Search Console откройте отчёт по страницам и найдите URL с признаками вложений.
  • Проверьте сайт запросом site:example.com attachment или site:example.com inurl:attachment.
  • Откройте несколько таких URL вручную: если там нет полезного текста, это кандидат на закрытие от индексации.
  • Посмотрите исходный код страницы вложения: есть ли rel="canonical", meta robots и ссылка на родительскую запись.

Что лучше сделать: редирект, noindex или отключение attachment-страниц

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

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

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

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

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

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

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

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

    return $robots;
});

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

Если редирект вам не нужен, а достаточно только закрыть от индексации, оставьте только фильтр wp_robots. Это полезно, когда attachment-страницы уже используются где-то в старых ссылках и вы не хотите ломать переходы сразу.

Если тема не поддерживает корректный вывод robots

В старых темах бывает так, что meta robots выводится вручную и конфликтует с плагинами SEO. Тогда нужно проверить, не дублируется ли noindex в шаблоне. Иначе поисковик увидит несколько противоречивых указаний, а вы получите непредсказуемый результат.

<?php
// Пример: не выводить отдельный meta robots вручную,
// если SEO-плагин уже управляет индексированием.
if (!is_attachment()) {
    echo '<meta name="robots" content="index, follow">';
}

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

Если вы не хотите править тему, можно использовать SEO-плагин, который умеет управлять meta robots и canonical. Но важно проверить, что он действительно применяет правило именно к attachment-страницам, а не только к записям и страницам.

Плагинный путь удобен, если сайт ведётся не разработчиком, а редактором. Минус в том, что часть настроек может быть спрятана глубоко в интерфейсе, а после обновления тема или плагин могут изменить поведение шаблона.

Если у вас уже стоит Clearfy Pro, его имеет смысл рассматривать только как инструмент для чистки дублей и технических страниц, а не как замену понимания логики. В подобных задачах важно проверить, что именно отключается: индексирование, canonical, редирект или только вывод ссылок на вложения. Ссылка для ориентира: Clearfy Pro.

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

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

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

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

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

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

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

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

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

Оставили attachment-страницы доступными в теме

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

Не учли вложения без родителя

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

Практические советы по безопасности и производительности

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

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

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

×
Сделай WordPress мощнее!

Скидка -20% на топовые премиум плагины

Выбрать плагин сейчас ⋙