网站流量异常升高,服务器资源被大量占用,排查后发现是搜索引擎爬虫在疯狂抓取。很多站长第一反应是彻底封禁所有爬虫,但这往往会误伤正常的搜索收录。控制爬虫的核心思路不是一刀切,而是通过分级规则,让搜索引擎把抓取预算花在真正有价值的页面上,同时挡住那些无意义的重复内容或后台敏感目录。
robots.txt 放在网站根目录,是爬虫进入站点时第一个读取的文件。它的本质是向合规搜索蜘蛛发出访问建议,并非强制封锁工具。配置时如果写错路径,可能导致首页或核心栏目被意外屏蔽,直接影响收录。
文件的基本结构由 User-agent(指定针对哪个爬虫)和 Disallow(禁止访问的路径)组成。以下是一个实用示例:
User-agent: * Disallow: /admin/ Disallow: /cart/ Disallow: /user/如果只想限制特定搜索引擎抓取带参数的动态地址,可以这样写:
User-agent: Baiduspider Disallow: /?from=需要留意的是,robots.txt 只支持目录前缀匹配,不支持正则表达式。如果后台路径有多层嵌套(例如 /admin/system/logs/),必须逐条列出,或者直接屏蔽上级目录 /admin/。Allow 指令虽然可以单独放行某一路径,但在多数场景下,仅用 Disallow 就能达到预期效果。
关键避坑:不要把 CSS 和 JS 文件写进 Disallow 规则。现代搜索引擎在评估页面质量时需要渲染样式和脚本,一旦屏蔽这些资源,页面可能会被判定为内容不完整,排名反而受损。
robots.txt 管的是爬虫能否进入某个目录,而页面内的 meta 标签则进一步决定爬虫对当前页面如何处理。两者的配合可以实现更细粒度的管控。
在 HTML 的 head 区域,以下三种指令最为常用:
例如,会员登录后的个人面板页面,通常不希望被搜索到,可加入下面这行代码:
<meta name="robots" content="noindex, nofollow" />如果只想对谷歌生效,可以把 name 属性改成 googlebot,不影响其他搜索引擎的抓取。需要提醒的是,标签生效存在延迟——爬虫必须再次访问该页面才能读取新指令,所以添加 noindex 后不会立刻从搜索结果中消失,一般需要等待数天。
有效的爬虫控制不仅靠“挡”,也得靠“引”。sitemap.xml 的作用就是把站内的重要页面清单主动提交给搜索引擎,让它们按你设定的顺序和权重抓取。
配置流程建议按以下步骤操作:
站点地图的核心价值在于减少爬虫在无关页面上浪费的时间。比如一个电商网站有上万条带参数的排序链接,如果不加控制,爬虫可能把这些链接全部爬一遍,而真正的产品详情页反而得不到足够的抓取频率。此时除了在 sitemap 中明确列出重要 URL,还可以配合 robots.txt 屏蔽参数路径,双管齐下。
判断标准:定期查看服务器访问日志中的爬虫记录,如果发现某个搜索引擎的抓取请求集中在 404 页面或低价值 URL 上,说明引导规则失效,需要调整 sitemap 权重或补充 Disallow 规则。
除了主流搜索引擎,网络上还散布着大量不知名的抓取工具,它们不遵守 robots.txt 协议,专门盗取内容或扫描漏洞。对这类爬虫,单纯靠规则文件无法阻止,需要从服务器层面拦截。
一种常见做法是通过服务器访问控制文件识别并拒绝特定 UA(User-Agent)标识。例如,在 Nginx 配置中加入:
if ($http_user_agent ~* (SemrushBot|AhrefsBot) ) { return 403; }Apache 环境则可以在 .htaccess 文件中添加类似规则。此外,还可以通过 IP 黑名单或设置单 IP 请求频率阈值来限制异常抓取。
注意区分:腾讯、字节等大厂的蜘蛛 UA 在官方文档中均可查验,建议先通过日志确认对方身份,再决定是否屏蔽,避免误伤合法搜索服务。
不会直接触发惩罚,但可能造成收录大幅下降。比如误屏蔽了首页或主要目录,搜索引擎抓不到页面,自然不会收录。发现后只需修改文件并提交给搜索引擎即可恢复,恢复周期可能需要几周。
Disallow 是阻止爬虫进入页面,爬虫完全看不到内容,也就无法提取页面上的内链。noindex 则是允许爬虫访问页面,读取内容后仅要求不放入索引库,页面上的链接依然能被追踪。如果要保留内链传递权重,建议优先用 noindex。
这是正常的,爬虫重新抓取需要时间。可以登录 Search Console 或百度站长平台,利用 URL 检查工具手动提交该页面,请求重新抓取,通常能加快处理速度。
控制爬虫的核心原则是分级管理:用 robots.txt 划定访问边界,用 meta 标签控制索引行为,用 sitemap 引导抓取重心,再用服务器规则拦截恶意工具。建议从最小改动开始,先在测试目录验证规则效果,再逐步推广到全站,观察一周内的抓取日志变化,持续优化规则,而非一次配置后置之不理。