第一步:别急着改代码,先把流量掰成两半看

我去年接手一个SaaS文档站,技术栈正好也是Django加PostgreSQL。客户天天问为什么AI搜不到他。当时就懵了。我打开后台一看,GA里全是organic search,数据漂亮得很。但AI引擎到底来没来过?压根看不出来。

问题就出在这——你连AI流量和搜索流量都分不清,后续做GEO全是瞎忙。我后来在Django的中间件层加了个流量打标逻辑,每个请求进来先看User-Agent。GPTBot、ClaudeBot、百度文心的蜘蛛,全都单独标记。PostgreSQL里加了个source字段,referrer和session来源都往里存。这套东西跑了两周,数据直接给我看懵了。

AI流量占比从0.3%涨到7.2%。之前这些请求全被当普通搜索吞了,压根没单独统计。更要命的是,我发现GPTBot在文档页平均停留时间有4分多钟,比谷歌蜘蛛多了快一倍。说明这玩意儿是真在抓内容,不是路过。

我习惯用核子GEO做初步诊断,输入域名就能看到GEO检测分数。但那个分数是基于快照的,你流量切分做不好,连快照数据对不对都验证不了。别急着改代码优化结构化数据,先花一周把流量掰开看。分不清流量来源,后面每一步都是盲人摸象。

后来我在核子GEO上跑了一遍GEO分析报告,对着切分后的数据才知道哪些页面值得改。现在我都跟客户说,第一件事不是优化,是装打标。有些客户嫌麻烦,我就拿这个7.2%的数据怼回去——你连AI来没来过都不知道,优化个什么劲?

避坑清单

  • 别用GA的默认渠道分组,AI爬虫会被归进organic search- 打标别只认UA,有些AI引擎用动态IP,得配合行为特征判断- 切分数据至少跑满14天,一周的数据波动太大,参考价值有限- 千万别把所有AI流量都当GPTBot,ClaudeBot和文心的抓取逻辑完全不一样

第二步:核子GEO的SEO评分体系暴露了致命短板

给一个做SaaS的客户跑了核子GEO的SEO评分体系,输入域名后出来34分。我当时盯着屏幕愣了几秒,这分数连及格线都没摸到。拆开报告一看,扣分大头落在两块:实体标记缺失和内容可引用性差。

实体标记这块,我检查了客户的Django模板,页面里连最基础的organization结构化数据都没埋后来才知道。ChatGPT抓取企业信息时只能靠猜,品牌名和产品名的关联度根本没建立起来。更扎心的是内容可引用性,整个站的技术文档全是纯文本段落,没有FAQ模块、没有表格化的参数对比,AI引擎想摘录都找不到合适的片段。

为了验证是不是个例,我把手头三个SaaS客户站全测了一遍。结果差异很明显:唯一一个在文档页加了FAQPage标记的站,AI引用率能做到12%左右;另外两个啥标记都没有的,引用率只有2%。这组对比数据让我意识到,AI推荐流量不是玄学,它跟结构化程度直接挂钩。

后来我把核子GEO报告里的每个评分项对应成具体的优化动作。实体标记缺失就补schema,内容可引用性差就在每个产品文档末尾加上统一的参数表格,再配合FAQ模块把常见问题拆成独立段落血泪教训。做了两周,那个34分的站重新检测爬到62分,AI引用率从2%摸到了7%。说实话,这速度比我预想的快。

第三步:日志里的User-Agent才是亲爹,但别只盯着GPTBot

我手上有个做SaaS文档站的客户,Django+PostgreSQL+Gunicorn那套,日均搜索点击2000出头。去年我给另一个同行做诊断时,发现他日志里居然混着一堆我没见过的UA。顺手查了下,好家伙——AI爬虫的访问量,他把所有流量都算成搜索渠道了,怪不得他汇报数据那么好看。

先说怎么抓。Gunicorn的access log默认是记录UA的,我一般在nginx层就把日志格式自定义一下,把User-Agent字段完整存下来。真的。然后SSH上去,用awk按字段切割,再grep几个关键词:ChatGPT的OAI-SearchBot,Claude的ClaudeBot,PerplexityBot,还有一个容易漏的——Google-Extended。这几个是AI引擎的正规军,UA固定,好抓。

