Страницы вложений в WordPress часто живут своей жизнью: у каждого изображения появляется отдельный URL, который может попасть в индекс и создать дубль без полезного контента. На небольшом сайте это выглядит как мелкая техническая деталь, но на проектах с большим количеством медиа такие страницы начинают засорять отчёты в Search Console и размывать сигналы качества.
Проблема обычно не в самих изображениях, а в том, что attachment page открывается как полноценная HTML-страница, хотя на ней часто только заголовок, картинка и минимум текста. Если таких URL много, поисковик тратит краулинговый бюджет на пустые страницы вместо полезных материалов.
Как понять, что у вас именно эта проблема
Сначала проверьте, действительно ли страницы вложений доступны и индексируются. Не стоит закрывать их «на всякий случай», если у вас тема или плагин используют attachment pages как часть навигации.
- Откройте несколько URL вложений вручную: обычно это адрес вида
/attachment/...или отдельная страница медиафайла. - Проверьте отчёт Страницы в Google Search Console на наличие URL с типом вложения.
- Посмотрите исходный код страницы: если там нет полезного текста, а только изображение и стандартные элементы темы, это типичный кандидат на закрытие.
- Проверьте, не ведут ли внутренние ссылки на attachment page из галерей, блоков изображений или старых записей.
Когда закрывать, а когда не трогать
Закрывать имеет смысл, если attachment page не несёт самостоятельной ценности: нет описания, нет уникального контента, нет сценария, где пользователь должен попасть именно на страницу вложения. Если же у вас медиа-каталог или отдельная логика показа файлов, сначала проверьте, не сломает ли редирект пользовательский сценарий.
| Подход | Что делает | Когда подходит |
|---|---|---|
| Плагин | Закрывает дубли и ставит редирект | Если нужен быстрый и безопасный вариант без правки темы |
| Код | Даёт точный контроль над редиректом и meta robots | Если вы ведёте проект и хотите предсказуемое поведение |
| Ничего не делать | Оставляет attachment pages как есть | Только если они реально полезны и индексируются осознанно |
Пошаговое решение: закрываем attachment pages от индексации
Самый надёжный вариант — не просто поставить noindex, а убрать саму страницу из пользовательского и поискового сценария. Для большинства сайтов лучше редиректить attachment page на сам файл или на родительскую запись, если она есть.
Вариант 1: редирект attachment page на родительскую запись или файл
Этот способ удобен тем, что поисковик и пользователь не остаются на пустой странице. Если у вложения есть родительская запись, можно отправлять туда. Если родителя нет — на сам файл изображения или другой подходящий URL.
add_action('template_redirect', function () {
if (!is_attachment()) {
return;
}
$parent_id = wp_get_post_parent_id(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;
}
});Этот код лучше добавлять в мини-плагин или в functions.php дочерней темы. Если вставить его в активную тему без контроля версий, потом будет сложнее сопровождать.
Вариант 2: добавить noindex для attachment pages
Если по какой-то причине редирект не подходит, можно хотя бы запретить индексацию. Это менее сильное решение, но оно помогает убрать мусорные страницы из поиска. Важно понимать: noindex не решает проблему дубля так хорошо, как редирект, но в ряде проектов это приемлемый компромисс.
add_filter('wp_robots', function (array $robots) {
if (is_attachment()) {
$robots['noindex'] = true;
$robots['follow'] = true;
}
return $robots;
});Если у вас уже стоит SEO-плагин, проверьте, не переопределяет ли он robots meta. В таком случае код может не сработать так, как ожидается, и нужно смотреть приоритеты фильтров или настройки самого плагина.
Вариант 3: использовать возможности SEO-плагина
Если на сайте уже есть плагин для SEO и он умеет управлять индексированием архивов и медиа-страниц, иногда проще настроить это в интерфейсе, чем писать код. Но проверяйте, что именно делает плагин: ставит noindex, редиректит или просто скрывает страницу из карты сайта. Это разные вещи.
Если вам нужен более широкий набор технических правок — например, чистка дублей, отключение лишних архивов, управление индексированием и базовая оптимизация — такие задачи часто закрывают комплексные инструменты вроде Clearfy Pro. Но даже в этом случае полезно понимать, что именно происходит на уровне кода.
Что проверить после внедрения
После редиректа или установки noindex не ограничивайтесь визуальной проверкой в браузере. Нужно убедиться, что поведение совпадает с тем, что вы задумали.
- Откройте attachment URL в режиме инкогнито и проверьте, что он уходит на нужный адрес.
- Посмотрите HTTP-статус: для редиректа должен быть
301, а не302. - Проверьте исходный код страницы, если оставили
noindex: в meta robots должен быть нужный директивный набор. - Посмотрите, не появились ли цепочки редиректов, особенно если у вас уже есть правила в .htaccess или на уровне CDN.
- В Search Console запросите повторную проверку страниц после изменения.
Для быстрой диагностики удобно использовать curl:
curl -I https://example.com/attachment/sample-image/В ответе вы увидите, есть ли редирект и куда он ведёт. Если вместо ожидаемого ответа приходит 200 OK, значит правило не сработало или его перехватывает другая логика темы/плагина.
Частые ошибки и как их исправить
Редирект поставили, но attachment pages всё ещё индексируются
Чаще всего причина в том, что поисковик ещё не переобошёл старые URL. Это нормально: после изменения нужно время. Если же в выдаче продолжают появляться новые страницы, проверьте, нет ли внутренних ссылок на attachment page из галерей, sitemap или шаблонов темы.
Сломались изображения в старых записях
Такое бывает, если редирект настроили слишком агрессивно и отправляете пользователя не туда, куда ожидалось. Сам файл изображения должен оставаться доступным. Не путайте страницу вложения и сам медиафайл.
Плагин SEO конфликтует с кодом
Некоторые плагины уже добавляют свои правила robots meta или редиректы. Если вы одновременно включили настройку в интерфейсе и написали код, результат может быть непредсказуемым. Оставьте один источник истины: либо плагин, либо код.
Использовали 302 вместо 301
Для постоянного удаления attachment page из индекса нужен именно постоянный редирект. Временный редирект оставляет поисковику сигнал, что URL может вернуться, и это хуже для очистки индекса.
Практические советы по безопасности и производительности
Не вставляйте такой код в произвольный файл темы без резервной копии. Лучше вынести его в небольшой mu-plugin или отдельный плагин проекта. Тогда при обновлении темы логика не пропадёт.
Если на сайте много медиа и старых публикаций, сначала протестируйте правило на staging-копии. Это особенно важно, если у вас есть нестандартные шаблоны вложений, мультиязычность или CDN, который кэширует редиректы.
- Сначала проверьте 5–10 разных attachment URL вручную.
- Убедитесь, что редирект не ломает скачивание файлов.
- Проверьте карту сайта: attachment pages не должны туда попадать, если вы решили их закрыть.
- После изменения очистите кэш страницы и, если нужно, кэш CDN.
Если задача шире и вам нужно системно убрать технический мусор на сайте — дубли архивов, лишние страницы, часть SEO-настроек и базовую техническую гигиену — лучше решать это как набор проверяемых правил, а не одной «галочкой» в плагине. Тогда проще понять, что именно изменилось и где искать проблему, если что-то пошло не так.