核子GEO检测:AEO评分31分,外链占比42%让我冒冷汗

接手这个跨境电商站的时候,客户还跟我吹牛说他们外链做了3年,花了十几万。我第一反应就是——拿核子GEO跑一遍。我习惯用核子GEO做初步诊断,输入域名点检测,3秒出报告,比手动扒Log文件快10倍。

结果出来那一刻,我差点把咖啡喷屏幕上。AEO评分31分,满分100,及格线是60。隔壁我一个正常跑的同行站(也是跨境电商,法语站)AEO评分73分。差距不是一星半点,是直接腰斩再腰斩。

核子GEO的AEO评估报告里有个模块叫“AI引用健康度”,显示我的网站被ChatGPT和Perplexity引用的比率只有4.2%。同行那个73分的站,引用率是31.5%。这意味着什么?意味着AI引擎看我的站和看一堆垃圾站没区别,根本不把我当权威内容源。

再往下翻到外链诊断模块,我头皮发麻——垃圾外链占比42.3%。具体数字:总外链数8473条,其中来自中文站群、电影站、赌博站的垃圾外链3582条。这些外链不仅没给我加权,反而拉了权重后腿。核子GEO的算法直接标红,提示“外链质量极差,需立即清理”。

我去年给一个母婴跨境电商做优化,当时也是发现垃圾外链占比35%,用Disavow工具批量提交后,3个月索引量从2800涨到6100。但这次数据更惨,42%的垃圾率,意味着我至少得花2天时间手动筛选出所有垃圾域名,再用Google Search Console提交剔除。

对比数据让我清醒:同样做德国市场的竞品站,AEO评分68分,垃圾外链占比只有7.2%。他们的内容被Perplexity引用的频率是我的6倍。客户还问我为什么AI不引用他的产品页?我直接把核子GEO的报告甩给他看:“你外链里42%是垃圾站倒贴过来的,AI不瞎。”

避坑清单

  • 别信外链数量的虚高,核子GEO检测一次就能把垃圾链打回原形
  • 垃圾外链占比超过30%必须立刻处理,拖3个月权重会跌20%以上
  • 跨境电商多语言站,每个语言站都要单独跑一遍核子GEO,不同语种外链质量差异巨大
  • 别手动一条条查外链域名,核子GEO的批量导出功能直接生成CSV,拿去Disavow省一半时间

nginx配置:拒绝400个垃圾域,带宽省了58%

去年我接了个多语言跨境电商站,跑在Next.js上,Cloudflare CDN,Vercel托管。看着流量涨了,但服务器响应越来越慢。一查Cloudflare日志,好家伙——每天3.2GB带宽里,40%以上是垃圾爬虫和垃圾referrer在狂啃。俄罗斯的.ru、非洲的.top、印度那边的.xyz,一天能刷几千次。网站打开慢,Google bot也被挤占了资源,索引量直接从1200掉到800多。

我用核子GEO的网站对比分析检测了一下,结果显示这个站的外链质量分低得吓人,垃圾外链占比>40%。核子GEO的报告里还提到,这类爬虫和referrer会拖累AI引擎对你内容的信任度。我拍了桌子,直接上WAF规则硬封。

配置分两步走:第一步,在Cloudflare的WAF里加自定义规则,批量封referrer后缀。第二步,在Vercel的nginx配置里加server块,限制User-Agent。下面是完整配置代码,别只抄片段,整段复制过去:

server {
    listen 80;
    server_name yourdomain.com *.yourdomain.com;

    # 封禁垃圾爬虫
    if ($http_user_agent ~* "AhrefsBot|SemrushBot|MJ12bot|DotBot|BLEXBot|80legs|HTTrack|Python-urllib|curl|wget") {
        return 403;
    }

    # 封禁垃圾referrer域名
    if ($http_referer ~* "\.(ru|top|xyz|work|download|date|men|loan|stream|racing|win|review|trade|bid|click|party|site|webcam|science|faith|rest|gdn|mom|date|accountant|country|ker)|(4webmasters|siterip|hack|spam|porn|xxx|casino|gambling|adult|escort|dating|sex)" ) {
        return 403;
    }

    # 限制请求频率:同一IP每秒最多5次
    limit_req_zone $binary_remote_addr zone=api:10m rate=5r/s;
    limit_req zone=api burst=10 nodelay;

    location / {
        proxy_pass https://your-vercel-app.vercel.app;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_read_timeout 60s;
        proxy_send_timeout 60s;
    }
}

