我的网站上有一些网页要与搜索引擎保持距离,因此我在这样的robots.txt文件中不允许使用这些网页:
User-Agent: *
Disallow: /email

但我最近发现Google有时仍会返回指向这些网页的链接在他们的搜索结果中。为什么会发生这种情况,我该如何制止呢?
背景:
几年前,我为一个我的亲戚所涉及的俱乐部制作了一个简单的网站。他们想收到电子邮件因此,为了避免这些电子邮件地址最终出现在过多的垃圾邮件列表中,我没有使用直接的mailto:链接,而是使这些链接指向在我自己的网站上运行的简单重定向器/地址收集器陷阱脚本。此脚本将返回到实际的mailto: URL的301重定向,或者如果检测到可疑的访问模式,则返回包含大量随机虚假电子邮件地址以及指向更多此类页面的链接的页面。为了使合法的搜索机器人远离陷阱,我设置了上面显示的robots.txt规则,不允许使用合法的重定向器链接和陷阱页面的整个空间。
最近,俱乐部中的一名人员搜索了Google以他们自己的名字命名,当第一页上的结果之一是指向重定向脚本的链接时,感到非常惊讶,标题由他们的电子邮件地址和我的名字组成。当然,他们立即通过电子邮件给我发送邮件,并想知道如何将其地址从Google的索引中删除。我也感到非常惊讶,因为我根本不知道Google会为此类URL编制索引,这似乎违反了我的robots.txt规则。
我确实设法向Google提交了删除请求,并且看起来确实可行,但我想知道Google为何以及如何绕过我的robots.txt,以及如何确保所有不允许的页面都不会出现在他们的搜索结果中。
附言实际上,在准备此问题时,我实际上找到了可能的解释和解决方案,我将在下面发布该解释和解决方案,但是我认为无论如何如果有人可能遇到相同的问题,我还是会提出来。请随时发布您自己的答案。我也想知道其他搜索引擎是否也这样做,以及相同的解决方案是否也适用于它们。

评论

“以及Google如何规避我的robots.txt”,我猜您已经知道了这一点(或者您最初将如何建立一个网站),但万一有些不幸的傻瓜流连忘返... robots.txt文件就像某人车道旁的小“禁止擅自进入”标志。这不是魔术,并且(除非有访客明确要求,否则)他们可以漫步到您的住所而不会受到其存在的轻微影响。互联网上有与之类似的泛光灯和铁丝网围栏,但是如果您想要这些,则不是robots.txt。

#1 楼

如果存在从他们抓取的其他页面指向这些URL的链接,则Google似乎故意在其索引中包含robots.txt中不允许的URL。要引用其网站站长工具帮助页面,请执行以下操作:


“尽管Google不会抓取robots.txt阻止的页面内容或将其编入索引,但如果我们在U​​RL上找到了它们,我们仍然可以为这些URL编制索引结果,该页面的URL以及可能的其他公共可用信息(例如指向站点链接的锚文本或Open Directory Project(www.dmoz.org)的标题)可以出现在Google搜索结果中。”



显然,Google将Disallow中的robots.txt指令解释为禁止抓取页面,而不是为其编制索引。我认为从技术上来说这是一种有效的解释,即使它确实对我不利,也违反了法律。

在这篇采访文章中,Google的Matt Cutts提供了更多背景知识,并且确实提供了合理的解释为什么要这样做:


“在早期,很多非常受欢迎的网站根本都不想被抓取。例如,eBay和《纽约时报》不允许任何搜索引擎,或者至少不是Google都无法对其进行任何爬网。国会图书馆的各个部分都说不允许您使用搜索引擎进行爬网。因此,当有人来到Google并输入eBay时,而且我们还没有爬网eBay,也无法退货eBay,我们看起来不太理想。因此,我们决定提出的妥协是,我们不会从robots.txt中抓取您,但是我们可以返回我们看到的那个URL引用。“


在这两个页面上推荐的解决方案是在不需要索引的页面上添加一个noindex元标记。 (X-Robots-Tag HTTP标头也应适用于非HTML页面。不过,我不确定它是否可用于重定向。)矛盾的是,这意味着您必须允许Googlebot抓取这些页面(通过将它们完全从robots.txt中删除) ,或为Googlebot添加一组单独的,更宽松的规则),因为否则,它一开始就看不到meta标签。

我将重定向/蜘蛛陷阱脚本编辑为同时发送meta标签和带有值X-Robots-Tagnoindex,nofollow标头,并允许Googlebot抓取我的robots.txt中的脚本网址。 Google会对我的网站重新编制索引后,我们将查看它是否有效。

#2 楼

的确,尽管这样做可以防止Google(和优秀的bot)抓取这些页面并阅读其内容,但是如果它们链接到SERP,则它们仍可以在URL中显示仅URL链接,形式为:



如您所见,没有标题或描述,它实际上只是URL。通常,除非您明确搜索它们,否则通常不会从SERP中省略这些类型的结果。

正如您在答案中提到的那样,如果您不希望URL在SERP中完全出现,那么您需要允许使用机器人,但要包含noindex元标记。