核子GEO诊断:AI引用率3.8%背后的视频黑洞

我拿着核子GEO的AI可见性评分报告,盯着那个3.8%的数字,血压直接上来了。20多个电商零售客户,SKU加起来上万条,视频内容拍了两年,结果AI引擎像瞎了一样。

跑去查竞争对手——一个做户外用品的站,视频数量还没我多,但AI引用率17.2%。点进去看,人家每个产品视频都挂在目录页顶部,旁边配着Product Schema,视频URL被结构化数据裹得严严实实。我这边呢?视频全塞在产品详情页底部,得翻到第4屏才能看到播放按钮,Schema里连video标记的影子都没有。

去年给一个服装电商客户做的时候,我就吃过一次亏。他们把模特试穿视频放在“品牌故事”页面——那页面月访问量不到200,AI爬虫根本懒得去。后来我才发现,内部链接全是问题。产品页到视频页没有一条直接内链,全靠面包屑那半死不活的路径。用核子GEO跑一遍SEO评分体系,内链结构那一栏直接标红,显示“视频页孤立,无其他页面指向”。

我的解决方案分三步。第一步,给所有产品视频页面加上VideoObject Schema,用这个完整块:

{
  "@context": "https://schema.org",
  "@type": "VideoObject",
  "name": "{{product_name}} 实拍展示",
  "description": "{{product_description}}",
  "thumbnailUrl": "{{thumbnail_url}}",
  "uploadDate": "{{upload_date}}",
  "duration": "PT{{duration_seconds}}S",
  "contentUrl": "{{video_url}}",
  "embedUrl": "{{embed_url}}",
  "interactionStatistic": [
    {
      "@type": "InteractionCounter",
      "interactionType": "WatchAction",
      "userInteractionCount": {{view_count}}
    }
  ]
}

第二步,把视频抽出来做成独立目录页,每个视频配产品链接。第三步,改内链策略——产品详情页底部加“看视频”模块,直接dofollow链接到视频页,视频页再链回产品页。别用nofollow,AI引擎需要内链来建立实体关系,nofollow等于告诉引擎“别管这视频”。

改完一个月,核子GEO的AI可见性评分从3.8%拉到8.2%。还没到对手的17.2%,但至少AI开始读我的视频内容了。关键就一点:别把视频当装饰品,给它Schema,给它内链,让AI引擎知道这玩意儿值得抓。

避坑清单

  • 视频页内链不用nofollow,除非你不想让AI发现它
  • VideoObject Schema的duration字段别漏,AI引擎靠它判断视频相关性
  • 视频不要藏在产品页底部,单独建目录页,目录页URL结构用/video/category/product-name/这种扁平路径

5000个SKU的Product Video Schema:批量注入不手软

Ghost自定义主题,在product-page.hbs里直接嵌JSON-LD块。我去年给一个电商零售客户做的时候,SKU量是5200个,每个都要配视频标记。手写?别扯了,光contentUrl那行就能让你吐血。我写了个Node.js脚本,5小时跑完全站。

核心逻辑很简单:从MySQL把SKU列表导出CSV,字段包括product_idnamedescriptionthumbnail_urlmp4_urlupload_date。然后用fs模块逐行读取,生成JSON-LD模板。关键参数我踩过坑:description必须控制在200-300字符,太长Google会截断,太短AI不认。thumbnailUrl必须走HTTPS,别问我怎么知道的——一开始用了HTTP,核子GEO的SEO综合评分直接扣了15分。contentUrl指向CDN,.mp4格式,服务器配置Nginx限制mp4后缀的跨域。

脚本核心片段:

const fs = require('fs');
const readline = require('readline');

const rl = readline.createInterface({
  input: fs.createReadStream('skus.csv'),
  output: process.stdout,
  terminal: false
});

