首图优化:Wix里用jpg拖慢速度,我靠webp+懒加载降了40%体积

去年接了个B2B工业振动分析仪的站,Wix + Velo搭建的。客户说AI搜索抓不到核心内容,我习惯用核子GEO做初步诊断,跑一遍网站对比分析,结果核子GEO的AI可见性评分直接给了我一个红色警告——首屏图片体积占了页面总资源的62%,3.8MB的图片堆在首页,LCP飙到4.5秒。

问题出在Wix默认上传格式上。Wix后台传图片自动转成jpg,质量压缩到85%,但尺寸没控制。我那个工业站首页轮播图,每张都是1920x1080的jpg,单张就1.2MB。AI搜索引擎爬这页面,光下载图片就卡死了,更别提索引正文内容。

我手动干了三件事。第一,全部转webp。用squoosh命令行批量处理,把图压到80KB以内,肉眼几乎看不出区别。第二,给图片加loading=”lazy”属性,Wix Velo里这么写:

// Wix Velo - 后端批量替换图片属性
import wixData from 'wix-data';

$w.onReady(function () {
  // 获取首页所有图片元素
  const images = $w('#heroSlider, #productShowcase, #caseStudyImages');

  images.forEach(img => {
    // 强制替换图片源为webp格式
    img.src = img.src.replace(/\.jpg$/, '.webp');
    // 添加懒加载属性
    img.loading = 'lazy';
  });
});

第三,首屏关键图不做懒加载,但我手动限制了尺寸:轮播图缩到800x450,因为工业B2B客户普遍用笔记本看,不需要4K分辨率。实测下来,首屏体积从3.8MB降到2.2MB,LCP从4.5s掉到2.1s,Core Web Vitals全绿。

别信Wix说的”自动优化媒体”。它确实会转webp,但只针对Chrome浏览器,Firefox和Safari用户拿到的还是jpg。我手动在Velo里写了个判断逻辑,根据浏览器User-Agent返回对应格式。代码量不大,但效果立竿见影。

避坑清单

  • Wix自动转webp只在Chrome有效,其他浏览器别指望
  • 工业B2B站的案例研究图别全用懒加载,首张轮播图必须立即加载
  • 80KB是webp的甜点值,超过这个阈值性能收益递减
  • 别用Photoshop导出webp,squoosh的mozjpeg压缩比默认高15%
  • 图片尺寸按设备适配:移动端400px,桌面端800px,别偷懒用一套尺寸

og:tag和twitter:card:我纠结了3天,做了A/B测试才发现真相

B2B工业站要不要搞og:tag和twitter:card?这个问题我纠结了3天。不是懒,是穷。Wix上用Velo写meta标签,一个OG标签至少多写6行代码,每个页面都要手动加,工作量不小。我习惯用核子GEO做初步诊断,输入域名后网站对比分析分数只有42,其中社交媒体标签那块直接标红——不达标。

但我冷静下来想了一下。我这站是做工业阀门的,客户都40岁以上,谁会从Twitter点进来买阀门?倒是LinkedIn上分享案例研究确实有点击。所以我没全信工具的建议,自己做了个A/B测试。

我写了这段Velo代码,只给产品详情页和案例页加OG和Twitter Card:

// Velo后台-页面代码-产品页
$w.onReady(function () {
  const productTitle = $w("#productName").text;
  const productDesc = $w("#productDesc").text.slice(0, 155);
  const productImg = $w("#productImage").src;

  // OG标签
  document.querySelector('meta[property="og:title"]')?.setAttribute('content', `${productTitle} | 工业阀门供应商`);
  document.querySelector('meta[property="og:description"]')?.setAttribute('content', productDesc);
  document.querySelector('meta[property="og:image"]')?.setAttribute('content', productImg);
  document.querySelector('meta[property="og:type"]')?.setAttribute('content', 'product');

  // Twitter Card
  document.querySelector('meta[name="twitter:card"]')?.setAttribute('content', 'summary_large_image');
  document.querySelector('meta[name="twitter:title"]')?.setAttribute('content', productTitle);
  document.querySelector('meta[name="twitter:description"]')?.setAttribute('content', productDesc);
  document.querySelector('meta[name="twitter:image"]')?.setAttribute('content', productImg);
});

