wpstuff.ru wordpress wpstuff.ru

Как закрыть attachment-страницы в WordPress от индексации без потери медиа и SEO

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, это нормально: поисковику нужно время на переобход. Важнее, чтобы новые запросы и проверки уже показывали редирект или исключение из индекса.

×
Quizle
Получите больше лидов и увеличьте продажи!
-15%

на премиум плагин WordPress

Получить скидку ⋙