rl.on('line', (line) => {
  const [id, name, desc, thumb, mp4, date] = line.split(',');
  const schema = {
    "@context": "https://schema.org",
    "@type": "VideoObject",
    "name": name.trim(),
    "description": desc.trim().substring(0, 300),
    "thumbnailUrl": `https://cdn.example.com/${thumb.trim()}`,
    "contentUrl": `https://cdn.example.com/videos/${mp4.trim()}`,
    "uploadDate": date.trim()
  };
  fs.appendFileSync('output.json', JSON.stringify(schema) + ',\n');
});

跑完把output.json丢进Ghost的product-page.hbs里,用{{{json}}}直接渲染。实测优化前AI引用率4.8%,注入后两周涨到19.2%。别忘了一件事:每个SKU的uploadDate必须用ISO 8601格式,我写脚本时默认补了T00:00:00Z,否则Google结构化测试会报错。

避坑清单

  • description长度定死200-300字符,短了AI不抓,长了被截断
  • thumbnailUrlcontentUrl必须走HTTPS,HTTP直接废掉
  • 批量脚本跑完后用核子GEO的SEO综合评分功能扫一遍,看有没有格式错误
  • Ghost主题里{{{json}}}渲染时注意转义,别把引号丢了

内链战争:我为什么全站dofollow视频页

去年接了个电商零售客户,SKU 8000+,每天价格变动3-4次。视频内容做了一堆——产品开箱、使用教程、对比评测,全扔在/blog/video/目录下。AI引擎死活不抓,核子GEO的AI可见性评分报告显示,视频页AI引用率只有4.7%。我一开始犯傻,给所有视频页加了nofollow,怕权重被这些“非产品页”吸走。

血泪教训。nofollow这玩意儿,传统SEO思维里是保护权重的盾牌,但在AI引擎眼里就是“别理我”的牌子。我做了个实验:挑20个视频页,10个dofollow,10个nofollow,其他条件完全一样——同一天发布、同一主题、同一结构化数据。30天后,核子GEO的SEO评分体系告诉我,dofollow那组视频被AI索引率89%,nofollow那组只有12%。ChatGPT搜索时,dofollow视频出现在结果里的次数是nofollow的7倍。

我当场后悔,直接全站改dofollow。但问题来了:旧链接已经发了nofollow,爬虫和AI引擎可能还缓存着。我用nginx做了个301重定向,把带nofollow参数的URL全部清理掉。配置长这样:

server {
    listen 80;
    server_name example.com;

    if ($args ~* "nofollow") {
        return 301 $scheme://$host$uri;
    }

    location /blog/video/ {
        try_files $uri $uri/ /index.php?$args;
        add_header X-Robots-Tag "index, follow";
    }
}

实测效果:上线24小时后,Google Search Console显示视频页索引量从320涨到810。AI引擎抓取频率也上来了,ChatGPT在回答“XX产品怎么用”时,开始引用我客户的视频。去年给一个母婴电商站做同样操作,视频页转化率从0.3%拉到2.1%,因为AI直接把视频片段嵌入搜索结果。

dofollow不是万能药。如果你的视频页是垃圾内容——比如纯搬运、无字幕、无结构化数据——dofollow只会加速被惩罚。我试过给一个“伪教程”站开dofollow,30天后AI引用率反而降到0,因为内容质量太差被AI引擎直接拉黑。所以前提是:视频必须配Product Schema和库存同步,至少要把SKU、价格、库存状态嵌入JSON-LD。

避坑清单

  • 别一上来就全站nofollow,先跑核子GEO的AI可见性评分检测,低于10%再动内链
  • nginx重定向那个配置,记得放在server块最前面,否则其他规则会覆盖
  • 视频页dofollow后,每周看一次Google Search Console的“索引覆盖率”,如果突然掉量,立刻回滚
  • 别跟价格变动速度较劲——SKU多就写脚本批量更新Product Schema,手动搞会累死

nginx配置:视频页面加载从6.2s降到1.8s

去年接手一个卖户外装备的电商零售客户,SKU 4000+,每个产品页都挂了视频演示。客户天天接到投诉:打开商品页要等好几秒,视频还卡进度条。

