wphow.ru wordpress WPHow

Как отключить архивы вложений в WordPress и перенаправить их на файл изображения

Если в индексе поисковика появились страницы вложений 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.

После настройки проверьте несколько вещей:

  1. Откройте старый URL вложения в браузере.
  2. Убедитесь, что он сразу ведёт на прямой адрес изображения.
  3. Проверьте код ответа: должен быть 301, а не 200 и не 302.
  4. Убедитесь, что конечный 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, а сами медиафайлы остаются доступными как и раньше. Это убирает дубли, не ломает картинки и не требует сложной поддержки в будущем.

×
Halloween Game

Сыграй в игру, спаси сайт! Забери приз

Играть