robots禁止抓取规则为什么还被收录
有时候不希望搜索引擎抓取某些内容可以写robots.txt文件放到根目录,按理蜘蛛会首先读取这个文件,按照robots协议抓取相应的内容。但是许多站长们发现,蜘蛛并不太遵守这个协议。
为验证这个问题,做了测试后发现,如果蜘蛛已经抓取并有索引、快照了,这个时候再写robots就不遵守这个协议了,一般在robots中禁止抓取文件夹如下,
Disallow:/about/
还不放心,在页面里增加<meta>声明
<meta name="robots" content="noindex,follow" />
这个声明的意思是告诉蜘蛛不建立索引,可以沿着路径继续抓取内容。以为这就能让已经收录的快照删除了,有网友说这需要等待,时间都说不好。
百度有个规则是判断页面质量,如果多个页面重复内容过多,会被降权,甚至移出索引库。等待很长世间才会被移出索引库,一般调整过的网站的收录量会减少,但不是大幅度减少,是因为有些垃圾页面在算法更新后被移出索引库而已,这对于正规SEO做法的站长来说是好事,垃圾页面会影响到网站的排名。
robots和nofollow都能控制蜘蛛抓取范围,而两个的用法不尽相同。
robots协议
告诉蜘蛛哪些内容可抓取,哪些不可抓取。原则是:参与排名的就让蜘蛛抓,不参与的或涉及到信息安全的不抓取。
nofollow标签
告诉蜘蛛该页面内,某链接不可信任,不传递权重。一般在页面链接较多的情况下(页面会给该页面下所有链接权重),为了集中页面权重,一些无关紧要的链接采用nofollow加以控制。
简单说,nofollow主要是为了集中某个页面的权重,而robots是控制整个网站的蜘蛛抓取范围。那么问题来了,为什么很多时候蜘蛛不遵守我们的robots协议呢?(一些垃圾蜘蛛是完全不遵守robots协议的)我们说的蜘蛛主要指百度、谷歌蜘蛛。
①书写错误
robots.txt的书写格式是一行一行的写,不能连着写,如
User-agent: * Disallow: /cgi-bin/ Disallow: /tmp/
每个记录都需要另起一行,每个记录里不允许空行,空行用来分割不同的记录。正确的如
User-agent: * Disallow: /cgi-bin/ Disallow: /tmp/
很多时候搜索引擎抓取了你 robots.txt 不允许抓取的内容不是因为机器人不遵守,而是从抓取到索引到展现这个过程需要一段时间,当搜索引擎已经抓取了,你才更新,那么之前抓取的是不会那么快删掉的,删除周期并不规律,一般是算法更新后生效的情况多些。
下面说下几个新手可能会需要的信息。
1、robots.txt 怎么写?
各大搜索引擎的站长平台(英文叫 webmasters )都有详细说明,也有生成工具。
2、怎样确定 robots.txt 有效?
站长平台都有抓取 robots.txt 的工具,也会有“抓取工具”来确认某个页面是不是可以正确抓取。
3、怎样通知搜索引擎 robots.txt 已更新?
和上面的一样,通过站长平台的抓取工具重新抓取(有的是“更新”)即可。
4、让搜索引擎抓取了不应该抓取的内容怎么办?
这个常用方法有几种:
* 在站长平台的删除链接工具中输入链接并确认删除 * 修改代码使搜索引擎访问时返回错误代码(503、404等),然后在站长平台重新抓取 * 修改 robots.txt (这个只建议在上面两个操作过之后补充)
5、整站禁止抓取,如何操作更有效?
有的搜索引擎索引是不遵守 robots.txt 的,只有在展现的时候遵守,也就是说,就算你 robots.txt 写明了禁止抓取,你会发现还是有机器人来爬。
所以如果是大目录或者是整站禁止抓取,建议在服务器软件(如 nginx)的代码段中直接判断搜索引擎 UA 并返回错误代码。这样一方面可以减轻服务器压力,一方面可以真正禁止抓取。
上一篇:网站内容相似度高的处理办法