Поиск поддоменов сайта в индексе Яндекса и Google
В данной статье я хочу рассмотреть один из способов применения операторов языка запроса поисковых машин Яндекс и 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: (бывший некогда документированным, затем прошлым летом исчезнувший из официальной документации, но на данный момент корректно функционирующий) с точно такой же функцией поиска в адресе документа, но по причине того, что он в отличие от гугловского, полностью игнорирует заданный протокол (по сути вырезая его из подстроки), он не годится для решения поставленной задачи: