Attachment-страницы в WordPress часто создают лишние URL, которые не несут пользы ни пользователю, ни поиску. Проблема в том, что простое отключение таких страниц через редирект или 404 может затронуть индексацию самих изображений, если на них уже есть ссылки из поиска или внешних источников. Поэтому задача не в том, чтобы «всё удалить», а в том, чтобы убрать отдельные страницы вложений и при этом оставить корректную работу медиафайлов.
Когда attachment-страницы становятся проблемой
У сайта могут появляться десятки или тысячи URL вида /sample-image/, /photo-1/ или /attachment/filename/. Обычно они создаются автоматически, когда WordPress генерирует отдельную страницу вложения для каждого изображения. На небольшом сайте это почти незаметно, но на контентных проектах такие страницы быстро разрастаются и начинают мешать:
- в индексе появляются дубли и слабые страницы;
- краулинговый бюджет расходуется на мусорные URL;
- пользователь может попасть на страницу без полезного контента вместо самого изображения;
- при массовой чистке легко сломать старые ссылки на медиа.
Как понять, что проблема именно в attachment-страницах
Проверьте несколько признаков:
- в
site:example.comили в отчётах Search Console есть URL, похожие на названия файлов изображений; - в логах переходов встречаются страницы вложений, а не сами файлы в
/uploads/; - в теме или плагинах нет явной логики, которая использует attachment-страницы как посадочные;
- в медиатеке много изображений, но у них нет уникального текста и смысла для отдельной страницы.
Если attachment-страницы уже дают трафик по картинкам, отключать их нужно аккуратно: не ломать адреса файлов и не ставить массовый редирект на главную без разбора.
Что лучше: редирект, noindex или отключение шаблона
Подход зависит от того, как сайт использует медиа. Ниже — практическое сравнение.
| Вариант | Когда подходит | Минус |
|---|---|---|
| Редирект attachment на файл изображения | Нужно убрать страницу вложения, но сохранить доступ к самому файлу | Пользователь не увидит отдельную HTML-страницу вложения |
noindex для attachment | Нужно оставить URL доступным, но не пускать его в индекс | Страницы всё равно будут обходиться ботом |
| Отключение attachment-шаблона и редирект | На сайте нет смысла в страницах вложений | Нужно проверить старые ссылки и SEO-следы |
Для большинства сайтов самый практичный вариант — редиректить attachment-страницы на сам файл изображения или родительскую запись, если это логичнее для контента. Если у вас медиа используется как самостоятельный контент, решение надо пересматривать отдельно.
Диагностика перед изменениями
Сначала посмотрите, как именно WordPress сейчас отдаёт вложения. Откройте несколько URL attachment-страниц и проверьте:
- это полноценная HTML-страница или редирект;
- есть ли canonical на саму страницу вложения;
- не ведут ли внутренние ссылки на attachment вместо файла;
- не используются ли эти URL в sitemap.
Если у вас установлен SEO-плагин, проверьте его настройки: некоторые плагины уже умеют закрывать attachment-страницы от индексации. Но если нужна предсказуемая логика без лишних зависимостей, проще сделать это кодом в теме или небольшом mu-plugin.
Пошаговое решение через код
Ниже рабочий вариант: если пользователь или бот открывает attachment-страницу, WordPress перенаправляет его на файл изображения. Это безопаснее, чем отправлять на главную, потому что сохраняется смысл URL и не теряется сам медиафайл.
<?php
add_action('template_redirect', function () {
if (is_attachment()) {
$attachment_id = get_queried_object_id();
$file_url = wp_get_attachment_url($attachment_id);
if ($file_url) {
wp_redirect($file_url, 301);
exit;
}
wp_safe_redirect(home_url('/'), 301);
exit;
}
});Этот код можно добавить в functions.php дочерней темы, но для постоянного решения лучше вынести его в небольшой плагин или mu-plugin. Тогда он не исчезнет при смене темы.
Если нужно не редиректить, а закрыть от индекса
Иногда attachment-страницы должны открываться, но не попадать в поиск. Тогда можно добавить noindex только для них:
<?php
add_filter('wp_robots', function (array $robots) {
if (is_attachment()) {
$robots['noindex'] = true;
$robots['follow'] = true;
}
return $robots;
});Этот вариант не убирает сам URL из обхода, но снижает риск индексации. Для сайтов с большим количеством медиа обычно всё равно лучше редирект, а не просто noindex.
Как не сломать старые ссылки на изображения
Самая частая ошибка — путать attachment-страницу и сам файл. Файл лежит в /wp-content/uploads/ и должен открываться напрямую. Страница вложения — это отдельный HTML-URL, который WordPress генерирует поверх файла. Если вы редиректите attachment-страницы, не трогайте адреса файлов в медиатеке и не переписывайте их массово без необходимости.
Проверьте, что:
- сами изображения открываются по прямому URL;
- в контенте постов используются ссылки на файл, а не на attachment;
- в sitemap нет мусорных URL вложений;
- внутренние ссылки после редиректа не уходят в цепочки.
Проверка результата после внедрения
После изменения откройте несколько старых attachment-URL вручную и через curl. В ответе должен быть либо 301 на файл, либо noindex в HTML, если вы выбрали этот сценарий.
curl -I https://example.com/sample-image/
Что смотреть в ответе:
301 Moved Permanently— если настроен редирект;Location:с прямым URL файла;- отсутствие цепочки редиректов;
- корректный статус у самого файла изображения.
Затем проверьте Search Console: новые исключения и страницы с редиректом должны постепенно вытеснять старые attachment-URL. Если сайт уже давно в индексе, изменения не будут мгновенными — это нормально.
Частые ошибки и как их исправить
Редирект на главную вместо файла
Так делают «на всякий случай», но это плохая практика. Пользователь теряет контекст, а поисковик получает нерелевантный сигнал. Если файл существует, редиректите именно на него.
Ставят 302 вместо 301
Временный редирект не подходит для постоянного отключения attachment-страниц. Если решение окончательное, используйте 301.
Закрывают от индекса, но оставляют мусорные ссылки
noindex не убирает URL из обхода и не решает проблему внутренних ссылок. Если attachment-страницы нигде не нужны, редирект обычно полезнее.
Ломают изображения в галереях и блоках
Это происходит, когда меняют не attachment-страницу, а сам путь к файлу или настройки медиа-URL. Перед внедрением проверьте несколько записей с галереями, блоками изображений и вставками из медиатеки.
Практические советы по безопасности и производительности
Если у вас большой сайт, лучше не встраивать такой код в основной шаблон без нужды. Для точечных технических правок удобнее использовать mu-plugin: он загружается автоматически и не зависит от темы. Это снижает риск случайно потерять настройку после обновления дизайна.
Ещё один полезный шаг — проверить, не создаёт ли плагин галереи или SEO-плагин собственные ссылки на attachment-страницы. Иногда проблема возвращается не из-за WordPress, а из-за стороннего расширения, которое генерирует ссылки в карточках изображений, хлебных крошках или блоках разметки.
Если вам нужен более широкий набор инструментов для чистки дублей, управления индексированием и технической оптимизации, посмотрите Clearfy Pro: https://wpshop.ru/plugins/clearfy. Но даже с плагином всё равно стоит понимать, какие именно URL вы закрываете и зачем.
Итоговая проверка простая: attachment-страницы должны либо отдавать 301 на файл, либо быть закрыты от индекса, а прямые URL изображений должны продолжать открываться без ошибок. Если это выполняется, решение можно считать рабочим.