首页提交了、sitemap 也挂了、文章天天更新,可百度就是不放首页出来。这种“卡首页”的状态最磨人,因为你不知道卡在哪。其实首页不被收录的原因高度集中,来来回回就那么几类,对着排查一遍,命中的概率很高。
下面这6类原因,按“从致命到次要”排,命中率也是从高到低。
一、第一类:robots.txt 把首页挡了
这是最高频的一条,也是最好查的一条。打开浏览器,访问你的域名后面加 /robots.txt,逐行看:有 `Disallow: /` 吗?有把根路径写进规则吗?有的模板或插件会默认生成一条屏蔽全站的规则,站长根本不知道。
还有一种隐蔽情况:robots 里写的是 `Disallow: /*?`,本意是屏蔽带参数的动态 URL,结果首页如果被程序加上了参数(比如带 utm 或者 session id),也会被一起挡掉。所以查 robots 要对比“你实际访问的首页 URL”和“robots 里写的规则”是不是真的对得上。
二、第二类:返回了非 200 状态码
百度收录的前提是页面能正常返回 200。如果首页返回 301 跳转到其他域名、403 被服务器拒绝、500 报错,收录都会受影响。特别是 301 跳转到另一个域名的情况——相当于告诉百度“这个站的首页在别处”,首页自然收不进来。
查法很简单,用 curl 带百度蜘蛛 UA 请求一次,看状态码和响应头。特别要看有没有奇怪的跳转,以及跳转链是不是打结。
下面这段脚本用两种身份各请求一次首页:先用普通浏览器 UA,再用百度蜘蛛的 UA,把两次拿到的状态码和正文长度并排打出来。
# 分别用浏览器 UA 和 Baiduspider UA 请求首页,对比响应差异
import urllib.request
from urllib.error import HTTPError
HOME = "https://www.example.com/"
UAS = {
"浏览器": "Mozilla/5.0 (Windows NT 10.0; Win64; x64)",
"Baiduspider": "Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)",
}
for who, ua in UAS.items():
try:
r = urllib.request.urlopen(
urllib.request.Request(HOME, headers={"User-Agent": ua}), timeout=10)
print(who, "->", r.getcode(), "长度", len(r.read()))
except HTTPError as e:
print(who, "->", e.code, "被拒绝")
两次结果不一样,就说明问题出在服务器或 CDN 对爬虫的拦截上;两次都是 200 且内容一致,那就要往 robots、noindex 和内容量上找了。
三、第三类:首页被标了 noindex 或 canonical 指错
这两种都属于“自己主动告诉百度别收”。noindex 常见于测试环境遗留,canonical 指错则常见于程序配置——把首页的规范地址指向了测试域名、或者指向了某个内页。两种都在页面源码里,打开首页按 Ctrl+U 看源代码,搜 robots 和 canonical 两个词就能确认。
如果是整站程序统一生成的模板,检查一下模板文件的 head 部分,别只改单个页面。
四、第四类:服务器把百度蜘蛛拦了
有些站的防火墙、CDN 或者安全插件会把爬虫当可疑流量拦掉。表现是:用浏览器访问正常,但用爬虫 UA 请求就被拒。判断方法是分别用浏览器 UA 和 Baiduspider UA 请求首页,对比两次的响应。如果爬虫 UA 被拒,就要去防火墙或 CDN 后台把百度蜘蛛的 IP 段放行。
还有一种是访问频率问题。如果服务器响应太慢,爬虫抓几次都超时,抓取频次会被降下来,长期看不到抓取记录。这种情况要先解决性能,不是内容问题。
五、第五类:首页内容太单薄
爬虫抓到了、也没被拦,但就是不放出来——大概率是首页内容量不够。一个只有一张 banner 图、一句标语、一段简介的首页,在搜索眼里等价于空页面。这类页面对搜索来说是消耗资源的,收了也没意义。
解决思路是给首页增加“可索引的信息量”:加最新内容列表、加分类入口、加一段能说清业务和用户问题的正文。有些站还习惯把首页做成纯 JS 渲染,爬虫拿到的 HTML 里啥也没有,这也是内容单薄的一种。要么做服务端渲染,要么保证关键内容在 HTML 里可见。
六、第六类:域名本身有问题
最后这一条排查成本最高,但确实存在。如果域名以前被做过垃圾站、被惩罚过、或者做过违规内容,百度可能长期不收录,甚至永久不收。判断方法:查域名的历史快照(看以前是什么内容)、看是否有大量异常外链、在搜索里搜域名看有没有处罚相关记录。
如果确认是历史问题,能做的处理有限——清理不良外链、持续做正规内容,观察几个月。实在不行,换一个干净的域名是更实际的选择,别在一个有问题的域名上耗太久。
七、排查顺序与验证
顺序建议:robots → 状态码 → noindex/canonical → 服务器拦截 → 内容量 → 域名历史。前四类是技术问题,能快速定位也能快速修;后两类是策略问题,需要时间。每修一项就用抓取诊断跑一遍,看抓取结果有没有变化,别一次全改完了再猜哪项起了作用。
相关阅读:《百度不收录网站首页怎么办?首页收录的逐条排查与修复》、《新站上线一个月还没收录?先分清是没收还是没放出来》、《文章发了很多百度却不收录?从抓取到质量的分层定位》
申请创业报道,分享创业好点子。点击此处,共同探讨创业新机遇!
