Attachment-страницы в WordPress часто всплывают в поиске как отдельные URL с почти пустым содержимым. Для сайта это обычно не плюс: такие страницы создают дубли, размывают релевантность и забирают краулинговый бюджет на мусорные адреса. При этом сами файлы медиа удалять не нужно — задача только в том, чтобы закрыть от индексации именно страницы вложений.
Ниже разберём, как понять, что проблема именно в attachment-URL, какие есть рабочие способы отключить их индексацию и как проверить, что после правки поисковики видят нужную версию сайта, а не пустые страницы вложений.
Когда attachment-страницы становятся проблемой
В WordPress у каждого изображения, PDF или другого вложения может быть отдельная страница вложения. Если тема или плагин автоматически ведут на неё ссылки, поисковик начинает обходить эти URL как обычные страницы. На практике это выглядит так:
- в индексе появляются URL вида
/image-name/или?attachment_id=123; - в Search Console растёт число страниц без полезного контента;
- в выдаче видны страницы с одним изображением и заголовком файла;
- появляются дубли, если одно и то же изображение доступно через несколько путей.
Если сайт небольшой, это может быть почти незаметно. Но на проектах с большим количеством медиа, новостей, обзоров или галерей такие страницы быстро превращаются в шум.
Диагностика: как убедиться, что индексируются именно attachment-страницы
Сначала проверьте, что URL действительно ведут на attachment-страницы, а не на сами файлы. Откройте несколько адресов из поиска или из отчёта краулинга и посмотрите, есть ли на странице отдельный заголовок вложения, миниатюра и минимум текста. Если страница выглядит как «обложка» для файла, это и есть attachment.
Что проверить вручную
- в исходном коде есть ли
<link rel="canonical">на саму attachment-страницу или на родительскую запись; - не открывается ли attachment-страница по клику на изображение в контенте;
- есть ли в sitemap URL вложений;
- не добавляет ли SEO-плагин для них индексируемые мета-теги.
Быстрая проверка через браузер и консоль
Если у вас есть доступ к серверу или WP-CLI, можно быстро найти такие URL в базе и в контенте. Например, через поиск по базе по типу записи attachment:
wp post list --post_type=attachment --fields=ID,post_title,post_name --format=tableКоманда покажет список вложений. Это не доказывает индексацию, но помогает понять масштаб: если вложений много, а в поиске уже есть их URL, закрывать их от индексации стоит централизованно.
Какой способ выбрать: плагин, код или настройка темы
Для этой задачи есть три нормальных пути. Выбор зависит от того, как у вас устроен сайт и кто потом будет поддерживать настройки.
| Способ | Когда подходит | Плюсы | Минусы |
|---|---|---|---|
| SEO-плагин | Если уже используется Yoast SEO, Rank Math или аналог | Быстро, без правки кода | Не всегда закрывает attachment-страницы полностью, зависит от настроек |
| Код в functions.php или mu-plugin | Если нужен предсказуемый контроль | Работает независимо от плагинов | Нужно аккуратно тестировать после обновлений |
| Редирект на родительскую запись | Если attachment-страницы вообще не нужны пользователю | Убирает мусорные URL из обхода | Нужно не сломать медиа-страницы, если они где-то используются |
Пошаговое решение через код
Если вам нужно именно запретить индексацию attachment-страниц и при этом не зависеть от интерфейса плагина, самый практичный вариант — перевести такие URL на noindex и, при необходимости, редиректить их на родительскую запись.
Вариант 1: поставить noindex для attachment-страниц
Этот вариант подходит, если страницы вложений должны открываться, но не должны попадать в индекс. Код можно добавить в functions.php дочерней темы или, лучше, в небольшой mu-plugin.
<?php
add_filter( 'wp_robots', function( array $robots ) {
if ( is_attachment() ) {
$robots['noindex'] = true;
$robots['nofollow'] = true;
}
return $robots;
} );Что делает этот код: для attachment-страниц WordPress добавит директивы robots, и поисковик получит сигнал не индексировать такую страницу. Это не мгновенное удаление из выдачи, но корректная техническая основа.
Вариант 2: редиректить attachment-страницы на родительскую запись
Если attachment-страницы вам вообще не нужны, лучше не оставлять их доступными. Тогда логичнее отправлять пользователя и бота на родительскую запись или на сам файл, если родителя нет.
<?php
add_action( 'template_redirect', function() {
if ( ! is_attachment() ) {
return;
}
$parent_id = get_post_parent( get_queried_object_id() );
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;
}
} );Этот вариант полезен, если attachment-страницы уже попали в индекс и вы хотите постепенно убрать их из обхода. Но перед включением проверьте, не используют ли их где-то внешние ссылки, старые шаблоны или галереи.
Вариант 3: закрыть attachment-страницы через SEO-плагин
Если у вас уже стоит SEO-плагин, проверьте настройки индексации медиа. В некоторых конфигурациях можно отключить attachment-страницы без кода. Это удобно, но важно убедиться, что плагин действительно ставит noindex или редирект, а не только меняет каноникал.
Если нужен более широкий контроль над дублями и служебными страницами, имеет смысл посмотреть в сторону инструментов для технической чистки сайта, например Clearfy Pro: https://wpshop.ru/plugins/clearfy?utm_source=wperror.ru&utm_medium=article&utm_campaign=kak-zapretit-indeksaciyu-attachment-stranic-v-wordpress-i-ostavit-media-v-sajte.
Как убрать ссылки на attachment-страницы из контента
Даже если вы закрыли индексацию, лучше не плодить новые ссылки на attachment-URL. Часто они появляются автоматически в галереях, блоках изображений и старых записях.
- проверьте настройки вставки медиа в редакторе;
- уберите ссылки «Медиафайл» у изображений, если они не нужны;
- замените старые галереи, которые ведут на attachment-страницы;
- проверьте шаблоны темы, где изображение может быть обёрнуто ссылкой на attachment.
Если у вас есть доступ к шаблону, иногда достаточно заменить ссылку на изображение на ссылку на родительскую запись или на сам файл. Но это уже зависит от логики сайта: в новостном проекте attachment-страницы обычно не нужны, а в фотокаталоге могут быть частью сценария.
Проверка результата после внедрения
После правки не ограничивайтесь визуальной проверкой. Нужно убедиться, что поисковик получает правильные сигналы.
Что проверить в браузере
- Откройте несколько attachment-URL.
- Посмотрите исходный код страницы.
- Убедитесь, что есть
noindexили срабатывает 301-редирект. - Проверьте, что канонический URL не указывает на мусорную страницу, если вы используете редирект.
Что проверить в Search Console
- страницы вложений должны постепенно исчезать из отчётов об индексировании;
- не должно быть массовых ошибок сканирования после редиректов;
- если URL были в индексе, их статус может обновляться не сразу — это нормально.
Если вы используете краулер вроде Screaming Frog, повторный обход покажет, какие URL стали noindex, а какие отвечают 301. Это самый практичный способ проверить массовую правку.
Частые ошибки и как их исправить
Ставят noindex, но оставляют attachment-URL в sitemap
В этом случае поисковик продолжает находить страницы через карту сайта. Решение простое: исключите attachment-страницы из sitemap на уровне SEO-плагина или фильтра генерации карты сайта.
Делают редирект на главную страницу
Это плохой универсальный вариант. Для пользователя и поисковика лучше редиректить на родительскую запись или на сам файл, если родителя нет. Массовый редирект на главную выглядит как мягкая ошибка и может мешать обходу сайта.
Путают attachment-страницы и сами файлы
Закрывать от индексации нужно именно HTML-страницу вложения, а не файл изображения в /uploads/. Если вы начнёте блокировать сами файлы без причины, изображения могут пропасть из контента и сломать верстку.
Добавляют правила в тему, а потом теряют их после обновления
Если правка нужна надолго, лучше вынести её в mu-plugin. Тогда код не исчезнет при смене темы и не потеряется при обновлении дочерней темы.
Чек-лист перед публикацией правки
- Проверены реальные attachment-URL на сайте.
- Выбран один способ: noindex, редирект или настройка SEO-плагина.
- Attachment-страницы исключены из sitemap, если он их включает.
- Старые ссылки на медиа-страницы убраны из контента и шаблонов.
- Проверен исходный код страницы и ответ сервера.
- После правки выполнен повторный обход краулером или ручная проверка нескольких URL.
Когда лучше не закрывать attachment-страницы полностью
Есть сайты, где attachment-страницы могут быть частью пользовательского сценария: фотоблоги, каталоги изображений, архивы документов, медиа-библиотеки. В таких проектах иногда разумнее оставить страницы доступными, но добавить noindex и аккуратно настроить каноникал. Полное удаление из обхода может ухудшить навигацию внутри сайта.
Если же медиа на сайте используются только как иллюстрации к статьям, attachment-страницы почти всегда лишние. В этом случае редирект или noindex — нормальная техническая гигиена, а не «оптимизация ради оптимизации».