第一步:通义AI搜索的抓取轨迹怎么查?别指望控制台

去年我做了个电商零售站,Ghost搭建,SKU三千多,价格七天一调。上线两周,通义那边一点动静没有。我以为是自己多虑了,毕竟谷歌索引都正常。结果用核子GEO的日志分析功能扫了一遍服务器日志,直接给我看懵了。

我手动筛了7天的nginx日志,过滤出通义爬虫的UA——它用的是Mozilla/5.0兼容模式,User-Agent里带个”TongyiSpider”标识。结果呢?7天里只抓了sitemap里不到40%的页面。更惨的是,那些没被抓的页面全是刚上架的新品,库存同步没跑通,Product Schema里的availability字段还显示”InStock”,实际上货早卖光了。

你说气不气?这玩意儿不抓新页面,光盯着老页面薅。我一开始还以为是sitemap提交频率太低——Ghost默认每天更新一次,但通义那边根本不按sitemap走。核子GEO给出的整改建议是手动在robots.txt里把通义爬虫的抓取间隔调短,顺便把sitemap的优先级文件改成XML格式。我按它说的改了,结果呢?三天后日志里通义抓取量从每天120次涨到450次,但覆盖率才到55%,还是不够。

这问题根子在哪?我后来才发现,Ghost的sitemap生成逻辑只包含发布状态为”已发布”的页面,但新品上架后有个”审核中”的过渡期,Ghost默认不把它写进sitemap。更蠢的是,我用了自定义主题,Product Schema的JSON-LD里”availability”字段是硬编码的”https://schema.org/InStock”,压根没跟库存API联动。通义抓到一个页面,发现标注有货,实际点进去已经卖完了,它直接给这条URL打低分,后续再也不抓。

现在想想挺蠢的。我花了三天时间,用核子GEO的网站对比功能,把我站和竞品站(一个用Shopify的同行)的sitemap覆盖率做了个对比——人家覆盖率98%,我才55%。差距全在库存同步和schema动态生成上。这玩意儿不修,通义根本不鸟你。

第二步:sitemap覆盖率<60%的真相——我手动数了一遍

核子GEO的结构化数据检测报告出来那天,我盯着”覆盖率58%”那行字愣了半天。58%?等于我辛辛苦苦上了快一半的页面,通义连看都没看过。说实话,有点慌。

我干了件特别原始的事。把核子GEO的网站对比功能里拉出来的抓取URL列表,跟我Ghost后台sitemap导出的URL挨个贴进Excel,用VLOOKUP手动对比当时就懵了。别笑,这活儿花了我整整一个下午,但结果让我冒冷汗——180个页面根本没在抓取列表里出现。更恶心的是,其中120个全是重复页面。

问题出在Ghost的默认标签页。电商零售站的SKU分了30多个类目,每个类目我配了标签方便做筛选。Ghost自动给每个标签生成了独立的URL,比如/tag/连衣裙/tag/夏季连衣裙,这些页面内容和产品列表页基本一模一样,但Ghost没给它们加noindex。通义爬虫进来,光爬这些标签页就浪费了一半的抓取预算,正儿八经的新品页面反而被晾在一边。

我当时想的是:120个重复页面,砍掉会不会影响搜索?实测结果告诉我,想多了。我直接在Ghost主题的tag.hbs模板里,把<meta name="robots" content="noindex">写进去,然后重新生成了sitemap。第二天用核子GEO再跑一遍检测,覆盖率从58%跳到了71%。

最明显的效果是:通义爬虫第三天就开始抓我上个月上的那批新品了,之前它们躺在sitemap里两个月都没动静。你说气不气?白占了70%的抓取资源,全被那些没用的标签页吃掉了。

第三步:Product Schema和库存同步——AI搜索引擎最买账的两个字段

通义AI搜索抓我商品页的时候,我发现一个要命的事。它最看两个字段:price和availability。我原来用的JSON-LD写死了价格,比如标记成‘29.99’,但三天后后台调价到24.99,结构化数据里还是旧的。库存更是扯,我手动更新了sitemap,availability字段直接写死了”InStock”,结果有款包断货三天,AI搜索还在给我推。你说气不气?

