搜索引擎爬虫如何访问你的网站,直接关系到页面收录速度与权重分配。通过精细控制爬虫的抓取路径与频率,既能防止后台数据或临时页面流入搜索结果,也能让有限的抓取资源集中到高价值内容上。下面从最基础的协议配置讲起,逐步深入到频率调节与易错环节。
robots.txt 存放于站点的根目录,是爬虫进入后最先读取的文件之一。它的作用相当于一张路径清单,告知爬虫哪些目录可以进入、哪些应当避开。基础语法包含 User-agent 与 Disallow 两个字段,前者指定规则的适用对象,后者定义禁止访问的路径。
举例来说,若想阻止所有爬虫进入后台管理页面,可配置如下:
User-agent: *
Disallow: /backend/
实际配置时有几个要点值得留意。Disallow 后若留空,表示不限制任何路径;而 Allow 指令则可配合 Disallow 实现局部放行,比如禁止整个目录但允许其中的某个子目录。路径必须以斜杠开头,拼写错误或缺少斜杠都会让规则悄然失效。需要明确的是,这套协议并非安全屏障,仅代表一种双方默认的约定,正规搜索引擎会遵守,但恶意程序并不会理会。涉及用户隐私或账号信息的目录,务必叠加登录校验或 IP 白名单等服务器层防护,不可过度依赖此文件。
当爬虫进入具体页面时,可以通过 HTML 头部标签或服务器响应头进行更细粒度的控制。与 robots.txt 的目录级规则相比,这类手段能精确到某个独立页面或单个文件资源。
在页面头部添加如下代码,即可同时禁止该页面被收录并禁止爬虫追踪页面内链接:
<meta name="robots" content="noindex, nofollow">
若仅想阻止页面出现在搜索结果中,但仍希望爬虫顺着链接继续爬行,则应使用 noindex, follow 组合。判断依据很简单:凡是重复性高、内容价值低或仅用作流程跳转的页面,如站内搜索结果页、表单提交后的感谢页、带大量筛选参数的 URL,都建议加上 noindex,避免这类低质页面挤占索引空间。
对于 PDF 文档、图片、音视频等非 HTML 资源,页面里的 meta 标签无法发挥作用,此时需要依赖服务器返回的 X-Robots-Tag 响应头。以 Nginx 为例,可通过配置对指定文件类型统一添加:
add_header X-Robots-Tag "noindex, nofollow";
这项配置的核心价值在于,即使爬虫无法解析文件内部结构,也能直接识别服务器给出的明确指令。比如不希望产品说明书 PDF 被公开搜索到,用这种方式即可有效屏蔽。
搜索引擎分配给每个站点的每日抓取次数是有上限的,这个数量通常称为"抓取预算"。若爬虫的精力被大量低优先级页面消耗,新发布的核心内容就可能延迟被收录。因此,抓取控制的核心目标之一,就是引导爬虫优先访问重要页面。
常用的调节手段有两种。一是通过搜索引擎站长平台的后台面板手动调整抓取速率,界面上通常以"每秒请求数"为单位,建议根据服务器实际承受能力逐步微调,而不是一次性拉满。二是依靠内容更新规律间接影响爬虫判断:高频更新且内容稳定的页面,爬虫访问自然更频繁;长期无变化的旧页面会被自动降低优先级。需要注意的是,频繁改动 URL 结构或大量返回 404 状态码,都会干扰爬虫对站点健康度的评估,反而导致抓取预算缩减。
即便规则写对了,不少站点仍会遭遇收录异常,主要原因往往集中在以下几类细节上。
遇到收录异常时,建议优先查看搜索引擎站长工具的抓取日志,确认爬虫实际访问了哪些路径以及返回状态码,再对照上述常见问题逐项排查。
这取决于爬虫下次回访该页面并读取新规则的时间。一般情况下,从更新规则到页面从搜索结果中消失,可能需要数天到数周不等。如果希望尽快移除,可以在站长工具中提交删除请求,审核通过后会显著缩短处理周期。
在同一个 User-agent 分组内,规则匹配遵循最具体优先的原则。实际使用中普遍按照书写顺序执行,即先匹配到的规则生效。因此若存在嵌套路径,建议先写 Disallow 再写 Allow,否则后者可能被前者覆盖,导致放行规则不生效。
CDN 节点通常会缓存文本文件,这可能导致更新后的 robots.txt 无法在所有节点即时生效。此外,若代理层拦截了 .txt 后缀请求,爬虫可能拿到错误页面而非规则文件。建议在源站直接禁用对 robots.txt 的缓存,并在代理配置中放行该路径请求。
有效的爬虫控制并非设置几条规则就完事,而是一个持续观察与调整的过程。建议先规范 robots.txt 路径写法,明确哪些目录必须屏蔽;再通过 meta 标签和 X-Robots-Tag 处理单页与文件级需求;最后结合日志与抓取趋势,逐步优化抓取预算分配。将上述动作纳入每次站点改版的检查清单中,收录质量会稳定得多。