GitHub Pages 百度SEO:收录难题这样破解
为什么同一个站,谷歌收录几百页,百度只收录几页
很多人用 Hexo、Hugo 搭好静态博客,一键部署到 GitHub Pages,兴冲冲去搜自己的文章,结果发现谷歌很快就收了几十上百页,百度却只有孤零零的首页,甚至连首页都搜不到。这不一定是你文章写得不好,而是 GitHub Pages 这套组合对百度天生"不太友好"。
原因主要有三个。第一,GitHub 的服务器在海外,国内访问延迟高、偶尔还会抽风,百度蜘蛛抓取时容易超时,抓一次失败,下次就更谨慎。第二,历史上 GitHub 曾因抓取压力对百度蜘蛛做过限制,导致很长一段时间里,百度蜘蛛访问 github.io 域名会被挡在门外。第三,静态托管意味着你几乎没有服务器日志、没法配置返回头、也没法针对蜘蛛做特殊处理,出了问题排查起来两眼一抹黑。
先搞清楚:百度到底卡在哪一步
收录是一条链路:能访问 → 能抓取 → 被建库 → 放出来。GitHub Pages 的问题,几乎都卡在最前面两步。
- 能不能访问:直接用 xxx.github.io 这个默认域名,百度蜘蛛的抓取成功率往往不稳定。
- 抓没抓到:可以去百度搜索资源平台用"抓取诊断"测一下,如果返回超时或抓取失败,说明问题出在网络和服务器,而不是内容本身。
- 有没有入口:百度不像谷歌那样勤快地自己爬,你不主动提交,它可能压根不知道你有新页面。
把这条链路拆开看,你就明白了:光埋头写文章没用,得先把"路"修通。
让百度愿意来、来了能抓到
第一步:绑定自己的域名,并解决访问速度
这是最关键的一步。注册一个自己的域名,在 GitHub 仓库里配置 CNAME,把博客挂到自己的域名下。相比默认的 github.io,独立域名有两个好处:一是不受默认域名被限制的连累,二是你可以在域名前面套一层 CDN。
套 CDN 的意义在于:它会把你的静态页面缓存到离用户和蜘蛛更近的节点,百度蜘蛛抓的其实是 CDN 节点,而不是远在海外的 GitHub。访问快了、稳了,抓取成功率自然就上来了。如果你的站点主要面向国内读者,还可以考虑做合规的加速或镜像部署,体验会明显不同。
第二步:老老实实用百度搜索资源平台
域名通了之后,去百度搜索资源平台把站点验证一下,然后重点做三件事:
- 生成并提交 sitemap 站点地图。Hexo、Hugo 都有现成插件,一条命令就能生成,提交后百度会顺着它去发现你的页面。
- 用好"主动推送"。在文章发布时,通过接口把新链接推给百度,比干等它自己发现要快得多,很多静态博客的自动化部署脚本里都能加上这一步。
- 关注"抓取诊断"和抓取频次。发现抓取失败就顺着排查,发现频次太低可以适当申请调整。
这些工具都是免费的,却是很多人直接跳过的一环。收录慢,常常不是技术多难,而是压根没提交。
第三步:把站内基础打扎实
路修通了,内容也不能拖后腿。几个容易被忽略、但确实有用的点:
- 每个页面都要有独立、准确的 title 和 description,别让全站标题长一个样。
- URL 结构清晰、层级别太深,首页能通过链接点到大部分文章。
- 保证有一份能正常访问的 robots.txt,别一不小心把整站都屏蔽了。
- 内容原创、成段成篇,标题和正文对得上,别做标题党。
一份可以照着做的清单
如果你现在就想动手,可以按这个顺序来:
- 注册域名,配置 CNAME,给站点套上 CDN,先解决"快和稳"。
- 在百度搜索资源平台验证站点,提交 sitemap。
- 把主动推送接进部署流程,以后发一篇、推一篇。
- 用抓取诊断确认百度能正常抓到页面。
- 逐页检查 title、description 和内链,并持续更新原创内容。
最后要有个心理预期:百度收录本来就比谷歌慢,静态站又多一层网络的坎,新站往往要耐心等上一段时间才会陆续放出。把能做的都做到位,剩下的交给时间。与其反复纠结"为什么还没收录",不如稳定更新、持续提交——这才是让 GitHub Pages 在百度上慢慢起量的正路。