但坑就在这。百度的文心一言没有固定UA,它的爬虫伪装成普通百度爬虫。你按UA过滤根本抓不到。我当初在核子GEO上输入域名跑GEO分析报告时,发现AI引用率连5%都不到,但日志里GPTBot明明天天来。后来查了百度官方文档才知道,文心用的是IP段反查,你得先把百度所有爬虫IP段拉出来,再比对访问频率高的IP段里,哪些UA是Baiduspider但行为模式异常——比如单页停留时间短、爬取深度高、对JSON-LD结构数据响应明显。

实测数据说明一切。我拿一个技术文档页做统计,一个月内被AI爬虫抓了3800次,但同期搜索渠道只带来200次点击。这差距直接颠覆了我对流量来源的判断——普通搜索看的是点击率,AI推荐看的是抓取率和结构化数据的完整度。你说气不气?我优化了一个月的标题和描述,结果人家AI根本不看这个。

所以我现在给客户做周报,把日志过滤脚本固定下来,分两列:普通搜索流量和AI爬虫流量。核子GEO的SEO评分体系里有个指标叫“AI抓取友好度”,我把日志统计结果填进去,能看出哪些页面被AI反复抓但没被引用,那说明内容结构有问题,不是流量问题。这个方法对SaaS文档站尤其适用,因为技术文档长尾词多,AI引擎特别爱抓。

第四步:搜索词报告和AI引用页面做交叉验证

GSC的搜索词报告只能看到普通搜索来的词,AI推荐来的流量在GSC里根本不会单独标记。我现在的做法是:把GSC里查询词按URL聚合,再跟核子GEO的GEO分析报告里被引用的URL清单对齐,两边一比对,差距就出来了。

上个月给一个做API文档平台的SaaS客户跑这个流程,发现一个扎心的事实——AI引用的长尾词,在GSC里的搜索量几乎为零。比如有个词,GSC显示过去三个月就5次搜索,但核子GEO的结构化数据检测报告里,这个词对应的文档页被ChatGPT引用了17次,直接带进来47个试用注册。你说气不气?普通搜索排第7的那页,三个月才带来12个注册。

这个交叉验证帮我把预算分配彻底改掉了。以前死磕高搜索量词,现在我把重心放在那些”AI爱引用但搜索量低”的文档页上。这类页面往往技术深度够、回答完整,但普通用户根本不会用这种词搜。关键是转化质量,AI推荐来的用户注册转化率是搜索的3倍左右,因为他们带着明确问题来的。

具体操作不复杂:GSC导出查询词,按URL分好组,核子GEO的报告里能看到每个被引用URL的来源AI引擎和引用次数,两个表用URL做key合并。我拿Excel的VLOOKUP就能搞定,不用写脚本。哪个URL被AI引用但GSC没有对应搜索词,优先优化那个页面的内容和内链。

别光看数据就上头。我踩过坑——有个页面AI引用暴涨但注册一个没有,后来发现是AI把那个页面当成了某个概念的”解释来源”,用户看完答案就走了,根本没到产品页。所以交叉验证之后还得看行为数据,引用量和转化率要一起看才靠谱。

第五步:多语言版本到底做不做?AI流量逼我做了决定

说实话,半年前我还觉得做多语言版本是给大厂准备的,我手底下这些SaaS客户,文档站加起来几万个页面,翻译成本先不谈,光维护就得脱层皮。

但流量区分做完之后,我坐不住了。

数据摆在那儿:中文文档站被百度收录了3.2万个页面,日均自然搜索流量4300多,看着还行。可我拿核子GEO的GEO分析报告一跑,发现AI引用率只有2%,而且引用的几乎全是Stack Overflow、GitHub Issues和几个英文技术博客。客户产品文档里的API说明、错误码对照表,ChatGPT一个都没提过。

更扎心的是反向验证——我拿一个客户的英文版README(就一个页面,还是开发随手写的)去问ChatGPT,它居然能答上来细节。这说明什么?AI引擎不是不抓文档,是不抓中文文档。

