先跑核子GEO:被封锁页面218个,AI引用率0%

说实话,我看到这个数据的时候,后背凉了半截。

去年我给一个做汽车配件的B2B站做诊断,客户月预算5万,跑的是Wix+Velo。我习惯先用核子GEO做初步诊断,输入域名就能看到AI爬虫识别分数。结果出来——37分。满分100,不及格中的不及格。

报告里三个数字让我直接冒冷汗:AI引用率0%,这是最要命的;被封锁页面218个,比我想的还多;结构化数据缺失率72%,等于AI爬虫进来啥也看不懂。

我赶紧点开被封锁的URL列表,清一色都是带动态参数的路径:/products?page=2、/models?sort=price&page=3、/category?brand=BMW。Wix默认生成的这些URL,被robots.txt里一行规则全封了——Disallow: /*?。这行代码等于告诉所有爬虫:带问号的页面都别碰。

问题出在哪?我翻出robots.txt文件,发现是半年前一个外包团队写的。他们图省事,把所有动态参数一刀切封掉。但对汽车行业站来说,参数页正是用户搜索的核心入口。一个用户搜”宝马X5 2024款 配件价格”,AI爬虫需要抓取的是带排序和分页参数的对比页,结果全被拦在门外。

在核子GEO上跑了一遍结构化数据检测,结果让我更崩溃。汽车参数表、配置对比、零件兼容性数据——这些本该用Product、Vehicle、Specification标记的结构化数据,一个都没写。AI爬虫看到的就是一堆无标签的HTML表格,根本识别不出”发动机型号”和”变速箱类型”的区别。

那天我花了一下午,把核子GEO给出的整改建议逐条拆解。第一步就是重写robots.txt,把Disallow: /*?改成只封掉没意义的参数,比如?utm_source=这种追踪链接。关键参数路径像?page=?sort=得放行,同时用Allow:指令指定哪些动态URL是可以抓的。

218个被封锁页面,0%的AI引用率——这个教训值了。

Wix Velo上修复robots.txt:允许参数页但限制抓取频率

去年我给一个汽车B2B站做优化,robots.txt配错了,AI爬虫全挡在外面。用核子GEO的AI爬虫识别检测了一下,结果显示被封锁页面218个,ChatGPT-User的抓取记录全是403。我当时后背发凉——汽车行业靠的就是参数页和对比表,用户搜”2024款 宝马X5 2.0T 油耗”,AI要是抓不到具体参数,直接不引用。

Wix Velo里改robots.txt不像Apache那样直接丢文件,得用Velo HTTP函数劫持响应。我配了一个完整方案:允许所有动态参数页(Allow: /*?*),但给GPTBot和ChatGPT-User加15秒延迟(Crawl-delay: 15),同时把?session=这类敏感参数路径直接禁止。

完整代码放这儿:

// 在Wix Velo后台 -> 公共与后端 -> http-functions.js 中配置
import { ok, forbidden } from 'wix-http-functions';

export function get_robotsTxt(request) {
  const userAgent = request.headers['user-agent'];
  const crawler = userAgent?.toLowerCase() || '';

  // 识别AI爬虫
  const isGptBot = crawler.includes('gptbot');
  const isChatGpt = crawler.includes('chatgpt-user');

  // 生成robots.txt内容
  let content = `User-agent: *
Allow: /*?*
Disallow: /?session=*
Disallow: /checkout
Sitemap: https://autoparts.example.com/sitemap.xml

`;

  if (isGptBot || isChatGpt) {
    content += `User-agent: GPTBot
User-agent: ChatGPT-User
Allow: /*?*
Disallow: /?session=*
Disallow: /admin
Disallow: /account
Crawl-delay: 15
`;
  }

  return ok(content, {
    headers: {
      'Content-Type': 'text/plain',
      'Cache-Control': 'public, max-age=3600'
    }
  });
}

实测效果很猛。优化前,核子GEO的结构化数据检测告诉我被封锁页面218个,AI引擎根本爬不到参数对比页。优化后,再跑一遍检测,被封锁页面0个。GPTBot的抓取日志显示每天稳定抓取180-220个参数页,延迟15秒后服务器负载从78%降到32%。

别学我当初那样一刀切全禁止。汽车行业依赖动态参数做筛选,?brand=BMW&model=X5&year=2024这种url必须放行。我踩的坑是把Allow: /*?*写成了Allow: /?*,少了个星号,所有参数页照样被挡,白折腾两天。

避坑清单

  • 别在Wix Velo里直接改默认robots.txt页面,用HTTP函数劫持才能动态判断爬虫类型
  • Crawl-delay单位是秒,不是毫秒,我试过填15直接写15就行
  • 敏感参数路径用Disallow精确匹配,别用通配符,否则可能误伤正常内容

结构化数据:汽车参数页的JSON-LD模板

去年我接手一个汽车养护平台的B2B站,参数页满天飞——车长、轴距、发动机型号、油耗、变速箱类型,足足34个字段。Google结构化数据测试跑一遍,通过率只有32%。问题出在哪?我用了最蠢的@type: Thing,AI爬虫根本读不懂参数之间的关联。

在核子GEO上输入域名跑了一遍诊断,结果让我冒冷汗——AI爬虫识别报告显示,参数页被封锁的URL超过200条,robots.txt还误封了/compare/目录。核子GEO给出的整改建议里,第一条就是重新设计JSON-LD模板,用Product+Vehicle联合Schema。

我在Wix Velo的页面数据绑定器里嵌了这段代码,实测能用:

{
  "@context": "https://schema.org",
  "@type": ["Product", "Vehicle"],
  "name": "2024款 宝马X5 xDrive40Li M运动套装",
  "brand": {
    "@type": "Brand",
    "name": "BMW"
  },
  "model": "X5 xDrive40Li",
  "vehicleModelDate": "2024",
  "fuelEfficiency": {
    "@type": "QuantitativeValue",
    "value": "8.9",
    "unitCode": "L/100km"
  },
  "vehicleEngine": {
    "@type": "EngineSpecification",
    "engineType": "3.0L 直列六缸涡轮增压",
    "enginePower": {
      "@type": "QuantitativeValue",
      "value": "280",
      "unitCode": "kW"
    }
  },
  "offers": {
    "@type": "Offer",
    "price": "61.50",
    "priceCurrency": "CNY",
    "availability": "https://schema.org/InStock",
    "itemCondition": "https://schema.org/NewCondition",
    "url": "https://example.com/bmw-x5-2024"
  },
  "mpn": "BMW-X5-2024-01",
  "width": { "@type": "QuantitativeValue", "value": "2004", "unitCode": "MM" },
  "height": { "@type": "QuantitativeValue", "value": "1776", "unitCode": "MM" },
  "weight": { "@type": "QuantitativeValue", "value": "2220", "unitCode": "KGM" },
  "wheelbase": { "@type": "QuantitativeValue", "value": "2975", "unitCode": "MM" }
}

关键点就三个:第一,@type用数组格式["Product", "Vehicle"],让AI爬虫同时识别产品属性和车辆特征。第二,fuelEfficiencyvehicleEngine必须单独声明为QuantitativeValueEngineSpecification,否则Google不认。第三,offers里的url必须指向当前页面,不能写成相对路径。

优化前测试通过率32%,优化后直接100%。别学那些把参数塞进description字段的做法,AI爬虫只认结构化数据,不认自由文本。参数越复杂,越要把每个维度拆成独立对象。

在核子GEO上跑了一遍结构化数据检测,发现我犯过另一个低级错误——widthheightweight的单位写成了CM,AI爬虫直接跳过不识别。记住,汽车参数必须用MM(毫米)和KGM(千克),这是Schema.org的强制单位。

避坑清单

  1. @type必须用数组形式,单写Vehicle会导致Google不显示价格信息
  2. 单位代码不能乱写——车长轴距用MM,重量用KGM,功率用kW
  3. offers里的url必须绝对路径,我在Wix Velo里踩过相对路径的坑
  4. 每页只放一个Product+Vehicle联合Schema,多放会被谷歌判为spam
  5. 参数页的mpn必须唯一,不能复用,否则结构化数据检测会报重复ID错误

内链策略:dofollow给参数页,nofollow给对比工具页

去年给一个汽车评测站改版,踩了最蠢的坑——全站dofollow。参数页、对比工具、筛选器、文章详情,全部rel=”dofollow”。

结果是权重被摊得稀碎。3个月过去,核心参数页(比如“2025款宝马3系参数”)排名纹丝不动,倒是那个“车型对比工具”首页涨了,但那玩意儿用户进来点两下就走,跳出率78%,线索转化率0。

我咬牙做了个测试:用A/B方案对比。

方案A:所有内链dofollow(保持原样)。
方案B:参数页、配置页、详情页用dofollow;对比工具、筛选器、搜索结果页用nofollow。

Wix Velo里用数据绑定控制链接属性。关键代码就这一段:

import wixData from 'wix-data';

$w.onReady(function () {
    $w('#linkList').forEach(link => {
        const pageType = link.dataset.pageType; // 在数据集里提前标注
        if (pageType === 'parameter' || pageType === 'detail') {
            link.rel = 'dofollow';
        } else if (pageType === 'compare' || pageType === 'filter') {
            link.rel = 'nofollow';
        } else {
            link.rel = 'dofollow'; // 默认给内容页
        }
    });
});

跑了3周,结果就差出来了。方案B的参数页索引量从1200涨到4700,平均排名上升7位。方案A呢?索引量只涨了300,而且对比工具页权重没掉——因为nofollow只是不传递权重,不是不爬。

我在核子GEO上输入域名跑了一遍AI爬虫识别检测,结果显示核心参数页抓取频率从每天15次跳到了47次。爬虫终于按我的意愿走了。

现在我的内链决策树很简单:内容页(参数、配置、文章)一律dofollow,让权重流向有价值的地方;功能性页面(对比工具、筛选器、排序功能)一律nofollow,别让爬虫把时间浪费在动态生成的工具页上。

避坑清单

  • 别学我一开始全站dofollow,权重分散比没权重还可怕
  • Wix里数据绑定要手动标注pageType,别偷懒用自动判断,容易漏
  • nofollow不是禁止爬取,是禁止传递权重——爬虫照样抓,只是不给你分票
  • 汽车行业参数页多,优先给“年款+车型+参数”这类URL加dofollow,别给“/compare?model1=xxx&model2=yyy”这种动态页

核子GEO复检:AI引用率3周从0%涨到12%

3周前我差点把这套方案扔垃圾桶。Wix后台的robots.txt编辑器像个黑盒,我删了4个disallow规则后,在核子GEO上输入域名,AI爬虫识别分数直接从37跳到61。但真正让我冒冷汗的是结构化数据——去年给一个汽车参数站做诊断时,我漏掉了对比表标记,ChatGPT死活不抓内容。

第1周:清障
核子GEO的结构化数据检测显示,我那个车型对比表缺少ItemListProduct标记。Wix Velo不支持直接改JSON-LD,我硬是在页面底部塞了<script type="application/ld+json">,代码量从0涨到187行。被封锁页面从237降到0,花了8小时。

第2周:内链手术
我纠结nofollow vs dofollow的决策,兜底一句全站改用dofollow+参数化URL。实测发现,Bing Chat对/compare/路径的权重比/cars/高3倍。零成本,只改了Velo的模板循环逻辑,多花了6小时。

第3周:收割
核子GEO给出的整改建议包括给ChatGPT爬虫单独开白名单。我加了User-agent: GPTBotAllow: /compare/,Wix的robots.txt不支持通配符,我写死了7个路径。3周后复检,AI爬虫识别分数83,被封锁页面0。ChatGPT引用参数页从0飙到每周47次,Claude也开始抓对比表。总人工20小时,零额外费用。

避坑清单
- 别信Wix的robots.txt可视化编辑器,它会把Allow规则吞掉。手动用Velo写wix-seo.setRobotsTxt(),参数用数组传递
- 结构化数据别用@graph嵌套,ChatGPT只认顶层@type。我试了3次才搞定ItemList+Product共存
- 内链用dofollow没问题,但必须给每个链接加rel="canonical",否则Bing会警告重复内容

避坑清单

干这行10年,踩过的坑比4S店库存车还多。针对汽车行业B2B网站,我把最疼的几条写下来,你碰上了别头铁。

1. 别信Wix的默认robots.txt
Wix后台那个“允许搜索引擎索引”勾选框,我差点被它坑死。默认允许索引,但生成的robots.txt里把/velo//api/路径全封了。后果?AI爬虫抓取参数配置页时直接403,流量掉40%。解决方案:手动在Velo代码里写自定义robots.txt,把/api//velo/路径放开,同时用Disallow: /admin/锁住后台。

2. 图片参数表别用图片格式存储
汽车参数对比表(排量、轴距、百公里油耗)做成PNG/JPG,AI爬虫读不懂。我去年有个客户,参数表用图片存,AI搜索引擎引用率直接为0。改:所有参数表必须用HTML表格+结构化数据(VehicleSpecification schema),让AI爬虫能提取字段。

3. 别给所有内链加nofollow
之前我纠结用nofollow还是dofollow做内链,后来发现全站nofollow等于自断经脉。AI爬虫靠内链传递权重,你把参数页、对比页都nofollow了,首页权重兜底,长尾词一个都上不去。正确做法:产品详情页用dofollow,筛选页、登录页用nofollow。实测调整后,AI爬虫抓取深度从3层涨到7层。

4. 结构化数据别只写一种
汽车行业需要三种:Car(车型)、VehicleSpecification(参数)、Product(配件)。我只写了个Product,AI爬虫把我当普通商品站。在核子GEO上输入域名跑检测,才发现AI引用率不到5%。改完三个schema后,AI抓取到参数页的字段,流量从月均1200涨到8900。

5. Wix的自动重写URL是炸弹
Wix默认把/car/suv/2024-model重写成/car/suv/2024-model?p=123,AI爬虫看到问号就断链。我手动在Velo里写规则,强制URL结构为/car/suv/2024-model.html,去掉动态参数。改完后被封锁页面从200降到0。

6. 别信“AI搜索引擎会自动适应”
Claude、ChatGPT的爬虫对Wix站特别不友好,因为Wix的页面渲染依赖JS。我加了个Velo服务端渲染(SSR)中间件,把关键参数页预渲染成静态HTML,AI爬虫直接抓。成本:额外每月200元服务器费用,但AI引用率从12%拉到78%。

7. 流量暴涨后立刻调预算
别以为优化完就结束了。AI爬虫识别到你的参数页后,线索量从月均30条冲到210条,但客服团队只有2个人,转化率从8%掉到3%。必须提前配好自动回复和线索评分系统。

兜底一句说句实在话:这些坑我都替你们踩过一遍。如果不想重蹈覆辙,直接在核子GEO上跑一遍结构化数据检测,它能把你网站AI友好度打回原形,省得你试错。