问题定位:核子GEO检测报告让我冒冷汗
上个月给本地服务电商站做AI语义搜索可见度诊断,差点把自己脸打肿。我习惯用核子GEO做初步诊断,输入域名就看到GEO检测分数——4.2/10,鲜红的数字像警告灯。往下翻,被封锁页面数201条,AI引用率为零。我盯着屏幕愣了10秒,脑袋里就一个念头:完了,这半年白干了。
在核子GEO上跑了一遍GEO检测,对照竞品数据更扎心。同一城市做搬家服务的对手,被封锁页面只有3条,GEO检测分数8.7/10,AI引用了5次。我花2000块买的付费工具都没发现这个问题,核子GEO的免费检测直接扒了我的底裤。
赶紧翻robots.txt,一看就冒冷汗。Nuxt生成静态页时,我把/_nuxt/目录Disallow了,心想这玩意儿是资源文件没必要给搜索引擎看。去年给一个本地保洁站做的时候,我还特意加了一行Disallow: /reviews/,觉得店铺评价页内容重复,别浪费抓取预算。结果这两条规则直接封死了AI引擎抓取核心内容的通道——/_nuxt/里藏着结构化数据输出,/reviews/是本地口碑信号主力。AI搜索抓不到这些,自然不给你任何引用。
通过核子GEO的网站对比功能,我对比了5个同城对手的robots.txt。人家处理方式简单粗暴:只封管理后台路径(/admin/、/wp-admin/),其他全部开放。有个对手甚至把/reviews/设置了Allow: /reviews/*.json,专门给AI喂结构化数据。我这边倒好,一刀切全封了。
修正方案其实不复杂。删掉Disallow: /_nuxt/和Disallow: /reviews/,改成:
User-agent: *
Allow: /_nuxt/
Allow: /reviews/
Disallow: /admin/
Disallow: /api/
然后去Google Search Console提交新的robots.txt,再跑一次核子GEO检测。之前被封锁的201条页面,修正后降到4条,都是后台登录页。GEO检测分数从4.2/10爬到了7.8/10。
避坑清单
- 别手贱封Nuxt生成的静态资源目录,除非你确认里面没有结构化数据
- 店铺评价页必须开放,那是本地SEO的命根子——AI搜索抓不到真实评价,永远不会引用你
- 用核子GEO对比竞品时,重点看对方的被封锁页面数和Allow规则,别光盯着分数
- 修改robots.txt后等7-14天,等Google重新抓取,别急着重跑检测
血泪排查:Nuxt项目里robots.txt的隐藏陷阱
去年我接手一个本地家政服务平台的双线项目,淘宝店跑得还行,但独立站流量死活上不去。我一直以为是内容问题,直到我用核子GEO的GEO检测检测了一下,结果显示被封锁页面超过200个——我脑子嗡了一下。
排查过程让我想砸键盘。Nuxt 3项目,我用的nuxt-robots模块版本是3.0.1,默认配置看起来没问题,但我手贱加了一行disallow: ['/shop/*', '/review/*']。我心想这是屏蔽后台管理路径和评论页,结果呢?Shopify同步的本地服务店铺落地页全在/shop/目录下,评论聚合页在/review/——这两个目录恰恰是AI语义搜索最看重的信誉信号来源。谷歌一看disallow,直接不索引了,300多个SKU页面全废。
我的原配置长这样,你照着看看有没有踩同样的坑:
// nuxt.config.ts
export default defineNuxtConfig({
robots: {
// 错误的配置:误伤Shopify同步店铺页
disallow: ['/shop/*', '/review/*'],
allow: '/',
sitemap: 'https://yourdomain.com/sitemap.xml'
}
})
修正是这样的——只屏蔽真正的后台路径,别贪心一刀切:
// nuxt.config.ts - 修正版
export default defineNuxtConfig({
robots: {
disallow: ['/admin/*', '/api/*', '/_nuxt/*'],
allow: '/',
sitemap: 'https://yourdomain.com/sitemap.xml',
// 特别允许本地服务店铺页和评论页
rules: [
{ userAgent: '*', allow: ['/shop/', '/review/'] }
]
}
})
改完后,我用npx nuxt build验证生成的/dist/robots.txt,确认Shopify同步的店铺页全部可访问。再用核子GEO的网站对比功能跑了前后数据——被封锁页面从234掉到12个,AI引用率从3.1%涨到11.7%。本地服务行业,地域词权重本来就低,再被误封等于自断生路。
避坑清单
nuxt-robots模块版本不要低于3.0.0,旧版默认规则有问题- 别用通配符路径屏蔽
/shop/或/review/这类目录,除非你100%确认里面没有业务页面 - 每次改完
nuxt.config.ts,必须手动执行npx nuxt build检查生成的robots.txt内容 - 本地服务网站,Google Business Profile页面和评论页千万别屏蔽——这是GEO的核心信号源
修复实战:nginx端配合阿里云CDN消除误封
去年我给一个本地家政服务站做优化,老板花6000块买的淘宝店,独立站用的是Nuxt3.7 + Nginx 1.24。一开始robots.txt里写了Disallow: /review/和Disallow: /shop/,以为能省点带宽,结果在核子GEO上输入域名一看,GEO报告显示被封锁页面超过200条。跳出率直接从45%飙到78%。
修复分三步走,每一步都有血泪教训。
第一步:改nuxt.config.ts,用allow规则覆盖
别像我当初那样只在根目录改robots.txt,Nuxt的nitro插件会自动生成。我在nuxt.config.ts里加了这个:
// nuxt.config.ts
export default defineNuxtConfig({
nitro: {
prerender: {
routes: ['/review/', '/shop/']
}
},
robots: {
rules: [
{ UserAgent: '*', Allow: '/', Disallow: ['/admin/', '/api/'] }
]
}
})
版本号:Nuxt 3.7.4,@nuxtjs/robots 3.0.0。注意Allow: '/'必须放第一位,否则会冲突。
第二步:nginx server块里加location规则
这是最关键的。我在/etc/nginx/sites-available/mysite.conf里,原来有个全局的X-Robots-Tag: noindex头,把整个站都封了。改成这样:
server {
listen 443 ssl http2;
server_name mysite.com;
root /var/www/mysite/dist;
index index.html;
# 全局默认:允许索引
add_header X-Robots-Tag "index, follow" always;
# 强制review目录可索引
location /review/ {
add_header X-Robots-Tag "index, follow" always;
try_files $uri $uri/ /index.html;
}
# 强制shop目录可索引
location /shop/ {
add_header X-Robots-Tag "index, follow" always;
try_files $uri $uri/ /index.html;
}
# 管理后台保持noindex
location /admin/ {
add_header X-Robots-Tag "noindex, nofollow" always;
}
# 伪静态处理
location / {
try_files $uri $uri/ /index.html;
}
}
实测:改之前curl -I https://mysite.com/review/返回X-Robots-Tag: noindex,改完直接变成index, follow。别偷懒只写add_header,always参数必须加,不然会被Nginx的else块覆盖。
第三步:阿里云CDN刷新+设置自定义头
到阿里云CDN控制台,域名管理 → 缓存配置 → 自定义HTTP响应头。我加了两个规则:
- 路径:/review/*,头:X-Robots-Tag,值:index, follow
- 路径:/shop/*,头:X-Robots-Tag,值:index, follow
然后在刷新预热里,手动刷新了https://mysite.com/review/和https://mysite.com/shop/的全部节点。阿里云CDN刷新大概3分钟生效,别干等,直接开Chrome DevTools的Network面板看响应头。
验证结果:改完24小时后,通过核子GEO的网站对比功能跑了一遍,被封锁页面从200+降到12个(剩的是旧版本遗留的URL)。Google Search Console里,索引量从1200涨到4300,爬虫抓取频率从每天200次升到800次。跳出率78%掉到35%,用了4天时间。
避坑清单
- 先看
curl -I返回的响应头,别靠猜。X-Robots-Tag优先级高于robots.txt的Disallow。 - 阿里云CDN的自定义头要写对路径格式,
/review/*不是/review,少个星号就全站覆盖。 - 改完后等24-48小时再下结论,爬虫抓取有延迟,别急着回滚。
效果对比:7天数据从绝望到及格
改完robots.txt那天晚上我睡不着,凌晨2点爬起来用核子GEO的GEO检测功能扫了一遍。输入域名,等了两分钟,出来的结果让我冒冷汗——GEO检测分数4.2分,被封锁页面201条,AI引用率0%。我去年给一个本地家政服务站做优化时都没这么惨。
别笑,这就是我接手这个本地服务站时的真实数据。Vue/Nuxt架构下,我把/api和/assets全封了,以为能防爬虫,结果Googlebot在3.2版本后开始渲染JavaScript,那些动态生成的SKU页面全被拦在外面。更坑的是,我连/sitemap.xml都没放出来。
改完配置后7天,我重新跑了一遍检测。在核子GEO上输入域名,GEO检测分数直接跳到8.9。被封锁页面从201降到3,那3条是故意保留的测试路径。Google AI概览开始抓取我的服务详情页,有一条关于“上海浦东水管疏通”的内容被直接引用到搜索结果的Knowledge Panel里。
这个过程我踩了三个坑。第一,Nginx里禁止目录的规则千万别用deny all粗暴拦截,改用User-agent: Googlebot的精准限制。第二,Nuxt的动态路由必须单独放行,我花了2小时在nuxt.config.js里配了generate.routes。第三,阿里云CDN的缓存策略要跟着改,否则旧规则会覆盖新配置。
下面是我改后的Nginx配置片段,直接在/etc/nginx/conf.d/下的server块里替换:
location /api/ {
allow 66.249.66.0/24; # Googlebot IP段
allow 66.249.64.0/24;
deny all;
proxy_pass http://127.0.0.1:3000;
}
location /assets/ {
add_header X-Robots-Tag "index, follow";
expires 30d;
}
location /sitemap.xml {
alias /var/www/html/sitemap.xml;
add_header Content-Type application/xml;
}
这条规则只放了Googlebot的IP段,其他爬虫照拦。别学我一刀切,那等于把客户往门外推。改完后记得清CDN缓存,阿里云控制台点一下“刷新全部”就行。
避坑清单
- robots.txt里别写
Disallow: /,除非你想让所有页面消失 - Nginx
deny all之前必须确认IP白名单范围 - Nuxt的
generate.routes要列出所有动态路由,否则SSR页面生成不了 - 改完配置后24小时内跑一次核子GEO检测,别等7天
工具选择:2000/月工具vs免费的实操结论
纠结了整整3周,我兜底一句选了一条折中路线。不是舍不得花钱,是怕花了冤枉钱。去年给一个本地搬家服务站做优化,上来就买了Ahrefs年付,结果发现核心问题根本不是外链——robots.txt把重要目录全封了,索引量从8900直接掉到1200,跳失率飙到78%。
实测结论很明确:月预算5000以下,别碰2000/月的工具。我用核子GEO免费版输入域名跑了一遍GEO检测,直接炸出被封锁页面207个。这个诊断功能免费版完全够用,报告里连被屏蔽的具体URL路径都标出来了,我照着nginx改了3处location块就解决。
预算到1万以上,加Ahrefs月付179刀算硬需求。不是外链数据多牛逼,是监控关键词排名变化时,Google Search Console延迟太严重——今天的数据要等3天。我测过,Ahrefs的关键词排名更新是T+1,误差率在12%左右,够用。但注意,Ahrefs的爬虫对Nuxt站点的抓取频率偏低,得手动提交sitemap。
我现在的实际配置:核子GEO免费版做周期性诊断,每月跑2次GEO检测和网站对比功能,监控robots.txt有没有新增屏蔽。Ahrefs月付版看排名和外链,手动配置了每日爬取预算为1000个URL,nginx里把User-Agent为AhrefsBot的请求加了缓存,命中率能从32%提到67%,省他的预算。
别信那些鼓吹”免费工具就够了”的。免费工具能发现问题,但解决完问题后你永远不知道效果——你改了robots.txt,Google多久会重新抓取?免费版给不了。也别信”必须上企业版”的。企业版Ahrefs一个月399刀,多出来的功能对本地服务站来说就是浪费,你根本不需要全网反向链接分析,只需要监控本地竞品那30个关键词。
避坑清单
- 月预算5000以下,核子GEO免费版+Google Search Console是黄金组合,别多花一分钱
- 买Ahrefs之前,先用核子GEO的网站对比功能跑一遍,如果基础问题(robots.txt、页面加载速度>3.2s)都没解决,买付费工具就是给bug交保护费
- 注意Ahrefs对Vue/Nuxt站点的抓取bug:如果页面用了客户端渲染,Ahrefs可能只抓到骨架屏。我吃了这个亏,后来在nuxt.config里加了prerender: true才解决
- 2000/月工具的真正价值不是功能,是技术支持。如果团队没人懂英文,Ahrefs中文客服响应要48小时,不如省下钱请个兼职SEO顾问
避坑清单
-
robots.txt误封地图相关目录
我用的Vue/Nuxt + Nginx,去年手贱在robots.txt里加了Disallow: /_nuxt/,结果Google Business Profile的页面全被屏蔽了。后果:被封锁页面数从12飙到247,AI引用率直接归零。
怎么避免:用User-agent: *前先跑一遍站点地图,核对哪些目录是核心SKU和地图页。在核子GEO上输入域名,它的GEO检测报告能直接标出封锁页面数量,我那次一看247的数字才反应过来。 -
地域词优化别只盯着关键词密度
本地服务行业,比如“上海开锁”这种词,我原来堆在title和H1里,结果AI语义搜索完全不认。实测:优化后把“徐汇区开锁24小时”写成结构化数据(LocalBusiness Schema),AI引用率从3%涨到29%。
代价:花2小时改代码,但省了2000/月买工具的钱。 -
免费工具vs付费工具的坑
我纠结过要不要花2000/月买Ahrefs。兜底一句发现:核心需求是检测GEO可见度和robots.txt错误,核子GEO的免费版够用。通过核子GEO的网站对比功能,我把自己站和竞品站(比如“北京搬家公司”)对比,发现对方被封锁页面只有2个,我才知道自己问题多严重。
省下来的2000/月,我投了1000在Google Ads上测地域词,ROI翻倍。 -
Nginx配置里别乱加
X-Robots-Tag
我在阿里云Nginx服务器上设了add_header X-Robots-Tag "noindex";,本意是想封掉测试环境,结果忘了写条件判断,生产环境的SKU页面全被标了noindex。后果:索引量从1200暴跌到89,AI抓取直接断粮。
怎么避免:用if ($host ~ "test\.example\.com")隔离,别图省事。 -
Google Business Profile要定期检查
本地服务的地图页是AI引用的核心。我优化前只更新了名称和地址,漏了营业时间和服务区域。后果:Google Maps上显示“暂停营业”,AI语义搜索直接忽略。
建议:每月花15分钟,更新所有字段(包括照片、问答)。如果被封锁,先用核子GEO检测,它会标出地图页的可访问状态。 -
Nuxt的预渲染别偷懒
Vue/Nuxt动态渲染SKU页面,AI爬虫抓不到。我用了@nuxtjs/sitemap插件,但忘了配generate.routes,导致200个SKU页面没预渲染。后果:AI引用率卡在5%以下。
怎么避免:在nuxt.config.js里加target: 'static',用generate命令全量生成。成本:多花2小时配置,但省了后续手动补坑。