Attachment-страницы в WordPress часто всплывают в индексе незаметно: у изображения есть отдельный URL, на нём нет полезного контента, а поисковик видит ещё одну страницу сайта. На небольших проектах это просто шум. На контентных — лишние дубли, размывание релевантности и странные посадочные в выдаче.
Проблема обычно не в самих медиафайлах, а в том, что WordPress по умолчанию создаёт для вложений отдельные страницы-обёртки. Если их не контролировать, они могут индексироваться, получать внутренние ссылки и мешать нормальной структуре сайта.
Когда attachment-страницы становятся проблемой
Сценарий типичный: в поиске появляются URL вида /image-name/, ?attachment_id=123 или похожие страницы вложений. Пользователь кликает на них из выдачи и попадает не на статью, а на пустую страницу с картинкой или минимальным шаблоном темы. Для SEO это слабый сигнал, а для аналитики — лишний мусор.
Проверять нужно не только сам индекс, но и внутренние ссылки. Иногда тема выводит ссылки на attachment-страницы в галереях, блоках изображений или через старый контент, импортированный из другого шаблона.
Как быстро диагностировать проблему
- В Google Search Console откройте отчёт по страницам и найдите URL с признаками вложений.
- Проверьте сайт запросом
site:example.com attachmentилиsite:example.com inurl:attachment. - Откройте несколько таких URL вручную: если там нет полезного текста, это кандидат на закрытие от индексации.
- Посмотрите исходный код страницы вложения: есть ли
rel="canonical", meta robots и ссылка на родительскую запись.
Что лучше сделать: редирект, noindex или отключение attachment-страниц
Универсального ответа нет. Если attachment-страницы вам не нужны вообще, самый чистый вариант — не отдавать их как отдельные страницы. Если на сайте уже есть трафик на такие URL, сначала аккуратно перенаправьте их на родительскую запись или на сам файл, а потом уже убирайте из индекса.
| Подход | Когда подходит | Компромисс |
|---|---|---|
| Редирект на родительскую запись | Если attachment-страницы не нужны пользователю | Нужно корректно определить родителя |
noindex | Если страницы пока должны открываться, но не индексироваться | Поисковик может держать URL в базе дольше |
| Отключение attachment-страниц | Если хотите убрать проблему на уровне логики сайта | Нужно проверить тему и медиа-ссылки |
Пошаговое решение через код
Если задача — именно отключить индексацию attachment-страниц, можно добавить noindex, follow и при необходимости перенаправление. Ниже рабочий вариант для functions.php дочерней темы или собственного мини-плагина.
<?php
add_action('template_redirect', function () {
if (is_attachment()) {
$parent_id = wp_get_post_parent_id(get_queried_object_id());
if ($parent_id) {
wp_safe_redirect(get_permalink($parent_id), 301);
exit;
}
wp_safe_redirect(home_url('/'), 301);
exit;
}
});
add_filter('wp_robots', function (array $robots) {
if (is_attachment()) {
$robots['noindex'] = true;
$robots['follow'] = true;
}
return $robots;
});
Здесь логика простая: если у вложения есть родительская запись, отправляем пользователя туда. Если родителя нет, уводим на главную или на другой понятный URL. Параллельно задаём robots-правила, чтобы даже при временном доступе страница не считалась индексируемой.
Если редирект вам не нужен, а достаточно только закрыть от индексации, оставьте только фильтр wp_robots. Это полезно, когда attachment-страницы уже используются где-то в старых ссылках и вы не хотите ломать переходы сразу.
Если тема не поддерживает корректный вывод robots
В старых темах бывает так, что meta robots выводится вручную и конфликтует с плагинами SEO. Тогда нужно проверить, не дублируется ли noindex в шаблоне. Иначе поисковик увидит несколько противоречивых указаний, а вы получите непредсказуемый результат.
<?php
// Пример: не выводить отдельный meta robots вручную,
// если SEO-плагин уже управляет индексированием.
if (!is_attachment()) {
echo '<meta name="robots" content="index, follow">';
}
Как закрыть attachment-страницы без кода
Если вы не хотите править тему, можно использовать SEO-плагин, который умеет управлять meta robots и canonical. Но важно проверить, что он действительно применяет правило именно к attachment-страницам, а не только к записям и страницам.
Плагинный путь удобен, если сайт ведётся не разработчиком, а редактором. Минус в том, что часть настроек может быть спрятана глубоко в интерфейсе, а после обновления тема или плагин могут изменить поведение шаблона.
Если у вас уже стоит Clearfy Pro, его имеет смысл рассматривать только как инструмент для чистки дублей и технических страниц, а не как замену понимания логики. В подобных задачах важно проверить, что именно отключается: индексирование, canonical, редирект или только вывод ссылок на вложения. Ссылка для ориентира: Clearfy Pro.
Проверка результата после внедрения
После правки не ограничивайтесь открытием одной страницы в браузере. Нужно проверить, что решение работает на уровне ответа сервера и на уровне индексации.
- Откройте attachment-URL в режиме инкогнито и убедитесь, что он редиректит или отдаёт нужный шаблон.
- Проверьте заголовки ответа через DevTools или
curl -I https://example.com/attachment-url/. - Посмотрите исходный код: должен быть
noindex, если вы его включали. - В Search Console отправьте URL на повторную проверку после обновления страницы.
Если вы используете редирект, ответ должен быть 301 или другой осознанный код, а не цепочка из нескольких переходов. Если включён только noindex, убедитесь, что страница не закрыта случайно через robots.txt, иначе поисковик может не увидеть сам тег.
Частые ошибки и как их исправить
Закрыли в robots.txt, но не поставили noindex
Это частая ошибка. Если URL запрещён в robots.txt, поисковик может не зайти на страницу и не увидеть тег noindex. В итоге URL ещё какое-то время висит в индексе. Для уже известных страниц безопаснее сначала дать noindex, потом при необходимости ограничить обход.
Редиректите все вложения на главную
Так делать можно, но это грубый вариант. Если у изображения есть родительская запись, логичнее отправлять пользователя туда. Массовый редирект на главную ухудшает поведение на сайте и выглядит как soft-404 для поисковика.
Оставили attachment-страницы доступными в теме
Иногда код закрывает индексацию, но тема продолжает ссылаться на вложения в галереях и карточках изображений. Тогда URL остаются в обходе и могут всплывать снова. Проверьте шаблоны вывода медиа и настройки галерей.
Не учли вложения без родителя
У части медиафайлов может не быть связанной записи. Для них нужен отдельный сценарий: редирект на архив медиа, на страницу библиотеки или на главную. Главное — не отправлять все такие URL в одну точку без разбора.
Практические советы по безопасности и производительности
Если вы вносите правки через код, не редактируйте основной файл темы напрямую. Используйте дочернюю тему или небольшой mu-plugin, чтобы обновление не затёрло изменения. Это особенно важно, если сайт поддерживается несколькими людьми.
Перед массовыми редиректами сделайте список attachment-URL и проверьте, нет ли среди них страниц, которые реально получают трафик. Иногда старые изображения используются как посадочные из внешних ссылок, и резкое изменение поведения может повлиять на переходы.
Если на сайте много медиа и старый контент, полезно сначала пройтись по отчётам индексации, а потом уже менять шаблоны. Так вы не будете лечить то, что на самом деле не мешает поиску, и не сломаете рабочие ссылки на изображения.