wpupdate.ru wordpress WP Update

Как найти и удалить сиротые страницы в WordPress без потери SEO

Сиротая страница — это URL, на который не ведёт ни одна внутренняя ссылка. Для пользователя она часто выглядит как «забытый» материал, а для сайта превращается в слабое место: такие страницы хуже обходятся, сложнее попадают в структуру, а иногда висят в индексе без пользы. В WordPress это особенно заметно после редизайна, миграции, массовой правки рубрик или чистки контента.

Ниже — рабочий сценарий: как найти сиротые страницы, понять, что с ними делать, и не сломать SEO при удалении.

Когда проблема действительно есть

Не каждая страница без ссылок — ошибка. Иногда это нормально: лендинги из рекламы, страницы акций, закрытые документы, служебные формы. Проблема начинается, когда в сиротых URL попадают обычные записи, категории, страницы услуг или материалы, которые должны участвовать во внутренней перелинковке.

Типичные признаки

  • страница есть в индексе, но на неё не ссылается меню, рубрики и связанные материалы;
  • в отчётах поисковых систем URL получает мало или ноль внутренних переходов;
  • после удаления раздела старые материалы остались доступны по прямой ссылке;
  • в админке контент выглядит «живым», но в структуре сайта его не видно.

Диагностика: как найти сиротые URL

Самый надёжный способ — сверить карту сайта, внутренние ссылки и список опубликованных материалов. Для небольшого сайта это можно сделать вручную, для среднего — через краулер или выгрузку из базы.

Проверка через краулер

Если у вас есть Screaming Frog, Sitebulb или аналогичный инструмент, просканируйте сайт и посмотрите, какие URL не получают внутренних входящих ссылок. Это быстрее всего показывает реальную картину, особенно если на сайте много таксономий, архивов и шаблонных блоков.

Проверка через WordPress и SQL

Если нужен быстрый технический срез, можно получить список опубликованных страниц и отдельно проверить, есть ли на них внутренние ссылки из контента. Для начала удобно выгрузить все опубликованные записи и страницы:

SELECT ID, post_title, post_type, post_name, post_date
FROM wp_posts
WHERE post_status = 'publish'
  AND post_type IN ('post', 'page')
ORDER BY post_date DESC;

Дальше уже сравнивают этот список с результатами краулинга. Если страница опубликована, но входящих внутренних ссылок нет, это кандидат в сироты.

Быстрая проверка через шаблонную логику

Иногда полезно посмотреть, где сайт вообще может создавать ссылки автоматически. Например, если у вас отключены блоки «похожие записи», вырезаны хлебные крошки или в шаблоне убраны ссылки на рубрики, количество сирот резко растёт. Тут проблема не в одной странице, а в структуре перелинковки.

Что делать с сиротой: удалить, связать или переназначить

Универсального ответа нет. Решение зависит от того, есть ли у страницы поисковый трафик, внешние ссылки и смысл в текущей структуре сайта.

ВариантКогда подходитРиск
Оставить и связатьСтраница полезна, но выпала из структурыМинимальный
Объединить с другой страницейКонтент дублируется или устарелНужно аккуратно настроить редирект
Удалить с 410/404Материал не нужен и не имеет ценностиПотеря трафика, если URL уже ранжировался

Сценарий 1: страница полезна

Если материал нужен, добавьте на него ссылки из релевантных записей, рубрик, блоков «связанные материалы» и навигации по разделу. В WordPress это часто решается не кодом, а правкой шаблона и редакторских блоков.

Практика: после публикации новой статьи сразу добавляйте 2–3 внутренних ссылки на старые материалы и наоборот. Это проще, чем потом искать сироты по всему сайту.

Сценарий 2: контент устарел, но есть замена

Если страница уже не нужна, но у неё есть смысловая замена, делайте 301-редирект на ближайший релевантный URL. Так вы сохраняете часть накопленного веса и не оставляете пользователя на тупике.

add_action('template_redirect', function () {
    if (is_page('staryj-url-slug')) {
        wp_redirect(home_url('/novyj-url/'), 301);
        exit;
    }
});

Этот вариант годится для точечного переноса. Если редиректов много, лучше вести их через сервер или специализированный плагин, чтобы не раздувать тему и не тащить логику в functions.php.

Сценарий 3: страница не нужна совсем

Если URL не должен существовать, удаляйте его и отдавайте корректный код ответа. Для уже проиндексированных страниц обычно безопаснее 410 Gone, если вы уверены, что замены не будет. Но если на URL есть внешние ссылки или трафик, сначала проверьте аналитику и Search Console.

Как безопасно найти сиротые страницы в теме или плагине

