Почему в результаты поиска Google включены страницы, запрещенные в файле robots.txt?

18

У меня есть несколько страниц на моем сайте, от которых я не хочу заниматься поисковыми системами, поэтому я запретил их в своем robots.txtфайле следующим образом:

User-Agent: *
Disallow: /email

Однако недавно я заметил, что Google по-прежнему иногда возвращает ссылки на эти страницы в результатах поиска. Почему это происходит, и как я могу это остановить?

Фон:

Несколько лет назад я сделал простой веб-сайт для клуба, в который был вовлечен мой родственник. Они хотели, чтобы на их страницах были ссылки на электронную почту, поэтому, чтобы эти адреса электронной почты не попадали на слишком много списки спама, вместо использования прямых mailto:ссылок, я сделал так, чтобы эти ссылки указывали на простой скрипт переадресации / перехватчика адресов, работающий на моем собственном сайте. Этот сценарий возвращает либо перенаправление 301 на фактический mailto:URL-адрес, либо, если обнаружен подозрительный шаблон доступа, страницу, содержащую множество случайных поддельных адресов электронной почты и ссылки на другие подобные страницы. Чтобы не допустить легитимных поисковых роботов в ловушку, я установил robots.txtприведенное выше правило, запрещающее все пространство как легальных ссылок перенаправителя, так и страниц ловушек.

Совсем недавно, однако, один из людей в клубе искал в Google свое собственное имя и был весьма удивлен, когда одним из результатов на первой странице стала ссылка на скрипт перенаправителя, за которым следовал заголовок, состоящий из их адреса электронной почты. по моему имени Конечно, они сразу же отправили мне электронное письмо и хотели узнать, как получить свой адрес из индекса Google. Я тоже был весьма удивлен, так как я не знал, что Google вообще будет индексировать такие URL, по-видимому, в нарушение моего robots.txtправила.

Мне удалось отправить запрос на удаление в Google, и он, кажется, сработал, но я хотел бы знать, почему и как Google обходит это robots.txt, и как сделать так, чтобы ни одна из запрещенных страниц не отображалась на их результаты поиска.

Ps. Я действительно нашел возможное объяснение и решение, которое я опубликую ниже, при подготовке этого вопроса, но я решил спросить его в любом случае на случай, если у кого-то еще может возникнуть такая же проблема. Пожалуйста, не стесняйтесь размещать свои собственные ответы. Мне также было бы интересно узнать, делают ли это и другие поисковые системы, и работают ли те же решения для них.

Илмари Каронен
источник
1
как Google обходит мой robots.txt" Я предполагаю, что вы уже знаете это (или как на самом деле вы могли бы создать сайт в первую очередь), но в случае, если какой-нибудь несчастный дурак бродит мимо ... robots.txtфайл, как маленький знак «Посторонним вход воспрещен» рядом с чьей - то дороги. Это не волшебство, и (если посетитель явно не ищет его) они могут забраться на вашу собственность, даже не будучи слегка затронутым ее существованием. Есть интернет-эквиваленты прожекторов и колючей проволоки, но если это то, что вы хотите, robots.txtне так ли.
Парфянский выстрел

Ответы:

25

Похоже, что Google намеренно включает URL-адреса, запрещенные в robots.txtих индексе, если есть ссылки на эти URL-адреса с других страниц, которые они сканировали. Чтобы процитировать их справочные страницы Инструментов для веб-мастеров :

«Хотя Google не будет сканировать или индексировать содержимое страниц, заблокированных robots.txt, мы все равно можем индексировать URL-адреса, если найдем их на других страницах в Интернете. В результате URL-адрес страницы и, возможно, другие общедоступная информация, такая как якорный текст в ссылках на сайт или заголовок из проекта Open Directory (www.dmoz.org), может появляться в результатах поиска Google ".

По всей видимости, Google интерпретирует Disallowдирективу robots.txtкак запрет на сканирование страницы, а не на ее индексацию . Я полагаю, что это технически правильное толкование, даже если оно попахивает мне правилами.

В этой статье интервью Мэтт Каттс из Google дает немного больше информации и дает разумное объяснение, почему они делают это:

«В первые дни многие очень популярные веб-сайты вообще не хотели сканироваться. Например, eBay и New York Times не разрешали какой-либо поисковой системе или, по крайней мере, Google не сканировали какие-либо страницы с нее. В Библиотеке Конгресса были различные разделы, в которых говорилось, что вам нельзя сканировать с помощью поисковой системы. Итак, когда кто-то пришел в Google и набрал eBay, а мы не сканировали eBay, и мы не смогли вернуть eBay, мы выглядело немного неоптимально. Итак, компромисс, который мы решили найти, заключался в том, что мы не будем сканировать вас из robots.txt, но мы можем вернуть ссылку на URL, которую мы видели ».

Решение, рекомендованное на обеих этих страницах, заключается в добавлении noindexметатега к страницам, которые вы не хотите индексировать. ( X-Robots-TagЗаголовок HTTP также должен работать для страниц, отличных от HTML. Однако я не уверен, работает ли он с перенаправлениями.) Как это ни парадоксально, это означает, что вы должны разрешить роботу Googlebot сканировать эти страницы (либо robots.txtполностью удалив их , либо добавив отдельный, более разрешающий набор правил для робота Googlebot), поскольку в противном случае он не сможет увидеть метатег в первую очередь.

Я отредактировал свой скрипт перенаправления / ловушки для пауков, чтобы отправить метатег и X-Robots-Tagзаголовок со значением, noindex,nofollowи позволил роботу Googlebot сканировать URL-адрес скрипта в моем robots.txt. Посмотрим, сработает ли это, как только Google реиндексирует мой сайт.

Илмари Каронен
источник
5

Это правда, что хотя это должно помешать Google (и хорошим ботам) сканировать эти страницы и читать их содержимое, они все равно могут показывать ссылку только для URL в поисковой выдаче, если они связаны, в форме:

Ссылка только на URL в поисковой выдаче Google

Как видите, заголовка или описания нет, это буквально просто URL. Естественно, результаты такого типа обычно не включаются в результаты поиска, если вы явно не ищете их.

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

MrWhite
источник