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

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

Ниже — рабочая схема: как понять, что у вас именно эта проблема, какие есть варианты решения и как проверить, что всё сработало.

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

В WordPress у каждого загруженного изображения может быть отдельная attachment-страница. Она открывается по своему URL и часто содержит только картинку, заголовок и минимум текста. Для пользователя это редко полезная посадочная, а для поисковика — ещё одна страница с почти пустым содержимым.

Проблема обычно проявляется так:

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

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

Сначала проверьте, как WordPress отдаёт страницу вложения. Откройте несколько URL изображений в браузере и посмотрите, есть ли у них отдельная HTML-страница, а не прямой файл .jpg или .png. Если на странице есть шаблон темы, заголовок и кнопка перехода к медиафайлу, это и есть attachment page.

Полезно проверить три вещи:

  1. Индексируется ли URL в поиске через site:example.ru attachment или по названию файла.
  2. Есть ли на странице мета-тег noindex или canonical на основной материал.
  3. Не ведут ли на attachment-страницы внутренние ссылки из галерей, блоков изображений или старых шаблонов.

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

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

Для большинства сайтов есть три подхода. У каждого свой компромисс.

ПодходЧто делаетКогда подходитМинус
Редирект на файл или родительскую записьУводит пользователя и бота с attachment URLЕсли attachment-страницы не нужны вообщеНужно аккуратно выбрать цель редиректа
noindexСтраница доступна, но не должна попадать в индексЕсли хотите сохранить доступ по прямой ссылкеURL остаётся в обходе и может тратить crawl budget
Отключение attachment-шаблонаWordPress перестаёт отдавать отдельную страницуЕсли нужен жёсткий технический вариантТребует кода и тестирования на теме

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

Пошаговое решение без плагина

Самый предсказуемый вариант — добавить код в functions.php дочерней темы или в небольшой mu-plugin. Так вы не зависите от настроек SEO-плагина и контролируете поведение WordPress на уровне шаблона.

1. Закрываем attachment-страницы от индексации

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

add_action( 'wp_head', function () {
	if ( is_attachment() ) {
		echo '<meta name="robots" content="noindex,follow" />' . "\n";
	}
}, 1 );

Это не редирект. Страница останется доступной по URL, но для индексации будет закрыта. Такой вариант удобен, если на attachment-страницы уже ведут внешние ссылки или старые внутренние URL.

2. Перенаправляем attachment на родительскую запись или файл

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

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

	global $post;

	if ( $post && ! empty( $post->post_parent ) ) {
		wp_safe_redirect( get_permalink( $post->post_parent ), 301 );
		exit;
	}

	$file = wp_get_attachment_url( get_the_ID() );
	if ( $file ) {
		wp_safe_redirect( $file, 301 );
		exit;
	}
});

Здесь важно не редиректить всё подряд на главную. Это частая ошибка: поисковик видит массовый 301 на нерелевантную страницу, и качество сигнала только ухудшается.

3. Убираем attachment из результатов поиска по сайту

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

add_filter( 'pre_get_posts', function ( $query ) {
	if ( is_admin() || ! $query->is_main_query() || ! $query->is_search() ) {
		return;
	}

	$query->set( 'post_type', array( 'post', 'page' ) );
});

Этот фрагмент не отключает медиафайлы в админке и не ломает библиотеку. Он только ограничивает публичный поиск на фронтенде.

Если используете SEO-плагин

Иногда проще решить задачу в SEO-плагине, особенно если у вас уже настроены canonical, robots и редиректы. Но проверяйте, что именно делает плагин: некоторые настройки только меняют мета-теги, а attachment-страница всё равно остаётся доступной.

Практический порядок такой:

  • посмотрите, есть ли отдельная настройка для медиа-страниц или attachment URLs;
  • проверьте, ставится ли noindex реально в HTML;
  • если плагин делает редирект, убедитесь, что он не ведёт на 404 или на главную без логики;
  • после изменения очистите кэш страницы и CDN, если он есть.

Если вы используете Clearfy Pro, в нём есть инструменты для технической чистки и закрытия дублей, но всё равно стоит проверить итоговый HTML и поведение редиректа вручную. Автоматическая настройка не отменяет валидацию.

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

После изменения не ограничивайтесь открытием одной страницы в браузере. Проверьте результат в нескольких местах.

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

Если вы сделали редирект, статус должен быть 301, а конечный URL — релевантным. Если поставили noindex, убедитесь, что страница не закрыта одновременно через robots.txt; иначе поисковик может не увидеть мета-тег и оставить URL в индексе дольше, чем нужно.

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

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

Это самая распространённая ошибка. Она выглядит как быстрый способ «убрать мусор», но по факту создаёт нерелевантную цепочку. Если у attachment есть родительская запись, ведите туда. Если нет — на сам файл изображения.

Закрытие через robots.txt без noindex

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

Сломанные ссылки из галерей и старых блоков

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

Кэш не очищен

Если на сайте есть page cache, object cache или CDN, вы можете видеть старую версию attachment-страницы даже после правки кода. Сначала очистите кэш, потом перепроверяйте HTML и заголовки ответа.

Чек-лист перед публикацией изменений

  • Проверены реальные URL attachment-страниц на сайте.
  • Выбран один сценарий: noindex, редирект или оба вместе.
  • Код добавлен в дочернюю тему или mu-plugin, а не в основной шаблон.
  • Проверен исходный HTML и HTTP-статус ответа.
  • Очистен кэш WordPress, сервера и CDN.
  • Проверены старые URL в Search Console.
  • Внутренний поиск не возвращает attachment-страницы, если это не нужно.

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

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

Если вы вносите код вручную, не правьте functions.php основной темы на живом сайте. Используйте дочернюю тему или отдельный мини-плагин. Так вы не потеряете изменения при обновлении и сможете быстро отключить логику, если она конфликтует с темой или SEO-плагином.

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

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

Как закрыть дубли страниц attachment в WordPress от индексации без поломки SEO
23.08.2026
Как автоматизировать удаление старого контента в WordPress
15.09.2026
Как отключить XML sitemap в WordPress для отдельного плагина или темы
23.09.2026
Как закрыть от индексации страницы фильтров в WordPress без поломки SEO
13.09.2026
Как использовать хуки для изменения функциональности WordPress
13.09.2026