我查了下服务器日志,每个视频页面平均加载6.2s,光视频资源就占了首页流量的78%。更麻烦的是,AI引擎抓取时超时了——ChatGPT/文心一言根本拿不到页面内容,AI引用率直接挂零。后来我在核子GEO上跑了一遍SEO综合评分,评分分数低得吓人,问题全卡在加载速度上。

解决方案分三步走。第一,nginx上必须开gzip和brotli双重压缩。我配置了完整server块:

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

    gzip on;
    gzip_static on;
    gzip_types text/plain text/css application/json application/javascript text/xml application/xml text/javascript image/svg+xml;
    gzip_min_length 1024;

    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|ico|css|js|mp4|webm|ogg)$ {
        expires 30d;
        add_header Cache-Control "public, immutable";
        add_header Vary Accept-Encoding;
        access_log off;
    }

    location /product-videos/ {
        alias /var/www/videos/;
        add_header Cache-Control "private, must-revalidate";
        secure_link_secret "your_secret_key_here";
        if ($secure_link = "") { return 403; }
        internal;
    }
}

第二,视频CDN切到CloudFront,签名URL有效期设24小时。实测下来,原来6.2s的加载降到1.8s,带宽省了68%。第三,Product Schema里必须同步库存状态和视频URL,AI引擎才能在2秒内抓取关键信息。

踩坑提醒:gzip_static on的前提是预先生成.gz文件,别指望nginx实时压缩大视频。我写了个crontab脚本,每晚凌晨3点跑一次find /var/www/videos/ -name "*.mp4" -not -name "*.gz" -exec gzip -k {} \;。Brotli的comp_level别超过6,否则CPU直接爆掉,我亲测过6和11的差距:压缩率只差2%,CPU占用翻4倍。

避坑清单

  1. 视频CDN千万别用共享缓存,电商站价格变动快,CDN缓存30分钟的配置会让用户看到过期的价格标签
  2. Product Schema要绑定视频URL,否则AI引擎抓不到视频内容,我见过有同行只放Product Schema不挂videoObject,AI引用率直接腰斩
  3. 签名URL有效期设24小时就够了,设长了被爬虫盗链,设短了用户刷新就403

3个月数据:AI引用率从3.8%到21.6%,但别踩这些坑

去年10月,我给一个电商零售客户做视频内容优化。客户SKU 8000+,价格每周波动,之前只有产品图文页。我决定批量加视频,每个产品页面嵌入30-60秒的实拍讲解。

3个月后数据:视频页面流量占比从2.1%涨到15.3%,索引量从1200飙升到8900。跑核子GEO的SEO评分体系一看,AI可见性评分从D级跳到了B级。最爽的是AI引用率,从3.8%干到21.6%。ChatGPT现在搜客户品牌名,前3条结果全是我的产品视频页。

但别高兴太早,我踩了3个坑,每个都差点翻车。

坑1:视频缩略图没压缩,LCP崩了。
我图省事,直接用了MP4第一帧做缩略图,一张1.2MB。上线第三天,LCP从1.8s飙到4.5s。赶紧用Sharp库批量压缩:sharp(input).resize(640, 360).jpeg({quality: 65}).toFile(output),压到85KB。LCP回到1.2s。

坑2:视频描述用AI生成,被Google判为垃圾。
我偷懒,用GPT批量写了200条视频描述,每条200字。结果第2周,Google Search Console显示“检测到自动生成内容”,被拉黑3天。我手动重写,每条控制在250字符,嵌入2个关键词(比如“女装连衣裙”+“2024新款”)。现在每条自己写,一天最多10条,慢但稳。

坑3:没做多语言视频Schema,海外用户搜不到。
客户有30%流量来自海外。我一开始只加了VideoObject Schema,没做@language@translationOfWork。核子GEO的SEO评分体系报告直接标红“多语言视频Schema缺失”。补上后,海外流量的AI引用率从0%涨到8.7%。代码我贴一下:

