搜索引擎爬虫访问网站时,第一件事就是到根目录找名为 robots.txt 的文件。这个纯文本文件相当于网站写给爬虫的"通行手册",清晰标出哪些页面可以抓取、哪些路径需要回避。设置得当,既能保护后台等敏感区域不被收录,又能让爬虫把有限的抓取资源集中在关键页面上,对网站搜索表现有显著积极影响。
robots.txt 文件必须放在网站根目录,例如 https://yourdomain.com/robots.txt,文件名区分大小写,建议以 UTF-8 格式保存。每条规则独立成行,行尾避免多余空格。编写规则前,务必理清三个核心字段的功能与适用边界:
除了上述指令,文件内还可加入 Sitemap 行声明站点地图地址。下面是一个常见组合示例:
User-agent: *
Disallow: /admin/
Allow: /admin/public/
Sitemap: https://yourdomain.com/sitemap.xml
这段配置含义:默认放开全站抓取,阻止访问 /admin/ 目录,其中 /admin/public/ 被单独允许。但这里有个隐蔽陷阱:若搜索引擎不识别 Allow 指令,它只会遵循 Disallow 规则,导致 /admin/public/ 对它而言仍是无法访问的禁区。
不同网站的 robots.txt 表现形式大相径庭。以下三个模板覆盖多数站点普遍需求,可基于自身路径进行替换。
对内容型站点或刚上线的新网站,通常希望所有页面均被搜寻。此时可只保留一条规则:
User-agent: *
Disallow:
其实直接删除 Disallow 这一行也能达到相同效果。最需警惕的是误写成 Disallow: /,这会瞬间阻绝所有爬虫进入,导致收录数据立刻下滑。修改后建议到各搜索引擎站长平台用抓取测试工具验证。
不想要某个特定搜索产品收录时,可单独为它设定规则:
User-agent: Bingbot
Disallow: /
该操作不影响其他爬虫访问策略。注意爬虫名称必须准确,Googlebot、Baiduspider、Sogou 蜘蛛的名称各不相同,写错或漏写都导致规则失效。
电商或后台系统常有大量动态参数 URL,如 ?id= 或 ?page=,这些页面不仅占用抓取配额,还可能造成重复内容。可采用以下思路配置:
User-agent: *
Disallow: /*?*
Disallow: /admin/
Disallow: /cart/
注意 Disallow: /*?* 会拦截所有带问号的 URL,适合纯静态站点,但若网站关键页面也依赖参数(如搜索页),需谨慎使用,避免误伤正常收录。建议先用站长平台的抓取报告确认参数 URL 的实际占比再做决定。
实际运维中,robots.txt 的错误往往是"小疏忽、大影响",以下三类高频陷阱值得格外留意。
第一,通配符与字符集兼容问题。 部分搜索引擎对 * 和 $ 符号支持不完整,旧版爬虫可能忽略整条规则。判断标准:规则写完后,用不同搜索引擎的测试工具分别验证是否生效,不能只看 Google 的结果。
第二,大小写与路径结尾歧义。 Disallow 的值区分大小写,/Admin/ 和 /admin/ 是两个不同路径。同时,Disallow: /admin 会同时拦截 /admin 和 /adminxxx,若需精确匹配目录,必须在结尾加斜杠。
第三,Allow 与 Disallow 的优先级理解。 Google 遵循"最短匹配路径优先"原则,而其他搜索引擎可能只看 Disallow。若依赖 Allow 放行子路径,务必先确认目标爬虫类型,不支持的爬虫只能通过调整 Disallow 规则来规避。
写好 robots.txt 不等于配置完成,验证和维护同样关键。具体步骤如下:
维护时注意:不要将临时封禁某页面的需求长期写入规则,否则后续忘记清理会导致收录缓慢。建议每季度审查一次,移除已经不需要的 Disallow 条目,保持文件精简。
不会直接触发惩罚,但若误屏蔽全站,爬虫无法抓取页面,收录会逐步归零,间接影响自然流量。更危险的是一旦恢复,可能需要数周才能重新收录,因此修改前务必备份原文件。
不一定,但建议保持同域名以保证可访问性。如果 Sitemap 放在其他子域名或 CDN 上,需确保该地址对爬虫可访问,否则声明无效,不会报错却也无实际作用。
能。robots.txt 只控制爬虫抓取与索引,不影响用户直接访问页面。屏蔽后页面从搜索结果消失,但外链点击依然有效,只是无法带来搜索流量的增长。
robots.txt 是搜索引擎与网站沟通的第一道关卡,字段不多却处处是坑。建议先从全站开放模板起步,按需加入 Disallow 规则,每次修改后用各站长平台工具验证。避免使用过于复杂的通配符和依赖 Allow 指令,保持文件简单明了,能显著降低配置出错概率,让爬虫资源真正用在刀刃上。