Если в индексе поисковика появились страницы вложений WordPress, это обычно не приносит пользы ни сайту, ни SEO. Такие URL часто содержат почти пустую страницу с одним изображением, дублируют основной контент медиафайла и создают лишние адреса, которые приходится обходить и пользователю, и поисковому роботу. В большинстве проектов attachment-страницы проще отключить, а все такие URL перенаправить на сам файл изображения.
Задача решается без удаления самих картинок из медиатеки. Важно именно убрать публичную страницу вложения, но сохранить доступ к файлу по прямой ссылке. Ниже — рабочие способы, которые подходят для обычного WordPress-сайта, и что проверить после настройки.
Что именно нужно отключать
В WordPress у медиафайлов есть два разных сущности, которые часто путают:
- страница вложения — отдельный URL вида
/attachment/или похожий, где WordPress показывает страницу с медиафайлом; - сам файл изображения — реальный URL файла в
/wp-content/uploads/или в другом хранилище, если используется CDN или offload-плагин.
Отключать нужно именно attachment-страницы. Файлы изображений трогать не надо: они должны открываться напрямую, а не через промежуточную страницу.
Если у вас уже есть трафик на такие URL, лучше настроить редирект, а не просто закрыть их от индексации. Тогда поисковики быстрее поймут, что старый адрес больше не нужен, а пользователь не увидит 404.
Самый безопасный вариант: редирект attachment-страниц на файл изображения
Для большинства сайтов достаточно добавить небольшой код в файл functions.php дочерней темы или в собственный мини-плагин. Я рекомендую именно мини-плагин, если вы не хотите зависеть от темы: при смене дизайна правило не исчезнет.
Перед изменениями сделайте резервную копию файлов сайта. Если в коде будет ошибка, можно легко получить белый экран или сломать фронтенд.
Ниже пример, который перенаправляет attachment-страницу на URL прикреплённого файла, если он есть. Если файла нет, WordPress отдаст обычную логику, и это лучше, чем ломать сайт принудительным редиректом на главную.
add_action( 'template_redirect', function () {
if ( ! is_attachment() ) {
return;
}
$image_url = wp_get_attachment_url( get_queried_object_id() );
if ( $image_url ) {
wp_redirect( $image_url, 301 );
exit;
}
} );Что делает этот код:
is_attachment()проверяет, что открыт именно attachment-URL;wp_get_attachment_url()получает прямой адрес файла;wp_redirect(..., 301)отправляет постоянный редирект.
Если у вас на attachment-страницах бывают не только изображения, но и PDF, архивы или другие файлы, этот вариант тоже сработает: он ведёт на сам прикреплённый файл, а не на HTML-страницу вложения.
Когда лучше не писать код вручную
Если вы не хотите править тему, удобнее использовать плагин для редиректов или SEO-настроек, который умеет работать с attachment-страницами. Это практичнее для владельца сайта, который не поддерживает собственный код.
Но здесь есть важный нюанс: не каждый SEO-плагин одинаково обрабатывает медиа-архивы. Одни просто ставят noindex, другие умеют перенаправлять attachment-страницы, третьи вообще не трогают этот тип URL. Поэтому перед включением опции стоит проверить, что именно делает плагин: редирект, noindex или только изменение мета-тегов.
Если нужна именно очистка дублей и технического мусора, а не только скрытие от индекса, редирект надёжнее. Для поисковика это однозначный сигнал: страница перемещена, а не просто временно скрыта.
Что делать, если attachment-страницы уже попали в индекс
Если такие URL уже индексируются, одного редиректа обычно достаточно, но эффект не мгновенный. Поисковик должен заново обойти старые адреса и увидеть ответ 301.
После настройки проверьте несколько вещей:
- Откройте старый URL вложения в браузере.
- Убедитесь, что он сразу ведёт на прямой адрес изображения.
- Проверьте код ответа: должен быть
301, а не200и не302. - Убедитесь, что конечный URL открывает сам файл изображения, а не HTML-страницу.
Если у вас подключена Search Console, можно отправить старые URL на повторную проверку после того, как редирект уже работает. Но массово удалять их из индекса вручную обычно не нужно: корректный 301 решает задачу естественным образом.
Как не сломать доступ к изображениям
Самая частая ошибка — попытка полностью запретить все URL, связанные с медиафайлами. Так делать не стоит. Если закрыть директорию загрузок или поставить слишком жёсткое правило, можно потерять доступ к картинкам на страницах сайта, в RSS, в письмах и в разметке Open Graph.
Нужен именно такой результат:
- attachment-страница больше не открывается как отдельная HTML-страница;
- прямой URL файла изображения продолжает работать;
- внутренние ссылки и изображения в контенте не ломаются;
- старые адреса получают 301 на файл, а не 404.
Если у вас изображения отдаются через CDN или внешний storage, редирект всё равно должен вести на актуальный публичный URL файла. В этом случае лучше проверить, что функция wp_get_attachment_url() возвращает именно тот адрес, который должен открываться у посетителя.
Когда имеет смысл ограничиться noindex
Иногда attachment-страницы не мешают и не дают заметного мусора в индексе. Например, если медиафайлы используются как отдельные посадочные страницы и на них есть осмысленный текст, заголовок и описание. В таком сценарии отключать их полностью не обязательно.
Но для типичного корпоративного сайта, блога или каталога товаров attachment-страницы почти всегда бесполезны. Они создают дубли, не несут самостоятельной ценности и только раздувают количество адресов. В таких проектах редирект на файл обычно лучше, чем простое скрытие от индексации.
Проверка после внедрения
После изменения не ограничивайтесь визуальной проверкой в браузере. Нужен именно технический контроль:
- старый attachment-URL должен отдавать
301; - конечный адрес должен быть прямым URL файла;
- в цепочке не должно быть лишних промежуточных редиректов;
- изображение должно открываться без авторизации и без ошибки 403;
- внутренние страницы сайта не должны ссылаться на attachment-URL, если вы можете это исправить в контенте.
Если после настройки старые URL всё ещё отдают 200, значит правило не сработало или его перехватывает другой плагин. В таком случае проверьте, не включён ли отдельный модуль редиректов в SEO-плагине, и не конфликтует ли он с вашим кодом.
Для большинства сайтов рабочая схема простая: attachment-страницы перенаправляются на файл изображения через 301, а сами медиафайлы остаются доступными как и раньше. Это убирает дубли, не ломает картинки и не требует сложной поддержки в будущем.