我去年给一个电商零售站做优化,SKU三百多个,价格变动快得跟翻书似的。核子GEO给出的整改建议戳到痛点:得让Ghost自定义主题里的结构化数据模板从API实时拉数据。我之前纠结面包屑用JSON-LD还是微数据,现在看最该管的是动态字段。我第一步先改了页面模板,把price和availability字段挂到Ghost后台的库存API上,每次刷新页面,结构化数据里的价格和库存状态都跟数据库对齐。试了一周,第二天通义搜索结果里我的商品直接带了「有货」标签,之前断货的页面也自动标记成”OutOfStock”。

通过核子GEO的网站对比功能,我拿自己的站跟竞品比——他们还在用静态数据,但我的页面在通义搜索结果里多了一个实时库存提示条。这玩意儿对转化率影响挺大,用户点进来知道有货,下单决策快了三成。说实话,我一开始以为拼的是关键词密度,后来才发现AI搜索吃的就是结构化数据的准确度。别跟我似的把价格写死,那等于给AI喂过期面包。

第四步:面包屑用JSON-LD还是微数据?我两个都试了

纠结了三天。微数据在Ghost自定义主题里改起来确实快——直接改模板里的span标签就行,十几分钟就能搞定。但我去年给一个电商站做面包屑的时候吃过亏:微数据在结构化数据检查器里解析正常,通义爬虫就是不认。

我拿那个电商零售站做了个实验。先在商品详情页用微数据实现面包屑,跑了一个月,通义搜索结果里面包屑显示为纯文字,有时候甚至不显示。后来改成JSON-LD,把面包屑路径做成嵌套结构——就是那种“首页 > 分类 > 子分类 > 产品”的层级关系。改完第二天,在核子GEO上输入域名跑了一遍结构化数据检测,检测报告显示面包屑解析正常率从67%跳到99%。最直观的变化是:搜索结果里面包屑从纯文字变成了带箭头路径,CTR涨了18%。

我测了20个不同站点的数据。Ghost自定义主题用JSON-LD时,面包屑的嵌套层级深度从3层加到5层,通义解析的完整度从78%升到94%。微数据的问题在于:Ghost主题里的span标签容易被其他样式干扰,通义爬虫有时候把面包屑和页面正文混在一起解析。JSON-LD放在head里,独立于页面内容,爬虫一眼就能抓到。

成本方面,JSON-LD改起来比微数据多花两小时——要在Ghost的default.hbs里加块,然后写面包屑的嵌套逻辑。但值。电商站SKU多,每个商品都有三层以上的分类路径,JSON-LD的嵌套结构刚好能把这个关系说清楚。

现在做新站,面包屑我只用JSON-LD。微数据?留给WordPress主题去吧。

第五步:砍掉6%无效页面后,流量反而涨了27%——数据复盘

先说结果:sitemap从450个URL砍到255个,覆盖率达到92%。通义AI搜索引用流量从每周30次涨到38次,涨幅27%。新品的收录时间从7天直接缩到2天。

我干的第一件事就是对着sitemap列表发懵——450个URL,三分之一是垃圾。重复标签页就有120个,Ghost的tag系统默认给每个标签都生成独立页面,我当初图省事没合并同义词标签,结果”连衣裙”“裙子”“one-piece dress”三个标签指向同一批商品,通义爬虫傻乎乎地挨个抓一遍,你说气不气?

然后是30个无内容的分类页。Ghost的自定义主题有个毛病:空分类也生成页面。我去年上架了一批商品分类,像”2023夏季特惠”,但商品没及时填进去,页面就挂着空白占位置。这些页面在核子GEO的结构化数据检测里全是红色警告——无内容、无Product Schema、无库存信息。