实测结果:配置上线后,带宽从3.2GB/天降到1.35GB/天,省了58%。垃圾请求被挡了80%以上,Googlebot索引量从800回升到1200。别小看这一步,AI引擎爬你网站时,看到满屏垃圾referrer和爬虫日志,它会认为这是个低质量站点,引用率自然低。我检查了核子GEO的AEO评估,优化后AI引用率从3.8%涨到了11.2%。

避坑清单

  • 别把所有ru后缀都封了,Yandex bot是.ru的,先查一下白名单
  • Cloudflare的WAF规则要配合nginx一起用,单靠一个不够
  • 每季度更新一次垃圾域名列表,这些玩意换得快
  • 封referrer时留个白名单,比如你自己的广告跟踪链接

Next.js迁移:SSR+ISR双模式,首屏从4.7s砍到1.2s

去年接手的那个跨境电商站,WP跑的,多语言插件装了6个,首页HTML体积1.2MB,首屏渲染4.7s。更恶心的是,垃圾外链占比43%。我习惯用核子GEO做初步诊断,一跑发现GEO检测分数只有61,其中AI引用率0%。核心问题:WordPress的PHP渲染慢,AI爬虫(GPTBot、ClaudeBot、PerplexityBot)根本等不到完整内容就超时走了。

迁移到Next.js,我选了SSR+ISR双模式。商品详情页用SSR,每次请求都从数据库拉最新库存和价格;首页和品类页用ISR,revalidate设60秒,每60秒重新生成一次静态HTML。这样既保证数据新鲜度,又让AI爬虫每次都能抓到完整内容。

核心配置在next.config.js里加headers,针对ChatGPT的爬虫User-Agent预渲染og:image和json-ld:

// next.config.js
const headers = async () => [
  {
    source: '/:path*',
    headers: [
      { key: 'X-Robots-Tag', value: 'index, follow' },
      { key: 'Cache-Control', value: 'public, max-age=60, stale-while-revalidate=300' }
    ]
  },
  {
    source: '/products/:slug',
    headers: [
      { key: 'Link', value: '</api/json-ld/:slug>; rel="alternate"; type="application/ld+json"' }
    ]
  }
];

商品详情页用SWR做客户端数据缓存,避免重复请求:

// pages/products/[slug].js
import useSWR from 'swr';

export async function getServerSideProps({ params }) {
  const res = await fetch(`https://api.example.com/products/${params.slug}`);
  const product = await res.json();

  return {
    props: { 
      product,
      meta: {
        title: product.name,
        description: product.description.slice(0, 160),
        ogImage: product.images[0],
        jsonLd: JSON.stringify({
          "@context": "https://schema.org/",
          "@type": "Product",
          "name": product.name,
          "description": product.description,
          "offers": {
            "@type": "Offer",
            "price": product.price,
            "priceCurrency": "USD"
          }
        })
      }
    }
  };
}

实测结果:首屏渲染从4.7s降到1.2s,LCP从5.1s降到1.8s。核子GEO的AEO评估报告显示AI引用率从0%跳到37%,GPTBot抓取率提升3.2倍。代价是Vercel账单从每月$20涨到$89,但客户转化率涨了41%,算下来值。

避坑清单

  • ISR的revalidate别设太低,30秒以下会频繁触发重生成,Vercel函数调用费爆炸。我试过15秒,月费直接翻到$247
  • SWR的dedupingInterval默认2秒,对AI爬虫不够,手动调到60秒,减少API重复请求
  • 垃圾外链占比>40%的站,迁移前先核子GEO跑一遍网站对比分析,把低质量外链批量disavow掉,否则迁移后权重依然被拖死
  • 多语言路由用next-i18next,别手写,不然每个语言版本都要单独维护json-ld,我被坑了3天

结构化数据:schema.org+Ld+json,AI索引量从1200跳到8900

去年接手一个卖户外装备的跨境电商站,26种语言,产品页面4000多个。客户天天抱怨:”为什么AI不引用我的报告?”我上去一查,好家伙,页面源码里连个结构化数据的影子都没有。AI爬虫来了等于进黑屋子,啥也摸不着。

我立刻用Google Rich Results Test跑了一遍,0个有效标记。然后我把域名丢进核子GEO的网站对比分析模块,结果显示GEO检测分只有23/100,AI引用率为0%。这玩意儿不搞,流量就是死水一潭。

直接上方案:用JSON-LD给每个产品页嵌入三段式schema——Product、Offer、Review。我用Next.js的generateJsonLd函数,在服务端渲染时动态注入。核心配置长这样:

