robots.txt是网站根目录下的一份纯文本说明文件,用于告知搜索引擎爬虫哪些路径可以抓取、哪些路径应当忽略。它直接影响爬虫对站点的抓取效率和新页面的收录速度。配置合理,爬虫会将资源集中在高质量页面上;配置失误,可能导致整站收录异常甚至完全不被索引。
很多站长把robots.txt当作安全工具来用,这是一种误解。它本质上是给守规矩的爬虫看的建议书,没有任何强制执行能力。任何人都可以直接在浏览器地址栏输入“你的域名/robots.txt”查看全部内容,信息完全公开。
它只能控制爬虫是否发起抓取请求,并不能决定页面最终是否进入搜索结果。即便某个页面被Disallow屏蔽,若站外有大量优质外链指向它,搜索引擎仍有可能收录并展示该页面,只是显示形式可能不完整。因此,涉及用户数据、后台管理、支付流程等敏感目录,必须依靠登录验证、IP白名单或Web应用防火墙等硬性防护手段,切勿依赖robots.txt来保护隐私。
关键认知:robots.txt约束的是自律的爬虫,对恶意采集脚本或数据抓取工具几乎不起作用。
文件由若干规则组构成,每组以User-agent行开头,跟随若干条指令。每条指令遵循“名称: 值”的格式,冒号须为英文半角,冒号后建议留一个空格。虽然多数主流爬虫对格式有一定容忍度,但规范书写能减少后续解
该行声明规则组的适用对象。若只想对Google搜索生效,写User-agent: Googlebot;希望所有搜索引擎遵循相同策略,用通配符User-agent: *。通过拆分多个规则组,可实现差异化管控,例如对谷歌完全放开,同时限制必应爬虫的抓取深度,避免不同搜索引擎带来的服务器负载失衡。
Disallow明令禁止的路径,Allow声明允许的路径,两者相互补充。容易出错的是:当Disallow后面留空(冒号后无内容)时,表示撤销所有限制,允许爬虫抓取全站。匹配规则上,搜索引擎采用“最长匹配优先”原则——URL路径匹配越长,优先级越高。举例来说,若同时存在Disallow: /api/和Allow: /api/public/,因后者匹配了更长的路径尾部,public目录下的接口会被正常抓取。
Sitemap指令用于提供站点地图的完整URL,建议放在文件末尾,帮助爬虫快速了解站点结构。Crawl-delay指令设定两次抓取间的最大间隔秒数,但需注意:Googlebot完全忽略该指令,其抓取频率由算法自行决定,设置Crawl-delay对谷歌无效。要控制Google的抓取强度,应通过Search Console中的抓取速率设置调整;该指令仅对部分遵循旧规范的爬虫有效。
常见的配置错误集中在文件位置、语法拼写和规则冲突三个方面。首先,文件必须命名为robots.txt且放在域名根目录,如https://example.com/robots.txt,放在子目录内不会生效。其次,所有字符均使用英文半角,避免中文冒号、全角空格等隐藏问题。再者,注意规则优先级,Allow与Disallow同时出现时,
具体排查可依以下步骤:
案例一:某电商网站误将Disallow: /写成Disallow: /(尾部多一个空格),导致部分目录解析异常,商品页收录骤降。案例二:某资讯站将Sitemap指令放在规则组中间,被爬虫忽略,网站地图迟迟未被发现。
避坑建议:每次修改robots.txt后,先用专业的robots.txt解析工具验证语法是否正确;不要写空行过多导致解析中断;不要用该文件屏蔽CSS、JS文件,否则会影响页面渲染得分和移动端抓取质量。
不会直接惩罚,但可能造成抓取异常,如首页消失、内容收录延迟。修正后提交给搜索引擎即可恢复,一般无需特殊申诉。
使用Disallow: /页面路径/来屏蔽特定目录或页面,同时确保其他路径不受影响。也可结合noindex标签。
通常爬虫会在数小时到数天内重新抓取该文件。若要加速,可在Search Console中请求抓取或提交更新后的robots.txt。
robots.txt是爬虫协作机制的重要一环,但并非万能工具。建议每月检查一次文件内容,确保语法正确、规则清晰,并利用官方工具定期验证。同时,把敏感数据交给更可靠的安全手段,让robots.txt专注于引导抓取而非兜底防护。立即检查你的根目录文件,避开常见陷阱,让收录效率更稳定。