SEO之robots.txt

199 阅读2分钟

网络爬虫一般会基于网站下存放的robots.txt进行爬去,若无robots.txt,则默认所有内容可以被搜索引擎爬取。

通用的robots.txt设置一般如下所示

User-Agent: *
Allow: /
Disallow: /*.css
Disallow: /*.js

可以通过地址栏访问查看各个网站的检索规则。https://example.com/robots.txt即可,下面为几大互联网厂商的robots.txt

规则语法

  • user-agent:标识相应规则适用于哪些抓取工具。
  • allow:可抓取的网址路径。
  • disallow:不可抓取的网址路径。
  • sitemap:站点地图的完整网址。一般是xml文件,也存放在根路径下,https://example.com/sitemap.xml
  • Crawl-delay:抓取延迟指令,仅个别抓取引擎(BingBotSlurp)支持。抓取延迟并不代表抓取速率,参数定义了时间窗口的大小(从 1 到 30 秒),在此期间爬虫仅抓取网站一次。
  • * 通配符—匹配0或多个任意字符,$匹配行结束符,和正则语法类似
  • #注释—说明性的文字,可不写。
  • 目录、网址的写法都以以正斜线 (/) 开头。如:Disallow:/Disallow:/images/Disallow:/admin/Disallow:/css/

注:

  • user-agent不区分大小写,allowdisallowsitemap区分大小写。
  • 常见的user-agentGooglebotBaiduspiderBingBotSogou web spiderSogou inst spiderSlurp(雅虎)等等。
  • BingBot为例,Crawl-delay:5,代表抓取延迟为 5,BingBot会将一天划分为更小的 5 秒窗口,每个窗口仅抓取一页(或不抓取),一天最多抓取约(246060/5)17280个页面。

代理顺序:有多个组与特定用户代理相关时,像Google抓取工具会在内部合并;对于某个抓取工具而言,只有一个组是有效的。

规则顺序:匹配 robots.txt 规则与网址时,抓取工具会根据规则路径的长度使用最具体的规则。如果规则(包括使用通配符的规则)存在冲突,Google 将使用限制性最弱的规则。

Google通常会将 robots.txt文件的内容最多缓存24小时,但在无法刷新缓存版本的情况下(例如出现超时或 5xx 错误时),缓存时间可能会延长。

参考链接