robots.txt文件按子域和协议处理

由于robots.txt文件会影响抓取,因此对于网站所有者来说,了解搜索引擎对它们的处理方式非常重要。

多年来,我几次遇到一个有趣的robots.txt情况,这对于网站所有者来说很棘手。在解决了问题并与客户讨论如何解决问题之后,我发现许多人甚至根本不知道它会发生。并且由于涉及网站的robots.txt文件,因此可能会对SEO产生重大影响。

我指的是由子域和协议处理的robots.txt文件。换句话说,一个网站可以同时在www和非www上运行多个robots.txt文件,或者通过协议在https www和http www上运行。而且由于Google分别处理这些问题,因此您可以发送有关如何爬网(或不爬网)的非常不同的说明。

本文将介绍两个实际遇到问题的网站示例,并介绍Google的robots.txt文档,解释如何检测到这种情况,并在帮助客户的过程中提供一些技巧在这种情况下。

Robots.txt(按子域和协议)

我刚刚在上面提到Google会通过子域和协议来处理robots.txt文件。例如,一个网站可以有一个robots.txt文件位于非www版本上,而一个完全不同的文件位于www版本上。多年来,在帮助客户的过程中,我已经多次看到这种情况,而我最近才再次浮出水面。

除www和非www之外,网站还可以包含robots.txt文件,该文件位于子域的https版本,然后也位于该子域的http版本。因此,类似于我上面所解释的,可能会有多个robots.txt文件,它们基于协议具有不同的指令。

Google的文档清楚地说明了它如何处理robots.txt文件,建议您阅读该文档。

很明显,这可能会引起问题,因为Googlebot可能会为同一网站获取不同的robots.txt文件,并以不同方式抓取该网站的每个版本。Googlebot最终可能会做一些有趣的事情,而网站所有者错误地认为它是通过其robots.txt文件遵循一组指令的,而在其他抓取过程中它也正在运行第二组指令。

案例研究1:在www和非www上具有不同指令的不同robots.txt文件

最近在发布商网站上执行爬网分析和审核时,我注意到被robots.txt阻止的某些页面实际上正在被爬网和建立索引。我知道Google 100%遵守robots.txt关于抓取的说明,因此这显然是一个危险信号。

为了澄清起见,我指的是正常爬网和建立索引的URL,即使robots.txt指令应禁止爬网。Google仍然可以索引robots.txt阻止的URL,而无需实际对其进行爬网。我将在不久的将来详细介绍这种情况。

在手动检查该网站的robots.txt文件时,我在非www版本上看到了一组说明,但这些说明受到限制。然后,我开始手动检查站点的其他版本(按子域和协议),以查看是否存在任何问题。

事实确实如此,该网站的www版本上有一个不同的robots.txt文件。可以猜到,它包含的指令与非www版本的指令不同。

301站点未正确将robots.txt文件的www版本重定向到非www版本。因此,Google能够访问两个robots.txt文件,并找到两组不同的抓取指令集。同样,我知道许多网站所有者都不知道会发生这种情况。

关于被robots.txt阻止并可以编制索引的页面的快速说明

我之前提到过,仍然可以为robots.txt正确阻止的页面编制索引。他们只是不会爬行。Google已经对此进行了多次解释,您可以在其关于robots.txt的文档中阅读更多有关Google如何索引机器人化URL的信息。我知道这对许多网站所有者来说是一个令人困惑的主题,但是Google绝对可以为被禁止的页面编制索引。例如,当Google看到指向那些被阻止页面的入站链接时,便可以执行此操作。

发生这种情况时,它将为URL编制索引并在SERP中提供一条消息,指出“此页面无法提供任何信息”。再次,这不是我在这篇文章中所指的。我指的是根据Google看到的robots.txt文件的多个版本而被抓取和编入索引的URL。

Google Search Console(GSC)和robots.txt文件呢?

