搜索引擎爬虫访问一个网站时,第一件事就是查看根目录下的robots.txt文件。这个纯文本文件相当于站点的“访客守则”,告诉爬虫哪些区域可以自由通行,哪些区域需要绕行。合理配置这份文件,能让搜索引擎把有限的抓取额度花在刀刃上,重要页面更快被索引,同时减少服务器不必要的负担。
爬虫每次动手抓取内容之前,都要先找到并读取robots.txt,根据其中写明的指令来判断接下来的行动路线。这里有一条容易忽略的默认规则:文件只列出“禁入”区域,凡是没写到的路径,爬虫都有权访问。所以,编写时想清楚“不让看什么”比“让看什么”更关键。
标准文件里主要有四个指令段:User-agent指明这份规则针对哪种爬虫,Disallow列出禁止访问的路径,Allow负责单独放行某些文件,Sitemap则用来主动告知网站地图的地址。比如要拒绝所有爬虫抓取整站,只需要两行:User-agent: *,Disallow: /。虽然写法简单,但真正把规则用好,还需要注意优先级和顺序。
新手最容易犯的错,就是屏蔽范围写得过大,结果首页、分类页甚至结算页面都被爬虫挡在门外。正确的做法是逐条列出需要屏蔽的路径,例如后台目录(/admin/)、临时测试目录(/temp/)以及带参数跳转的搜索页(/search?)。规则写好之后,别急着上线,先用站长工具或在线爬虫模拟器验证一下,看看实际生效的效果是否符合预期。
有时我们想屏蔽整个目录,却要保留其中的个别文件,这时候Allow指令就派上用场了。假设要挡住/private/下的所有内容,但允许爬虫抓取其中的/report.pdf,规则可以这样写:
这里有个细节值得留意:Allow规则要紧接着对应的Disallow规则写,并且路径必须完整到文件名,顺序颠倒了或路径写得不全,都有可能引发冲突,让规则失效。
在robots.txt里加上Sitemap声明,相当于主动递给搜索引擎一张网站地图,能明显缩短新页面的发现时间。写法非常直观:Sitemap: https://www.example.com/sitemap.xml。对于刚上线的站点或者内容更新频繁的平台,这一步值得优先落实。
实际配置过程中,不少人会掉进一些隐蔽的陷阱里。下面这几种情况,碰到时要把它们当作排查重点:
如果发现抓取行为异常,可以先去robots.txt的在线测试工具里逐条检查规则,再结合站长平台的抓取报告,看看是语法问题还是路径匹配出了偏差。
写完规则不等于万事大吉,验证环节同样重要。建议从三个层面入手:一是用搜索引擎官方的抓取测试功能,查看某条具体URL是被允许还是被拒绝;二是在浏览器里直接访问robots.txt的地址,确认文件能正常打开且内容无乱码;三是观察一段时间内服务器日志中爬虫的访问记录,看是否还有爬虫在反复请求本应屏蔽的路径。如果发现异常,及时修正规则并等待爬虫重新抓取即可。
搜索引擎对robots.txt的抓取频率通常较高,一般在几小时到一两天内就会重新读取并应用新规则。如果想加快速度,可以在站长平台手动提交更新,触发一次重新抓取。
不能完全依赖它。robots.txt只是阻止爬虫访问,如果页面上已经有外部链接,搜索引擎仍可能通过其他途径发现并收录URL,只是无法抓取内容。想彻底禁止收录,需要配合使用noindex标签。
如果设置Disallow: /屏蔽所有爬虫,原有已收录的页面在短期内可能还会出现在搜索结果中,但搜索引擎最终会逐步清除这些快照。这种设置适合开发中的临时站点,正式上线前务必移除。
robots.txt虽然只是一个小文件,却直接影响搜索引擎对站点的抓取效率和资源分配。把握住“精准屏蔽、按序排列、及时验证”这三条原则,就能让网站的收录节奏更健康。建议每隔一段时间复查一遍规则,结合站点结构和内容的更新情况,及时调整禁区和放行策略,让每一次爬虫来访都物有所值。