必须自建可索引的HTML文档站,因百度不收录GitHub页面且不理解Go语义;需用语义化标签、真实需求词标题、LSI关键词覆盖及独立函数页,才能在“go json解析库”等需求搜索中进前三。
做不到让 go 语言开源组件在百度搜索“排第一”——百度不索引 github 仓库页面,也不理解 go.mod 或 go get 命令的语义,直接搜项目名基本不出结果。真正可行的是:让用户搜“go json 解析库”“golang http client 替代”这类需求词时,你的文档页能进前 3。
为什么百度几乎不收录 GitHub 项目页
百度爬虫(baiduspider)对 JavaScript 渲染支持弱,而 GitHub 页面重度依赖 JS 动态加载 README、stars、releases 等内容;同时,GitHub 的 robots.txt 明确禁止大部分路径被索引,例如:
user-agent: baiduspider disallow: /<username>/<repo>/blob/ disallow: /<username>/<repo>/tree/</repo></username></repo></username>
这意味着即使你写了极好的 README,只要托管在 GitHub,默认就是“不可见”的。不是你优化不到位,是百度根本没看到。
必须自建可索引的文档站点
把核心内容迁出 GitHub,部署一个静态 HTML 站点,并确保满足百度抓取基础条件:
- 使用纯 HTML + 语义化标签(
<h1></h1>~<h3></h3>、<article></article>),避免 React/Vue 框架 SSR 不稳定带来的风险 - 在根目录放
robots.txt,明确允许baiduspider抓取:user-agent: baiduspider allow: /
- 生成并提交
sitemap.xml到百度搜索资源平台,包含每个 API 方法页、安装说明页、示例页的独立 URL - 所有页面
<title></title>必须含动词+技术关键词,例如:<title>go-yaml 解析 YAML 文件 - 支持嵌套结构与自定义 Unmarshaler</title>
关键词必须从用户真实提问中来,不是从项目名里猜
没人搜“go-yaml”,但有人搜“golang yaml 转 struct”“go 读取 yaml 配置文件”。你需要:
- 用百度指数查“
yaml golang”“go 配置文件”的搜索趋势和相关词 - 扒竞品文档页的标题和首段——比如
gopkg.in/yaml.v3的官方文档页标题是“YAML support for the Go language”,这词百度根本不认;换成“Go 语言解析 YAML 配置文件教程”才可能被匹配 - 在文档正文中自然覆盖 LSI 关键词:
struct tag、Unmarshal、yaml.Marshal、go mod引入方式,而不是堆砌“yaml yaml yaml”
内容结构比 SEO 技巧更重要
百度当前算法(清风 4.0 + 源码计划)会识别“是否真解决了问题”。一个只有 API 列表的页面,再优化 title 也难进首页;但一篇带完整示例的实战指南,哪怕排版朴素,也容易获得高点击率和长停留时间——这两项是百度排序强信号:
- 首段必须直击痛点:“Go 默认不支持 YAML,
gopkg.in/yaml是最轻量、无依赖的解析方案,3 行代码即可将 YAML 文件转为 struct” - 每个函数说明页单独成 URL,
<h1></h1>标签写明用途,例如:<h1>yaml.Unmarshal 函数:将 YAML 字节流解析为 Go 结构体</h1> - 所有代码块用
<pre class="brush:php;toolbar:false;"><code></code> 包裹,且语言标记为 <code>language-go</code>,百度能识别这是 Go 代码片段</pre>
最容易被忽略的一点:百度不认为 GitHub README 是“内容”,只把它当“元信息”。你花三天打磨的 Markdown 文档,对百度来说等于不存在。真正起作用的,是你那页手写的、带截图、有错误处理示例、URL 能被直接分享的 HTML 教程——它得能 standalone 存在,不依赖任何仓库上下文。











