Если в индексе появились страницы вложений, архивы медиафайлов или пустые attachment-страницы, это обычно не про «плохой SEO-плагин», а про настройки темы, шаблонов и robots/meta-логики. На небольшом сайте проблема выглядит безобидно, но на контентном проекте такие страницы создают дубли, размывают краулинговый бюджет и иногда перетягивают на себя показы по картинкам.
Ниже — рабочая схема, как закрыть медиабиблиотеку от индексации в WordPress, не ломая загрузку изображений в статьях и не мешая поиску понимать основной контент страницы.
Когда проблема действительно есть
Сначала стоит убедиться, что речь именно об индексации вложений, а не о нормальной выдаче изображений в Google Images. Проверка простая: в поиске смотрят не только URL файлов вида /wp-content/uploads/..., но и attachment-страницы, например /sample-image/ или /attachment/123/, если они создаются темой или плагином.
Что проверить в первую очередь
- в поиске по сайту есть страницы вложений с пустым или почти пустым контентом;
- в Search Console растут URL с типом
attachmentили похожими служебными страницами; - в теме у изображений включены ссылки на отдельную страницу медиафайла;
- SEO-плагин не переопределяет robots/meta для attachment-страниц;
- в sitemap попадают медиа-URL, хотя это не нужно для вашей модели индексации.
Если у вас уже есть статья про запрет индексации самих видеофайлов, не путайте её с этой задачей: здесь речь именно о страницах вложений и медиа-архиве WordPress, а не о файлах в uploads.
Какие варианты решения есть и чем они отличаются
| Подход | Что делает | Плюсы | Минусы |
|---|---|---|---|
| SEO-плагин | Ставит noindex и убирает вложения из sitemap | Быстро, без кода | Не всегда закрывает все сценарии темы |
| Код в теме или плагине | Отключает attachment-страницы и задаёт noindex | Точно и предсказуемо | Нужно аккуратно тестировать после обновлений |
| robots.txt | Запрещает обход части путей | Просто | Не решает уже проиндексированные URL и не заменяет noindex |
На практике лучше сочетать noindex для attachment-страниц и проверку шаблонов ссылок на изображения. Если закрыть только robots.txt, поисковик может продолжать держать URL в индексе без обхода содержимого.
Пошаговое решение без плагина
Если нужен контролируемый вариант, проще всего добавить код в небольшой mu-plugin или в functions.php дочерней темы. Так вы не зависите от конкретного SEO-плагина и не теряете настройку после обновления темы.
1. Отключить отдельные страницы вложений
Этот код перенаправляет attachment-страницы на родительскую запись, если она есть. Если родителя нет, пользователь попадёт на главную. Для SEO это обычно лучше, чем оставлять пустую страницу вложения в индексе.
<?php
add_action('template_redirect', function () {
if (is_attachment()) {
$parent = wp_get_post_parent_id(get_queried_object_id());
if ($parent) {
wp_safe_redirect(get_permalink($parent), 301);
exit;
}
wp_safe_redirect(home_url('/'), 301);
exit;
}
});Этот вариант полезен, если тема или старый плагин уже создали attachment-страницы, а вы хотите убрать их из обхода и из выдачи без ручной чистки сотен URL.
2. Добавить noindex для attachment-страниц
Если вы используете SEO-плагин, он может делать это сам. Но когда нужна независимая логика, можно добавить meta robots через wp_robots. Это современный и штатный фильтр WordPress.
<?php
add_filter('wp_robots', function (array $robots) {
if (is_attachment()) {
$robots['noindex'] = true;
$robots['nofollow'] = true;
}
return $robots;
});Такой подход не мешает картинкам отображаться в записях. Он влияет именно на HTML-страницу вложения, а не на сам файл изображения.
3. Убрать вложения из sitemap, если они там есть
Если sitemap генерируется SEO-плагином, проверьте его настройки: медиа-страницы часто можно исключить без кода. Если sitemap собирается вручную или кастомно, не добавляйте attachment-посты в список опубликованных URL.
При кастомной генерации карты сайта логика обычно сводится к исключению пост-типов и записей с типом attachment. Это не универсальный код для всех сайтов, но принцип простой: в sitemap должны попадать только те URL, которые вы реально хотите индексировать.
Если вы используете SEO-плагин
В большинстве проектов удобнее не писать всё с нуля, а использовать плагин для мета-логики и чистки дублей. Например, в Clearfy Pro есть инструменты для удаления дублей и технической оптимизации, если вам нужно закрыть служебные страницы и не держать это в теме. На стороне WordPress это обычно проще сопровождать, чем разбрасывать правила по шаблонам.
Но даже с плагином стоит проверить, что он не конфликтует с темой: некоторые темы сами выводят ссылку на attachment-страницу у изображения, и тогда noindex есть, а лишний переход всё равно остаётся.
Проверка результата после внедрения
После изменений не ограничивайтесь просмотром исходника главной. Нужно проверить именно те URL, которые вы закрывали.
- Откройте attachment-страницу в браузере и убедитесь, что она редиректит на родительскую запись или главную.
- Посмотрите исходный код страницы, если редирект не используется: в
<head>должен бытьnoindex. - Проверьте robots.txt, если вы добавляли туда правила, но не рассчитывайте только на него.
- В Search Console отправьте на повторную проверку несколько старых URL вложений.
- Убедитесь, что изображения в статьях по-прежнему открываются и не ломаются ссылки на медиафайлы.
Для быстрой проверки можно использовать curl -I и посмотреть статус ответа:
curl -I https://example.com/sample-image/Если всё настроено правильно, вы увидите 301 на родительскую запись или заголовки, где нет признаков indexable-страницы. Для attachment-страниц без редиректа ищите meta robots в HTML и отсутствие их в sitemap.
Частые ошибки и как их исправить
Закрыли только папку uploads в robots.txt
Это частая ошибка. Robots.txt не удаляет уже проиндексированные URL и не мешает поисковику хранить их в индексе. Если цель — убрать attachment-страницы, нужен noindex или редирект.
Поставили noindex, но оставили ссылки на attachment-страницы
Так бывает, когда в настройках медиа WordPress выбран переход на страницу вложения. Пользователь кликает по картинке и попадает на пустую страницу, хотя она уже закрыта от индексации. Исправление — поменять поведение ссылок в редакторе или в шаблоне вывода изображений.
Сломали изображения в контенте
Это обычно происходит, когда пытаются запретить доступ к самим файлам в uploads через серверные правила. Не делайте этого, если изображения используются на публичных страницах. Закрывать нужно HTML-страницы вложений, а не сами медиафайлы, которые нужны для отображения контента.
Переадресация ведёт на главную для всех вложений
Такой вариант допустим, но не всегда идеален. Если у изображения есть родительская запись, логичнее вести туда. Иначе пользователь теряет контекст, а поисковик получает менее точный сигнал о связи медиа и статьи.
Практика безопасности и производительности
Если вы вносите код вручную, не правьте файл темы на живом сайте. Лучше использовать дочернюю тему или маленький mu-plugin. Так вы не потеряете изменения после обновления и не сломаете сайт при ошибке в синтаксисе.
Ещё один полезный момент: не плодите несколько решений одновременно. Если SEO-плагин уже ставит noindex, а тема ещё и редиректит attachment-страницы, отладка становится сложнее. Выберите один основной механизм и проверьте его до конца.
Для сайтов с большим количеством медиа имеет смысл периодически проверять, не появились ли новые attachment-URL после смены темы, импорта контента или установки галерейного плагина. Именно после таких изменений служебные страницы чаще всего снова начинают индексироваться.
Если нужен более широкий технический аудит дублей, служебных страниц и мусорной индексации, удобно сначала убрать базовые дубли на уровне SEO-логики, а уже потом чистить sitemap и шаблоны. Это дешевле, чем потом вручную вычищать сотни URL из индекса.