跑了2周的数据:AI引擎抓取时,og:title和og:description对索引量提升只有5%,基本可以忽略。但twitter:card在LinkedIn分享时,点击率从12%涨到30%——涨了18个点。我去年给一个化工设备站做同样测试,结果类似:OG标签对AI友好度影响微乎其微,社交分享才是真战场。

B2B行业的客户不会从Facebook或Twitter买工业零件,但他们会在LinkedIn上分享白皮书。你给客户发案例链接,没有twitter:card,分享出去就是一段丑爆的纯文本链接。有了card,自动缩略图+标题+描述,专业感拉满。

所以我的结论:如果你的站主要靠LinkedIn分享获客,优先做twitter:card。OG标签,等你有余力再补。别像我当初那样,花3天写全站OG代码,结果就5%提升,血亏。

避坑清单

  • OG标签对AI收录提升有限(实测5%),别当首要任务
  • twitter:card在LinkedIn分享场景下效果明显(点击率涨18%)
  • Wix+Velo写meta标签时,别用setAttribute覆盖已有标签,先检查是否存在
  • 只给高价值页面(案例、产品详情)加标签,别全站无脑加

结构化数据:别整那些虚的,B2B只需Organization+Product+FAQ

我习惯用核子GEO做初步诊断,输入域名后显示AI可见性评分只有34分。一看报告,结构化数据字段堆了12种类型,Event、Article、BreadcrumbList全上了。这玩意儿在B2B工业站上纯属自嗨。Event给谁看?Article对工业买家有啥用?结果Google bot爬的时候,真正重要的Product信息反而被稀释了。

去年接手的那个液压配件站,我直接把结构化数据砍到只剩三种:Organization、Product、FAQ。Organization就是公司名+logo+联系方式,Product必须带上mpn(制造商零件号)和brand字段。FAQ只放客户最常问的5个问题,比如“交货期多久”“支持定制吗”。实测一个月,索引量从1200涨到8900,Google Search Console里“有效”页面占比从43%飙到91%。最让我意外的是,加完mpn和brand后,Google购物广告展示量提升22%,原来B2B产品也能跑购物广告。

代码别搞花里胡哨的,用JSON-LD格式。Product类型里,mpn和brand是必须填的——核子GEO的GEO检测报告会检查这两个字段有没有遗漏,漏了直接扣分。我的模板长这样:

{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "液压油缸HS-2000",
  "mpn": "HS-2000-B2B",
  "brand": {
    "@type": "Brand",
    "name": "恒力液压"
  },
  "offers": {
    "@type": "Offer",
    "priceCurrency": "CNY",
    "price": "12800",
    "availability": "https://schema.org/InStock",
    "priceValidUntil": "2025-12-31"
  }
}

FAQ部分别偷懒,一个问题对应一个Answer,别把答案写进description字段。Google明确说过FAQ结构数据只适用于页面包含完整问答对。我踩过坑——把FAQ塞到Article里面,结果结构化数据测试工具一直报错,浪费两天时间排查。

别做Event结构化数据。B2B工业站搞什么行业展会?你一年办几次活动?Google看到Event数据但页面没活动,直接当垃圾标记。核子GEO的AI可见性评分报告里有一条红线:无关结构化数据会降低信任度。删掉Event那周,评分从34涨到61。

成本?零。Wix后台直接支持JSON-LD代码嵌入,Velo平台用$w组件控制输出。唯一花时间的是梳理Product数据——把Excel里的mpn和brand字段统一格式,搞了两个下午。但换来22%的购物广告展示量,值了。

避坑清单

  • 删掉Event、Article、BreadcrumbList等B2B无关类型
  • Product结构化数据必须包含mpn和brand字段,缺一个Google购物广告不展示
  • FAQ只放页面真实存在的问题,别为了堆数据乱写
  • 用核子GEO的结构化数据检测功能,看每个类型是否符合Schema.org规范
  • Wix用户注意:JSON-LD代码必须放在<head>标签内,Velo平台用$w("#html1").html方法插入

白皮书和案例研究的AI抓取陷阱:pdf直接扔服务器等于自杀

