从机器人尝试抓取旧的多站点的数千robots.txt 404错误

目前的情况是,由于域名redirect,我们在我们网站的不同地方寻找robots.txt的机器人获得了成千上万的404错误。

我们的旧网站是由多个域名的dotnetnuke驱动的迷宫式多站点。 我们已经转换到一个域名WordPress的单一网站。 剩下的域名现在只是redirect到网站上的类别。 这意味着googlebot,bingbot和其他许多人反复尝试索引以前是成熟的网站和redirect的领域。

www.EXAMPLE.co.ukredirect至www.EXAMPLE.co.uk/challenge/

所以/challenge/robots.txt有一千多个404s

和其他redirect一样,最终在/walktoschool/robots.txt等等

有一个聪明的方式来redirect机器人? 或者用不同的方式处理这个问题,或者让机器人停下来? 我们的新网站甚至不使用robots.txt,它使用htaccess与Better WP Security结合使用。 我已经向Google和Bing提出了重新抓取新网站的请求,但这是结果。

我是一个非营利组织的业余网站pipe理员,我真的不得不在地面上跑,任何帮助将受到感谢!

在做这种redirect时,只有一个适用的HTTP响应代码,即301 Moved Permanently 。 定义HTTP协议的标准RFC 2616定义了301响应代码(我强调):

被请求的资源已经被分配了一个新的永久性的URI ,任何将来对这个资源的引用都应该使用返回的URI之一。 具有链接编辑function的客户端应尽可能将对Request-URI的引用重新链接到服务器返回的一个或多个新引用 。 除非另有说明,否则此响应是可caching的

新的永久URI应该由响应中的位置字段给出。 除非请求方法是HEAD,否则响应的实体应该包含一个超链接到新URI的短超文本注释。

如果接收到301状态代码以响应除GET或HEAD以外的请求,则用户代理不能自动redirect请求,除非用户可以确认,因为这可能会改变发出请求的条件。

将其与HTTP 302 Foundredirect进行对比,在简单configuration“redirect”时经常使用该redirect,并将其定义为(同样,我的重点):

请求的资源暂时驻留在不同的URI下。 由于redirect有时可能会被改变,所以客户端应该继续使用Request-URI来处理将来的请求。 如果由Cache-Control或Expires标头字段指示该响应仅可caching。

临时URI应该由响应中的位置字段给出。 除非请求方法是HEAD,否则响应的实体应该包含一个超链接到新URI的短超文本注释。

如果接收到302状态码来响应除GET或HEAD以外的请求,用户代理不能自动redirect请求,除非用户可以确认,因为这可能会改变发出请求的条件。

因此,在您的scheme中执行HTTPredirect的正确方法是将Web服务器configuration为返回301响应,指示新的位置,而不是302响应。 有能力的客户端将存储新的URL并将其用于未来的任何请求。

我认为你最好不要redirect/robots.txt请求,同时还要redirect其他的东西。 如果旧网站过去有一个/robots.txt文件,你应该保留它。 否则,一个空的文件将会做。 但是,您也可以决定是否需要进行一些清理,并在旧域中放置/robots.txt文件,这些文件不允许在合并期间或合并后删除页面。