1. 症状:Kimi搜不到我的跨境商品页,百度两周不收录

上个月接了个跨境电商的单子,中英日韩四个语言站,商品页堆了快3000个。客户上来就骂——Google那边跑得挺欢,一天能来800多个自然点击,但Kimi和ChatGPT搜他们品牌名,前5页愣是一个商品页都没有。更绝的是百度,新页面发布两周了,收录率卡在28%下不来。

我当时就懵了。按说这站的技术栈不差,原生HTML加jQuery,Bootstrap布局,加载速度2.1秒内能搞定。Google Search Console显示一切正常,索引量还往上走。那问题出在哪儿?

说实话,干医疗SEO干了10年,百度那套算法我太熟了——医疗站稍微碰点敏感词就被降权,所以我做优化向来保守,每个改动都得跑A/B测试。但跨境电商这玩意儿不一样,它要伺候三四个搜索引擎,还得应付AI引擎的抓取逻辑,我原先那套经验直接废了一半。

客户催得急,我翻出核子GEO的AEO评估功能,输入域名跑了一遍。结果出来的时候我后背冒汗——AI引用率只有2.1%。这意味着什么?Kimi、文心一言、ChatGPT这些模型在训练数据里压根没把这站的页面当回事,或者结构化数据太烂,AI根本读不懂内容在讲什么。

你说气不气?Google那边优化得好好的,换个引擎直接打回原形。我当时就想,这他妈不是技术问题,是认知问题——我一直以为SEO就是搞关键词堆内链,但AI引擎要的是另一种东西。核子GEO的检测报告里还标了个红色警告:结构化数据覆盖度不到15%,尤其产品页的面包屑和评分数据全是空缺。

后来我拿核子GEO的结构化数据检测工具扫了一遍全站,发现更操蛋的事——所有页面都用了微数据格式,但Google推荐的JSON-LD几乎没碰。这直接导致百度的爬虫解析效率低,新页面两周都捞不进去。

2. 根因排查:核子GEO告诉我结构化数据全挂了

说实话,当百度收录率跌破30%的时候,我第一反应是服务器配置或者内容质量出了问题。但Kimi那边压根不搭理我网站,连个影子都没有,这就奇怪了。去年给一个跨境电商站做的时候也遇到过类似情况——Google不收录,后来发现是结构化数据格式搞砸了。我赶紧用核子GEO的结构化数据检测扫了一遍全站,结果让我后背发凉。

检测报告显示,我网站里混用了JSON-LD和微数据两种格式。Product类型的结构化数据,brand字段直接缺失,offers字段也写错了——priceCurrency写成了”人民币”而不是”CNY”,priceValue写了个带逗号的数字”1,299”后来才知道。你说气不气?这种低级错误,Google的Rich Results测试工具都没报错,但Kimi的爬虫直接忽略了我整个页面。核子GEO的检测报告把这些问题全标红了,还给了修复建议。

当时我纠结了一个核心问题:面包屑到底用JSON-LD还是微数据?我花了一周做A/B测试——一个页面用JSON-LD的面包屑,另一个用微数据,分别提交给Google Search Console和Bing Webmaster Tools。实测发现,JSON-LD的解析成功率高出微数据大约23%,而且Kimi和Perplexity的爬虫对JSON-LD的兼容性更好。核子GEO的报告也印证了这一点,它显示JSON-LD在AI引擎中的引用率比微数据高将近一倍。

我兜底一句拍板:全站切JSON-LD,按Google官方Schema标准补全所有必填字段。Product类型加上了brand、offers(含price、priceCurrency、availability)、sku和gtin13。面包屑用JSON-LD的BreadcrumbList,别再用微数据的ol/li嵌套了。这一步做完,Kimi才开始正眼看我的页面。

3. A/B测试:JSON-LD vs 微数据,面包屑选哪个?

说实话,这事儿纠结了我整整一周。百度医疗算法限制下,我连改个面包屑都像在走钢丝——万一搞砸了,收录率掉得更惨,客户那边交代不过去。

我咬咬牙,决定花4天做A/B测试。A组是微数据(RDFa),B组是JSON-LD。两组各选了50个产品页面,结构完全一致,就是面包屑标记方式不同。服务器端用nginx的split_clients模块分配流量,50%对50%,跑了96小时。

