你的网站为什么总是不被百度收录?

更新完文章,刷新百度搜索,结果页面还是空的——你甚至不确定百度蜘蛛有没有来过。
不是内容不够好,也不是外链没做,而是它根本进不来。服务器防火墙,正悄悄把百度蜘蛛挡在门外。

为什么防火墙会误伤百度蜘蛛?

防火墙只认规则,不看身份。它默认把所有非人工访问都当成潜在威胁。

百度蜘蛛访问密集、User-Agent固定、不带浏览器指纹,很容易触发“CC防护”或“防爬虫”策略。
比如某电商站上线新栏目后收录停滞,查日志发现蜘蛛请求大量返回429(Too Many Requests)——原来云防火墙的“自动化访问限速”开关开着,连Baiduspider也一视同仁地压到了每分钟3次。

IP段没加白名单,也是常见坑。百度用几十个网段轮换抓取,只放行其中几个,等于只开了半扇门。
更隐蔽的是User-Agent校验:有些WAF会拦截所有不含Mozilla/5.0字段的请求,而Baiduspider的UA是Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)——看着像浏览器,实则被某些策略当成了“伪装UA”。

如何准确识别百度蜘蛛的真伪?

别信UA,要验IP。真正的百度蜘蛛IP,反向DNS解析后,域名必须落在baidu.combaidu.jp下。

比如这个IP:123.123.123.123,执行 host 123.123.123.123,如果返回 baiduspider-123-123-123-123.crawl.baidu.com,就是真的。
如果返回 static.123-123-123-123.example-isp.net 或直接超时,那基本是假蜘蛛。

你不需要手动一条条查。把这段逻辑写进Nginx日志过滤脚本,或者用Logrotate配合grep定期扫日志,就能自动标出可疑请求。

哪些百度蜘蛛IP段必须加入白名单?

百度搜索资源平台会更新IP段列表,地址就在「站点管理」→「抓取频次」页底部的「百度蜘蛛IP段说明」里。

重点加这几类:

  • 180.76.0.0/16(最常用的老主力段)
  • 123.125.66.0/24123.125.71.0/24(高频移动抓取段)
  • 220.181.108.0/24220.181.109.0/24(图片和视频内容抓取常用)
  • IPv6段如 240e:ff:c000::/48(别漏掉,现在移动端抓取越来越多走IPv6)

有家本地生活号曾连续两周没新收录,最后发现只加了IPv4,但百度给它分配的测试流量全走IPv6——安全组里没开对应段,蜘蛛来了又默默走了。

不同服务器环境如何具体配置?

Linux(iptables)

iptables -I INPUT -s 180.76.0.0/16 -j ACCEPT
iptables -I INPUT -s 123.125.66.0/24 -j ACCEPT
service iptables save

Linux(firewalld)

firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="180.76.0.0/16" accept'
firewall-cmd --reload

Windows Server
打开「高级安全Windows防火墙」→「入站规则」→「新建规则」→「自定义」→「所有程序」→「协议和端口」选“任何”→「作用域」里「远程IP地址」选“下列IP地址”,粘贴百度IP段(用逗号分隔)→ 动作选“允许连接”。

阿里云/腾讯云安全组
进控制台 → 找到你网站的ECS实例 → 点「安全组」→ 「配置规则」→「添加安全组规则」→ 方向选“入方向”→ 授权策略“允许”→ 协议类型选“全部”→ 源IP地址填 180.76.0.0/16,再另起一行填 123.125.66.0/24……(每段单独一行,别合并CIDR)

放行后如何验证蜘蛛抓取是否正常?

先看日志。SSH登录服务器,跑这条命令:

grep "Baiduspider" /var/log/nginx/access.log | tail -20

重点盯status列:要是满屏403、444、503,说明规则没生效;出现一堆200和304,才算是通了。

再去百度搜索资源平台:

  • 登录 → 左侧菜单点「站点资源」→「普通收录」→「抓取诊断」
  • 输入你最新一篇发布的文章URL,点“开始诊断”
  • 如果显示“抓取成功”,且下方能看到HTML标题(比如 <title>怎么选保温杯|实用指南</title>),就妥了

顺便看看「抓取频次」曲线图。如果之前是平直线,现在开始有锯齿状起伏,说明蜘蛛真的动起来了。

今天就能执行的具体操作步骤

现在就打开你常用的工具,按顺序做这五件事:

  1. 打开浏览器,访问 百度搜索资源平台,登录你的网站账号
  2. 在左侧导航点「站点管理」→「抓取频次」,拉到页面最底部,点击「百度蜘蛛IP段说明」,复制全部IPv4段(Ctrl+A → Ctrl+C)
  3. 打开你服务器的终端(或云厂商控制台的安全组页面)
  4. 把刚复制的IP段,一条一条粘贴进防火墙白名单(注意:每段单独加规则,别合并;阿里云/腾讯云就在安全组“入方向”里新增规则)
  5. 回到百度搜索资源平台,立刻用「抓取诊断」测一个今天刚发的页面——看到“抓取成功”四个字,这事儿就算落地了