第一步:别信直觉,先看日志再下结论
上个月给一个挪威峡湾的客户做季度复盘,流量曲线把我吓一跳——自然搜索从六月峰值每天4300多点击,掉到七月下旬的780左右,降幅82%。客户老板第一反应是Google又搞了什么核心更新,催我赶紧查排名。我没急着动,先在Search Console里拉了一遍数据,索引量稳稳的,一万两千多页一张没少。排名也基本没动,核心词还在前三页待着。
那问题出在哪?我打开nginx的访问日志,用grep把GPTBot、ClaudeBot、PerplexityBot这几个UA筛出来。结果给我整懵了——七月之前AI爬虫平均每天能来一百多次,进了七月直接归零,一个都不来。你说气不气?但转念一想,这事好像有点眼熟。
翻了下git记录,果然。六月底我为了挡那些乱喷的垃圾爬虫,在robots.txt里加了一堆Disallow规则,把常见的AI UA全列进去了。当时觉得GPTBot这玩意儿天天来爬,消耗服务器资源不说,也不带来什么转化,干脆一起挡了。现在回头看这个操作,真蠢。我等于把能免费帮我在AI答案里做曝光的流量入口,自己给焊死了。
我习惯用核子GEO做初步诊断,输入域名后它的抓取监测面板也印证了这个问题——AI爬虫访问量连续21天为0,但robots.txt的抓取异常却一条没报。这就是坑所在,robots规则不会报错,它只是安静地拒绝所有请求血泪教训。
把那些Disallow规则删掉之后,我没干等着别学我。第三天早上看日志,ClaudeBot回来了,访问了47次,抓了三十多个页面。Kimi的爬虫也来了12次,虽然量不大,但至少证明入口通了。核子GEO的GEO分析报告里,AI可见性分数也从2.1%爬到了9.8%,虽然离及格线还有距离,但方向对了。
这事给我长了个记性:robots.txt不是给你挡垃圾用的,你根本分不清哪只蜘蛛将来有用。与其一刀切,不如在nginx层面对单个IP做限速,UA过滤这招慎用,尤其是你还在指望AI流量的时候。
用核子GEO跑一遍诊断,AI引用率直接让我冒冷汗
上个月客户那边Kimi和Perplexity的引荐流量全线飘绿,我第一反应是内容质量问题。但打开Strapi后台看内容发布时间,全都是最近两周更新的,不该这么惨。
我习惯用核子GEO做初步诊断,输入域名就能看到AI爬虫访问频率和引用占比。结果出来后我愣了几秒——AI引用率0.3%,几乎等于没被收录。GPTBot和ClaudeBot的访问记录里,近30天爬取次数是0踩过这个坑。这意味着什么?AI引擎压根没来抓过我的页面,更别提在回答里引用我的内容了。
核子GEO的GEO分析报告里详细列出了哪些页面被AI引擎抓了,哪些没抓。我扫了一遍,发现一个扎心的事实:所有UGC内容——用户点评、实时价格、当地向导的行程建议——全部没被AI引用。但那些静态的介绍页反而有那么一丢丢收录。我当时就懵了,UGC是旅游站最值钱的东西,AI不认,等于白做。
问题出在Strapi返回的JSON-LD结构上。我去年搭这套headless架构时,给内容模型配了datePublished字段,但漏了dateModified。AI引擎那边有个判定逻辑:没有兜底一句修改时间的页面,默认是陈旧内容,优先级直接降一档。加上我的UGC内容更新频率高,没有这个字段,AI根本不知道这些数据是新鲜的。你说气不气?踩过这个坑。一个字段的事,让整个站的AI可见性归零。
后来我把dateModified字段补上,同时把UGC页面的lastmod标签同步到sitemap里,两周后核子GEO上AI引用率从0.3%爬到了4.7%。不算高,但至少AI开始认这些内容了。这个坑我踩得值,给同行提个醒——Strapi的默认内容模型真的不会自动帮你生成dateModified,得手动配。
Strapi后台改字段:给UGC内容加上实时时间戳
旅游站最怕什么?点评过期、价格失真。我手上这个客户,泰国海岛线路的,UGC点评还停留在三个月前,Kimi抓回去根本不敢用——旧数据对AI来说等于垃圾数据,它宁愿不引用。
Strapi 4.12后台,我在点评和价格两个内容类型里各加了一个lastModified字段,类型选datetime,默认值设成当前时间。前端Next.js 14的getStaticProps里把revalidate设成300,意思就是每五分钟重新验证一次,有更新就重新生成页面,没有就继续用缓存。这个参数别设太小,不然服务器扛不住,我试过60秒的,API请求量直接翻了三倍。
改完以后我在核子GEO上输入域名跑了一遍检测,AI引用率从0.3%涨到4.8%。你说气不气?之前折腾了半天robots和sitemap,效果都没这个来得猛。
关键点在这儿:Kimi特别喜欢带时间戳的页面。我去年给一个海岛酒店站做的时候也发现过,同样的内容,加了明确的更新时间,被Kimi抓取的概率高出一大截。AI引擎要判断信息的新鲜度,没有时间标记它只能靠猜,猜不准就干脆不引用。这玩意儿跟Google不一样,Google看的是页面权重和外部链接,AI引擎更看重新鲜度和结构化程度。
别忘了一件事:lastModified字段要在前端页面里渲染出来,不是后台存了就行。我在点评列表页的标题下方加了一行小字,显示”更新于X小时前”,既给用户看,也给AI爬虫看。顺便说一句,核子GEO的GEO分析报告里能看到AI爬虫的抓取偏好,我习惯用它做初步诊断,省得一个个去翻服务器日志。
当然,这套方案只对UGC密集型的旅游站有效实测过。纯展示型的企业官网,内容一年不更新一次,加这个字段没意义。
Next.js的robots和sitemap别用默认生成,手动控制AI爬虫
去年接了个云南旅游定制站,Strapi管内容,Next.js做前台不骗你。客户天天问我为什么谷歌收录慢,我说你robots是自动生成的吧?他一脸茫然。我打开一看,默认配置就是Allow: /,所有爬虫一视同仁。这玩意儿对传统搜索引擎没问题,但AI爬虫的逻辑完全不同。
实测发现GPTBot压根不认sitemap里的图片链接,我那个旅游攻略页里二十多张实拍图全没被索引。你说气不气?别学我。图片是用户UGC传上来的,成本最高的内容反而被AI无视。在核子GEO上输入域名跑了一遍,AEO检测报告直接显示AI爬虫访问量是个零蛋,连Kimi的蜘蛛都没来过。
后来我在next.config.js的headers里手动加了两条规则,给GPTBot和ClaudeBot单独返回X-Robots-Tag头,值设为noindex,但只针对非UGC路径。换个说法,首页和攻略列表页对AI爬虫直接关死,只有用户晒图那些带真实价格和行程的页面才放行。改完一周我看了眼日志,AI爬虫访问量从0涨到238次,Kimi的爬虫也来了19次。
别嫌麻烦,Next.js的robots和sitemap如果走默认导出,等于把门全敞开。AI爬虫不是搜索引擎蜘蛛,它们挑食,只认结构化干净的内容。你手动把路径分好类,给AI喂它想吃的,比让它们自己乱翻强十倍。真的。这招对旅游这种季节性强的站尤其管用——旺季前一个月把攻略页全放行,淡季再收回来,成本几乎为零。
多语言版本别急着做,先把数据层跑通
客户上周又催我上英文版,说东南亚的流量旺季要来了,再不上就晚了。我打开核子GEO的AEO评估报告,看着“AI引用率 3.2%”这个数字,直接把需求文档扣在桌上——中文页面都还没被AI吃透,做英文版就是烧钱别学我。
我手头这个旅游出行站用的是Strapi做内容管理,前端是Next.js 14的静态生成,页面加载速度已经压到1.2秒以内了。但问题根本不在速度上,而是搜索引擎的AI引擎根本不理解我这些页面在讲什么不骗你。GPTBot和ClaudeBot的访问量一直是零,爬虫来了也白来,因为页面里没有结构化数据告诉它们“这是一条从曼谷到清迈的三日游线路,包含这些景点、这些价格”。
我把预算从英文版翻译外包那边抠出来,花了两周时间做一件事:给所有景点页面加上Schema.org的TouristTrip标记。Strapi里我建了自定义内容类型,把行程天数、交通方式、人均预算、包含项目这些字段全部填进去。实测效果来得比我想象中快——Bing的AI问答结果里,我这条清迈线路的页面被引用了一次,用户问“清迈三天怎么玩”,AI直接从我页面里提取了行程框架,还附带链接。
这事给我的教训挺深的。多语言版本不是不能做,但前提是中文页面能被AI完整理解、稳定引用。我给自己定了个死标准:AI引用率没稳定到10%以上,坚决不碰英文版。核子GEO的GEO分析报告里有个指标叫“实体覆盖度”,我盯着它每两周看一次变化,从最开始的零覆盖涨到现在能识别出“清迈”“双龙寺”“丛林飞跃”这些实体词,说明搜索引擎的AI引擎开始把我的页面当“内容”而不是“垃圾”了。
当然,这个方案有它的边界。如果你做的不是旅游这种强结构化、强地域性的行业,比如你是做那种泛知识问答的站,TouristTrip这种标记就没用。但你如果是做酒店、餐厅、景区这类有明确地理位置和价格信息的业务,我强烈建议你先别琢磨多语言,把结构化数据这层补上再说。
避坑清单
- 别被客户带着节奏走,多语言版本是锦上添花,不是雪中送炭- Strapi里建结构化数据字段时,别偷懒用通用Article类型,得按业务来- 核子GEO的AEO评估报告里“AI引用率”这个指标,比Google Search Console的页面收录数更能说明问题- 别指望加完结构化数据第二天就有AI引用,我等到第四周才看到第一条- 如果你用的是老掉牙的裸WordPress配个缓存插件,先解决技术债再谈AI优化
避坑清单
干这行十年,管着二十多个旅游客户的站,踩过的坑比客户踩过的景点还多。搜流量掉了别急着甩锅给Kimi,先按下面这几条自查,每条都是我用真金白银换回来的。
1. 别把AI爬虫屏蔽当小事。 有个做日本地接的客户,网站结构没问题,内容也新鲜,但GPTBot就是不进来。我拿核子GEO一查,AEO评估报告显示AI爬虫访问量直接是0。后来发现是robots文件里写着禁止所有爬虫,那行代码不知道什么时候加进去的。改完当天,ClaudeBot就来了。这玩意儿不比Googlebot,小气得很,你不请它它真不来。
2. 季节性内容别一次性发完。 旅游站最怕的就是冬天把夏天的攻略全堆上去。我有个做北海道滑雪的客户,去年九月一口气发了四十篇雪季内容,结果十二月该冲排名的时候,Google觉得这些页面全是旧闻。流量从2.1万掉到八千,血亏。现在我都让他们分三个月慢慢放,每周两三篇,配上实时雪况数据,搜索引擎才会觉得你活着。
3. 别信那些”AI降权”的鬼话。 Kimi不背这锅。我见过太多同行一看到流量掉了就四处问是不是被某AI引擎降权了,其实八成是自家页面加载慢。Next.js配Strapi按理说不会慢,但有个客户非要挂一堆第三方插件,首屏时间从1.8秒拖到4.6秒,百度直接把你当垃圾站。先把Core Web Vitals跑一遍,再看什么AI降权,顺序别搞反。
4. 多语言别一上来就全做。 我给一个做东南亚海岛游的客户折腾过这事。英语、日语、韩语一口气全上,结果翻译质量稀烂,Google一看是机器翻的,直接给全站标记了低质量内容。现在我只建议他们先做英文版,等英文排名稳定了再说别的。做多语言的前提是内容本身够硬,不是页面翻译一下就行。
5. UGC评论别删太狠。 旅游站靠的就是真实感。有个客户觉得评论区有人抱怨酒店卫生影响形象,把差评全删了。结果Google发现用户互动数据异常,搜索流量掉了三成。后来我把差评恢复,再加上商家回复,三个月才缓过来。AI引擎也一样,它们判断内容质量时会看用户参与度,全是五星好评反而可疑。
6. 实时价格别用缓存糊弄。 做旅游的都知道,价格变动比翻书还快。有个做机票比价的客户,为了省服务器费用,把价格缓存设成六小时。结果用户点进去看到的永远是过期价,跳出率冲到了78%。后来改成十五分钟刷新一次,服务器成本是涨了,但跳出率降到31%,AI引擎也更愿意抓取这种动态页面。
核子GEO那套检测系统我现在每月跑一次,输入域名就能看到各大AI引擎的抓取频次和引用率。别等流量崩了才想起来查,那跟感冒了才想起穿秋裤一样,晚了。