В WordPress изображения часто живут дольше, чем сами записи: меняется тема, появляются новые размеры, старые файлы остаются в медиатеке, а поисковики продолжают собирать их как отдельные страницы вложений. В итоге в индексе оказываются пустые attachment-страницы, дубли медиафайлов и мусорные URL, которые не дают трафик, но раздувают индекс.
Если задача именно в этом, решение обычно не одно: часть проблем закрывается настройками WordPress, часть — редиректами, часть — правкой robots и шаблонов вложений. Ниже разберём, как понять, что именно у вас индексируется, и как убрать лишнее без риска сломать картинки в контенте.
Что именно нужно закрывать от индексации
Сначала важно разделить три разных сценария. Они часто смешиваются, но лечатся по-разному:
- attachment-страницы — отдельные страницы вложений вида
/image-name/или?attachment_id=123; - сами файлы — URL вида
/wp-content/uploads/2024/08/photo.jpg; - служебные размеры — миниатюры и промежуточные версии файлов, которые поиску не нужны.
Если у вас в индексе именно attachment-страницы, то закрывать нужно их, а не сами изображения. Если же поисковик индексирует прямые URL файлов, тогда одной галочки в админке уже недостаточно.
Диагностика: где возникает проблема
Проверка начинается не с плагина, а с поиска по сайту и логики URL. Откройте несколько типичных адресов из медиатеки и посмотрите, что реально отдаёт WordPress.
Как быстро найти мусорные URL
- В Google Search Console откройте отчёт по страницам и найдите URL с
/uploads/или/attachment/. - В поиске по сайту проверьте запрос
site:example.com inurl:attachment. - Откройте несколько URL вложений вручную и посмотрите, есть ли на них полноценный контент или только картинка и заголовок.
Если attachment-страница открывается как отдельная запись без полезного текста, это почти всегда кандидат на закрытие от индексации или на редирект к исходному файлу/родительской записи.
Что проверить в админке WordPress
В стандартном WordPress нет одной универсальной настройки, которая решает всё. Но есть базовые места, которые стоит проверить:
- в Настройки → Чтение не включён ли случайно запрет индексации всего сайта;
- в SEO-плагине не отключены ли мета-теги для архивов и вложений;
- не создаёт ли тема отдельный шаблон attachment.php с пустым контентом;
- не генерирует ли плагин медиа отдельные страницы с описанием, которое дублирует запись.
Пошаговое решение: закрываем attachment-страницы
Самый безопасный сценарий для большинства сайтов — оставить сами файлы изображений доступными, но убрать из индекса attachment-страницы. Это не мешает вставке картинок в записи и не ломает загрузку медиа в редакторе.
Вариант 1: через SEO-плагин
Если у вас уже стоит плагин для SEO, проверьте, умеет ли он задавать noindex для медиа-страниц. Это самый простой путь, если не хочется трогать код. Но важно понимать: не каждый плагин одинаково работает с attachment-страницами, и иногда настройка влияет только на архивы, а не на вложения.
После изменения настроек откройте несколько URL вложений и проверьте, появился ли в HTML мета-тег noindex. Если плагин ещё и ставит canonical на родительскую запись — это обычно плюс, но только если родитель действительно релевантен.
Вариант 2: кодом через template_redirect
Если нужен предсказуемый результат без лишней зависимости от плагина, можно сделать редирект attachment-страниц на сам файл или на родительскую запись. Для большинства сайтов это практичнее, чем держать пустые страницы в индексе.
<?php
add_action('template_redirect', function () {
if (!is_attachment()) {
return;
}
$post = get_post();
if (!$post) {
return;
}
$parent_id = (int) $post->post_parent;
if ($parent_id) {
wp_safe_redirect(get_permalink($parent_id), 301);
exit;
}
$file_url = wp_get_attachment_url($post->ID);
if ($file_url) {
wp_safe_redirect($file_url, 301);
exit;
}
});Здесь логика простая: если у вложения есть родительская запись, отправляем туда; если нет — на прямой URL файла. Такой подход убирает из индекса пустые attachment-страницы и сохраняет доступ к медиа.
Вариант 3: запретить индексацию через robots meta
Если редирект по какой-то причине не подходит, можно оставить страницу доступной, но закрыть её от индексации. Это полезно, когда attachment-страница нужна для внутренней навигации, но не должна попадать в поиск.
<?php
add_filter('wp_robots', function ($robots) {
if (is_attachment()) {
$robots['noindex'] = true;
$robots['follow'] = true;
}
return $robots;
});Этот вариант не убирает URL из обхода полностью, но снижает шанс попадания в индекс. Для сайтов с большим числом медиа я бы всё же предпочёл редирект, а не только noindex.
Что делать с прямыми файлами в uploads
Сами изображения в /wp-content/uploads/ обычно не нужно массово закрывать от индексации, если они используются в статьях. Поисковик может приводить трафик по картинкам, особенно на контентных проектах. Проблема начинается тогда, когда в индекс попадают:
- служебные превью и дубли размеров;
- старые файлы, которые больше нигде не используются;
- файлы с непонятными именами, не связанными с контентом;
- отдельные изображения без окружения и текста.
Если цель — убрать именно мусорные файлы, а не весь медиа-контент, лучше сначала навести порядок в медиатеке и только потом думать о robots или серверных правилах.
Когда имеет смысл закрывать папку uploads
Закрывать весь /uploads/ от индексации стоит только в редких случаях: например, если сайт использует медиа как внутреннее хранилище документов, а не как часть SEO-стратегии. Для обычного блога или корпоративного сайта это часто лишняя мера: можно потерять полезный трафик из поиска по картинкам.
| Подход | Что делает | Компромисс |
|---|---|---|
| Редирект attachment-страниц | Убирает пустые страницы вложений из индекса | Нужно проверить родительские записи и логику редиректа |
noindex для attachment | Оставляет страницу доступной, но просит не индексировать | URL может ещё какое-то время встречаться в обходе |
Закрыть весь /uploads/ | Сильно ограничивает индексацию медиа | Можно потерять полезные image-search переходы |
Проверка результата после внедрения
После правки не ограничивайтесь визуальной проверкой в браузере. Нужна именно техническая верификация.
- Откройте несколько attachment-URL и убедитесь, что они редиректят или отдают
noindex. - Проверьте код ответа через DevTools или
curl -I. - Посмотрите исходный HTML на наличие
meta robotsили заголовкаX-Robots-Tag, если вы его используете. - В Search Console отправьте на переобход несколько проблемных URL и сравните статус через несколько дней.
Пример проверки заголовков через терминал:
curl -I https://example.com/sample-image/Если всё настроено правильно, вы увидите либо 301 с переходом на целевой URL, либо страницу с noindex. Важно, чтобы не осталось цепочек редиректов и случайных 200-страниц без контента.
Частые ошибки и как их исправить
Редирект ведёт на главную
Такое бывает, если у attachment нет родителя, а код отправляет пользователя в запасной сценарий без проверки. Лучше в этом случае редиректить на сам файл или на страницу медиа, если она реально нужна, а не на главную.
Закрыли не только вложения, но и картинки в контенте
Это происходит, когда в robots.txt или на уровне сервера блокируют весь каталог /uploads/. В результате поисковик перестаёт видеть полезные изображения, а иногда ломаются предпросмотры в сервисах и мессенджерах. Если изображения участвуют в SEO, такой запрет слишком грубый.
Остались дубли из-за разных размеров одного файла
WordPress создаёт несколько версий изображения, и они могут попадать в индекс как отдельные URL. Обычно это не проблема, если закрыты attachment-страницы и не индексируются служебные пути. Но если у вас кастомная тема или плагин выводит прямые ссылки на миниатюры, проверьте шаблоны и разметку.
Сломались старые ссылки из контента
Если раньше в статьях использовались attachment-страницы как целевые URL, после редиректа часть внутренних ссылок может вести не туда. Перед массовым изменением стоит найти такие ссылки и заменить их на реальные страницы или файлы.
Практические советы по безопасности и производительности
Когда медиатека разрослась, полезно не только закрыть лишнее от индексации, но и уменьшить сам объём мусора. Это влияет и на бэкапы, и на скорость админки.
- Удаляйте неиспользуемые размеры изображений только после проверки темы и плагинов, которые их реально вызывают.
- Не отключайте генерацию всех размеров без теста: часть шаблонов может рассчитывать на
srcset. - Если используете CDN, проверьте, не кэшируются ли старые attachment-страницы отдельно от файлов.
- При больших медиатеках полезно периодически сверять реальные файлы в
uploadsс тем, что ещё используется в записях.
Если нужен более системный подход к чистке дублей и служебных страниц, иногда проще собрать это в одном SEO-инструменте, чем держать набор разрозненных правок. Например, в Clearfy Pro есть набор функций для технической чистки WordPress и управления дублями: https://wpshop.ru/plugins/clearfy.
Когда лучше не трогать индексацию изображений
Если сайт живёт за счёт поиска по картинкам, каталогов с фото, портфолио или инструкций с визуальными схемами, массовое закрытие медиа может навредить. В таких проектах лучше точечно убирать только attachment-страницы и не трогать сами файлы. Это даёт баланс: поисковик видит полезные изображения, но не индексирует пустые страницы вложений.
Если же у вас корпоративный сайт с десятками старых вложений, которые давно не используются, то сначала имеет смысл привести медиатеку в порядок, а уже потом закрывать остатки от индексации. Тогда результат будет чище и предсказуемее.