Если нужен более технический контроль, можно собрать список опубликованных страниц и проверить, встречается ли их URL в контенте других записей. Это не идеальный метод, но для небольших проектов помогает быстро найти очевидные дыры.

global $wpdb;

$pages = $wpdb->get_results(
    "SELECT ID, post_title, post_name
     FROM {$wpdb->posts}
     WHERE post_status = 'publish'
       AND post_type = 'page'"
);

foreach ($pages as $page) {
    $url_path = '/' . trim($page->post_name, '/') . '/';

    $count = $wpdb->get_var($wpdb->prepare(
        "SELECT COUNT(*)
         FROM {$wpdb->posts}
         WHERE post_status = 'publish'
           AND post_type IN ('post', 'page')
           AND ID != %d
           AND post_content LIKE %s",
        $page->ID,
        '%' . $wpdb->esc_like($url_path) . '%'
    ));

    if ((int) $count === 0) {
        echo esc_html($page->post_title) . "\n";
    }
}

У метода есть ограничение: он ищет только явные ссылки в HTML-контенте. Если у вас блоки, шорткоды или ссылки собираются динамически, часть внутренних переходов он не увидит. Поэтому воспринимайте его как вспомогательный, а не окончательный аудит.

Пошаговое решение

  1. Соберите список опубликованных страниц, записей и важных архивов.
  2. Просканируйте сайт краулером и найдите URL без внутренних входящих ссылок.
  3. Проверьте, есть ли у этих страниц трафик, внешние ссылки и смысл в структуре.
  4. Для полезных страниц добавьте ссылки из связанных материалов, рубрик, меню или хлебных крошек.
  5. Для устаревших страниц настройте 301-редирект на релевантную замену.
  6. Для ненужных URL удалите контент и убедитесь, что сервер отдаёт корректный код ответа.
  7. Обновите sitemap и повторно отправьте его в Search Console.

Проверка результата после внедрения

После правок важно не ограничиваться визуальной проверкой. Нужны три уровня контроля: технический, поисковый и пользовательский.

Что проверить в первую очередь

  • страница открывается по новому адресу, если был редирект;
  • старый URL отдаёт 301 или 410, а не 200;
  • новый адрес появился во внутренней перелинковке;
  • страница попала в sitemap, если она должна индексироваться;
  • в Search Console уменьшается число «необнаруженных» или «сиротых» URL по мере переобхода.

Если используете кэш, очистите его после правок. Иначе можно увидеть старую версию страницы и решить, что редирект не сработал.

Частые ошибки и как их исправить

Удалили страницу без редиректа

Так делают чаще всего. В результате старый URL остаётся в индексе или получает 404, хотя у него был смысловой аналог. Исправление простое: вернуть страницу временно, настроить 301 и только потом удалять окончательно.

Сделали редирект на нерелевантную страницу

Редирект на главную — плохая замена почти для любого контента. Поисковик и пользователь должны попадать на максимально близкую тему. Если подходящей страницы нет, лучше оставить 404/410, чем отправлять всё на главную.

Скрыли страницу из меню, но не добавили новые ссылки

Это частая ошибка после редизайна. Материал остаётся опубликованным, но выпадает из структуры. Проверьте не только меню, но и блоки в записях, хлебные крошки, архивы рубрик и связанные материалы.

Проверили только sitemap

Наличие URL в sitemap не означает, что на него есть внутренние ссылки. Для поиска сирот это слабый сигнал. Sitemap нужен для обхода, но не заменяет нормальную структуру сайта.

Безопасность и производительность

Если вы массово правите ссылки или редиректы, делайте это аккуратно. Перед изменениями сохраните резервную копию базы и проверьте, где именно хранится логика: в теме, в плагине или на уровне сервера. Для большого сайта лишний PHP-редирект на каждом запросе — не лучший вариант, особенно если правило можно перенести в конфигурацию веб-сервера.

Ещё один практический момент: не держите в контенте десятки ручных ссылок на старые URL без регулярной проверки. После миграции или смены структуры такие ссылки быстро превращаются в цепочки редиректов. Раз в несколько месяцев полезно прогонять сайт краулером и смотреть, не появились ли новые сироты.

Если нужен более широкий контроль за дублями, индексируемостью и технической чисткой сайта, в экосистеме WPShop есть Clearfy Pro: https://wpshop.ru/plugins/clearfy?utm_source=wpupdate.ru&utm_medium=article&utm_campaign=kak-najti-i-udalit-sirotye-stranicy-v-wordpress. Но даже с плагином принцип остаётся тем же: сначала диагностика, потом точечное исправление, а не массовое удаление наугад.

×
Прокачай свой сайт WordPress!

WordPress

-20% на премиум темы и плагины

Создай сайт своей мечты ⋙