После загрузки изображения WordPress часто создает для него отдельную страницу вложения. Если такие URL начинают попадать в поиск, они дают мало пользы, выглядят как мусорные страницы и могут перетягивать трафик с нормальных материалов. При этом сами файлы медиа удалять не нужно: задача обычно в том, чтобы убрать именно страницы вложений из индексации, а не отключить библиотеку медиа.
Самый надежный подход зависит от того, что у вас уже стоит на сайте. Если страницы вложений еще не успели накопиться в индексе, достаточно закрыть их от индексации и настроить редирект. Если они уже сидят в поиске, понадобится еще и переобход через Search Console или аналогичный инструмент поисковика.
Что именно нужно убрать из индекса
Важно не путать два разных объекта:
- медиафайл — сам JPG, PNG, WebP, PDF и т. п.;
- страница вложения — отдельная HTML-страница WordPress, на которой обычно показано изображение и минимум текста.
Индексировать обычно не нужно именно страницу вложения. Сам файл изображения может и дальше участвовать в поиске картинок, если это вам полезно. Поэтому цель — не ломать загрузку файлов и не запрещать доступ к медиа по прямой ссылке, а убрать из поиска пустые или почти пустые страницы вложений.
Самый практичный вариант: редирект со страниц вложений на сам файл или на родительскую запись
Для большинства сайтов лучший вариант — не просто ставить noindex, а сразу делать редирект со страницы вложения. Тогда пользователь и робот не попадают на бесполезный URL, а переходят туда, где есть смысл: либо на сам файл, либо на запись, к которой прикреплено изображение.
В WordPress есть встроенный фильтр attachment_redirect, но в готовом виде он не решает задачу “из коробки” для всех сценариев. На практике чаще используют SEO-плагин или небольшой код в теме/плагине. Если у вас уже есть SEO-плагин, сначала проверьте его настройки: многие из них умеют отключать attachment pages или перенаправлять их автоматически.
Если используете SEO-плагин
У разных плагинов названия пунктов отличаются, но логика одна: нужно найти настройку для медиа-страниц, attachment URLs или страниц вложений и включить редирект либо отключение индексации. После сохранения проверьте, что старый URL больше не открывает отдельную страницу вложения.
Это удобнее ручного кода, если сайт уже давно работает и у вас много контента. Но я бы не полагался только на интерфейс плагина без проверки: иногда настройка меняет только мета-тег, а сам URL остается доступным и продолжает индексироваться.
Если нужен точечный код
Когда плагина нет или вы хотите поведение без лишних зависимостей, можно добавить редирект в дочернюю тему или в небольшой mu-plugin. Код ниже отправляет посетителя со страницы вложения на родительскую запись, а если записи нет — на сам файл.
Перед изменениями сделайте резервную копию и проверьте, что у вас есть доступ к файлам сайта через FTP, SSH или файловый менеджер хостинга. Ошибка в коде темы может временно сломать сайт.
<?php
add_action( 'template_redirect', function () {
if ( is_attachment() ) {
$attachment_id = get_queried_object_id();
$parent_id = wp_get_post_parent_id( $attachment_id );
if ( $parent_id ) {
wp_redirect( get_permalink( $parent_id ), 301 );
exit;
}
$file_url = wp_get_attachment_url( $attachment_id );
if ( $file_url ) {
wp_redirect( $file_url, 301 );
exit;
}
}
} );Что здесь происходит: если открыта attachment page, WordPress сначала пытается отправить на родительскую запись. Если родителя нет, редирект идет на сам файл. Код использует обычный 301, то есть постоянное перенаправление, которое поисковики понимают корректно.
Если вы хотите не на файл, а всегда на главную или на архив, это тоже возможно, но для SEO и удобства обычно хуже: пользователь теряет контекст, а поисковик получает менее точный сигнал.
Когда достаточно noindex, а когда нужен именно редирект
noindex убирает страницу из индекса, но не мешает ей открываться. Это рабочий вариант, если вам важно сохранить URL доступным для каких-то внутренних сценариев или если вы пока не готовы менять поведение сайта. Но для страниц вложений редирект обычно полезнее: он сразу убирает лишний переходный слой.
| Подход | Что делает | Когда подходит |
|---|---|---|
| Редирект 301 | Переводит с attachment page на другой URL | Почти всегда, если нужно убрать мусорные страницы |
noindex | Оставляет страницу доступной, но просит не индексировать | Если редирект нежелателен или нужен временный вариант |
| Удаление страницы шаблона | Полностью меняет поведение attachment pages | Если вы уверены, что такие страницы не нужны на сайте |
Если у вас уже есть страницы вложений в индексе, один только noindex может сработать не сразу. Поисковику нужно переобойти URL, а это занимает время. Редирект обычно быстрее и понятнее для робота.
Как закрыть страницы вложений от индексации через robots.txt
Этот способ часто предлагают первым, но для attachment pages он не лучший. Запрет в robots.txt мешает роботу заходить на URL, но не гарантирует удаление уже известных страниц из индекса. Более того, если поисковик уже знает такой адрес, он может продолжать показывать его без сниппета или с устаревшими данными.
Поэтому robots.txt можно использовать только как дополнительную меру, но не как основной способ решения. Для удаления из индекса важнее редирект или noindex на самой странице.
Как проверить, что страницы вложений больше не индексируются
После настройки не ограничивайтесь визуальной проверкой в браузере. Нужно убедиться, что поисковик видит правильный сигнал.
- Откройте несколько старых URL вложений в браузере.
- Проверьте, что они либо редиректят на нужную страницу, либо отдают мета-тег
noindex. - Посмотрите исходный код страницы и убедитесь, что нет случайного
index, followили канонической ссылки на саму attachment page. - Если сайт подключен к Google Search Console или Яндекс Вебмастеру, отправьте URL на переобход или проверьте статус исключения.
Для быстрой ручной проверки достаточно открыть страницу вложения и посмотреть, какой код ответа возвращает сервер. Если это 301 на нужный адрес — хорошо. Если страница открывается как обычная HTML-страница без noindex, значит настройка не сработала.
Что делать со старыми страницами, которые уже сидят в поиске
Если attachment pages уже попали в индекс, одного исправления на сайте иногда мало. Поисковику нужно время, чтобы обновить данные. Чтобы ускорить процесс, сделайте три вещи:
- включите редирект или
noindexна всех страницах вложений; - отправьте важные URL на переобход в панели вебмастера;
- убедитесь, что внутренние ссылки сайта больше не ведут на attachment pages.
Последний пункт часто забывают. WordPress и тема могут выводить ссылку не на запись, а именно на страницу вложения, особенно в старых шаблонах галерей. Если такие ссылки остаются в контенте, поисковик будет снова и снова находить мусорные URL.
Если на сайте много старых медиа-страниц
На больших сайтах ручная правка каждого URL не нужна. Достаточно один раз настроить правило на уровне сайта. Но если у вас уже накопились сотни или тысячи страниц вложений, стоит проверить, не создают ли их:
- старые галереи в записях;
- шаблоны темы, которые ссылаются на attachment page;
- плагины для слайдеров и портфолио;
- импортированный контент с вложенными медиа-ссылками.
Если источник генерации не убрать, новые страницы вложений будут появляться снова, даже если старые уже закрыты от индексации.
Что в итоге делать на практике
Если нужен короткий рабочий план, он такой: сначала настройте редирект со страниц вложений на родительскую запись или на сам файл, затем проверьте, что старые URL больше не открываются как отдельные страницы, и только после этого отправьте проблемные адреса на переобход в поисковиках. robots.txt оставьте как вспомогательный инструмент, а не как основное решение.
Так вы уберете мусорные URL из индекса, не трогая сами изображения и не ломая работу медиафайлов на сайте.