Со временем в WordPress почти на любом сайте накапливаются записи и страницы, которые уже не дают пользы: старые новости, тестовые страницы, дубли архивов, черновики, пустые таксономии, материалы с нулевым трафиком. Проблема не только в «мусоре» в админке. Такие объекты раздувают sitemap, создают лишние URL, мешают внутренней перелинковке и усложняют поддержку сайта.
Ниже — рабочая схема, как сначала найти кандидатов на удаление, потом безопасно проверить их статус, и только после этого чистить сайт. Без магии и без риска снести то, что еще приносит трафик.
Какие записи действительно можно считать мертвыми
Не стоит ориентироваться только на дату публикации. Старый материал может стабильно приводить переходы из поиска или быть точкой входа из внешних ссылок. С другой стороны, свежая запись может быть бесполезной, если это тестовый пост или дубль страницы с одинаковым смыслом.
Практичные признаки
- нет органического трафика за длительный период;
- нет внутренних ссылок и входящих ссылок с других сайтов;
- контент дублирует другую страницу, но не является канонической версией;
- запись не участвует в навигации, хлебных крошках и связанных блоках;
- страница не нужна для юридических, технических или сервисных целей;
- черновик, тестовая публикация или временная служебная страница.
Если у записи есть хотя бы один из этих признаков, это еще не повод удалять ее сразу. Сначала нужно проверить индексацию, ссылки и фактическую ценность.
Диагностика: что искать перед удалением
Начинать лучше не в админке, а с выгрузки списка кандидатов. На небольшом сайте можно пройтись вручную, на среднем и крупном — уже нужен системный подход.
Проверка в Google Search Console и аналитике
Смотрите страницы, у которых есть показы, но почти нет кликов, или которые давно не получали трафик. Важно не путать «нет трафика» и «не индексируется». Если страница не индексируется по технической причине, это отдельная задача.
Полезно проверить:
- раздел «Страницы» в Search Console;
- отчеты по эффективности для URL с низким CTR;
- страницы с ошибками сканирования;
- внешние ссылки на старые URL.
Проверка через WP-CLI
Если есть доступ к консоли, можно быстро получить список записей по типу и статусу. Например, найти все черновики и записи в корзине:
wp post list --post_type=post --post_status=draft,trash --fields=ID,post_title,post_dateДля страниц:
wp post list --post_type=page --post_status=draft,trash --fields=ID,post_title,post_dateЕсли нужно посмотреть опубликованные записи старше определенной даты, можно отфильтровать их через --date_query в PHP-скрипте или выгрузить список и проверить вручную. В WP-CLI нет универсального фильтра для всех сценариев, поэтому для сложной выборки удобнее использовать SQL или небольшой PHP-скрипт в среде WordPress.
Пошаговое решение: как убрать мертвые записи безопасно
Логика простая: сначала пометить кандидатов, потом проверить зависимости, затем удалить или перевести в архивный режим. Для важных URL лучше не удаление, а корректная замена с редиректом.
Шаг 1. Составьте список кандидатов
Разбейте записи на три группы:
- удалять — тестовые, пустые, дубли без внешних ссылок и трафика;
- обновить — старые, но ценные материалы;
- оставить — страницы, которые нужны для SEO, поддержки или юридических целей.
Если у вас много контента, удобно выгрузить список через SQL. Пример для записей старше трех лет, которые опубликованы и не закреплены:
SELECT ID, post_title, post_date, post_status
FROM wp_posts
WHERE post_type = 'post'
AND post_status = 'publish'
AND post_date < DATE_SUB(NOW(), INTERVAL 3 YEAR)
ORDER BY post_date ASC;Запрос не решает задачу сам по себе, но дает базу для ручной проверки.
Шаг 2. Проверьте внутренние ссылки
Удалять страницу, на которую ссылаются другие материалы, без замены — плохая идея. Сначала найдите ссылки в контенте, меню, виджетах и блоках шаблона. Если URL нужен, но контент устарел, лучше обновить страницу или сделать редирект на релевантный материал.
Шаг 3. Подготовьте редирект для важных URL
Если страница уже в индексе или на нее есть внешние ссылки, удаление без редиректа почти всегда создает лишние 404. Для таких случаев используйте 301 на ближайшую релевантную страницу. Если аналогичной страницы нет, лучше вернуть 410 для действительно удаленного контента, но только когда вы уверены, что замены не будет.
Пример простого редиректа в functions.php или в мини-плагине для конкретного URL:
add_action('template_redirect', function () {
if (is_page('testovaya-stranitsa')) {
wp_redirect(home_url('/'), 301);
exit;
}
});Такой вариант годится только для точечных случаев. Для массовой миграции лучше использовать серверные правила или специализированный плагин редиректов, чтобы не нагружать PHP на каждом запросе.
Шаг 4. Удалите записи и очистите корзину
После проверки можно удалять записи в админке или через WP-CLI. Для массового удаления черновиков и корзины удобен CLI:
wp post delete $(wp post list --post_type=post --post_status=trash --format=ids) --forceПеред --force обязательно убедитесь, что в корзине нет нужного контента. Если сомневаетесь, сначала экспортируйте список ID и проверьте его вручную.
Когда лучше не удалять, а закрыть от индексации
Удаление — не единственный вариант. Если страница нужна пользователям, но не должна конкурировать в поиске, ее можно оставить и закрыть от индексации. Это актуально для служебных страниц, архивов с тонким контентом, некоторых тегов и результатов внутреннего поиска.
Но здесь важно не смешивать задачи. Если страница реально мертвая и не нужна никому, закрытие от индексации только откладывает проблему. Она останется в sitemap, в базе и в админке.
| Подход | Когда использовать | Минус |
|---|---|---|
| Удаление | Тестовые, пустые, ненужные записи | Нужен контроль редиректов и ссылок |
| 301 редирект | Есть замена или близкая релевантная страница | Требует аккуратной настройки |
| 410 Gone | Контент удален окончательно и без замены | Нужно быть уверенным в решении |
| noindex | Страница нужна пользователям, но не для поиска | Не решает проблему лишнего контента в базе |
Проверка результата после внедрения
После чистки важно не просто посмотреть, что записи исчезли из админки. Нужно проверить, что сайт не начал отдавать лишние ошибки и что поисковики увидят корректную картину.
Что проверить вручную
- старый URL открывается с 301 или 410, если это было запланировано;
- новые URL не попали в цепочку редиректов;
- страницы больше не присутствуют в XML sitemap;
- внутренние ссылки не ведут на удаленные записи;
- в Search Console не растет число 404 по старым адресам.
Для быстрой проверки ответа сервера можно использовать curl:
curl -I https://example.com/testovaya-stranitsa/Если все сделано правильно, вы увидите либо 301 Moved Permanently с новым адресом, либо 410 Gone, либо 404 Not Found — в зависимости от выбранной стратегии. Главное, чтобы это было осознанное поведение, а не случайная поломка.
Частые ошибки и как их исправить
Удалили страницу, на которую были ссылки из меню
После удаления проверьте меню, блоки навигации и шаблоны. Если ссылка осталась, пользователь будет получать 404. Исправление простое: либо обновить пункт меню, либо вернуть страницу и настроить редирект.
Снесли материал с внешними ссылками
Если на URL ссылаются другие сайты, удаление без редиректа теряет накопленный вес. В таком случае почти всегда нужен 301 на ближайший релевантный материал. Если релевантной замены нет, стоит хотя бы сохранить страницу в архивном виде с пояснением, а не удалять ее молча.
Оставили дубли в sitemap
Даже после удаления контента дубли могут остаться в кеше, в sitemap-плагине или в настройках темы. Очистите кеш, пересоберите sitemap и проверьте, что старые URL больше не отдаются как доступные.
Слишком рано отправили все в noindex
Если закрыть от индексации страницу, которая уже ранжируется, можно потерять трафик без замены. Сначала оцените, что именно приносит переходы, и только потом меняйте стратегию.
Практические советы по безопасности и производительности
Массовая чистка контента — это операция с риском. Перед удалением сделайте резервную копию базы и файлов. Если сайт большой, лучше сначала прогнать изменения на staging-копии. Это особенно важно, если вы используете кастомные типы записей, сложные шаблоны и плагины, которые завязаны на контент.
Для производительности полезно не только удалить мусор, но и почистить автосохранения, ревизии и корзину. Но здесь тоже нужен баланс: бесконтрольное отключение ревизий может осложнить работу редакторов. Если хотите уменьшить шум в базе, лучше ограничить количество ревизий, а не отключать их полностью.
Если вам нужен более системный набор инструментов для чистки сайта, дублей и технической оптимизации, можно посмотреть Clearfy Pro: https://wpshop.ru/plugins/clearfy. Но даже с плагином логика остается той же: сначала диагностика, потом точечная правка, потом проверка результата.
Мини-чек-лист перед удалением
- проверил трафик и показы в Search Console;
- посмотрел входящие и внутренние ссылки;
- понял, есть ли замена для URL;
- выбрал стратегию: удалить, редирект, 410 или noindex;
- сделал бэкап базы и файлов;
- после изменений проверил код ответа и sitemap;
- очистил кеш и перепроверил старые адреса.
Если пройтись по этому списку до удаления, шанс случайно потерять полезный контент заметно ниже. В WordPress почти всегда выигрывает не самая быстрая чистка, а аккуратная.