Если в поиске всплывают отдельные страницы изображений и других медиафайлов вместо нормальных посадочных страниц, почти всегда виноваты архивы вложений WordPress. По умолчанию у каждого загруженного файла может быть собственная страница attachment, и именно она иногда попадает в индекс, хотя для сайта она не несёт пользы.
Решение зависит от того, что вы хотите получить: полностью убрать такие страницы с сайта, оставить их для внутренней логики WordPress или просто закрыть от индексации. Для большинства сайтов с контентом и SEO-посадочными страницами правильный вариант — отключить архивы вложений или сделать редирект с них на сам файл или родительскую запись.
Что такое архивы вложений и почему они мешают в поиске
Когда вы загружаете изображение, PDF или другой файл в медиатеку, WordPress создаёт для него отдельную запись типа attachment. У этой записи есть собственный URL, а на многих темах — ещё и отдельный шаблон страницы. Если поисковик находит такие URL, он может показывать их в выдаче как самостоятельные страницы.
Проблема в том, что у attachment-страниц обычно почти нет полезного текста, навигации и смысла для пользователя. В итоге поисковая система индексирует мусорные страницы, а не те материалы, которые вы действительно хотите продвигать. На небольших сайтах это выглядит как несколько лишних URL, а на больших — как заметный слой дублей и слабых страниц.
Особенно часто это случается, если:
- в теме включены отдельные шаблоны для медиафайлов;
- изображения вставляются в записи с переходом на attachment-страницу;
- сайт давно работает и поисковики уже успели собрать такие URL;
- нет редиректа или запрета на индексацию для attachment-страниц.
Сначала выберите способ: отключить, закрыть или перенаправить
Технически есть три рабочих подхода. Они не одинаковы, и выбирать стоит по задаче.
| Способ | Что делает | Когда подходит |
|---|---|---|
| Отключить архивы вложений | Убрать отдельные страницы attachment из публичного доступа | Если они не нужны вообще и вы хотите убрать их как класс |
| Закрыть от индексации | Оставить страницы доступными, но не показывать их в поиске | Если на них по какой-то причине есть внутренние ссылки или старые URL уже в индексе |
| Сделать редирект | Перенаправить пользователя и робота на файл или родительскую запись | Если нужно сохранить старые URL без пустых страниц в выдаче |
Если задача именно в том, чтобы убрать мусор из поиска, самый практичный вариант — редирект или отключение архивов вложений. Закрытие от индексации тоже помогает, но не всегда быстро убирает URL из выдачи, особенно если они уже давно проиндексированы.
Как отключить архивы вложений в WordPress без кода
Самый безопасный путь для владельца сайта — использовать SEO-плагин или плагин для технической очистки, который умеет управлять attachment-страницами. В этом случае вы не трогаете тему и не правите ядро WordPress.
Если у вас уже стоит плагин с функциями SEO-очистки, проверьте, есть ли в нём опция для архивов вложений или редиректа attachment-страниц. Например, в Clearfy Pro есть инструменты для отключения дублей и технической чистки сайта, включая работу с лишними страницами, которые не нужны в индексе. Это удобнее, чем вручную править шаблоны, если вы не хотите лезть в код.
Общий порядок действий в таких плагинах обычно такой:
- Откройте настройки SEO или очистки сайта.
- Найдите раздел, связанный с медиафайлами, вложениями или attachment-страницами.
- Включите редирект с attachment-страниц на сам файл или на родительскую запись, если такая опция есть.
- Сохраните настройки и проверьте несколько URL медиафайлов вручную.
Если плагин предлагает только закрыть архивы от индексации, это тоже лучше, чем ничего, но для уже существующих страниц в поиске редирект обычно полезнее.
Как отключить архивы вложений кодом
Если вы предпочитаете не ставить лишние плагины, можно отключить архивы вложений через небольшой код. Этот вариант подходит, когда вы уверены, что attachment-страницы не нужны ни пользователям, ни поисковикам.
Перед изменениями сделайте резервную копию сайта или хотя бы файла functions.php дочерней темы. Если вставить код в активную тему с ошибкой, можно получить белый экран или потерять доступ к админке.
Добавьте в functions.php дочерней темы или в собственный мини-плагин такой код:
add_action( 'template_redirect', function () {
if ( is_attachment() ) {
$parent = wp_get_post_parent_id( get_queried_object_id() );
if ( $parent ) {
wp_redirect( get_permalink( $parent ), 301 );
} else {
wp_redirect( home_url( '/' ), 301 );
}
exit;
}
} );Этот вариант не удаляет сами файлы из медиатеки. Он только перенаправляет запросы к attachment-страницам. Если у вложения есть родительская запись, пользователь попадёт на неё. Если родителя нет, редирект уйдёт на главную.
Что здесь важно:
is_attachment()срабатывает именно на страницах вложений;wp_get_post_parent_id()пытается найти родительскую запись;wp_redirect()делает постоянный редирект с кодом 301, который обычно подходит для SEO;exit;нужен, чтобы WordPress не продолжал отрисовку страницы после редиректа.
Если вам не нужен редирект, а нужно именно убрать attachment-страницы из шаблонов темы, это уже другой сценарий. Тогда обычно правят тему, чтобы она не выводила ссылку на attachment-страницу при вставке изображения. Но для задачи из поиска — убрать мусорные URL — редирект решает проблему быстрее и надёжнее.
Как закрыть архивы вложений от индексации
Иногда attachment-страницы лучше не отключать сразу, а сначала закрыть от индексации. Это полезно, если URL уже есть в поиске и вы хотите мягко вывести их из выдачи, не ломая внутренние ссылки.
Есть два практических пути:
- добавить мета-тег
noindexдля attachment-страниц через SEO-плагин; - отдать для них HTTP-заголовок или правила, которые запрещают индексацию на уровне сервера или плагина.
Для большинства сайтов проще и безопаснее использовать SEO-плагин, если он умеет управлять индексированием архивов вложений. Но если плагин не даёт такой настройки, редирект обычно предпочтительнее, чем попытка вручную закрывать всё через robots.txt. Запрет в robots.txt не удаляет URL из индекса, если поисковик уже знает о странице, и не решает проблему дублирующего контента так хорошо, как редирект.
Отдельно стоит помнить: если вы просто закроете attachment-страницы в robots.txt, они могут продолжать всплывать в выдаче как URL без содержимого. Для этой задачи это слабое решение. Лучше либо редирект, либо noindex с последующей переобходкой страниц поисковиком.
Как проверить, что всё работает
После настройки не ограничивайтесь тем, что страница «кажется» отключённой. Проверьте несколько реальных URL вложений.
- Откройте в браузере URL медиафайла или attachment-страницы.
- Убедитесь, что происходит редирект на нужную страницу или главную.
- Если вы ставили
noindex, посмотрите исходный код страницы и найдите мета-тег с запретом индексации. - Проверьте ответ сервера через инструменты разработчика или онлайн-проверку заголовков, если настраивали редирект.
Если у вас есть доступ к Google Search Console, отправьте несколько старых URL на повторную проверку. Это не мгновенно убирает их из выдачи, но помогает ускорить переобход и обновление статуса.
Что обычно ломают при отключении архивов вложений
Самая частая ошибка — путать attachment-страницу и сам файл. Если вы делаете редирект, он должен вести именно со страницы вложения, а не с URL файла в медиатеке. Файл изображения должен оставаться доступным, иначе могут сломаться картинки в контенте, CSS-фоны и другие элементы сайта.
Ещё одна типичная проблема — редирект на главную для всех вложений без разбора. Это допустимо, но не всегда удобно. Если у вложения есть родительская запись, логичнее отправлять пользователя туда. Так вы сохраняете смысл перехода и не создаёте лишний шаг для посетителя.
И наконец, не стоит рассчитывать, что удаление страницы из темы автоматически уберёт её из индекса. Если URL уже был в поиске, поисковику нужно время, чтобы переобойти страницу и увидеть редирект или noindex. Поэтому после настройки важно не только проверить сайт, но и дождаться обновления индекса.
Если у вас задача именно в сокращении технического мусора на WordPress-сайте, архивы вложений — один из первых кандидатов на отключение. Это простой источник дублей и бесполезных страниц, который обычно можно убрать без риска для контента, если не трогать сами файлы и заранее проверить редиректы.