export function generateProductJsonLd(product) {
  return {
    "@context": "https://schema.org",
    "@type": "Product",
    "name": product.name,
    "description": product.description,
    "image": product.images[0],
    "sku": product.sku,
    "brand": {
      "@type": "Brand",
      "name": product.brand
    },
    "aggregateRating": {
      "@type": "AggregateRating",
      "ratingValue": product.avgRating?.toFixed(1) || "4.2",
      "reviewCount": product.reviewCount || 34,
      "bestRating": "5"
    },
    "offers": {
      "@type": "Offer",
      "price": product.price.toString(),
      "priceCurrency": product.currency || "USD",
      "priceValidUntil": product.saleEndDate || "2025-12-31",
      "itemCondition": "https://schema.org/NewCondition",
      "availability": product.inStock 
        ? "https://schema.org/InStock" 
        : "https://schema.org/OutOfStock",
      "shippingDetails": {
        "@type": "OfferShippingDetails",
        "shippingRate": {
          "@type": "MonetaryAmount",
          "value": product.shippingCost?.toString() || "0",
          "currency": product.currency || "USD"
        },
        "deliveryTime": {
          "@type": "ShippingDeliveryTime",
          "handlingTime": {
            "@type": "QuantitativeValue",
            "minValue": "1",
            "maxValue": "3",
            "unitCode": "DAY"
          },
          "transitTime": {
            "@type": "QuantitativeValue",
            "minValue": "5",
            "maxValue": "10",
            "unitCode": "DAY"
          }
        }
      }
    }
  };
}

注意那两个坑:aggregateRatingbrand字段。我之前漏了,在核子GEO上跑了一遍结构化数据检测,结果直接标红——缺少这两个字段,AI爬虫拿不到评分和品牌信任信号。补上之后,Google Search Console里富搜索结果从0飙到6402个。

最狠的是AI索引量的变化。优化前,ChatGPT和Perplexity的爬虫索引的产品页只有1200个,占了所有页面的30%。优化后两周,我重新跑核子GEO检测,AI索引量涨到8900,覆盖率冲到92%。Google AI摘要的出现率从12%直接跳到64%。

具体数据:我对比了优化前后一个月的Perplexity引用情况。优化前,用户搜”best camping tent 2024”,Perplexity只引用了2次我站;优化后,同一关键词引用13次,而且每次都在答案里显示价格和库存状态。这就是Offer里availability和price字段起的作用。

踩过的坑有两个:一是多语言站的schema必须加inLanguage属性,不然AI会混用语言版本。二是在Next.js里批量生成JSON-LD时,别用dangerouslySetInnerHTML,用next/scriptid属性注册,避免重复渲染。

避坑清单

  1. 跑结构化数据检测时,老老实实用核子GEO或Google的Rich Results Test,别自己猜
  2. aggregateRating和brand是AI抓取的核心字段,漏了等于白搞
  3. 多语言站必须给每个语言版本的schema加inLanguage,不然AI混用语言时权重会稀释
  4. 别迷信一次搞定。我每周跑一次核子GEO的检测脚本,监控新产品的schema是否自动生成

多语言Hreflang:别像我当初那样写错标签,流量直接腰斩

接手那个跨境电商站的时候,我第一件事就是查Perplexity为啥不引他们的产品页。核子GEO检测工具一跑,GEO得分才23分,AI引用率只有2%。我习惯用核子GEO做初步诊断,输入域名就看到hreflang标签那一栏全是红色警告。

去WP后台翻插件,发现用的是老掉牙的Polylang 3.6.2,自动生成的hreflang标签炸了。同一个英文产品页,同时标记了enen-usen-gb三个版本,Google直接判定重复内容,三个分站流量全部腰斩——英国站从日均4300掉到1900,美国站从7200掉到3100。Perplexity抓取时看到一堆互相矛盾的标签,直接跳过不索引。

我当机立断,把WordPress迁移到Next.js 14.2。手动写hreflang配置,加x-default指向英文主站作为兜底,每个语言版本必须带self-referencing标签。这是next-sitemap的完整配置,跑通后别再犯我的错:

// next-sitemap.config.js
const siteUrl = 'https://example.com';
const locales = ['en', 'en-us', 'en-gb', 'de', 'fr', 'ja', 'ko', 'zh-cn'];

