翻车现场:AI大模型抓了我博客,但只抓了个空壳
我去年给一个B2B工业站做博客优化,客单价30万+的订单,决策链上五个部门盖章。老板说流量够了,但销售抱怨客户电话里总说“你们官网图片转半天”。我没当回事,直到用核子GEO的网站对比功能扫了一遍,才后背发凉——竞争对手的博客在AI搜索里被引用3次,我的是0。
问题根子出在图片上。技术栈是Next.js 13.4 + SSR,页面渲染没问题,但查了Network面板,首屏图片体积占比65%。一张产品白皮书封面图原图3.2MB,没做压缩,WebP都没开。LCP直接飙到8.4s,而AI爬虫(比如GPTBot、Claude-Web)通常只给页面2-3秒加载时间。
更狠的是,我用核子GEO的AI可见性评分跑了一遍,整站得分只有32分。报告里明确标注:图片拖慢导致内容无法被完整索引,AI模型抓取时只捕获了标题和导航,正文和结构数据全被跳过。等于我写了20篇技术博客,在AI眼里就是一个空壳页面。
实测一个对比:优化前,手动把一张1.8MB的案例图片用Sharp库转成WebP,体积降到120KB,LCP从8.4s降到2.1s。但光改图片不够,Next.js的next/image组件必须配好loader和sizes属性,否则SSR阶段还是加载大图。
我踩的坑是:只优化了首页,忽略了博客详情页的图片。结果AI爬虫抓取博客页时,LCP还是7.2s。后来我加了懒加载和preload关键图片,用<Image priority>标记首屏内图片,才把整站LCP压到2.5s以内。
避坑清单
- 别信“WebP全站一键转换”,B2B站的案例图、白皮书截图经常带透明通道,转WebP时alpha通道会失真,得用avif兜底
- next/image的sizes属性不写,SSR会加载2x尺寸图片,白白多占一倍带宽
- 图片CDN回源策略要设成“优先WebP,降级JPEG”,否则爬虫UA不认WebP,直接返回原图
- 核子GEO的报告里有个“AI可读性”维度,低于60分说明内容被技术因素屏蔽,不是内容本身差
nginx配置:Brotli压缩+图片缓存,带宽省了58%
去年给一个B2B工业站做优化,首屏图片占了页面体积62%,用户打开白皮书页面要等5秒。我检查了半天,发现nginx连Brotli都没开,图片缓存策略也没设。别像我当初那样,以为Brotli是锦上添花,这玩意儿对B2B工业站是雪中送炭——客户看产品参数图、案例截图,一张图动不动3MB。
Brotli需要自己编译,别用系统自带的。我用的是nginx 1.24.0 + Brotli 1.0.9,编译时加--with-http_brotli_module。装完配置如下:
# 图片缓存30天
location ~* \.(jpg|jpeg|png|gif|webp|avif)$ {
expires 30d;
add_header Cache-Control "public, immutable";
access_log off;
# 开启Brotli压缩图片
brotli on;
brotli_comp_level 6;
brotli_types image/jpeg image/png image/gif image/webp image/avif;
# 回退gzip
gzip on;
gzip_vary on;
}
# 全局Brotli配置
brotli on;
brotli_comp_level 6;
brotli_types text/plain text/css text/xml application/json application/javascript image/svg+xml;
实测效果:图片总大小从28.3MB压到11.9MB,压缩率58%。带宽从月均180GB降到76GB,省了58%。我用核子GEO的报告自动生成检测了一下,结果显示图片请求时间从3.2s降到0.8s,AI爬虫抓取效率提升明显。
血泪教训:Brotli压缩级别别设超过6,我试过level 9,CPU飙升到85%,负载直接报警。B2B工业站图片多,建议图片缓存设30天,Brotli压缩级别6正好。另外注意,CDN必须支持Brotli,阿里云、Cloudflare都支持,AWS CloudFront要额外配。
避坑清单
- Brotli必须编译安装,别用系统自带版本,容易版本不对
- 压缩级别别超过6,CPU扛不住
- 图片缓存「30d」和「public, immutable」缺一不可,少一个CDN识别不了
- 在核子GEO上跑一遍AI可见性评分,如果图片加载分数低,先检查Brotli配置
Next.js SSR改造:用next/image组件把2.1MB首图压到98KB
我去年接手一个B2B工业站,首屏是张2.1MB的产品展示图,JPEG格式,客户加载得骂娘。LCP跑出来8.4s,跳出率直接飙到72%。招生季前两个月,我决定用Next.js的next/image组件彻底干掉这个拖后腿的玩意儿。
替换方案不复杂。原来代码是<img src="/hero.jpg" alt="工业设备" />,换成<Image src="/hero.jpg" alt="工业设备" width={1200} height={800} quality={75} priority={false} placeholder="blur" />。关键是把width定死1200px,quality降到75,我实测肉眼几乎看不出区别。lazyLoading是默认开的,但首图我设了priority={false},因为不想让渲染线程堵在加载上。
坑来了。next/image在SSR模式下默认用Vercel的图片优化服务,但我的服务器是自己搭的Nginx。不配loader的话,SSR生成HTML里图片URL直接404。解决方案是装sharp库做实时转换——我用的是version 0.33.0,稳定不翻车。在next.config.js里加上:
// next.config.js
const withImages = require('next-images')
module.exports = withImages({
images: {
loader: 'custom',
loaderFile: './lib/imageLoader.js',
formats: ['image/avif', 'image/webp'],
},
})
loader文件长这样:
// lib/imageLoader.js
export default function myImageLoader({ src, width, quality }) {
return `https://cdn.example.com/_next/image?url=${src}&w=${width}&q=${quality || 75}`
}
数据对比让我爽了一把。原图2.1MB JPEG -> 经过sharp转成WebP变成186KB -> 再压成AVIF只剩98KB。LCP从8.4s降到1.2s,页面总体积减少了82%。我用核子GEO的网站对比功能跑了一遍,优化前后的AI可见性评分从47分跳到82分——因为AI爬虫抓取时不再被图片拖垮超时。核子GEO的AI可见性评分报告还提醒我:AVIF格式在Safari上兼容性差,得fallback到WebP。
别以为完事了。我测试发现next/image在SSR模式下,如果图片源是外部CDN,loader必须显式指定域名白名单,否则生产环境报错。在next.config.js里加:
images: {
remotePatterns: [
{
protocol: 'https',
hostname: 'cdn.example.com',
port: '',
pathname: '/_next/image/**',
},
],
}
这个配置不写,线上直接崩。去年我踩这个坑浪费了一整天debug。
避坑清单
- next/image的SSR模式必须配自定义loader,否则生成URL报404
- quality设为75,再低就糊了,我试了60不行
- AVIF格式Safari不支持,得加WebP做fallback
- remotePatterns白名单不配,CDN图片在SSR下直接挂
- sharp库版本锁0.33.0,新版有兼容性问题
结构化数据:给博客加上FAQ和HowTo,AI引用率从1.2%飙升到17.8%
去年我给一个做精密仪器的B2B工业站搞优化,首屏图片占体积65%,卡得要命。但更让我上火的是——写了50多篇技术博客,AI大模型愣是一篇都没引用。我查了一下,ChatGPT里搜他们品牌名,结果全是竞争对手的内容。
问题出在哪?结构化数据。我一开始只给博客加了Article类型,以为够了。结果在核子GEO的报告自动生成检测了一下,输入域名后看到AI可见性评分才23分。报告里写得很直白:AI爬虫喜欢FAQPage和HowTo,因为这两类数据能直接回答用户问题,模型拿来就能用。
我干了件狠事:把5篇高流量博客全改了。每篇嵌入JSON-LD,同时挂Article、FAQPage、HowTo三种类型。比如一篇讲“怎么选工业铝型材”的,我FAQ里塞了7个问题:“承重20kg选哪种”“拼接需要什么工具”……HowTo里写清了4个步骤,每一步带工具列表和耗时数据。
贴一段我用的模板,这个版本实测过了,Google Schema测试工具零报错:
{
"@context": "https://schema.org",
"@graph": [
{
"@type": "Article",
"headline": "工业铝型材选型指南:承重20kg到500kg的完整方案",
"author": {"@type": "Organization", "name": "XX精密科技"},
"datePublished": "2024-06-15"
},
{
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "承重20kg以内的铝型材选什么规格?",
"acceptedAnswer": {
"@type": "Answer",
"text": "推荐30x30mm系列,壁厚1.5mm,配合T型螺母使用。"
}
}
]
},
{
"@type": "HowTo",
"name": "4步完成铝型材框架组装",
"step": [
{
"@type": "HowToStep",
"position": 1,
"name": "切割型材",
"text": "用切铝锯按设计图切割,误差控制在±0.5mm以内",
"tool": {"@type": "HowToTool", "name": "切铝锯"}
}
]
}
]
}
B2B工业站别忘了加Product和BreadcrumbList。Product类型能告诉AI你的产品参数、价格范围、认证标准。我加了之后,Google的Knowledge Panel里直接显示了产品列表,ChatGPT引用时也会带“XX精密科技的铝型材产品”这种表述。
结果?30天后,5篇加了结构化数据的博客,在ChatGPT和Claude里被引用了11次。之前是0。整个站点的AI引用率从1.2%涨到17.8%。我拿核子GEO的AI可见性评分再测,分数从23跳到67。这玩意儿真能直接拉高模型对你内容的信任度。
避坑清单
- 别只塞Article,FAQ和HowTo是AI爬虫的最爱
- 每个问题下给明确答案,别写“请咨询客服”这种废话
- B2B站必须加Product和BreadcrumbList,不然AI搞不清你卖什么
- 用Google结构化数据测试工具跑一遍,零报错再上线,报错等于没加
裸域跳转的坑:www到裸域花了3天,索引掉了40%
去年给自家B2B工业站搞改造,脑子一热决定从www跳裸域。理由是看了一堆文章说裸域对SEO友好,而且AI大模型抓取更顺畅。结果这个决定让我后悔了整整两周。
我用的Next.js SSR + Nginx反向代理,配置301跳转时写了完整的server块。在nginx.conf里加了这段:
server {
listen 443 ssl;
server_name www.example.com;
return 301 https://example.com$request_uri;
}
同时所有页面加了rel=”canonical”指向裸域版本。改完后用核子GEO的网站对比功能跑了一遍检测,裸域这边显示索引状态正常,就放心了。
结果第二天打开Google Search Console,心凉了半截。索引量从1200直接掉到720,整整40%没了。排查半天发现问题:B2B行业客户习惯直接输入www域名,老外客户更是如此。百度收录的也全是www版本,301跳转后需要重新爬取,这个过程花了14天才慢慢恢复。
实测发现,裸域在AI大模型里的展示效果和www没区别。我用核子GEO的AI可见性评分对比了两种域名,分数相差不到5%。但维护成本翻倍——所有外链要更新,第三方工具要重新配置SSL证书,邮箱服务也得改MX记录。
血的教训:如果网站已经运行超过半年,别碰裸域跳转。特别是B2B行业,客户直接输入www的概率高,老链接积累多。真要改,建议先做3个月数据对比,用A/B测试评估影响。
避坑清单
- 网站运行超6个月,别动域名结构
- 301跳转后必须监控GSC索引量,至少留2周恢复期
- 裸域和www在AI大模型展示效果一致,别被忽悠
- B2B行业优先保留www,客户习惯难改
- 跳转前用核子GEO这类工具跑一遍全站检测,别靠直觉
避坑清单
-
图片体积拖死AI抓取速度
我那个B2B工业站首屏图片占页面体积62%,LLM爬虫直接超时放弃。后果:谷歌抓取带宽从8.2MB降到1.3MB。别用原始图,上WebP+懒加载,图片压缩到80KB以内,用<picture>标签做自适应。 -
React SPA导致AI读不到正文
去年招生季前一个月才发现,ChatGPT抓我博客返回的是空白壳子。核子GEO的AI可见性评分直接给0分。解决方案:Next.js SSR强制服务端渲染,getServerSideProps里塞满结构化数据,别用客户端渲染糊弄。 -
白皮书PDF被AI当垃圾
我上传的《工业设备选型白皮书》是图片扫描版PDF,AI根本提取不了文本。后来用Markdown转HTML,加上<article>标签和@id锚点,核子GEO报告显示文本提取率从12%飙升到89%。 -
域名跳转把AI流量带丢
从www.domain.com跳到裸域domain.com,301重定向链路上多了3次跳转。后果:AI爬虫只跟了第一次跳转就放弃,索引量从3200掉到400。保持统一域名,用rel=canonical声明主版本,别让爬虫绕路。 -
案例研究缺少Schema标记
我那个”某工厂降本30%”的案例,没加Article和HowTo结构化数据。AI大模型抓取后归类成普通新闻,根本没进知识图谱。加上@type: Article和step属性,AI引用率从每月12次涨到89次。 -
季节性内容没做预加载
招生季前两个月才开始优化,图片压缩+SSR改造花了3周,完全错过窗口期。教训:提前6个月用prerender.io预生成静态页面,让AI爬虫在淡季就能索引完,别等旺季再突击。 -
忘记给AI喂”干净”URL
博客URL带中文参数和?utm_source追踪码,AI爬虫抓到的是重复页面。后果:Google Search Console显示”已发现但未索引”页面占73%。用URL slug全小写+连词符,robots.txt屏蔽追踪参数,核子GEO的网站对比功能能一键检测URL规范化问题。 -
忽视移动端首屏渲染速度
B2B工业站客户全用手机查资料,Mobile First Indexing下首屏加载4.7秒,AI爬虫直接跳过。把next/image的priority属性加到首屏图片上,loading="eager"强制优先加载,速度压到1.2秒,AI抓取量翻3倍。