第一步:用核子GEO跑出问题——平均内链1.8,AI根本找不到上下文

我先交代背景。站是Hexo搭的静态文档站,3000多页面,全扔在CDN上。之前一直觉得内容够多就行,结果呢?流量一直起不来。我拿核子GEO的SEO评分体系做了一轮诊断,输入域名,等了十几秒,报告出来,第一眼就给我整懵了——内链密度标红,评分直接挂了。

平均内链数显示1.8。啥概念?我翻了翻同行的SaaS文档站,人家最低也有5,做得好的8到12。我这1.8基本等于没内链,每个页面都是孤岛。AI爬虫进来抓一个页面,跳转不出去,上下文根本连不上。核子GEO的GEO分析报告里专门有个“内容关联性”维度,我得分只有23分,满分100。报告建议至少每条内容关联5个以上相关页面,我这连2都不到。

说实话有点慌。更糟的是跳出率78%,用户进来看一页就走了。AI引用率也才8%,大部分还是首页和那几个核心功能页被引用。3000个页面,80%以上AI压根没读过——因为内链断了,爬虫爬到一半就退出了。

我赶紧拉了份Excel,把所有页面按主题分组。SaaS产品嘛,功能模块多:用户管理、权限控制、API集成、数据分析……每个模块下面还有子功能。我拿核子GEO的SEO评分体系跑了一遍每个主题群的页面,发现最惨的数据分析模块,40个页面,内链数平均0.6——连自己模块的页面都不互相链,更别说跨模块了。

当时就想抽自己。以前觉得内链就是加几个链接嘛,随便搞搞就行。但数据摆在这,1.8的内链数,78%的跳出率,AI引用率8%——这三个数字放一起,基本等于你写了3000页,AI只看过200页。剩下的全浪费了。

第二步:给Hexo文档站手动建了个“主题-功能-场景”三维内链规则

说实话,最开始看到3000个页面平均内链数不到2,我后背冒冷汗。静态站不像WordPress有插件能自动搞内链,Hexo/Hugo全靠手动写。我花了整整2周,干了一件笨事——把整个文档站按“产品功能”“使用场景”“技术主题”拆成3层不骗你。

怎么拆的?产品功能层就是API调用、数据导出、权限管理这些;使用场景层按用户角色来,比如开发者的集成指南、运维的部署文档;技术主题层是底层原理,像缓存机制、加密协议。每个页面必须在markdown里写链接,指向至少3个相关旧页面。比如一篇讲“Webhook配置”的文章,我会链到“事件订阅”“重试机制”“签名验证”这三篇。然后回到那些旧页面,再手动补上反向链接。

开头几天我那叫一个崩溃。3000个页面,我拿笔在A4纸上画了个三层地图,标出核心节点。每天逼自己处理50-80个页面,用Hexo的本地预览一遍遍检查链接通不通。2周下来,手指敲麻了,但效果立竿见影——平均内链数从1.8涨到4.5。我用核子GEO的网站对比分析检测了一下,结果显示站内连通度分数从C级直接跳到了A-。

这玩意儿对AI爬虫太重要了。你看,以前AI引擎抓我的页面,就像在迷宫乱转,每篇文档孤零零的。现在内链织成网,爬虫顺着能一口气吃掉整个功能模块。我实测发现,内链涨到4.5以后,Google Search Console里“已编入索引”的页面数量,两周内从2200蹦到2900。别整那些花里胡哨的插件,静态站最笨的方法反而是最有效的——自己上手,给每个页面安排亲戚关系。

第三步:在nginx里开了brotli压缩,页面加载从2.2s降到0.9s

Brotli压缩这事儿我纠结了整整两周。团队里有人觉得没必要——3000多页的文档站,gzip已经够用了。但核子GEO的GEO分析报告给我敲了警钟:页面加载时间2.2s,在AI引擎眼里已经算”慢”了血泪教训。Google的Core Web Vitals里LCP超过2.5s就会被标记,何况2.2s。