在Google Search Console的一个遥远地区,尘土飞扬的搜索风滚滚,有一个很棒的工具可供站点所有者在调试robots.txt文件时使用。它称为robots.txt测试仪,是我在GSC中最喜欢的工具之一。不幸的是,许多站点所有者很难找到。新的GSC没有指向它的链接,甚至GSC的旧版报告部分也未链接到它。

使用该工具时,您可以查看Google以前看到的robots.txt文件。如您所料,我在那里看到了两个robots.txt文件。是的,Google正式看到了第二个robots.txt文件。

不用说,我很快将有关信息,屏幕截图等通过电子邮件发送给我的客户,并告诉他们删除第二个robots.txt文件,然后将301版本重定向到非www版本。现在,当Google访问该网站并检查robots.txt文件时,它将始终看到正确的说明集。

但是请记住,现在有些URL的索引不正确。因此,我的客户正在打开这些URL进行爬网,但要确保文件未通过meta robots标记进行索引。一旦我们在GSC中看到总数下降,我们将包含正确的禁止指令以再次阻止该区域。

案例研究2:http和https的不同robots.txt文件以及禁止使用

举一个快速的第二个例子,几年前,一个网站所有者与我联系,该网站的自然搜索流量正在下降,却不知道为什么。深入研究后,我决定按协议检查网站的各种版本(包括每个版本的robots.txt文件)。

尝试检查robots.txt文件的https版本时,我首先必须点击Chrome中的安全警告。而一旦完成,一切就无处不在了……第二个robots.txt文件阻止了整个网站的爬网。robots.txt文件的https版本中一律禁止。例如,使用Disallow:

请注意,除了此问题外,网站上还有许多其他事情,但是拥有多个robots.txt文件和一个不允许使用毯子的文件并不是最佳选择。

与第一种情况类似,网站所有者迅速采取行动纠正了该问题(根据其CMS并非易事)。但是他们最终还是按顺序处理了robots.txt的情况。这是Google如何对待robots.txt文件以及通过子域或协议拥有多个文件的危险的另一个很好的例子。

交易工具:如何通过子域或协议检测多个robots.txt文件

要研究这种情况,除了可以手动检查每个子域和协议的robots.txt文件之外,还可以使用多种工具。这些工具还可以帮助您了解在整个网站上看到的robots.txt文件的历史记录。

Google的robots.txt测试器

我之前提到过robots.txt测试仪,它是直接来自Google的工具。它使您可以查看当前的robots.txt文件和Google选取的先前版本。它还充当沙箱,您可以在其中测试新指令。即使Google由于某种原因将其放置在GSC的遥远角落,它也是一个很棒的工具。

是的,互联网档案馆可以在这种情况下提供很大的帮助。我已经在搜索引擎领域的上一专栏中对此进行了介绍,但是该Wayback机器不仅用于检查标准网页。您也可以使用它来随时查看robots.txt文件。这是跟踪以前的robots.txt版本的好方法。

解决方法:301重定向至救援

为了避免子域名或协议出现robots.txt问题,我将确保您301将robots.txt文件重定向到首选版本。例如,如果您的网站在www上运行,则将非www robots.txt重定向到www版本。而且您应该已经将http重定向到https,但是只需确保重定向到首选协议和子域版本即可。例如,如果这是您网站的首选版本,请重定向到https www。并确保所有URL都在网站上正确重定向到首选版本。

对于其他子域,您可以选择具有单独的robots.txt文件,这完全可以。例如,您可能在子域forums.domain.com上拥有一个论坛,而这些说明可能与www不同。这不是我在这篇文章中所指的。我指的是核心网站的www与非www以及http与https。同样,其他子域绝对可以拥有自己的robots.txt文件。

由于它可以控制抓取,因此了解Google如何处理robots.txt文件至关重要。不幸的是,某些站点可能会通过子域或协议为多个robots.txt文件提供不同的说明。而且,根据Google对网站的爬网方式,它可能会找到一个,也可能会找到另一个,这可能会导致一些有趣的爬网和索引问题。我会按照本文中的指示进行操作,以了解您的网站当前的工作方式。然后确保您向Googlebot发送了最清晰的路线说明,以了解如何抓取您的网站。

评论已关闭。