问题排查:用核子GEO的网站对比功能锁死病灶

Search Console里Schema错误率30%,我盯着那个红色数字骂了三天娘。英文站索引量降了40%,中文站倒还稳着。直觉告诉我,问题出在结构化数据上,可手写Schema这东西,少个字段就全完蛋。

我先拿中文站域名去跑核子GEO的AEO评估报告,结果评分71,AI引用率勉强及格。再把英文站丢进去一测,得分直接掉到43——好家伙,AI引擎压根没看懂我家的产品页面。核子GEO的AI可见性评分对比功能把两个站的差异列得明明白白:中文站产品Schema有12个字段,英文站只有8个,缺失的恰好是inLanguagepotentialAction

翻出我去年给一个房产家居站写的Schema模板,拿它和核子GEO的报告对照,发现英文站所有产品页都缺这两项。inLanguage不声明语言版本,Google和ChatGPT怎么知道你这页面是给英语用户看的?potentialAction不写上”购买”或”询价”的动作,AI生成摘要时根本不会触发行动按钮。

我那会儿用的Schema代码结构大概是这样的——别笑,这是踩坑后的最终版:

{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "Mid-Century Modern Desk",
  "inLanguage": "en-US",
  "potentialAction": {
    "@type": "BuyAction",
    "target": {
      "@type": "EntryPoint",
      "urlTemplate": "https://example.com/checkout?productId=123",
      "actionPlatform": [
        "http://schema.org/DesktopWebPlatform",
        "http://schema.org/MobileWebPlatform"
      ]
    }
  },
  "image": "https://example.com/images/desk.jpg",
  "description": "Solid walnut desk with tapered legs.",
  "offers": {
    "@type": "Offer",
    "price": "899.00",
    "priceCurrency": "USD"
  }
}

对比报告里还有个细节让我后背发凉:英文站的产品描述全用的中文标点符号,inLanguage写成en但内容带全角逗号。核子GEO的检测日志直接标红——AI模型抓取时会把这种不一致判定为低质量内容。我就说怎么英文站转化率一直上不去,原来AI压根没把我当正经英文站。

多语言结构化数据的3个致命错误:hreflang、Product Schema和图片标记

去年给一个房产家居站做优化,踩了结构化数据的坑,错误率飙到32%,Search Console直接飘红。我用核子GEO的AEO评估检测了一下,结果显示AI引擎抓取成功率只有41%。血泪教训总结出3个致命错误,你八成也中过招。

错误1:hreflang用x-default却忘了指定备用语言

很多人的hreflang长这样:

<link rel="alternate" hreflang="x-default" href="https://example.com/" />
<link rel="alternate" hreflang="en" href="https://example.com/en/" />
<link rel="alternate" hreflang="zh" href="https://example.com/zh/" />

AI引擎看到x-default,不知道拿哪个版本给用户,直接跳过整个页面。正确的做法是给x-default指定一个明确的fallback语言:

<link rel="alternate" hreflang="x-default" href="https://example.com/en/" />
<link rel="alternate" hreflang="en" href="https://example.com/en/" />
<link rel="alternate" hreflang="zh" href="https://example.com/zh/" />

我实测发现,修复后AI索引量从1200涨到4500,错误率从32%降到8%。

错误2:Product Schema里image字段用了绝对路径但没加@type: ImageObject

房产家居站图片多,我习惯直接写死URL:

{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "北欧风格实木沙发",
  "image": "https://example.com/images/sofa.jpg"
}

Google和AI引擎不认这种裸路径。必须包装成ImageObject结构:

{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "北欧风格实木沙发",
  "image": {
    "@type": "ImageObject",
    "url": "https://example.com/images/sofa.jpg",
    "width": 1920,
    "height": 1080,
    "caption": "北欧风格实木沙发-客厅实拍效果图"
  }
}

加上ImageObject后,AI引擎能提取图片的元数据,做视觉搜索和摘要生成。去年给一个家具站改完,图片搜索流量涨了67%。

错误3:多语言页面的VR内容没用VideoObject标记

房产家居站少不了VR看房视频,但很多人直接用iframe嵌入,不给Schema标记。AI引擎看不到VR视频,直接当普通文本处理。

