Архивы вложений в WordPress часто остаются незамеченными до тех пор, пока в индексе не появляются отдельные страницы медиафайлов с тонким контентом, пустыми шаблонами и дублирующими заголовками. На небольшом сайте это выглядит как мелочь, но для SEO и общей чистоты структуры такие URL обычно не нужны. Проблема в том, что простое удаление медиафайла из библиотеки не отключает сам архив attachment-страницы.
Ниже разберём, как понять, что именно у вас индексируется, чем отличается отключение архивов от редиректа, и какой способ выбрать, если на сайте уже есть трафик на медиа-URL.
Когда архивы attachment становятся проблемой
В WordPress у каждого вложения есть собственная страница. Если тема или плагин не переопределяют вывод, такая страница может содержать только изображение, заголовок и минимум текста. Для поисковика это слабая страница, а для сайта — потенциальный дубль, особенно если у изображения есть несколько вариантов URL или если медиафайл используется в разных записях.
Типичные симптомы:
- в Google Search Console появляются URL вида
/attachment/...или страницы вложений с низким качеством; - в выдаче видны страницы изображений вместо основного материала;
- внутренние ссылки ведут не на статью, а на attachment-страницу;
- после миграции или импорта медиа в индексе остаются старые URL вложений.
Что именно нужно проверить в первую очередь
Сначала убедитесь, что проблема действительно в архивах вложений, а не в самих файлах медиа. Для этого откройте несколько URL вложений вручную и посмотрите, есть ли там отдельная HTML-страница, а не просто файл изображения. Если страница открывается как обычный шаблон WordPress, значит архивы активны и их можно отключать на уровне сайта.
Полезно также проверить, не создаёт ли тема собственный шаблон attachment.php. В таком случае поведение может отличаться от стандартного WordPress, и редирект или отключение архива нужно тестировать отдельно.
Как отключить архивы attachment: рабочие варианты
Есть три практических подхода: закрыть архивы через код, сделать 301-редирект на родительскую запись или на сам файл, либо использовать SEO-плагин, если он уже есть в проекте. Выбор зависит от того, есть ли у вложений внешний трафик и насколько важно сохранить старые URL.
| Подход | Когда подходит | Плюсы | Минусы |
|---|---|---|---|
| Код в теме или mu-plugin | Нужен точный контроль и минимум зависимостей | Прозрачно, быстро, без лишних настроек | Нужно аккуратно тестировать после обновлений темы |
| SEO-плагин | Уже используется на сайте | Удобно для редактора, часто есть массовые настройки | Не всегда закрывает именно attachment-архивы без доп. правил |
| Редирект 301 | На старые URL уже есть переходы | Сохраняет часть трафика и сигналы | Нужно правильно выбрать целевой URL |
Способ 1. Отключить архивы вложений через код
Если задача — просто убрать attachment-страницы из индекса и не держать отдельные HTML-страницы, можно отключить архивы для типа записи attachment. Это не удаляет сами файлы и не ломает загрузку изображений в контенте.
<?php
add_action( 'init', function () {
global $wp_post_types;
if ( isset( $wp_post_types['attachment'] ) ) {
$wp_post_types['attachment']->publicly_queryable = false;
$wp_post_types['attachment']->exclude_from_search = true;
$wp_post_types['attachment']->show_ui = true;
}
} );
Этот вариант лучше использовать только после проверки сайта на предмет прямых ссылок на attachment-страницы. Если такие ссылки уже есть в индексе, одного отключения может быть недостаточно: поисковик ещё какое-то время будет видеть старые URL.
Способ 2. Сделать редирект attachment-страниц на родительскую запись
Если у вложений уже есть трафик, безопаснее не отдавать 404, а отправлять пользователя и робота на родительский пост. Это особенно полезно для изображений, которые вставлены в статьи и имеют понятную связь с контентом.
<?php
add_action( 'template_redirect', function () {
if ( is_attachment() ) {
$parent_id = get_post_parent( get_the_ID() );
if ( $parent_id ) {
wp_safe_redirect( get_permalink( $parent_id ), 301 );
exit;
}
wp_safe_redirect( home_url( '/' ), 301 );
exit;
}
} );
Здесь есть важная деталь: если у вложения нет родителя, не стоит отправлять его на случайную страницу. Лучше выбрать предсказуемый fallback — главную или релевантный раздел, если он у вас заранее определён логикой сайта.
Способ 3. Закрыть архивы через SEO-плагин
Если на сайте уже стоит SEO-плагин, проверьте, умеет ли он отключать attachment-страницы или задавать им noindex. Это удобно, когда редактору не нужно лезть в код, а задача сводится к управлению индексацией. Но важно понимать: noindex не убирает сам URL из сайта, он только просит поисковик не держать его в выдаче.
Если нужен более широкий контроль над дублями, архивами и технической чисткой, иногда проще использовать специализированный инструмент вроде Clearfy Pro, но только если он уже вписывается в стек проекта и не дублирует функции текущего SEO-плагина.
Пошаговая схема внедрения
- Соберите список attachment-URL из Search Console, логов или краулинга сайта.
- Проверьте, есть ли на них входящий трафик и внешние ссылки.
- Выберите стратегию: редирект для уже индексируемых URL, отключение архива — для новых и малозначимых страниц.
- Внесите изменения через
mu-pluginили дочернюю тему, а не в ядро и не в родительскую тему. - Очистите кэш страницы, объектный кэш и CDN, если он используется.
- Переобойдите несколько URL вручную и проверьте код ответа.
Как проверить, что решение сработало
Проверка нужна не только в браузере. После внедрения откройте несколько старых attachment-URL и посмотрите, что возвращает сервер.
- Если настроен редирект, должен быть
301на родительскую запись или выбранный целевой URL. - Если архивы отключены, страница не должна открываться как отдельный HTML-шаблон.
- В Search Console URL должен постепенно выпадать из индекса после переобхода.
- В краулере не должно оставаться внутренних ссылок на attachment-страницы, если вы их не используете осознанно.
Проверить код ответа можно через curl:
curl -I https://example.com/attachment/sample-image/
Если вы видите 301, значит редирект работает. Если 200, страница всё ещё отдаётся как обычный контент и её нужно закрывать дальше. Если 404, это допустимо только когда вы уверены, что на URL нет полезного трафика и он не нужен для перехода.
Частые ошибки и как их исправить
Редирект ведёт на главную без логики
Это частая ошибка при массовом отключении вложений. Главная страница не всегда релевантна, и такой редирект выглядит как техническая заглушка. Лучше вести на родительскую запись, а если её нет — на ближайший тематический раздел.
Отключили архив, но URL всё ещё в индексе
Это нормально на коротком промежутке. Поисковику нужно время на переобход. Ускорить процесс можно через переобход в Search Console, но не стоит ждать мгновенного исчезновения URL.
Сломались изображения в контенте
Такое случается, если вместо отключения архивов начали менять сами URL файлов или переписывать медиа-ссылки в базе без проверки. Не трогайте физические пути к файлам, если задача касается только HTML-страниц вложений.
Изменения внесли в родительскую тему
После обновления темы правки исчезнут. Для таких задач используйте дочернюю тему или mu-plugin. Это особенно важно, если редирект или отключение attachment-архивов сделаны через код.
Безопасность и производительность: что учесть
Само отключение attachment-архивов почти не влияет на производительность, но косвенно помогает сократить число бесполезных страниц в обходе. Для больших сайтов это снижает шум в индексации и упрощает аудит. С точки зрения безопасности важно другое: не оставляйте в коде редиректы, которые строятся на пользовательском вводе без проверки. Для внутренних переходов используйте wp_safe_redirect(), а не произвольный header('Location: ...').
Если на сайте много старых медиа-URL, сначала соберите статистику по ним и только потом массово закрывайте архивы. Иногда часть вложений действительно получает переходы из поиска, особенно если сайт публиковал изображения как самостоятельный контент.
Когда лучше не отключать, а переосмыслить структуру
Если медиафайлы у вас — это не вспомогательные вложения, а полноценные страницы с описанием, тегами и отдельной ценностью, отключение архивов может быть лишним. В таком случае лучше привести их к нормальному шаблону, добавить уникальный текст и убрать дублирующие элементы. Но для большинства обычных сайтов attachment-архивы не несут самостоятельной пользы и только засоряют индекс.
Практический ориентир простой: если вы не можете объяснить, зачем пользователю нужна отдельная страница вложения, скорее всего, её не стоит оставлять открытой для индексации.