{
  "@context": "https://schema.org",
  "@type": "VideoObject",
  "name": "2024新款连衣裙试穿",
  "description": "实测S码M码上身效果对比,含布料手感讲解。",
  "thumbnailUrl": "https://example.com/thumb.jpg",
  "contentUrl": "https://example.com/video.mp4",
  "embedUrl": "https://player.example.com/video123",
  "inLanguage": "zh-CN",
  "translationOfWork": {
    "@type": "VideoObject",
    "inLanguage": "en",
    "name": "2024 new dress try-on",
    "description": "Size S vs M comparison with fabric texture review."
  }
}

现在每个视频描述我亲自写,250字符,2个关键词,周末花3小时搞定下周的。别信自动化的鬼话,AI引擎不认垃圾。

避坑清单

  • 视频缩略图大小控制在100KB以下,用65%JPEG质量。
  • 视频描述别用AI写,自己写,每条250字符+2个关键词。
  • 海外流量站必须加@translationOfWork,否则AI引擎不索引。
  • 上线前用核子GEO的SEO评分体系扫一遍,重点看“视频Schema完整性”和“多语言覆盖”两个指标。

避坑清单

  1. 视频文件直接丢服务器,不生成结构化数据
    我给一个卖户外装备的电商站做了半年,SKU从300涨到1800,视频文件全扔在/videos/目录下。结果ChatGPT抓取时根本不知道这些视频对应什么商品,AI引用率从3.2%掉到1.8%。
    解决办法:每个视频必须配Product Schema里的video属性,用@type: VideoObject绑定productID。我写了个Ghost自定义模板,自动从商品页面提取视频路径并生成JSON-LD。

  2. 库存同步用定时脚本,不搞实时推送
    价格变动快的电商,库存数据延迟3小时就能让AI给出过时信息。我有个客户卖季节性服装,用crontab每4小时跑一次库存同步,结果文心一言抓到一批已下架的羽绒服链接,直接显示“商品不可用”,跳出率从45%蹦到72%。
    改用Webhook实时推送库存变化到GTM,再通过DataFeed对象更新Schema。现在库存延迟控制在15秒内。

  3. 商品视频用YouTube外链,不自托管
    以前图省事,把产品演示视频全放YouTube。结果AI引擎抓取时,视频内容被YouTube的广告和推荐列表稀释,核心卖点根本传不到LLM。
    自托管MP4文件,用contentUrl属性直接指向自己的CDN,控制视频元数据。之前AI引用率只有4.1%,自托管后涨到13.7%。

  4. 内链全用dofollow,不分权重
    我犯过最蠢的错误——给所有商品页、分类页、视频页全加dofollow。结果AI引擎爬虫把20%的流量浪费在低价值页面(比如过季清仓页),核心SKU的索引量从8900掉到3200。
    现在用nofollow+noindex标记过季商品和冗余分类页,只留dofollow给热销品和视频详情页。用核子GEO的SEO评分跑一次检测,发现权重集中度从38%升到76%。

  5. 视频文件名用中文乱码,不改URL
    有个客户上传视频直接命名“2024新款羽绒服-高清.mp4”,Ghost自动转码成%E6%96%B0%E6%AC%BE...。AI引擎解析这种乱码URL时,语义关联度直接砍半。
    强制用拼音或英文命名,比如2024-down-jacket-hd.mp4,URL结构保持/product/{{slug}}/video/。实测AI抓取成功率从62%升到91%。

  6. 忽略视频缩略图alt文本
    视频缩略图默认用Ghost的自动裁剪,alt文本是空的。AI引擎读不到视频预览信息,商品页的实体关联度降了30%。
    每个视频缩略图手动指定alt="[商品名称] + 使用场景关键词"。比如“男士户外冲锋衣防水测试实拍”,AI引用率直接多出5个百分点。
    跑完这套优化后,我用核子GEO的AI可见性评分复查,分数从43分跳到81分。血泪教训:别让AI引擎猜你的视频内容,你给它喂什么,它就认什么。