防采集和防蜘蛛的分界线是「身份」而不是「技术」:防采集要拦截的是把内容抓走后拿去别处用的爬虫,防蜘蛛要管理的是搜索引擎的收录授权,两者目标相反——真正的做法是「精准拦截采集者,同时明确放行搜索引擎蜘蛛」。一刀切封爬虫,最先受伤的往往是你自己的自然流量。
防采集和防搜索引擎蜘蛛,本质区别是什么?
结论:防蜘蛛是「协商授权」,防采集是「安全对抗」,前者靠声明,后者靠识别与拦截。
防蜘蛛的核心是告诉搜索引擎「哪些能收录、哪些不能」,手段是 robots.txt、meta robots、sitemap.xml 这类声明式配置,遵守与否取决于对方是否守规矩。防采集针对的是内容搬运、比价、数据二次售卖这类行为,对方不会遵守你的声明,所以必须用限频、验证码、JS 挑战、IP 封禁等强制手段。
判定维度也不同:搜索引擎蜘蛛看的是「来源是否可信+抓取是否节制」,采集者看的是「行为是否异常+内容是否被异地复用」。一个百度蜘蛛单页抓取间隔通常是秒到天级,并且会读取 robots.txt;采集工具常见的是多线程并发,同一秒对同一栏目发起 20 次以上请求。
防蜘蛛用什么手段?robots.txt 真的能挡住采集吗?
结论:robots.txt 挡不住采集,它只对合规搜索引擎生效,属于「君子协定」而非防火墙。
robots.txt 放在站点根目录(如 https://example.com/robots.txt),只对一级目录生效规则;页面级控制用 <meta name="robots" content="noindex,nofollow"> 更可靠。注意:Google 会忽略 Crawl-delay,百度部分场景仍参考;Disallow 只阻止抓取、不阻止收录,要阻止收录必须用 noindex。
想只屏蔽某个目录被收录又不想影响用户访问,正确的组合是「robots.txt 允许抓取 + 页面 noindex」——因为禁止抓取后搜索引擎读不到 noindex 标签,反而可能凭外链收录。
防采集怎么做才不误伤搜索引擎?
结论:先做真实蜘蛛白名单放行,再对剩余流量做行为风控,顺序不能反。
具体可落地的三层:
- 白名单放行:把 Googlebot、Baiduspider、Bingbot 的真实 IP 段加入 CDN/WAF 白名单,白名单内不触发 JS 挑战和验证码。
- 行为限频:同一 IP 对动态接口 10 秒内超过 30 次请求,进入 5 分钟观察期;观察期内再触发即临时封禁,实测对正常用户几乎无感。
- 内容层防护:价格、电话等关键字段用 JS 异步渲染或字体映射(把数字映射成自定义字体编码),采集工具拿到的 HTML 里只有乱码;同时在页面放
display:none 的蜜罐链接,正常用户和搜索引擎都不会点,跟进的脚本会被记录。
注意:Googlebot 能执行 JavaScript,Baiduspider 基本不执行,所以「全站 JS 渲染」会直接压掉百度收录,这是最常见的自伤操作。
怎么验证一个蜘蛛是真的还是伪装的?
结论:User-Agent 可以随意伪造,唯一可信的校验是反向 DNS 解析。
做法是三步:先对来访 IP 做反向 DNS,得到域名;再判断域名是否属于官方(Googlebot 为 googlebot.com / google.com,Baiduspider 为 baidu.com);最后对该域名做正向解析,确认结果与来访 IP 一致。两步都通过才是真蜘蛛。
只靠 Baiduspider 这个 UA 字符串做判断,等于给采集者留了钥匙——市面上任何采集框架都能一行代码改掉 UA。
常见的坑:哪些防护会直接掐断自己的收录?
结论:全站验证码、整站 JS 挑战、封禁 UA 字符串这三类操作,误伤收录的概率最高。
具体表现:开启全站人机验证后,搜索引擎拿不到 200 状态的 HTML;用 WAF 的「CC 防护」默认规则,会把高频抓取的搜索引擎一并拦掉;直接按 UA 封 spider 关键词,会连带封掉正经蜘蛛。
正确顺序是:先放行已验证的真实蜘蛛,再对其余流量限频;封禁以 IP 为单位并设置自动解封时间(建议 5-30 分钟),同时记录被封 IP 的 UA、路径和请求频率,方便回溯是否误杀。
总结一句:防蜘蛛是给对方一份「收录说明书」,防采集是给自己装一套「行为风控」;两者不是同一件事,也不能用同一套规则。落地时记住三个数字——根目录 robots.txt 管声明、真实 IP 反查管放行、10 秒 30 次管限频。