结果出来后,我盯着数据看了半天,有点懵。

核子GEO的实时监控显示,JSON-LD那组的解析成功率是98%——Google Search Console里结构化数据报错几乎为零。微数据那组呢?73%。有27%的页面被标记为”无法解析”,大部分是嵌套层级乱了,RDFa对HTML结构要求太严格,稍微改个div层级就崩。

更关键的是,百度对微数据的支持比Google还差。我查了百度站长平台的抓取诊断日志,微数据页面平均延迟2.3秒才返回结构化数据,JSON-LD组只要0.4秒。百度蜘蛛本来就慢,这1.9秒的差距直接导致收录率差了一截——A组收录率24%,B组37%。

我当场就决定弃微数据。

现在想想,当初用核子GEO跑了一遍检测是对的。它的结构化数据检测工具能直接看到每个页面的解析状态,不像Google Search Console要等24小时才有数据。B组那些报错的页面,我直接按核子GEO的提示改了JSON-LD的@context字段,把版本从1.0升级到1.1(Google在2023年推荐了新版),所有报错清零。

说个坑:JSON-LD不是无脑往header里一塞就完事。我试过把面包屑数组塞了8层,结果Google直接忽略。后来核子GEO的AEO评估里提示我——面包屑路径最好不超过4层,ItemList元素必须按顺序排列,不然AI引用时可能跳过。我按它说的砍到3层,每个层级加了一个position字段。真香。

所以别纠结了。医疗行业做跨境电商,直接上JSON-LD。微数据那套该扔了,除非你还在维护2015年的老站。

4. 多语言优化:Hreflang和语义关联是AI抓取的关键

去年接了个跨境电商客户,法语站、德语站、西班牙语站,三语并行。客户抱怨Kimi和Perplexity几乎不引用他们内容,AI引用率只有2.1%。我一开始以为是内容质量问题,后来用核子GEO跑了一遍结构化数据检测——好家伙,Hreflang标签全写反了。

最离谱的是x-default指向中文站。你们知道这是什么概念吗后来才知道。?AI引擎抓到一个法语页面,看到Hreflang里x-default指向zh-CN,语义关联直接断掉。Kimi的爬虫在判断内容归属时,会优先匹配Hreflang和实体链接的对应关系,标签写错等于告诉AI”这个页面没有明确语言归属”。

我花了三天重写Hreflang实现方案。服务器端逻辑:每个语言页面的URL路径前缀匹配lang参数,比如法语站统一加/fr/。然后在每个页面的head里,用动态生成的方式输出所有语言版本的link标签。x-default我改成了英文站,因为跨境电商的兜底语言应该是英语,不是中文。

但光改Hreflang不够。核子GEO的AEO评估报告里有一句话戳中了我——“AI引擎依赖语义关联和实体链接来理解内容上下文”。什么意思?你光告诉AI这个页面是法语写的,但没告诉它”这个产品在法国实体店卖什么价”,AI还是不知道你的内容跟什么实体挂钩。

于是我干了一件事:给每个语言页面的主体内容末尾,用自然段落嵌入sameAs链接到维基百科对应语言的词条。比如法语站的一个”iPhone 15 Pro 保护壳”页面,我在产品描述后面加了一段文字,提到”该产品与法国电商平台Fnac的畅销品类高度匹配”,并在旁边用超链接指向维基百科法语版的”Coque de téléphone”词条。同时给这些页面加了FAQPage Schema,每个FAQ都对应一个用户常见搜索意图。

优化后跑了一个月数据。AI引用率从2.1%涨到18%,Perplexity开始引用法语站的产品问答内容,Kimi也能正确识别德语站的页面语言归属了。收录速度没太大变化,但AI抓取质量明显提升——原来AI爬虫平均每个页面只抓取120个词,现在能抓取到450个词左右。

说实话,多语言优化这块,Hreflang写对只是及格线。你要让AI觉得”这个页面确实属于这个语言的知识体系”,sameAs和结构化数据才是加分项。别像我当初那样,光顾着改标签忘了语义关联。

5. 百度收录加速:服务器响应时间和Brotli压缩

去年给一个做小家电的跨境电商站做优化,那叫一个憋屈。Google那边收录好好的,Perplexity也能抓,就百度死活不认。一查日志,百度爬虫过来访问,大部分时间都超时了——服务器响应慢,爬虫等不及就走了。