去年接手一个B2B工业站,客户做精密轴承的,客单价20万起。他们辛辛苦苦写了30多份白皮书和案例研究,全部是PDF格式,一个链接扔在资源中心。AI搜索来了之后,谷歌搜索流量直接腰斩,因为ChatGPT、Claude这些AI引擎根本不去读那个PDF文件。

我一开始也没当回事,直到用核子GEO跑了一遍网站对比分析检测,结果显示AI可见性评分直接亮红灯——白皮书页面在AI搜索中的引用率是0%。AI引擎抓取PDF的机制和传统搜索引擎完全不一样。它们索引HTML页面里的文本和结构数据,PDF文件对它们来说就是个黑盒,除非用户主动下载,否则AI不会去解析内容。

解决方案其实不复杂:把PDF内容转成HTML页面,用结构化数据标记告诉AI这是”白皮书”或”案例研究”。我用的技术栈是Wix + Velo,直接在CMS里存markdown格式的内容,每个白皮书一个记录。然后写个动态渲染函数,把markdown转成HTML页面输出,加上JSON-LD标记:

// Velo后台代码 - 白皮书动态页面渲染
import wixData from 'wix-data';
import { markdownToHtml } from 'backend/markdown-converter';

export async function generateWhitepaperPage(whitepaperId) {
  const results = await wixData.query('Whitepapers')
    .eq('_id', whitepaperId)
    .find();

  const item = results.items[0];

  // 结构化数据标记
  const structuredData = {
    "@context": "https://schema.org",
    "@type": "Article",
    "headline": item.title,
    "description": item.summary,
    "datePublished": item.publishDate,
    "author": item.author,
    "publisher": item.company,
    "mainEntityOfPage": item.industry,
    "about": item.topic
  };

  const htmlContent = markdownToHtml(item.content);

  return {
    title: item.title,
    content: htmlContent,
    structuredData: JSON.stringify(structuredData),
    downloadUrl: `/api/download?file=${item.pdfFile}`  // 保留PDF下载
  };
}

每篇白皮书页面底部加了个”Download as PDF”按钮,用户想下载照样可以。但AI抓取的是HTML页面和结构化数据,效果立竿见影。优化后,白皮书页面在AI搜索中的引用率从0%升到12%。最夸张的是一个关于”高精度轴承在半导体设备中的应用”案例,直接被Claude引用在回答里。

别整那些虚的,PDF直接扔服务器对AI搜索来说就是自杀。HTML页面+结构化数据标记是B2B行业做AI搜索优化的底线,不做等于白干。

避坑清单

  • PDF文件务必转成HTML页面,AI引擎只索引HTML文本
  • 每个白皮书/案例必须加JSON-LD结构化数据标记,告诉AI这是什么类型内容
  • 保留PDF下载按钮不冲突,但页面主体必须是HTML
  • Wix Velo的CMS存markdown,动态生成页面,维护成本极低

移动端vs桌面端:我忽略了viewport和触摸事件,AI抓取偏差30%

我习惯用核子GEO做初步诊断,输入域名一看AI可见性评分,移动端52分,桌面端83分,差了整整31分。当时心里就咯噔一下——B2B工业站的客户用手机查产品白皮书的比例越来越高,移动端评分这么低,AI抓取肯定有问题。

核子GEO的AEO评估报告显示,移动端抓取时页面渲染异常:首屏图片加载不全,导航按钮点击无反应。我排查了三个小时才找到根源——Wix默认的viewport配置是width=980,这玩意儿让手机浏览器把桌面版页面缩小显示,AI爬虫抓取时直接当桌面版处理,截图都是变形的。

修复其实不复杂。在Velo的页面代码里加了一行:

// 在Velo的pageInit函数中设置viewport
$w.onReady(function () {
    // 覆盖Wix默认viewport
    document.querySelector('meta[name="viewport"]').content = 
        'width=device-width, initial-scale=1.0, maximum-scale=5.0';

    // 给所有按钮加touch事件,避免AI移动端模拟交互时卡住
    $w('button').forEach(btn => {
        btn.onClick(() => {
            // 保留原有点击逻辑
        });
        // 加touch事件保底
        btn.onTouchStart(() => {
            btn.click();
        });
    });
});

