Если в поиске появляются отдельные страницы изображений, PDF или других медиафайлов, это почти всегда архивы вложений WordPress. По умолчанию у каждого загруженного файла может быть собственная страница attachment page с отдельным URL. На небольшом сайте это часто выглядит как мусорные или пустые страницы, а на контентном проекте — как дубли, которые не несут пользы ни пользователю, ни поисковику.
Самый безопасный способ решить проблему — не удалять файлы из медиатеки, а отключить сами архивы вложений и при необходимости настроить редирект со старых URL на родительскую запись или на файл. Ниже — рабочие варианты без лишних побочных эффектов.
Что именно нужно отключать
В WordPress есть два разных сценария, которые часто путают:
- страница вложения — отдельная страница записи медиафайла с собственным URL;
- сам файл — изображение, PDF, архив и любой другой загруженный объект в медиатеку.
Отключать нужно именно страницы вложений, а не сами файлы. Если удалить файл или сломать путь к нему, пострадают изображения в записях, документы и ссылки из контента. Задача обычно в другом: чтобы URL вида /sample-image/ не индексировался отдельно и не создавал дубль или пустую страницу.
Самый практичный способ: отключить архивы вложений через редирект
Если вам нужен результат без вмешательства в шаблоны темы, проще всего перенаправить все attachment page на родительскую запись, а если родителя нет — на главную или на сам файл. Для этого обычно используют код в functions.php дочерней темы или в собственном мини-плагине. Второй вариант надежнее: он не слетит после обновления темы.
Перед изменениями сделайте резервную копию или хотя бы сохраните текущий файл, куда будете добавлять код. Если на сайте уже есть нестандартная логика для медиа-страниц, редирект нужно протестировать особенно внимательно.
Добавьте такой код:
add_action( 'template_redirect', function () {
if ( is_attachment() ) {
$parent = wp_get_post_parent_id( get_queried_object_id() );
if ( $parent ) {
wp_safe_redirect( get_permalink( $parent ), 301 );
exit;
}
wp_safe_redirect( home_url( '/' ), 301 );
exit;
}
} );Что делает этот фрагмент:
is_attachment()проверяет, что открыт именно attachment page;wp_get_post_parent_id()пытается найти запись, к которой прикреплен файл;wp_safe_redirect()отправляет пользователя и поискового робота на безопасный URL с кодом 301;exit;завершает выполнение, чтобы WordPress не успел отрисовать саму страницу вложения.
Такой вариант подходит, если вы хотите полностью убрать медиа-страницы из обращения и не держать их в индексе.
Когда лучше не редиректить на главную
Редирект на главную — запасной вариант, но он не всегда лучший. Если у вложения есть родительская запись, логичнее вести именно туда: пользователь получает контекст, а поисковик — релевантную страницу вместо пустого URL.
На сайтах с большим количеством изображений без привязки к записям иногда редирект на главную выглядит слишком грубо. В таком случае можно направлять на страницу медиафайла напрямую, если она вам нужна как отдельная страница, или вообще отключить индексацию таких URL через SEO-плагин. Но если цель именно убрать дубли, лучше не оставлять attachment page доступными без необходимости.
Как отключить архивы вложений без кода
Если вы не хотите править тему, проверьте SEO-плагин. Многие плагины умеют закрывать attachment page от индексации или автоматически перенаправлять их. Это удобнее для владельца сайта, но важно понимать разницу: noindex не отключает страницу, а только просит поисковик не показывать ее в выдаче. Для устранения дублей это полезно, но сам URL останется доступным.
Если вам нужно именно убрать проблему на уровне сайта, а не только в поиске, редирект надежнее. Если же задача — быстро снизить риск индексации без правок кода, можно начать с настроек SEO-плагина, а потом уже решить, нужен ли редирект.
В контексте очистки дублей и технического SEO иногда используют Clearfy Pro, если вам удобнее закрывать такие технические страницы через интерфейс, а не через код. Но принцип все равно тот же: attachment page нужно либо убрать из индекса, либо перенаправить на полезный URL.
Что проверить после отключения
После внедрения редиректа откройте несколько старых URL вложений вручную. Проверка должна показать одно из двух:
- 301-редирект на родительскую запись;
- 301-редирект на главную, если родителя нет.
Если страница вложения продолжает открываться как обычная запись, значит код не сработал, добавлен не туда или конфликтует с темой/плагином. В таком случае проверьте:
- код добавлен в активную дочернюю тему или в плагин, а не в файл, который перезаписывается обновлением;
- нет ли другого редиректа, который перехватывает тот же URL;
- не кэширует ли сайт старую версию страницы;
- не используется ли отдельная логика для медиа в теме или page builder.
Для быстрой проверки можно открыть URL вложения в режиме инкогнито и посмотреть код ответа сервера в инструментах разработчика браузера или через любой HTTP-проверщик. Если видите 301, значит редирект работает.
Если архивы вложений уже попали в индекс
Отключить доступ к странице — это только половина задачи. Если поисковик уже успел проиндексировать attachment page, они могут еще какое-то время оставаться в выдаче. После редиректа поисковые системы обычно постепенно переобходят такие URL и заменяют их на целевые страницы.
Если у вас есть доступ к панели вебмастера, отправьте на переобход несколько старых URL вложений и проверьте, что они возвращают 301, а не 200. Это ускорит очистку индекса. Но не пытайтесь массово удалять такие страницы вручную, если у них уже есть нормальный редирект: в большинстве случаев это лишняя работа.
Чего не стоит делать
Есть несколько типичных ошибок, из-за которых проблема только ухудшается:
- не удаляйте файлы из медиатеки, если они используются в записях;
- не ставьте 302 вместо 301, если редирект постоянный;
- не закрывайте весь каталог uploads через robots.txt — это ломает индексацию самих изображений и файлов, которые могут быть нужны;
- не оставляйте attachment page без редиректа и без noindex, если они не несут ценности.
Если на сайте много изображений, лучше один раз настроить корректную обработку вложений, чем потом вручную вычищать десятки или сотни пустых URL из индекса.
Коротко о рабочей схеме
Для большинства сайтов оптимальный порядок такой: сначала включить 301-редирект со страниц вложений на родительскую запись или главную, затем проверить несколько URL вручную, после этого дождаться переобхода поисковиками. Если редирект по каким-то причинам не подходит, тогда уже использовать noindex в SEO-плагине как компромиссный вариант.
Так вы отключите архивы вложений без потери самих медиафайлов и без риска сломать изображения в контенте. Именно это обычно и нужно, когда медиа-страницы начинают плодить дубли или пустые страницы в WordPress.