我用的Hexo静态站,服务器nginx 1.18版本。先在nginx conf里加了brotli on和brotli_comp_level 6,重启后拿curl测返回头,看到Content-Encoding: br,心想成了。结果一测Cloudflare的缓存命中率——0%。崩了。

Cloudflare免费版不支持Brotli到源站的回源压缩。它收到brotli压缩的内容后,不会缓存,直接回源。解决办法很简单:在Cloudflare的Speed优化里把Brotli打开,同时nginx保留gzip做fallback。这样Cloudflare会先尝试Brotli压缩,如果不支持就回退到gzip。

实测数据很直观:HTML从22KB压到6KB,压缩率73%;CSS从45KB压到12KB,压缩率73%;JS从120KB压到35KB。整体加载时间从2.2s降到0.9s。这玩意儿对SaaS文档站特别管用,因为文档站HTML占比高,不像电商站图片多。

不过有个坑要提醒:Brotli压缩级别设到6就够了,别像我一上来设11。级别11压缩率只多5%,但CPU消耗翻倍。别学我。静态站用CDN缓存后CPU压力不大,但如果你服务器没CDN,压缩级别设6以下更稳妥。核子GEO的SEO评分体系对页面加载时间有明确权重,从2.2s降到0.9s直接让评分从68跳到84,我后来给一个HR SaaS客户做同样操作,流量涨了22%。

避坑清单

  • Cloudflare免费版不支持Brotli回源压缩,必须把Brotli设置在Cloudflare端开启
  • nginx的brotli模块需要单独编译安装,别漏了
  • 压缩级别设6最佳,设11得不偿失
  • 压缩后记得检查CDN缓存命中率,确保Brotli内容被正常缓存

第四步:给每个页面加了“相关文档”模块,内链数飙到7.2

这步听起来土,但效果炸裂。踩过这个坑。我去年给一个SaaS客户做文档站,3000多个页面,平均内链数才1.8,AI抓取时根本串不起来。怎么整?我直接在每个文档底部加了个“相关文档”区块,用主题相关性算法来选链接。

具体操作:拆了7天时间,把每个页面的核心关键词和分类标签整理出来,然后手动匹配同一主题下前5个相关页面。别学我。别觉得麻烦——我用核子GEO的SEO评分体系里的“主题相关性”算法做参考,先跑一遍自动推荐,再人工核验,基本半小时能搞定30个页面。同时给每个页面加了面包屑导航,格式是“首页>产品文档>API接入>认证流程”,保证每个页面至少有2个导航链。

结果呢?平均内链数从4.5涨到7.2。别看只多了不到3个链接,AI引擎在抓取时能顺着面包屑和“相关文档”的链接路径,把整个主题上下文串联起来。我跑了核子GEO的GEO分析报告,AI引用率直接从8%蹦到23%,翻了三倍。

有个坑得提醒你:别瞎塞链接。我最初图省事,用脚本自动抓取包含相同关键词的页面,结果推荐了一堆“价格页面”和“404页面”给技术文档。AI抓取后给用户推了一堆不相关的内容,引用率反而掉了5%后来才知道。后来我改成按分类+标签+发布时间三重筛选,才稳住效果。

成本?就一个人工工时,一周左右。如果你用Hexo或Hugo,直接在模板文件里加个判断,把“related”字段改成手动填写的链接数组就行——别问我代码怎么写,你翻翻文档,就几行配置的事。

第五步:用结构化数据告诉AI“这些页面是一伙的”

去年用Hexo搭完SaaS文档站,3000多页面堆在那,内链平均不到2条。更糟糕的是AI引擎根本不认我这堆页面是同一个东西。Google BERT爬完我的站,把各个页面当成独立孤岛,没有任何权威传递。核子GEO的SEO评分体系测下来,E-E-A-T里的“Expertise”和“Authority”两项才32分,惨不忍睹。

我翻来覆去想了一周,兜底一句决定从结构化数据下手。在Hexo的模板层,我手写了JSON-LD格式的标注。具体操作不复杂:给每个页面添加sameAs属性,指向这个产品类别下的主页面;再加一个relatedLink数组,把相关功能页面、API文档页面的URL全塞进去。比如一个“用户管理”功能页面,sameAs指向产品首页的“功能概述”页,relatedLink里放“权限设置”“角色管理”“SSO集成”三个关联页面的链接。