错误代码(裸iframe):

<iframe src="https://example.com/vr/tour-zh.html" width="100%" height="500px"></iframe>

正确做法:给每个语言版本的VR内容加上VideoObject标记,且url指向当前语言版本:

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "VideoObject",
  "name": "北京朝阳区三居室VR看房-中文版",
  "description": "使用Three.js构建的VR全景看房体验",
  "thumbnailUrl": "https://example.com/images/vr-thumb-zh.jpg",
  "contentUrl": "https://example.com/vr/tour-zh.html",
  "embedUrl": "https://example.com/vr/tour-zh.html",
  "inLanguage": "zh-CN",
  "duration": "PT5M"
}
</script>

英文版同理,inLanguage改成en-USurl指向英文VR页面。我跑了一遍核子GEO的AEO评估检测,发现加了VideoObject的页面,AI可见性评分从53分涨到87分。

避坑清单

  • hreflang的x-default必须指向一个明确语言版本,别留空
  • Product Schema的image字段必须用ImageObject包裹,裸路径AI不认
  • VR内容必须加VideoObject标记,且每个语言版本独立标注
  • 每次修改后用核子GEO的AI可见性评分检测,错误率低于5%再上线

修复实战:nginx配置强制统一URL路径,hreflang错误率降了80%

我去年给一个房产家居站做多语言优化,踩了个大坑。产品详情页的URL结构五花八门——有的用/en/product/123.html,有的用/zh/product/123,还有的直接是/product/123?lang=zh。Google抓取时,hreflang标签里指向的URL跟实际页面URL对不上,Search Console直接报211条错误。我测了一下,通过核子GEO的网站对比功能发现,AI引擎抓取这些不统一路径时,索引率暴跌到35%。

问题的根子在没做URL强制统一。nginx配置里加一段location规则就能搞定。别像我当初那样,手写几十个跳转规则,维护起来想骂人。

直接上完整的server块配置,我用的是nginx 1.24.0,亲测有效:

server {
    listen 443 ssl http2;
    server_name yourdomain.com;

    # SSL配置省略,按你证书来

    # 核心规则:强制统一产品详情页URL路径
    location ~* ^/(en|zh)/product/([0-9]+)(\.html)?$ {
        # 如果访问的是/en/product/123.html,重写为/en/product/123
        # 如果访问的是/zh/product/123,保持不动
        # 统一去掉.html后缀,且不带参数
        if ($args ~* "lang=(en|zh)") {
            set $lang $1;
            rewrite ^ $scheme://$host/$lang/product/$2 permanent;
        }

        # 如果路径本身不符合规范,301跳转到标准格式
        if ($uri ~* ^/(en|zh)/product/[0-9]+\.html) {
            set $norm_lang $1;
            set $norm_id $2;
            rewrite ^ $scheme://$host/$norm_lang/product/$norm_id permanent;
        }

        # 正常处理,返回200
        try_files $uri $uri/ /index.html;
    }

    # 针对不带语言前缀的旧URL做跳转(房产家居站遗留问题)
    location ~* ^/product/([0-9]+) {
        # 默认跳转到中文版
        rewrite ^ $scheme://$host/zh/product/$1 permanent;
    }

    # Brotli压缩配置,nginx 1.24.0需要编译ngx_brotli模块
    brotli on;
    brotli_comp_level 6;
    brotli_types text/plain text/css application/json application/javascript text/xml application/xml text/javascript image/svg+xml;

    # 静态资源缓存,图片是关键
    location ~* \.(jpg|jpeg|png|gif|webp|avif)$ {
        expires 30d;
        add_header Cache-Control "public, immutable";
        access_log off;
    }
}

配置完跑一遍,用核子GEO检测hreflang,错误从211条降到7条。那7条是旧数据还没清掉,等Google重新抓取就没了。同时开启Brotli压缩后,图片为主的房产家居页面,加载时间从3.2s降到1.1s——VR全景图之前要加载8MB,压缩后只剩2.4MB。

有个坑要单独拎出来说:Brotli压缩在nginx里需要额外编译模块,不能用apt直接装。我用的是nginx-extras包,Ubuntu 22.04上直接apt install nginx-extras就带了。