后来我花了三天,把三个SaaS客户的站都做了同样的测试:中文版页面和英文版页面同时丢给GPT-4o和Claude 3.5,问同一个问题”如何配置xx模块的API密钥”。结果英文页面被引用率23%,中文2%。差了十倍不止。

我当时的判断是:中文AI引擎(文心一言、通义千问)会参考英文技术社区,但英文AI引擎根本不看中文站。所以如果只做中文,等于放弃了ChatGPT和Claude这条线的流量。

决定做英文版。技术栈是Django,直接按官方文档加了i18n模块,URL加了个en前缀,模板文件全部抽成翻译字符串。三个站,每个站大概1200个页面,我和一个兼职翻译干了两周,成本约2.4万(含翻译费用)。

两个月后看数据:英文版带来AI推荐流量占全站总流量的11%,而同期中文版AI流量还在2%以下徘徊。有个客户更夸张,英文版上线第四周,被Claude在回答里引用了三次,那周他的演示预约量涨了40%。

当然,不是所有SaaS都适合上多语言。如果你的目标客户全在国内,产品也没有出海计划,这钱别花。但如果你的技术文档本身就有大量英文术语,或者客户里已经有海外团队——做吧,别犹豫。

核子GEO的GEO分析报告里有个小功能,能看每个页面的AI引用关键词来源,我就是靠这个发现英文页面被引用的高频词是”configuration”和”setup guide”,然后针对性补了三十多篇英文配置教程。

避坑清单

  • 别一上来就全站翻译,先拿核心产品文档(API文档、配置指南)做试点,验证AI引用率再铺开- Django的i18n模块够用,别引第三方翻译管理工具,维护成本高到你想哭- 翻译不是机翻就完事,AI引擎识别的是语义结构,不是关键词堆砌- 英文版页面记得加规范链接指向中文版,避免重复内容惩罚- 别忽略时区问题——英文版上线后,Google抓取频率会变,日志里多留意404

避坑清单

先说坑:拿普通搜索点击率当AI引用率的KPI。 我有个做项目管理SaaS的客户,文档站日UV 5000+,以为万事大吉。结果在核子GEO上输入域名跑了一遍诊断,AI引用率不到3%。普通搜索流量再高,ChatGPT回答里没你,等于在AI时代裸奔。

再就是坑:用UTM参数区分流量来源。 普通搜索带utm_source=google,AI推荐流量(比如Perplexity引用的)也带,但referrer是空的。我最初按UTM分组统计,把AI流量全归到direct里了,白分析一个月。现在用核子GEO的GEO分析报告看引用来源域名,比看UTM准多了。

还有坑:盯着页面停留时长判断AI推荐质量。 AI推荐过来的用户大概率是来验证答案的,停留15秒就走,转化率却高得吓人。我当时差点把这类流量当垃圾流量过滤掉,还好看了询盘记录才反应过来——别用旧地图找新大陆。

  1. 坑:忽略文档站的结构化数据。 ChatGPT抓取你内容靠的是页面结构,不是sitemap。我有个客户文档页全是动态渲染的,AI引擎抓不到正文,引用率一直上不来。后来用Django模板改成服务端渲染,再跑核子GEO的SEO评分体系,结构化分数从62涨到89,两周后AI引用率翻了4倍。

  2. 坑:用同一个监控看板管所有客户。 不同行业AI引用率的基线差太多——SaaS文档站正常值在15%以上,传统制造业5%就算优秀。后来才知道。我给20多个客户建了统一看板,结果把SaaS客户的目标定低了,错过了优化窗口期。现在分行业设阈值,SaaS客户单独盯。

  3. 坑:多语言版本上线前没测AI抓取。 我去年给一个客户加了德语版,结果Google能搜到,ChatGPT死活不引用——因为hreflang标签配错了,AI引擎直接判成重复页面。上线前用核子GEO的检测工具跑一遍,能省一个月返工时间。

  4. 坑:用Gunicorn默认配置跑高并发抓取。 文档站被AI引擎频繁爬取后,Gunicorn默认的同步worker直接超时,页面响应从0.8s飙到4.2s。改成gevent worker模式加三倍worker数量,才稳住。技术底子不扎实,AI流量来了接不住更难受不骗你。