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

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

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

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

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

Типичные признаки:

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

Что именно нужно закрывать

Задача не в том, чтобы запретить доступ к файлам. Изображения, PDF и другие вложения должны продолжать открываться по прямому адресу. Закрывать нужно именно attachment-страницы как HTML-обёртку вокруг файла. Это разные сущности.

Диагностика: где искать дубли и лишние страницы

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

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

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

Полезно проверить и сам шаблон attachment-страницы: если на ней только заголовок, картинка и ссылка на файл, то индексировать её обычно нет смысла.

Посмотрите, как формируются ссылки на медиа

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

Как закрыть attachment-страницы: сравнение подходов

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

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

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

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

1. Добавьте noindex для attachment-страниц

Если attachment-страницы должны остаться доступными по URL, но не должны попадать в индекс, добавьте мета-тег robots через wp_head:

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

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

2. При необходимости сделайте редирект attachment-страницы

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

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

	global $post;

	if ( $post instanceof WP_Post ) {
		$parent_id = (int) $post->post_parent;

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

	$file_url = wp_get_attachment_url( get_queried_object_id() );

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

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

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

3. Не забудьте про каноникал, если он генерируется темой или плагином

Некоторые SEO-плагины сами ставят canonical на attachment-страницы. Если вы делаете редирект, это уже не критично, но при варианте с noindex лучше проверить, что canonical не указывает на саму attachment-страницу без необходимости. В идеале canonical должен вести на родительскую запись или отсутствовать, если страница не должна индексироваться.

Если используете плагин: что проверить в настройках

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

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

Если у вас уже стоит плагин для технической чистки сайта, например Clearfy Pro, проверьте именно поведение attachment-страниц, а не только общие SEO-настройки. В таких задачах важна не галочка сама по себе, а то, что реально отдаёт сервер.

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

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

Что проверить вручную

  • откройте несколько attachment-URL в режиме инкогнито;
  • убедитесь, что они либо отдают 301 на нужный адрес, либо содержат noindex;
  • проверьте, что прямой URL файла по-прежнему открывается;
  • кликните по изображению в записи и посмотрите, куда ведёт ссылка;
  • очистите кеш, если используется page cache или CDN.

Проверка через curl

Если есть доступ к консоли, проще всего проверить заголовки ответа:

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

Для редиректа вы должны увидеть 301 и заголовок Location. Для варианта с noindex — обычный 200, но в HTML должен быть мета-тег robots с noindex,follow.

Проверка в поисковой системе

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

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

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

  • Закрыли сами файлы вместо attachment-страниц. Проверьте, что редирект или noindex применяются только к is_attachment(), а не ко всем медиа-URL.
  • Сделали 302 вместо 301. Для постоянного удаления из индекса нужен именно постоянный редирект, если вы уверены, что страница больше не нужна.
  • Не очистили кеш. После изменения старые HTML-страницы и заголовки могут продолжать отдаваться из кеша.
  • Оставили ссылки на attachment-страницы в теме. Тогда поисковик и пользователи всё равно будут попадать на лишние URL.
  • Поставили noindex, но не проверили canonical. Иногда canonical продолжает указывать на саму attachment-страницу, и это мешает вычищать дубли.

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

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

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

Если на сайте много изображений и файлов, полезно отдельно проверить:

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

В сложных случаях удобнее сначала закрыть attachment-страницы через noindex, а уже потом, когда убедитесь в отсутствии побочных эффектов, перевести их на редирект. Это снижает риск сломать старые ссылки в контенте и даёт время на проверку.

Как отключить xmlrpc.php в WordPress без поломки синхронизации и внешних сервисов
22.08.2026
Как закрыть старые версии записей WordPress от индексации без потери актуальной страницы
01.09.2026
Как закрыть XML sitemap WordPress от индексации и не сломать сканирование
19.08.2026
Как закрыть архивы taxonomy WordPress от индексации без поломки фильтрации
04.09.2026
Как отключить XML sitemap для отдельного типа записей WordPress без поломки индексации
25.08.2026