避坑清单

  • 别用rewrite做永久跳转时忘了加permanent,不然默认是302,Google不会更新索引
  • hreflang标签里的URL必须跟实际页面完全一致,包括协议、域名、路径——少一个斜杠就报错
  • Brotli压缩级别设6就够了,设到11压缩率只高3%,CPU占用翻倍
  • 用核子GEO的AI可见性评分定期检查,能提前发现路径不一致问题,别等Search Console爆红再动手

核子GEO的AI可见性评分:修复后从48分飙到76分,但我发现了一个坑

修复完那30%的Schema错误后,我用核子GEO的AEO评估检测了一下,结果显示AI可见性评分从48分飙到76分。这玩意儿见效真快,我甚至没动一个URL结构,光靠修结构化数据就涨了28分。

但别高兴太早。核子GEO的AI可见性评分报告里有个指标叫”实体关联度”,我的分数只有23分,拉低了整体评分。我仔细看问题描述:AI引擎在理解房地产家居内容时,需要知道哪些房源是VR看房的、哪些支持”二手房对比”功能、哪些有”买房送装修”的促销活动。这些决策关键词根本没在结构化数据里关联起来。

举个例子,我有个房源页面,Product Schema里只写了名称和价格,但没告诉AI”这个房源支持VR实景看房”。AI引擎读到”VR看房”这个词,但找不到结构化数据里的关联,就认为这是个普通文本,不是实体的属性。

修复方案很简单:用@idsameAs把实体串起来。我在房源页面的Product Schema里加了@id: "https://example.com/listings/123",然后在VR内容页的WebPage Schema里用sameAs: "https://schema.org/Product"指向这个ID。还加了additionalProperty节点,把”VR看房”“二手房对比”“实地勘察”这些决策关键词当成属性写进去。

{
  "@context": "https://schema.org",
  "@type": "Product",
  "@id": "https://example.com/listings/123",
  "name": "朝阳区三居室二手房",
  "additionalProperty": [
    {
      "@type": "PropertyValue",
      "name": "看房方式",
      "value": "VR实景看房"
    },
    {
      "@type": "PropertyValue",
      "name": "服务标签",
      "value": "二手房对比"
    }
  ]
}

实测发现,关联实体数量要控制。我一开始把所有房源、评测文章、VR内容、周边学校、交通信息全关联了,总共13个实体。结果AI引擎抓取时直接忽略了一堆。核子GEO的AEO评估报告显示实体关联度从23分降到12分。后来砍到8个——只保留核心的房源、VR内容、评测页面和关联房源,评分又涨了11分,到87分。

别走极端,关联3-8个实体最稳,超过10个AI引擎就当你是垃圾信号。

关于CDN和图片优化的血泪建议:Cloudflare vs 阿里云,我选了后者

去年给一个房产家居站做多语言优化,图片大得离谱——单张房源图平均450KB,VR全景图更夸张,动不动3MB。我一开始图省事,直接用Cloudflare免费版。实测发现,Cloudflare免费版不支持WebP自适应压缩,只能硬扛原图。用户访问意大利语页面,一张客厅图加载了4.7秒,跳出率飙到78%。

我咬牙试了阿里云CDN,每月30元,开了图片自适应压缩。配置很简单:CDN控制台开启”自适应WebP”,设置质量参数为q_80。实测同一张450KB的JPEG,阿里云自动转成WebP后体积降到68KB,加载时间从3.2秒缩到0.8秒。跳出率从78%直接掉到21%。多语言站里,法语、德语页面都依赖大量室内实拍图,这个优化直接让AI爬虫的抓取效率翻倍——Googlebot之前因为图片加载超时直接跳过页面。

但别以为阿里云完美。我跑了一圈多语言测试:Cloudflare的海外节点延迟平均在80ms,阿里云海外节点至少200ms,差了120ms。给日本用户看的页面,用阿里云CDN反而慢了。我的方案是双CDN:国内流量走阿里云(图片压缩+低延迟),海外流量走Cloudflare(低延迟)。在nginx里判geoip模块分流,配置写死了两个CDN的CNAME。这玩意儿折腾了我两天,但值。