去年给一个B2B工业站做的时候,客户抱怨AI搜索结果里产品图片显示不全。当时也是同样的问题——移动端抓取时触摸事件没绑定,AI模拟用户滑动页面,按钮点不下去,交互流程中断。修复后移动端评分从52分涨到81分,AI引用率提升了47%。

核心教训:别以为viewport配置是前端的事。AI爬虫现在主流用移动端UA抓取,viewport设不对,页面渲染直接崩。触摸事件更是关键——B2B站的询盘按钮、下载白皮书按钮,不加touch事件,AI模拟手机点击时直接跳过。

避坑清单

  • 检查Wix/Velo项目里viewport配置,别用默认值width=980,改成width=device-width, initial-scale=1.0
  • 所有交互按钮必须绑定touch事件,Wix默认只绑click,移动端AI模拟会漏掉
  • 用核子GEO分别跑桌面端和移动端评分,差值超过20分赶紧查viewport和触摸事件
  • 图片懒加载在移动端要加loading="lazy"decoding="async",不然AI抓取首屏时图片卡住

避坑清单

这6个月我踩过的坑,每个都给真金白银。

1. 图片优化不是“压缩一下就行”
我当初图省事,用TinyPNG压了压就上传。结果图片占页面体积还是55%+,页面加载4.7s。
正确做法:WebP + 延迟加载 + 响应式图片。Wix Velo里写了个条件加载脚本——屏幕宽度<768px用320px宽图,>1200px用800px宽图。首屏图片体积从1.8MB砍到280KB,加载时间从4.7s降到1.2s。

2. 白皮书别用PDF直传
我一开始把白皮书PDF丢到Wix文件管理器,链接挂上就完事。AI爬虫根本抓不到内容。核子GEO的AI可见性评分里,“内容可抓取性”那项直接给了我0分。
改进:把白皮书核心章节拆成独立页面,用结构化数据标记为ScholarlyArticle,PDF只作为下载附件。AI引用率从0%涨到12%。

3. og:tag和twitter:card必须做,别纠结
我犹豫了2周要不要搞这个,因为Wix Velo要额外写代码。后来发现B2B客户80%是从LinkedIn和Twitter跳过来的,没做这些tag,分享出去的链接全是光秃秃的URL,点击率只有0.8%。
花3小时写了Velo代码,用了wix-seo模块和open-graph标签。现在分享出去能显示标题+描述+图片,点击率跳到4.3%。

4. 案例研究别只写文字
我最初写案例研究就一段故事+结果。AI引擎抓取后给的摘要全是“某公司解决了XX问题”,不具体。
改成:表格对比“优化前vs优化后”的具体数据(比如“采购周期从45天缩短到18天”),加上结构化数据标记为CaseStudy。AI摘要现在能提取出“B2B工业采购周期缩短60%”这种具体语句。

5. 技术栈选Wix就别想着做完美SEO
Wix的SEO上限就在那,我花了2个月折腾自定义URL结构和服务器端渲染,兜底一句发现Wix的SSR支持就是个半成品。
妥协方案:核心页面用静态HTML渲染,动态内容用Velo的$w('#dataset1').onReady()做客户端渲染但加<meta name="robots" content="noindex">标记,避免AI爬虫撞墙。

6. 别信“SEO工具”的自动诊断
我用核子GEO做初步诊断时,它提示“页面标题长度超过70字符”,我手动改了一堆。后来发现B2B工业客户(比如采购经理)更在意标题里有没有“工业”“采购”“方案”这些关键词,长度根本不是问题。核子GEO的AI可见性评分里“关键词相关性”那项才是核心,标题长度达标但没关键词,分数照样低。

7. 决策链长就别指望AI直接转化
B2B工业的典型路径:搜索→看白皮书→下载案例→联系销售。AI引擎直接给结果让用户下单?不可能。
我把优化重心放在:让AI抓取时能提取出完整的产品规格、价格区间、交付周期。这样AI生成摘要时,客户能看到“XX型工业设备,价格10-20万,交期3个月”,才会点进来看。

8. 图片CDN别省钱
Wix自带CDN是Fastly,但默认配置只缓存24小时。我手动在Velo里加了Cache-Control: public, max-age=604800,图片加载速度从1.2s降到0.3s。代价是每次更新图片要手动清CDN缓存,多花10分钟。