Страницы вложений в WordPress часто индексируются сами по себе: у изображения появляется отдельный URL, а поисковик видит его как самостоятельную страницу с тонким или пустым контентом. На небольшом сайте это выглядит безобидно, но на практике такие URL создают дубли, размывают релевантность и засоряют отчёты в Search Console.
Ниже — рабочий сценарий: как найти именно проблему с attachment-страницами, закрыть их от индексации и не сломать при этом сами изображения, которые используются в записи, галерее или теме.
Когда проблема действительно в страницах вложений
Не стоит закрывать всё подряд только потому, что в индексе есть URL вида /image-name/ или ?attachment_id=123. Сначала проверьте, что это именно страницы вложений, а не полезные медиа-страницы, которые вы осознанно используете как посадочные.
Что смотреть в первую очередь
- отчёт Страницы в Google Search Console: URL с низким или нулевым содержанием;
- исходный код страницы вложения: есть ли там только изображение и минимум текста;
- тип шаблона в теме: не используется ли отдельный
attachment.phpс полезным контентом; - поведение медиатеки: открывается ли вложение по отдельному адресу, а не только как файл.
Если на странице вложения нет уникального текста, заголовка, описания и смысла для пользователя, её почти всегда лучше исключить из индекса.
Диагностика: как понять, что вложения уже индексируются
Самый простой способ — открыть несколько URL вложений вручную и посмотреть, как они отдаются поисковику. Если в HTML есть обычный заголовок страницы, canonical на саму attachment-страницу и нет запрета на индексацию, поисковик может добавить её в индекс.
Проверьте:
<meta name="robots" content="index,follow">или отсутствие meta robots вообще;- canonical, который указывает на саму страницу вложения;
- наличие внутренних ссылок на attachment URL из записей или картинок;
- редиректов с вложения на файл изображения или на родительскую запись.
Если у вас установлен SEO-плагин, он может уже менять поведение attachment-страниц. Но полагаться на это вслепую не стоит: настройки у разных плагинов отличаются, а тема может переопределять шаблон.
Что лучше: noindex, редирект или отключение attachment-страниц
Для большинства сайтов есть три варианта. Выбор зависит от того, используются ли страницы вложений как отдельные страницы или нет.
| Подход | Когда подходит | Компромисс |
|---|---|---|
| noindex, follow | Страницы вложений не нужны в поиске, но файлы изображений должны оставаться доступными | URL остаётся доступным по прямой ссылке, но не должен попадать в индекс |
| 301 на родительскую запись | Вложения не используются как страницы вообще | Нужно аккуратно обработать случаи, когда у вложения нет родителя |
| Отключение attachment-архивов в SEO-плагине | Если плагин умеет управлять медиа-страницами | Зависит от конкретного плагина и его логики canonical/redirect |
Если нужен безопасный и предсказуемый вариант без лишней магии, обычно достаточно noindex, follow для attachment-страниц.
Пошаговое решение через код
Ниже вариант для functions.php дочерней темы или собственного мини-плагина. Он добавляет noindex, follow только на страницы вложений и не трогает сами файлы изображений в медиатеке.
<?php
add_filter( 'wp_robots', function( array $robots ) {
if ( is_attachment() ) {
$robots['noindex'] = true;
$robots['follow'] = true;
}
return $robots;
} );
Этот способ хорош тем, что использует штатный фильтр WordPress wp_robots. Он не ломает разметку темы и работает на уровне вывода мета-тегов.
Если нужно ещё и убрать canonical на саму attachment-страницу
Иногда SEO-плагин или тема оставляют canonical на вложение, и поисковик продолжает считать URL самостоятельной страницей. Тогда можно дополнительно направить canonical на родительскую запись, если она есть.
<?php
add_filter( 'get_canonical_url', function( $canonical, $post ) {
if ( ! $post instanceof WP_Post ) {
return $canonical;
}
if ( 'attachment' !== $post->post_type ) {
return $canonical;
}
if ( ! empty( $post->post_parent ) ) {
return get_permalink( $post->post_parent );
}
return home_url( '/' );
}, 10, 2 );
Здесь важно не переусердствовать: если у вложения нет родителя, не стоит отправлять его на случайную страницу. Лучше вернуть главную или оставить canonical как есть, если у вас есть отдельная логика в SEO-плагине.
Если проще закрыть вложения через SEO-плагин
Во многих проектах attachment-страницы удобнее отключить в интерфейсе SEO-плагина, если он это поддерживает. Это снижает риск конфликтов с темой и не требует поддержки собственного кода.
Но перед включением такой опции проверьте, что плагин не делает скрытый редирект всех медиа-URL на главную без разбора. Для сайта с большим количеством изображений это может быть лишним и иногда мешает аналитике или отладке.
Если вы используете Clearfy Pro, сначала проверьте, какие именно настройки для дублей и медиа-страниц включены в текущей конфигурации: в подобных задачах важна не абстрактная «очистка», а конкретное поведение URL.
Проверка результата после внедрения
После изменения не ограничивайтесь просмотром страницы в браузере. Нужно проверить именно то, что увидит поисковый робот.
- Откройте URL вложения в режиме инкогнито.
- Посмотрите исходный код страницы и найдите meta robots.
- Убедитесь, что там есть
noindex. - Проверьте canonical: он должен вести на родительскую запись или на другой осмысленный URL, если это предусмотрено вашей логикой.
- Прогоните страницу через инструмент проверки URL в Search Console.
Если у вас есть доступ к серверным логам, полезно посмотреть, как поисковые боты ходят по attachment-URL после изменения. Это помогает понять, не остались ли старые ссылки в sitemap или внутренних блоках.
Мини-чек-лист перед публикацией
- страницы вложений не нужны как посадочные;
- на attachment-страницах стоит
noindex, follow; - canonical не указывает на саму пустую страницу без необходимости;
- изображения по прямым ссылкам продолжают открываться;
- в sitemap нет лишних медиа-страниц;
- внутренние ссылки не ведут массово на attachment URL.
Частые ошибки и как их исправить
Ошибка 1. Закрыли от индексации сами файлы изображений
Это происходит, когда путают attachment-страницу и файл в /uploads/. Не нужно ставить запрет на весь каталог медиа. Закрывать надо именно HTML-страницу вложения, а не сам JPG, PNG или WebP-файл.
Ошибка 2. Сделали 301 на главную для всех вложений
Такой редирект выглядит просто, но часто ухудшает UX и мешает отладке. Если вложение связано с конкретной записью, логичнее вести на родительский пост. Если родителя нет, лучше сначала решить, нужен ли вообще редирект, а не отправлять всё на главную.
Ошибка 3. Плагин и код дублируют друг друга
Если SEO-плагин уже добавляет noindex или редирект, а вы сверху вешаете ещё один фильтр, можно получить конфликт canonical, лишние редиректы или неожиданный meta robots. Всегда проверяйте итоговый HTML, а не только настройки в админке.
Ошибка 4. В теме есть собственный шаблон attachment.php
Иногда тема выводит на странице вложения полезный контент: описание, галерею, ссылки на похожие материалы. В таком случае не стоит слепо закрывать всё от индексации. Сначала оцените, есть ли у этих страниц самостоятельная ценность.
Что ещё стоит проверить после очистки индекса
Когда attachment-страницы закрыты, полезно пройтись по соседним техническим дублям: архивам автора, тегам без контента, страницам пагинации и служебным URL. В WordPress такие проблемы обычно идут пакетом, и закрытие только одной зоны даёт ограниченный эффект.
Если задача стоит шире, чем просто медиа-страницы, имеет смысл проверить sitemap, robots.txt и внутреннюю перелинковку. Часто именно они продолжают подбрасывать поисковику старые URL, даже когда на самих страницах уже стоит noindex.
Для сайтов, где контент активно публикуется и редактируется, лучше делать такие изменения через дочернюю тему или отдельный мини-плагин, а не править ядро темы. Так проще откатить правку, если шаблон обновится или плагин SEO поменяет логику вывода мета-тегов.