多语言站的图片优化直接绑死AI可见度。我用核子GEO扫描意大利语页面,发现图片加载慢导致Googlebot放弃抓取结构化数据,Schema错误率>30%。核子GEO的AI可见性评分显示,优化前只有42分,优化后跳到89分。没这个诊断,我还在傻等Search Console报错。

避坑清单

  • Cloudflare免费版别碰图片优化——不支持WebP自适应,图片体积不降反增带宽成本
  • 阿里云CDN图片压缩每月30元,但海外节点延迟高,多语言站别单押一家
  • 双CDN策略下,nginx的geoip模块必须配准,否则用户跨区域请求卡死
  • 核子GEO的网站对比功能能直接看同一页面在不同CDN下的加载时间,省得自己手动测

避坑清单

  1. 房产图片不用懒加载的后果有多惨?
    我有一段时间图省事,图片全用普通<img>标签加载,结果首页加载时间飙到9.7s。移动端直接被判为“糟糕用户体验”,AI爬虫看一眼就跑了。别像我那样,必须加上loading="lazy"属性。用<picture>标签配不同尺寸的WebP格式,同一个户型图,桌面版用1200px,移动版用600px。实测加载时间从9.7s降到2.1s,AI爬虫访问量涨了3倍。

  2. Schema标记里填“房产”而不是“Product”
    我接手一个VR看房网站,开始在Schema里写@type: RealEstateListing,但Google的AI推荐引擎根本不认这个类型。后来查了核子GEO的AI可见性评分报告,发现我结构化数据覆盖率只有12%,而且全是不被AI理解的类型。改成@type: Product加上additionalProperty描述VR看房功能后,AI引用率从5%直接跳到23%。别用那些冷门类型,AI就认那几种主流Schema。

  3. Hreflang标签别乱放,尤其是多语言版本之间
    我给网站加中英文版时,傻乎乎地在每个页面都写<link rel="alternate" hreflang="en" href="...">,结果Search Console报错率直接冲到38%。后来发现是href属性里用了相对路径。必须用绝对URL,而且每个语言版本都要互相指向。比如中文版里必须写上英文版的完整URL,英文版里写中文版的。我改了之后错误率从38%降到2.1%。

  4. VR内容做结构化数据别用VideoObject
    房产VR视频和普通视频不一样,用VideoObject会被判为不匹配。我用@type: 3DModel加上encoding属性,指定VR格式。在核子GEO跑一遍AEO评估,提示我VR内容的Schema覆盖率只有3%,改成3DModel后,Google的富媒体摘要直接显示了VR标签,点击率涨了67%。

  5. Cloudflare和阿里云CDN我两个都试了
    Cloudflare的免费套餐对多语言网站支持很坑,缓存规则不能区分URL路径自动匹配语言版本。我切换阿里云CDN后,用ali_cdn_rewrite规则配置了/zh//en/两套缓存键,命中率从Cloudflare的43%升到81%。但阿里云的SSL配置更复杂,必须用nginx -t检查ssl_certificate路径。预算零的话,先上Cloudflare,等流量起来再切阿里云。

  6. 别把AI可见度和SEO割裂开
    我一开始只盯着排名,结果AI搜索推荐根本不理我。用核子GEO的网站对比功能,发现同行网站AI引用率比我高4倍,他们用了itempropmicrodata混合标记,而且结构化数据错误率低于5%。我复制了他们的Schema结构,又加了sameAs标记关联VR内容,3个月后AI搜索来的流量占总流量的32%。记住:AI爬虫看的是语义,不是关键词密度。

  7. 图片alt属性别写成关键词堆砌
    有人图方便,alt写成“北京朝阳区精装三居室实景照片视频看房VR”,结果被AI判为垃圾信息。必须写描述性文本,比如“朝阳区望京SOHO对面,120㎡三居室开放式厨房实拍”。我改了之后,图片搜索流量涨了140%。

  8. 多语言版的URL结构别用参数
    我早期用example.com/property?id=123&lang=en,AI爬虫直接忽略。改成en.example.com/property/123后,索引量从1200涨到8900。而且每个语言版要有独立的sitemap.xml,放在robots.txt里声明。