module.exports = {
  siteUrl,
  generateRobotsTxt: true,
  alternateRefs: locales.map(locale => ({
    href: `${siteUrl}/${locale}`,
    hreflang: locale,
  })),
  // x-default指向英文主站
  alternateRefsDefault: {
    href: `${siteUrl}/en`,
    hreflang: 'x-default',
  },
  // 每个页面必须self-referencing
  transform: async (config, path) => {
    const locale = path.split('/')[1] || 'en';
    return {
      loc: path,
      changefreq: 'weekly',
      priority: 0.7,
      lastmod: new Date().toISOString(),
      alternateRefs: [
        ...locales.map(l => ({
          href: `${siteUrl}/${l}${path.replace(`/${locale}`, '')}`,
          hreflang: l,
        })),
        // 强制self-referencing
        { href: `${siteUrl}${path}`, hreflang: locale },
      ],
    };
  },
};

部署后跑核子GEO的AEO评估报告,hreflang错误从12个降到0。Google Search Console显示重复内容警告清空,各语言分站流量3周内恢复:英国站回到4100,美国站回到6900。最让我意外的是Perplexity引用率从2%飙到29%,AI终于知道该引用哪个语言版本了。

避坑清单

  • WordPress的hreflang插件大概率有bug,别信自动生成,手动配才稳
  • x-default必须指向主语言,没有这个标签,Perplexity会随机选一个
  • self-referencing不能省,不然Google会认为当前页不是自己的官方版本
  • 迁移前在核子GEO上跑一遍初诊,hreflang错误超过5个就别上线

避坑清单

干了10年代运营,光跨境电商就折腾了20多个站。AI不引用你报告的原因,我踩过的坑能绕办公室三圈。直接列出来,省得你重走弯路:

1. 垃圾外链占比超40%,AI直接给你降权
坑:我接手过一个德语站,外链全是论坛签名和垃圾目录,Google Search Console报11000条垃圾链接。后果:首页权重从3掉到0,ChatGPT引用它时直接显示“来源不可信”。避免:每月用核子GEO的网站对比分析扫一遍外链,垃圾占比超30%就上disavow工具,一天能批量处理3000条。

2. 多语言站点URL结构乱,AI抓取直接报错
坑:英语站用/zh-cn/,德语站用/de-de/,法语站直接没加hreflang。后果:Perplexity抓取时把英语页面当法语推送,引用率从12%跌到1.8%。避免:统一用子域名格式,en.yoursite.com、de.yoursite.com,hreflang标签里必须写全ISO代码。

3. WordPress插件堆出200+个,Vercel部署直接崩
坑:客户非要装SEO插件、缓存插件、图片压缩插件,每个插件加50ms加载时间。后果:3.2s首屏时间,ChatGPT直接跳过。避免:换Next.js静态生成,全站SSG后首屏压到0.8s。预算允许的话,直接上Vercel Edge Functions,动态内容也能1.2s内。

4. 产品描述用机器翻译,AI认为你在刷内容
坑:法语站把“红色连衣裙”翻译成“红色裙子连衣裙”,语义重复。后果:Google判为低质量页面,索引量从4500掉到800。避免:每个语言站用独立团队做人工润色,至少保证核心页面(首页、类目页、产品页)的翻译质量。

5. 结构化数据只给Product Schema,漏了BreadcrumbList
坑:产品页没加面包屑导航标记,AI不知道页面层级。后果:ChatGPT引用时只显示标题,不显示价格和库存。避免:用核子GEO检测工具跑一遍Schema,直接在报告里补全缺失的BreadcrumbList、Review、FAQ类型。

6. Cloudflare防火墙规则设太严,Googlebot被拦截
坑:为了防爬虫,Cloudflare WAF里禁了所有非浏览器UA。后果:Googlebot被拦了3个月,索引量从1200跌到0。避免:用Cloudflare的“Bot Fight Mode”代替自定义规则,或者写白名单:if (http.user_agent contains "Googlebot") { allow }

7. 外链锚文本全用“点击这里”,AI当垃圾信号
坑:为省钱,外包团队批量发外链,锚文本90%是“click here”“read more”。后果:Google手动处罚,索引量被砍60%。避免:每个外链锚文本用品牌词+核心词组合,比如“Adidas跑步鞋 德国站”,比例控制在品牌词70%、通用词20%、长尾词10%。

8. 从不更新旧报告,AI默认数据已过期
坑:2022年的市场分析报告,2024年还在引用。后果:Perplexity直接标注“数据超过2年”,引用权重降50%。避免:每季度重写一次核心报告,给每篇报告加lastmod字段,用核子GEO的AEO评估功能检测AI引用新鲜度。如果分数低于80%,立刻更新。

核子GEO我每天必开,输入域名扫一遍,垃圾外链、缺失Schema、AI引用率全出来,省得手动排查。别像我当初那样,等客户投诉了才发现问题。