Attachment-страницы в WordPress — частая причина лишних URL в индексе. Сам файл изображения или документа нужен на сайте, а вот отдельная страница вложения часто не несёт пользы: на ней мало контента, она дублирует медиа и может тянуть на себя краулинговый бюджет. Если сайт давно работает, такие страницы обычно уже успевают накопиться в поиске.
Задача здесь не в том, чтобы «удалить картинки», а в том, чтобы убрать из индекса именно страницы вложений, сохранив сами файлы и нормальную работу медиа в теме и редакторе.
Как понять, что проблема именно в attachment-страницах
Сначала проверьте, действительно ли WordPress отдаёт отдельные страницы вложений. Это видно по URL вида /attachment/, ?attachment_id= или по страницам медиафайлов, которые открываются как обычные посты с заголовком и почти пустым содержимым.
Признаки в поиске и в админке
- В
site:вашдомен.ruнаходятся страницы изображений или файлов, а не только записи и страницы. - В Google Search Console в отчёте по страницам есть URL вложений с низким качеством контента.
- В медиатеке при клике по файлу открывается отдельная страница вложения, а не сам файл.
- На сайте есть старые темы или плагины, которые автоматически выводят ссылки на attachment-страницы.
Если у вас уже настроены канонические URL и sitemap, это не всегда спасает: attachment-страница всё равно может попасть в обходные ссылки, внутренний поиск или старые внешние ссылки.
Что лучше сделать: редирект, noindex или отключение attachment-страниц
Для большинства сайтов самый практичный вариант — не индексировать attachment-страницы и при необходимости редиректить их на сам файл или родительскую запись. Выбор зависит от того, используются ли эти страницы как отдельные посадочные.
| Подход | Когда подходит | Минус |
|---|---|---|
| Редирект attachment на файл или родительскую запись | Если страницы вложений не нужны вообще | Нужно аккуратно обработать старые URL |
noindex для attachment | Если хотите оставить URL доступным, но убрать из поиска | Страница остаётся в обходе робота |
| Отключение attachment-страниц на уровне темы/плагина | Если сайт не использует их нигде | Требует проверки шаблонов и медиа-ссылок |
Если нужен быстрый и безопасный вариант, обычно достаточно редиректа и запрета индексации. Но сначала проверьте, не завязана ли тема на attachment-шаблон.
Пошаговое решение через код
Ниже вариант, который можно добавить в functions.php дочерней темы или в небольшой mu-plugin. Он делает две вещи: отправляет attachment-страницы на редирект и ставит для них noindex в заголовках.
<?php
add_action('template_redirect', function () {
if (is_attachment()) {
$parent_id = wp_get_post_parent_id(get_the_ID());
if ($parent_id) {
wp_safe_redirect(get_permalink($parent_id), 301);
exit;
}
$file_url = wp_get_attachment_url(get_the_ID());
if ($file_url) {
wp_safe_redirect($file_url, 301);
exit;
}
wp_safe_redirect(home_url('/'), 301);
exit;
}
});
add_filter('wp_robots', function ($robots) {
if (is_attachment()) {
$robots['noindex'] = true;
$robots['nofollow'] = true;
}
return $robots;
});Логика простая: если у вложения есть родительская запись, отправляем на неё. Если родителя нет, ведём на сам файл. Если и его не удалось получить, безопасно уводим на главную. Это лучше, чем оставлять пустую attachment-страницу в индексе.
Когда редирект на файл не подходит
Если у вас документы доступны только авторизованным пользователям или файл лежит в защищённом каталоге, редирект на прямой URL может быть нежелателен. В таком случае оставьте URL доступным, но закройте его от индексации и проверьте, не выдаёт ли сервер публичный доступ к самому файлу.
Если нужен вариант без кода
На проектах, где не хочется править тему, можно использовать SEO-плагин или плагин для технической чистки. Важно не просто поставить галочку, а проверить, что он реально меняет поведение attachment-страниц, а не только мета-теги.
Если вы используете Clearfy Pro, имеет смысл смотреть в сторону настроек, которые убирают технический мусор и дубли. Для сайтов с большим количеством медиа это часто проще, чем вручную поддерживать отдельные правила в теме. Но даже в этом случае проверьте итоговый HTML и ответ сервера.
Как проверить, что решение сработало
После внедрения не ограничивайтесь открытием страницы в браузере. Нужно проверить и редирект, и индексацию, и заголовки ответа.
- Откройте старый URL attachment-страницы в режиме инкогнито.
- Убедитесь, что он отдаёт
301, а не200. - Проверьте конечный URL: он должен вести на родительскую запись или на сам файл, если это задумано.
- Посмотрите исходный код страницы: для attachment не должно быть индексируемого шаблона с пустым контентом.
- В Google Search Console отправьте проверку URL и убедитесь, что статус меняется на перенаправленный или исключённый.
Для быстрой проверки на сервере удобно использовать команду:
curl -I https://example.com/attachment/your-image/В ответе должен быть 301 Moved Permanently и заголовок Location с новым адресом.
Частые ошибки и как их исправить
Редирект сделан слишком поздно
Если код подключён после вывода шаблона, WordPress уже начал отправлять HTML, и редирект может не сработать. Решение — использовать template_redirect, а не пытаться редиректить внутри шаблона записи.
Путают attachment-страницу и сам файл
Иногда отключают доступ к медиафайлам целиком, а потом ломают изображения в контенте. Закрывать нужно именно страницу вложения, а не URL файла в /uploads/.
Ставят только noindex и считают задачу решённой
Это уменьшает риск индексации, но не убирает сам URL из обхода. Если attachment-страниц много, лучше сочетать noindex с редиректом.
Редиректят всё на главную
Такой вариант выглядит безопасным, но часто ухудшает UX и создаёт нерелевантные переходы. Лучше вести на родительскую запись или на сам файл, если это оправдано.
Не проверяют старые ссылки из темы и контента
Если в статьях вручную вставлялись ссылки на attachment-страницы, они продолжат вести на редирект. Это не критично, но лучше заменить такие ссылки на нормальные URL в базе или через редактор.
Практические советы по безопасности и производительности
Чем меньше лишних страниц отдаёт WordPress, тем проще поисковым роботам и тем меньше мусора в логах. Но не стоит превращать это в массовую чистку без проверки.
- Добавляйте код в дочернюю тему или mu-plugin, а не в основную тему, если она обновляется.
- После правок очистите кэш страницы и объектный кэш, если он есть.
- Проверьте, не генерирует ли плагин галереи собственные attachment-ссылки.
- Если сайт многоязычный, убедитесь, что редирект не ломает локализованные URL медиа.
Если на сайте уже есть технический хаос с дублями, архивами и служебными страницами, имеет смысл сначала привести в порядок базовую SEO-гигиену, а потом отдельно заняться медиа. Иначе легко закрыть не то, что нужно, и потом долго искать, почему пропали нужные URL.
Что должно получиться в итоге
После настройки attachment-страницы не должны оставаться самостоятельными страницами в индексе. При открытии старого URL пользователь и робот должны попадать на полезный адрес, а сами файлы изображений и документов должны продолжать открываться без ошибок.
Если после внедрения в Search Console ещё видны старые attachment-URL, это нормально: поисковику нужно время на переобход. Важнее, чтобы новые запросы и проверки уже показывали редирект или исключение из индекса.