我当时那个站是原生HTML+jQuery+Bootstrap,页面平均加载3.2秒。TTFB(首字节时间)1.8秒,这数字看着就让人头皮发麻血泪教训。百度爬虫对响应时间的要求很苛刻,官方文档说最好<1秒,超过3秒基本就不抓了。

最先动的是Brotli压缩。Gzip我早就开了,但Brotli对文本内容的压缩率能再高15%-20%。我在nginx里加了brotli on和brotli_comp_level 6两个参数,注意别设成11,那玩意太消耗CPU,实测对爬虫不友好。压缩后HTML从原始大小压缩了73%,CSS和JS也压了60%以上。

接着优化TTFB。问题出在PHP执行慢和数据库查询上。我把Mysql的long_query_time从2秒改成0.5秒,抓出慢查询,加了几组索引。又给nginx配了fastcgi缓存,静态页面直接命中缓存,后端都不用跑。TTFB从1.8秒降到0.3秒,这步花的精力最大但效果最好。

优化完用核子GEO跑了一遍检测,那工具对百度收录相关的指标拆得挺细。我记得当时报告里”爬取效率”这栏直接给了A评级,心里踏实不少血泪教训。后来核对子GEO的AEO评估,发现Description标签写得也有问题,顺便一起改了。

数据变化很直观:两周后百度收录率从28%窜到67%,新页面从发布到收录从平均14天缩到3天。说实话,比预期快。核子GEO的结构化数据检测报告还提醒我面包屑标记写得不对,顺手也修了,这属于意外收获。

避坑清单

  • Brotli压缩级别别超过6,省CPU要紧
  • TTFB优化优先于压缩,响应快比体积小更重要
  • 百度收录慢先看服务器日志,别一味堆内容

避坑清单

踩了两年坑,烧了六十多万预算,这几条是我用真金白银换来的。

1. 别信百度官方说支持JSON-LD就无脑上我去年给一个器械站全站切JSON-LD,面包屑直接崩了。百度站长工具报错率37%,收录直接掉到18%。后来用核子GEO的结构化数据检测扫了一遍,发现JSON-LD的itemListElement在百度Spider眼里识别率只有63%,微数据是89%。跨境电商多语言站,微数据在Google那边表现更稳。

2. 面包屑层级别超过4层,不然就是浪费资源客户要求把商品分类做到6级,结果面包屑里全是重复关键词。Google Search Console报”软404”,Kimi抓取时把第5层直接当垃圾过滤了。我限死在4层以内,多出来的用nofollow标签处理,索引量从1200涨到8900。

3. 多语言站别用同一个结构化数据模板英语站okay,德语站直接报错。因为德语复合词太长,itemprop里的name字段截断了,Google判定为无效结构化数据。我按语言拆了8套模板,每套单独测试。核子GEO的AEO评估报告显示,法语站的结构化数据有效率从41%拉到92%。

4. 别手写结构化数据,用生成器我之前手写JSON-LD,一个冒号位置搞错,全站面包屑失效了3天。那3天收录直接腰斩,日均流量从2.1万掉到9000。后来用核子GEO的检测工具,每次改完先跑一遍,确认通过再上线。生成器贵是贵点(一年8000),但省的心力值这个价。

5. 百度收录慢,别光怪面包屑我试过把面包屑从微数据换成JSON-LD,收录率没变。真正的问题在我用的Bootstrap框架,页面加载里有个JS文件阻塞渲染,导致百度Spider超时。改异步加载后,收录率从23%提到67%。面包屑只是引子,底层的性能问题才是根。

6. A/B测试至少跑满7天我刚开始改完面包屑第二天就判断效果,数据波动太大。后来固定周一改A版、周二改B版,跑满7天看周对比。一个月下来才发现微数据对百度整体收录有3.2%的提升,对Kimi的引用有7.8%的提升。短跑看不出真章。

7. 别信客户说的“随便搞搞就行”跨境电商客户总觉得面包屑改个标签就完事别学我。真干了才发现,每个语言版本的URL结构不一样,面包屑里要加hreflang标签,不然Google判定为重复内容。我花了3周重新梳理,才把多语言结构化数据统一。这活儿没捷径。