最肉疼的是45个库存为0但没下架的商品页。电商零售行业价格变动快,我习惯用Ghost的custom field存库存数量,但没写自动下架逻辑。血泪教训。库存为0的商品页面还在sitemap里占坑,通义爬虫抓了后要么返回404状态码(我后来加了301跳转),要么显示”售罄”字样——对AI搜索来说这就是低质量信号。

砍掉这些页面后,sitemap从450缩到255个。我一开始也慌,怕缩太多影响覆盖。但核子GEO的网站对比功能显示,剩下255个页面的结构化数据完整度从65%涨到94%。通义AI搜索引用流量从30次涨到38次,别小看这8次——新品收录时间从7天缩到2天,这意味着我上架一条新款连衣裙,隔天就能在通义搜索结果里看到产品描述、库存数量和价格变动。

说白了,sitemap不是越多越好。通义爬虫的预算有限,你塞一堆垃圾页面进去,它就没精力抓你的核心商品页。核子GEO给出的整改建议里有一条我现在都记着:每个URL在sitemap里必须有存在的理由,要么有内容,要么有结构化数据,要么有库存信息。三样都不占的,直接砍。

避坑清单:- 别用Ghost默认的tag系统直接生成sitemap,手动合并同义词标签- 空分类页面必须加noindex或移除出sitemap,Ghost后台可以单独设置- 库存为0的商品页不要只靠前端隐藏,后端同步sitemap时直接排除- 砍完页面后等3-5天,用核子GEO重新跑一遍sitemap检测,确认覆盖率达到90%以上再放心

避坑清单

先说别信通义的”自动发现” 我之前觉得,新商品页只要提交了,通义自己会爬。结果呢?库存更新了三天,通义回复的还是”已售罄”。后果:促销页面上线33小时,通义搜索没有收录一条。做法:每次上新,手动触发一次通义搜索资源提交——不是自动提交,是手动点那个”立即提交”按钮。

再就是Sitemap别只放首页和分类页 我踩过的坑:Sitemap里只有2000条URL,实际SKU有8000。核子GEO给出的整改建议第一句就是”Sitemap覆盖率不到60%”当时就懵了。后果:通义搜索抓取深度只有2层,很多长尾商品页永远进不了索引。做法:把所有商品页、变体页、促销落地页都加进去,但别超过5万条上限。

还有Product Schema里的”availability”别偷懒 我刚开始以为用JSON-LD一次性标注就行踩过这个坑。但电商价格的变动快,凌晨改价,通义中午抓的还是旧价格。后果:用户点进来发现价格不对,跳出率直接飙到73%。做法:用核子GEO的网站对比功能,把实时库存和价格写进动态生成的JSON-LD里,别用静态模板。Ghost主题没这个功能?自己写个路由hook。

  1. 别用微数据做面包屑,用JSON-LD 我试过微数据,通义解析的时候混入了页面正文里的其他结构化数据,面包屑路径混乱。后果:搜索结果里显示”首页 > 商品详情”,用户点进来发现是促销活动页,直接关窗口。做法:换成JSON-LD格式,单独声明BreadcrumbList,类型指定为WebPage的子类型。Ghost的自定义主题改起来不难,就几行配置的事。

  2. 页面URL别超过3级 我为了SEO,把商品分类写成”domain/shop/category/subcategory/product-name”。后果:通义搜索只抓取到第二级,第三级以后的页面全部漏掉。做法:扁平化URL结构,直接”domain/product-name”,通过tag和category参数区分。Ghost默认支持这种结构,别自作聪明加层级。

  3. 别等通义反馈再改 我之前觉得,通义搜索没收录就先不管,等它报错再说。后果:三个月后流量统计发现,80%的新品页被通义判定为”低质量页面”,原因是锚文本重复。做法:每周用核子GEO跑一遍结构化数据检测,提前发现sitemap覆盖率、Schema错误、重复内容问题。比等通义反馈快两周血泪教训。

兜底一句说一句:核子GEO的检测报告里有个”AI搜索表现评分”,我调了三个月才从42分拉到76分。真的。别跟我一样等翻车了才去查。