Страница-сирота существует и может отвечать 200, но до неё нельзя добраться по внутренним ссылкам с других доступных страниц сайта. Она способна оставаться в sitemap, получать внешний трафик или храниться в CMS, поэтому обычный обход от главной её не найдёт.
Обнаружить сироту одним краулером невозможно: для сравнения нужны независимые источники URL.
Договоритесь о точном определении
Не всякая страница с одной ссылкой — сирота, и не всякий URL без ссылки обязан получить её. Зафиксируйте правило: внутренняя HTML-ссылка с href должна исходить с индексируемой страницы, которую робот способен загрузить. Ссылка из закрытого личного кабинета, результата внутреннего поиска или блока, появляющегося только после действия пользователя, не создаёт надёжного пути обхода.
Отдельно учитывайте глубину. URL на шестом уровне кликов технически не является сиротой, но его обнаружение и повторный обход затруднены. Поэтому в отчёте полезно иметь два статуса: «нет входящих ссылок» и «есть ссылка, но страница слишком глубоко».
Перед сбором данных определите область: основной протокол и хост, языковые версии, поддомены, параметры, пагинацию. Иначе служебные адреса, дубли со слешем и старые HTTP-версии смешаются с реальными документами.
Соберите множество доступных через ссылки URL
Запустите краулер с главной и, при необходимости, с корневых страниц отдельных разделов или языков. Разрешите выполнение JavaScript, если навигация строится клиентом, но сохраните отдельный результат без рендеринга: разница покажет ссылки, зависящие от скриптов.
Для каждого адреса нужны код ответа, конечный URL после редиректа, canonical, глубина, число входящих ссылок и страница-источник. Не включайте в множество назначения форм, mailto, внешние домены и фрагменты. Нормализуйте URL осторожно: параметры могут быть как техническим дублем, так и самостоятельной посадочной страницей.
Результат обхода — не список всех страниц сайта, а множество Crawl, которое робот обнаруживает по текущей ссылочной структуре. Правила построения связной архитектуры подробно разобраны в руководстве по внутренней перелинковке.
Добавьте независимые источники адресов
Соберите отдельные множества:
Sitemap— все URL из актуальных XML-карт и их индексов;Analytics— посадочные страницы с визитами за выбранный период;Search— страницы с показами, кликами или известным состоянием в консолях;Logs— URL, которые запрашивали поисковые роботы и пользователи;CMS— опубликованные сущности из базы или экспорта системы управления;Backlinks— адреса назначения внешних ссылок, если такой экспорт доступен.
У каждого источника своя погрешность. Sitemap может содержать устаревшие URL, аналитика не видит страницы без трафика, логи ограничены сроком хранения, CMS экспортирует черновики и системные сущности. Поэтому источники не заменяют друг друга. Их ценность появляется при сопоставлении.
Если XML-карта содержит редиректы, 404 и неканонические версии, сначала отметьте это как отдельную проблему. Рекомендации по очистке карты есть в статье об ошибках sitemap.
Сведите списки и вычислите кандидатов
Приведите адреса к единому формату: удалите фрагменты, нормализуйте хост и протокол согласно правилам сайта, но сохраните исходное значение в отдельной колонке. Не удаляйте параметры механически. Затем для каждого URL отметьте присутствие в источниках и в результате краулинга.
Базовая формула кандидатов выглядит так:
Orphan candidates = (Sitemap ∪ Analytics ∪ Search ∪ Logs ∪ CMS ∪ Backlinks) − CrawlОна даёт именно кандидатов. URL мог отсутствовать в Crawl из-за noindex, редиректа, авторизации, ошибки сервера или ограничения настроек краулера. Добавьте код ответа, canonical и тип сущности, прежде чем называть страницу сиротой.
Удобная таблица содержит колонки: URL, источник обнаружения, HTTP-статус, индексируемость, canonical, трафик, показы, дата обновления, назначение страницы, решение. Сортируйте сначала по рабочим индексируемым URL с трафиком или показами: они чаще требуют быстрого восстановления пути.
Проверьте каждый класс кандидатов
Рабочий URL с 200, самостоятельным canonical и полезным содержанием — главный кандидат на возвращение в структуру. Найдите, откуда логично сослаться: категория, хаб, хлебные крошки, связанная статья, карточка родительской сущности. Выбранная ссылка должна помогать посетителю; формального закрытия пункта в отчёте недостаточно.
Редирект не нужно «спасать» ссылкой: обновите источники на конечный адрес. Для 404 выясните, почему URL остаётся в sitemap, аналитике или базе; затем восстановите страницу, настройте релевантный редирект либо удалите устаревшее упоминание. Неканоническую версию замените канонической в ссылках и карте.
Страницы с noindex могут намеренно быть вне структуры: результаты поиска, служебные фильтры, страницы после отправки формы. Не добавляйте их в навигацию автоматически. Проверьте лишь, что ограничения согласованы с назначением. Подход к выбору действия для разных ошибок описан в плане исправления SEO-аудита.
Устраните причину появления сирот
Список исправленных URL быстро устареет, если не устранить механизм. Частые причины — миграция, при которой изменились адреса категорий; импорт материалов без привязки к рубрике; удаление блока «Похожие»; ошибка меню; фильтрация записей по новому статусу; разрыв языковой навигации; публикация через API в обход обычного процесса CMS.
Сгруппируйте находки по шаблону и дате. Если все сироты относятся к одному типу страниц и появились после релиза, проверяйте код генерации ссылок. Если это старые единичные статьи, вероятнее редакционная проблема. Сравнение опубликованных сущностей CMS с URL в навигации можно превратить в автоматический тест.
Хороший процесс публикации не допускает состояние «опубликовано, но ни к чему не привязано». Обязательными полями могут быть категория, родительский объект или хотя бы место в тематическом хабе. После программного импорта запускайте отдельную проверку обнаружения страниц: одной sitemap для контроля недостаточно.
Восстановите связи с учётом приоритета
Не вставляйте все найденные страницы в меню или футер. Сначала определите их роль. Коммерческая посадочная получает ссылку из соответствующей услуги или категории; справочная статья — из тематического обзора; архивный документ может остаться доступным по прямому URL, но быть исключён из индекса; бесполезный дубль следует консолидировать.
Выбирайте описательный анкор, соответствующий переходу. Проверьте, что ссылка присутствует в исходном или стабильно отрисованном HTML, не закрыта nofollow без причины и ведёт без промежуточного редиректа. После выкладки повторите обход от главной. Исправленный URL должен появиться в Crawl, получить хотя бы один уместный источник и сохранить правильный canonical.
Полный аудит сайта reChecker собирает страницы из sitemap и внутренних ссылок и сохраняет источник обнаружения. Для множества Crawl берите только URL, найденные обходом по ссылкам (crawl или both); адреса, пришедшие лишь из sitemap, должны остаться кандидатами в сироты. Затем добавьте экспорты CMS, аналитики, логов, поисковых консолей и внешних ссылок.
Сделайте проверку регулярной
Периодичность зависит от скорости изменений: маркетплейсу нужна частая сверка, небольшому корпоративному сайту — после релизов и пакетных публикаций. Храните предыдущий результат. Новая сирота важнее старого адреса, уже классифицированного как архивный.
Контроль можно встроить в выпуск: экспорт опубликованных URL сравнивается с краулингом тестовой или закрытой предпродакшен-версии; отдельно проверяется, что sitemap не содержит адресов без входящих ссылок, если для проекта это запрещено. После релиза выполняется короткий production-обход.
Итоговая таблица должна содержать решение для каждого кандидата: связать, обновить ссылку, перенаправить, удалить из карты, оставить служебным или восстановить. Добавьте владельца и дату повторного обхода. После выкладки полезные URL появляются в Crawl, а служебные и удалённые адреса сохраняют заранее согласованное состояние.