当搜索引擎蜘蛛来到一个网站时,它的第一站通常就是位于域名根目录下的 robots.txt 文件。这份纯文本协议扮演着"抓取守则"的角色,向蜘蛛明确划定了访问许可与禁区。若配置得当,它能有效避免后台管理页面或临时测试内容被搜索结果收录,同时让服务器有限的抓取配额集中在真正重要的页面上。
robots.txt 的存放位置有严格要求,它必须放在网站根目录下,即通过 https://yourdomain.com/robots.txt 能够直接访问。文件需以 UTF-8 编码保存,每一行承载一条规则,路径信息对大小写敏感。
构建一个完整的配置文件,主要依赖以下几个关键指令:
一个规范的标准配置示例如下:
User-agent: *
Disallow: /private/
Allow: /private/shared/
Sitemap: https://yourdomain.com/sitemap.xml
该示例传递出的信息是:所有蜘蛛均可访问网站,但 /private/ 目录整体处于禁止状态,仅其中名为 /shared/ 的子目录获得特批可正常抓取。这里有一个容易被忽略的细节:由于并非所有搜索引擎都支持 Allow,遇到不识别该指令的蜘蛛时,更严格的 Disallow 规则将发挥主导作用。
不同定位的网站,对抓取策略的需求截然不同。下面针对三种典型场景给出配置思路。
对于以内容收录为主要目标的新建站点或资讯类网站,往往期望蜘蛛能够畅通无阻地检索所有页面。此时,只需为 Disallow 设置一个空值即可:
User-agent: *
Disallow:
不写 Disallow 这行,同样能达到全站放行的效果。新手最容易犯的错误是误将 Disallow 的值写成 /,一旦出现该写法,所有蜘蛛将彻底停止抓取行为,网站收录随即陷入停滞,务必反复核对。
当出于流量分配或商业考量,不希望某一家搜索引擎收录网站内容时,可以为该蜘蛛单独编写专属规则:
User-agent: Baiduspider
Disallow: /
上述规则只对百度的爬虫生效,对其他搜索引擎如 Google、Bing 的抓取活动不产生任何干扰。在撰写这类内容前,应当到各搜索引擎的官方帮助文档中核实蜘蛛的标准名称,防止因命名不准确导致规则形同虚设。
网站后台、程序安装目录、临时预览页面等区域,并不适合向搜索用户公开。通过组合使用规则,可把这些模块屏蔽在搜索结果之外:
User-agent: *
Disallow: /admin/
Disallow: /temp/
Disallow: /*?from=ad
清单末尾的规则是利用通配符 * 拦截所有带有特定参数(如推广标识)的动态链接,避免大量低质量页面消耗抓取配额。编写这套规则的关键在于路径要与网站实际目录结构精确对应,可使用 /robots.txt 文件自查校验。
在实际运维中,不少站点因配置不当而遭遇收录异常。以下问题需要特别留意:
完成规则编写后,交付上线前的验证步骤不可省略。推荐采取以下方式来确认规则符合预期:
不会立即生效。搜索引擎需要重新抓取该文件并逐步处理已索引的 URL,从变更到页面退出搜索结果通常需要数日至数周时间。若要加速内容移除,可配合站点后台的索引删除工具提交申请。
对于支持 Allow 的搜索引擎,会按特定次序进行匹配,一般以路径长度或特定规则判断最精确匹配项。大多数场景下,允许规则用于在较宽泛的禁止范围内开辟一小块例外区域。若不确认蜘蛛的类型,谨慎使用 Allow 是较稳妥的选择。
旧域名文件不会影响新地址的抓取判断。建议在新域名上重新部署配置文件,并保持内容与当前站点的目录结构一致,同时做好 301 跳转以过渡旧链接权重。
合理规划 robots.txt 是网站搜索流量管理的基础工作。先从自身的收录目标和内容结构出发,准确选用 User-agent 与 Disallow 完成基础约束;仅在有明确必要且确认爬虫兼容时引入 Allow 规则。上线前务必测试,上线后定期复查日志,让抓取资源的分配始终与网站的核心内容策略保持一致。