В данной статье я хочу рассмотреть один из способов применения операторов языка запроса поисковых машин Яндекс и Google для решения полезной практической задачи – поиска поддоменов сайта, проиндексированных этими поисковыми машинами.

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

Решение задачи поиска поддоменов в поисковом индексе базируется на простой логической операции – последовательном отрицании при поиске по всему сайту уже известных нам поддоменов. Поиск по всему сайту и в Яндексе и в Google осуществляется с помощью одинакового оператора site:, для которого в качестве значения необходимо указать домен сайта. Например, site:yandex.ru или site:google.com.

Что же касается поиска по определенному поддомену, то в Яндексе это можно сделать с помощью документированного оператора host:. Необходимо иметь ввиду, что указание домена без www и c www дает разные результаты – проиндексированные страницы только с домена второго уровня и только с поддомена www соответственно:

Особенность оператора host: заключается в том, что он не чувствителен к виду протокола http или https, то есть с помощью этого оператора невозможно отделить в выдаче страницы с протоколами http и https друг от друга.

Таким образом, для поиска поддоменов сайта в Яндексе с помощью оператора отрицания ~~ на первом этапе убираем из поиска по всему сайту документы из корневого домена и/или поддомена www и получаем в выдаче документы с других поддоменов:

Отмечу, что здесь есть некоторая особенность. Дело в том, что в случае достаточно большого количества поддоменов этот список может быть неполным (вообще связка операторов ~~ и host: весьма странным способом то ли группирует, то ли фильтрует результаты поиска), и его необходимо будет уточнять последовательным отрицанием имеющихся в списке поддоменов (при этом в выдаче могут появляться новые поддомены):

Соответственно возможности метода в общем случае ограничены вместимостью поисковой строки (на сегодня ограничение на длину поискового запроса в Яндексе составляет 400 символов).

Рекомендую использовать в URL страницы поисковой выдачи get-параметр &rd=0, который позволяет снять ограничение на показ документов с одинаковыми сниппетами (подробнее см. в моей статье «Параметры URL страницы выдачи Яндекса»).

В Google нет аналога яндексовскому оператору host:, однако поиск по конкретному поддомену там можно осуществлять с помощью недокументированного оператора inurl:, указав в качестве значения полный (включая протокол) адрес поддомена. Например: inurl:https://google.com или inurl:http://www.google.com. Здесь надо иметь в виду, что оператор inurl: ищет вхождение заданной подстроки в URL документа:

Соответственно, данный способ подразумевает разделение в выдаче страниц с http и https протоколами. А если же указывать в качестве значения просто доменное имя без прокола, то нужного результата мы можем не добиться, т.к., к примеру, все поддомены в качестве подстроки будут включать в себя доменное имя.

Итого, для поиска поддоменов сайта в Google с помощью оператора отрицания (минус) на первом этапе убираем последовательно из поиска по всему сайту документы из корневого домена и/или поддомена www по обоим проколам (в случае необходимости) и получаем в выдаче документы с других поддоменов:

В отличие от ситуации с Яндексом, здесь какой-либо особой фильтрации результатов не замечено, кроме стандартной фильтрации результатов, которые «очень похожи на уже представленные выше». Стандартная фильтрация обходится добавлением в URL страницы выдачи get-параметра &filter=0 (подробнее см. в моей статье «Параметры URL страницы поисковой выдачи Google»). Равно как не замечено и группировок, поэтому также в случае большого количества поддоменов, для большей информативности результатов, будет полезно применение последовательного отрицания уже известных поддоменов, т.к. страницы с одного-двух поддоменов могут забить видимую выдачу. Опять же, здесь мы, как и в случае с Яндексом, ограничены лимитом на длину поискового запроса, в Google он составляет 32 слова.

Кстати, в Яндексе есть также оператор inurl: (бывший некогда документированным, затем прошлым летом исчезнувший из официальной документации, но на данный момент корректно функционирующий) с точно такой же функцией поиска в адресе документа, но по причине того, что он в отличие от гугловского, полностью игнорирует заданный протокол (по сути вырезая его из подстроки), он не годится для решения поставленной задачи:

Сергей Людкевич
Независимый консультант, супермодератор форума о поисковых системах Searchengines.Guru. Сфера профессиональных интересов - исследование алгоритмов ранжирования поисковых машин, разработка методик поискового продвижения сайтов.

Прокомментировать

2 Комментарий на "Поиск поддоменов сайта в индексе Яндекса и Google"

Notify of
Sort by:   newest | oldest | most voted
Andrey Stepanov
Гость

Есть же похожий рекурсивный метод, только через rhost, вроде как до сих пор корректно работает (правда тоже ограничен длинной поисковой строки)

Сергей Шабуров
Гость

Был случай, когда в индексе было много нормальных поддоменов и надо было найти технические поддомены. Методом последовательного исключения не хватило поисковой строки на запрос) экономил каждый символ, поэтому в rhost — +1 символ к каждому запросу)

wpDiscuz