wpbook.ru wordpress WP Book

Как настроить noindex для страниц вложений WordPress без потери полезных изображений

Страницы вложений в 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.

Проверка результата после внедрения

После изменения не ограничивайтесь просмотром страницы в браузере. Нужно проверить именно то, что увидит поисковый робот.

  1. Откройте URL вложения в режиме инкогнито.
  2. Посмотрите исходный код страницы и найдите meta robots.
  3. Убедитесь, что там есть noindex.
  4. Проверьте canonical: он должен вести на родительскую запись или на другой осмысленный URL, если это предусмотрено вашей логикой.
  5. Прогоните страницу через инструмент проверки 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 поменяет логику вывода мета-тегов.

×
до 3225₽

Продавай темы и плагины WordPress!

Лови с каждой продажи

Начать ⋙