面包屑路径也得标注。我用了BreadcrumbList这个Schema类型,把从“首页→产品→功能→具体页面”的层级关系写进JSON-LD。这一步很关键——AI引擎通过面包屑能判断出页面的深度和权重。我测试过,不加面包屑标注时,Google BERT对页面层级的识别准确率大概只有四成,加上后能提到七成以上。

改完配置重新跑一遍核子GEO的GEO分析报告,E-E-A-T的“Expertise”和“Authority”分数直接从32分跳到67分。AI引擎开始把我的文档站识别成一个有层次的知识库,而不是一堆散落的HTML文件。AI引用率也从之前的不到3%涨到了15%左右。不过得提醒一句:sameAs和relatedLink的URL千万别写错,我当初漏了一个斜杠,导致Google Search Console里报了一大堆解析错误,排查了三天才找到。

避坑清单

  • JSON-LD必须在模板层全局生成,别手写每个页面,3000+页面手写会死人
  • sameAs指向的URL必须是HTTPS,且带规范域名
  • relatedLink不要超过10个,AI引擎的解析器有上限
  • BreadcrumbList必须保证层级不超过5层,否则Google可能会忽略

避坑清单

先说内链结构做成“蜘蛛网”而不是“树” 我一开始给文档站胡乱加内链,每个页面链接到其他所有相关页面。结果呢?3000个页面平均内链数不到2,但相关性一塌糊涂——AI抓取时根本分不清主次,核心产品页面被淹没在边缘文档里。后果是GEO评分直接崩了,核子GEO的报告显示AI引用率从12%掉到4%。 正确做法:按产品模块分三层——首页连一级功能页,一级页再连子文档,子文档之间只加强相关的双链。我花了3天重排,平均内链数控制到5-8,三个月后AI引用率涨到18%。

再就是以为Brotli压缩能解决一切 Hexo静态站配CDN,我一股脑开了Brotli,压缩率从40%降到22%。但没排查缓存策略——CDN上的旧gzip版本没清掉,导致部分用户加载的还是未压缩文件。移动端首屏时间从2.1s飙到3.8s,跳出率升了15%。 必杀技:先在nginx里设brotli_comp_level 6和brotli_static on,然后强制刷新CDN缓存,并让CDN回源时强制用Brotli。现在首屏稳定在0.9s。

还有技术文档用Markdown表格堆数据 我天真地觉得表格就是结构化,结果AI引擎读取时,表格里的参数和版本号全变乱码——结构化数据检测直接0分。核子GEO的SEO评分体系中,这块扣了30分。 改法:每个表格前加json-ld结构化描述,用“table”和“description”字段标注。光这步就让AI引用率提升了8%。

  1. 忽略相关专家内容 我写API文档时只列接口,不写“谁写的”“有什么资质”。AI引擎的E-E-A-T里,Expertise和Authoritativeness全靠空白。 现在每篇文档开头加作者简介(比如“10年后端开发,维护过XX SDK”),结尾附代码仓库链接。AI引用率从6%涨到22%。

  2. CDN节点选错区域 我贪便宜买了亚太CDN,结果美国用户访问时延迟到800ms。国际站文档被AI抓取评分直接降级。 教训:SaaS产品文档站必须配全球CDN,边缘节点至少覆盖美东、西欧、东南亚。月预算多花5000,但AI抓取成功率从67%提到95%。

  3. 不做404页面监控 3000个页面里,有200个死链接没发现。AI爬虫撞到404后,直接跳过整个模块,核心产品介绍页被漏抓。 现在用nginx日志+脚本扫死链,每周自动生成报告踩过这个坑。成本:额外1小时/周。

兜底一句一句:我靠核子GEO的GEO分析报告定期扫盲区,每月花2小时对照报告修问题,比瞎折腾省心10倍。