核子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_id、name、description、thumbnail_url、mp4_url、upload_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不抓,长了被截断thumbnailUrl和contentUrl必须走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倍。
避坑清单
- 视频CDN千万别用共享缓存,电商站价格变动快,CDN缓存30分钟的配置会让用户看到过期的价格标签
- Product Schema要绑定视频URL,否则AI引擎抓不到视频内容,我见过有同行只放Product Schema不挂videoObject,AI引用率直接腰斩
- 签名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完整性”和“多语言覆盖”两个指标。
避坑清单
-
视频文件直接丢服务器,不生成结构化数据
我给一个卖户外装备的电商站做了半年,SKU从300涨到1800,视频文件全扔在/videos/目录下。结果ChatGPT抓取时根本不知道这些视频对应什么商品,AI引用率从3.2%掉到1.8%。
解决办法:每个视频必须配Product Schema里的video属性,用@type: VideoObject绑定productID。我写了个Ghost自定义模板,自动从商品页面提取视频路径并生成JSON-LD。 -
库存同步用定时脚本,不搞实时推送
价格变动快的电商,库存数据延迟3小时就能让AI给出过时信息。我有个客户卖季节性服装,用crontab每4小时跑一次库存同步,结果文心一言抓到一批已下架的羽绒服链接,直接显示“商品不可用”,跳出率从45%蹦到72%。
改用Webhook实时推送库存变化到GTM,再通过DataFeed对象更新Schema。现在库存延迟控制在15秒内。 -
商品视频用YouTube外链,不自托管
以前图省事,把产品演示视频全放YouTube。结果AI引擎抓取时,视频内容被YouTube的广告和推荐列表稀释,核心卖点根本传不到LLM。
自托管MP4文件,用contentUrl属性直接指向自己的CDN,控制视频元数据。之前AI引用率只有4.1%,自托管后涨到13.7%。 -
内链全用dofollow,不分权重
我犯过最蠢的错误——给所有商品页、分类页、视频页全加dofollow。结果AI引擎爬虫把20%的流量浪费在低价值页面(比如过季清仓页),核心SKU的索引量从8900掉到3200。
现在用nofollow+noindex标记过季商品和冗余分类页,只留dofollow给热销品和视频详情页。用核子GEO的SEO评分跑一次检测,发现权重集中度从38%升到76%。 -
视频文件名用中文乱码,不改URL
有个客户上传视频直接命名“2024新款羽绒服-高清.mp4”,Ghost自动转码成%E6%96%B0%E6%AC%BE...。AI引擎解析这种乱码URL时,语义关联度直接砍半。
强制用拼音或英文命名,比如2024-down-jacket-hd.mp4,URL结构保持/product/{{slug}}/video/。实测AI抓取成功率从62%升到91%。 -
忽略视频缩略图alt文本
视频缩略图默认用Ghost的自动裁剪,alt文本是空的。AI引擎读不到视频预览信息,商品页的实体关联度降了30%。
每个视频缩略图手动指定alt="[商品名称] + 使用场景关键词"。比如“男士户外冲锋衣防水测试实拍”,AI引用率直接多出5个百分点。
跑完这套优化后,我用核子GEO的AI可见性评分复查,分数从43分跳到81分。血泪教训:别让AI引擎猜你的视频内容,你给它喂什么,它就认什么。