wpcalc.ru wordpress WPCalc

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

Если в WordPress у изображений и других файлов открываются отдельные страницы вложений, это часто создаёт лишние URL без пользы: пустые страницы, дубли контента и лишние переходы из поиска. В типичном блоге такие страницы не нужны, а вот сами медиафайлы и их адреса лучше сохранить и направлять на полезную страницу — запись, где файл используется, или на сам файл, если это удобнее для вашей схемы сайта.

Сделать это можно двумя способами: отключить архивы вложений на уровне WordPress и настроить редирект старых URL. Если у вас уже есть индексируемые страницы вложений, просто выключить их недостаточно: поисковики и внешние ссылки продолжат вести на старые адреса, поэтому перенаправление здесь обязательно.

Что именно нужно отключить

В WordPress у каждого медиафайла может быть отдельная страница вложения. Она отличается от прямого URL файла в медиатеке. Например, изображение может открываться как обычный файл по адресу вроде /wp-content/uploads/2026/01/photo.jpg, а страница вложения — как отдельный URL на сайте, где WordPress выводит шаблон attachment.

Проблема возникает не из-за самих файлов, а из-за этих страниц. Они часто пустые, почти не содержат уникального текста и не дают пользователю ничего полезного. Если на сайте много изображений, WordPress может создать много таких страниц, и часть из них попадёт в индекс.

Нужно различать две задачи:

  • отключить показ страниц вложений как отдельных страниц сайта;
  • сохранить рабочие ссылки на медиафайлы и не сломать старые URL.

Самый надёжный вариант: редирект с attachment-страниц на запись или файл

Если вам нужно именно убрать архивы вложений, но не потерять старые ссылки, самый практичный путь — сделать 301-редирект. Для WordPress это безопаснее, чем просто закрывать страницы от индексации, потому что пользователь и поисковый робот сразу попадут на нужный адрес.

Какой вариант выбрать:

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

Для большинства сайтов с контентом логичнее перенаправлять attachment-страницы на родительскую запись. Если у вложения нет родителя, тогда можно отправлять на сам файл или на главную страницу, но это уже зависит от структуры сайта.

Вариант через functions.php или мини-плагин

Если вы готовы добавить небольшой код, используйте редирект на уровне WordPress. Лучше вставлять его не в тему, а в мини-плагин или в дочернюю тему, чтобы не потерять настройку при обновлении.

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

Код ниже перенаправляет страницы вложений на родительскую запись, если она есть. Если родителя нет, пользователь попадёт на сам файл вложения.

add_action( 'template_redirect', function () {
    if ( ! is_attachment() ) {
        return;
    }

    $parent_id = wp_get_post_parent_id( get_queried_object_id() );

    if ( $parent_id ) {
        wp_safe_redirect( get_permalink( $parent_id ), 301 );
        exit;
    }

    $file_url = wp_get_attachment_url( get_queried_object_id() );

    if ( $file_url ) {
        wp_safe_redirect( $file_url, 301 );
        exit;
    }

    wp_safe_redirect( home_url( '/' ), 301 );
    exit;
} );

Что здесь важно:

  • is_attachment() срабатывает только на страницах вложений;
  • wp_get_post_parent_id() берёт ID родительской записи;
  • wp_safe_redirect() делает безопасный редирект с кодом 301;
  • exit нужен, чтобы WordPress не продолжал рендерить старую страницу.

Если у вас на сайте вложения должны вести не на запись, а всегда на файл, можно упростить логику и редиректить все attachment-страницы сразу на wp_get_attachment_url(). Но для контентных сайтов это обычно хуже: пользователь теряет контекст, а полезная запись остаётся в стороне.

Что делать, если у вложения нет родительской записи

У части файлов родителя может не быть. Это нормально, если медиафайл загружали через библиотеку, а не из конкретной записи. В таком случае есть три рабочих сценария:

  • отправлять на сам файл;
  • отправлять на страницу медиа-библиотеки, если она нужна в админке, но не для фронтенда;
  • отправлять на главную или на релевантную категорию, если файл не должен открываться отдельно.

На практике чаще всего достаточно варианта с файлом. Он минимально вмешивается в структуру сайта и не создаёт лишних 404.

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

Если не хочется править код, используйте плагин, который умеет управлять дублями и редиректами. Для этой задачи подходит Clearfy Pro: он помогает убрать лишние страницы и настроить поведение сайта без ручного редактирования шаблонов. Это удобнее, если вы не хотите поддерживать собственный код и предпочитаете настраивать всё из админки.

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

Как проверить, что всё работает правильно

После настройки откройте несколько старых URL вложений в браузере. Проверка должна показать один из двух вариантов:

  • страница вложения сразу перенаправляет на запись или файл;
  • прямой URL вложения больше не открывается как отдельная страница сайта.

Проверьте не только новые вложения, но и старые, которые уже могли попасть в индекс. Если вы используете SEO-плагин или карту сайта, убедитесь, что страницы attachment больше не попадают в sitemap и не доступны как отдельные страницы.

Полезно также посмотреть HTTP-ответ. Для старого адреса должен быть код 301, а не 200. Если вместо этого вы видите цепочку редиректов, лучше упростить схему: например, сразу отправлять вложение на конечную страницу, а не через промежуточный URL.

Когда лучше не отключать attachment-страницы полностью

Есть сайты, где отдельные страницы вложений действительно используются. Это редкий случай, но он встречается у фотогалерей, портфолио и некоторых каталогов, где attachment-страница оформлена как полноценная карточка изображения. Если на таких страницах есть уникальный текст, навигация и внутренняя логика, отключать их бездумно не стоит.

Если же страница вложения не несёт ценности, а только дублирует файл или запись, её лучше убрать. Для обычного корпоративного сайта, блога или интернет-магазина отдельные attachment-страницы почти всегда лишние.

Коротко о рабочей схеме

Практически всегда задача решается так: отключаете отдельные страницы вложений, настраиваете 301-редирект и проверяете, что старые URL ведут на запись или на сам файл. Так вы убираете дубли, не ломаете внешние ссылки и сохраняете полезные адреса медиафайлов.

Если сайт небольшой и вы не хотите поддерживать код, проще использовать плагин с настройками редиректов. Если нужен полный контроль, добавьте редирект в дочернюю тему или мини-плагин и проверьте результат на нескольких реальных URL из медиатеки.

×
Halloween Game

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

Играть