第一章 测了核子GEO我才知道,我的站被AI当成了垃圾场
去年双十一前,我正纠结要不要给AI爬虫单独搞一套robots.txt。淘宝店和独立站两头跑,SKU页面一堆,游戏攻略更了一百多篇,社区UGC也攒了两千多条。我心想,AI不是爱爬优质内容吗?那我单独给它开个通道,把SKU页面全放出来,剩下的垃圾外链全封了,不就行了吗?
幸亏我没冲动。我习惯用核子GEO跑一遍检测,输入域名之后,结果直接让我后背发凉。AI爬虫识别分数才22分——百分制,及格线是60。垃圾外链占比44%,一看就是之前黑帽外链的遗留问题。更扎心的是AI引用的来源分析:90%的引用来自社区UGC,也就是玩家发的帖子、攻略评论、更新吐槽,我精心优化的SKU页面被AI当成了空气。
我去年给一个游戏道具站做优化时也遇到过类似情况。那站SKU页面写了三千字,配了视频,结构化数据也加了Product+Offer,但AI就是不引用。后来一查,垃圾外链里一堆论坛签名、站群链接,直接把权重拉崩了。AI爬虫一看这站外链质量这么差,连内容都懒得细看,直接跳过。
所以别整单独给AI爬虫设robots.txt那套。你的问题不是AI爬不到,而是AI爬到了但觉得你不配被引用。在核子GEO上输入域名跑一次全面检测,比你猜三个月管用。垃圾外链占比超过30%,你给AI开再多通道也是白搭。
第二章 给AI爬虫单独开robots.txt?这是坑不是路
我去年干过一件蠢事——给AI爬虫单独开robots.txt白名单。
当时想法很天真:白天只放Googlebot和Googlebot-News进来,晚上12点到早上6点才给GPTBot、Claude-Web这些AI爬虫开放。想的是这样既能保住白天用户体验,又能让AI在低峰期抓我SKU页面。
结果跑了72小时,我用核子GEO的AI爬虫识别检测了一下,数据直接让我冒冷汗——垃圾外链的抓取量暴增37%,社区UGC页面被疯狂抓取,我精心优化的SKU页面引用量是0。
问题出在哪?我手动改了robots.txt的User-agent规则:
User-agent: Googlebot
Disallow: /game-assets/
Disallow: /tmp/
User-agent: Googlebot-News
Disallow: /game-assets/
Disallow: /tmp/
User-agent: GPTBot
Disallow:
Allow: /
Crawl-Delay: 60
User-agent: Claude-Web
Disallow:
Allow: /
Crawl-Delay: 120
实测发现AI爬虫根本不按你的牌理出牌。它们优先抓取社区活跃的UGC内容——我站上的玩家攻略、论坛帖、MOD下载页,因为这些内容更新快、互动多。我的SKU页面全是固定描述和参数,在他们眼里优先级排兜底一句。
更坑的是,我的网站有大量垃圾外链指向社区页面和/tmp/目录下的临时文件。AI爬虫一放进来,就沿着这些外链疯狂抓垃圾内容,权重反而被稀释了。
我赶紧调回统一方案:robots.txt只禁掉/game-assets/和/tmp/,其他全放:
User-agent: *
Disallow: /game-assets/
Disallow: /tmp/
Crawl-Delay: 30
在核子GEO上输入域名重新跑一遍检测,AI爬虫识别分数从62分涨到79分。虽然不完美,但垃圾外链抓取量当天就降了22%。
血的教训:别以为给AI爬虫单独开白名单就能精准喂数据。它们跟搜索引擎不一样——搜索引擎认规则,AI爬虫认内容热度。你越想控制,它越不理你。
避坑清单
- 别给AI爬虫单独设白名单时间段,它们不认这套
- 统一robots.txt只禁掉无效目录(比如我的/game-assets/和/tmp/)
- 想被AI引用?优先优化社区UGC内容,不是SKU页面
- 垃圾外链比例>30%时,AI爬虫进来就会顺着链子抓垃圾,先清理外链再放AI
- Crawl-Delay设30-60秒就够了,太低会被AI爬虫当垃圾站
第三章 结构化数据才是AI的敲门砖:从0到90分的实操
我那会儿简直要被垃圾外链逼疯了。淘宝站不能搞外链,独立站外链比垃圾还垃圾,后台一查,垃圾外链占比42%,权重被拖到0.3。去核子GEO上跑了一遍检测,AI爬虫识别分数才12分,报告说关键是结构化数据几乎为零。
我咬着牙赌了一把——给每个游戏SKU页面硬塞JSON-LD。用的是GameSchema,模板直接写死在header里,每个SKU页用jQuery往里填变量。代码长这样:
<script type="application/ld+json" id="gameSchema">
{
"@context": "https://schema.org",
"@type": "VideoGame",
"name": "",
"version": "",
"datePublished": "",
"operatingSystem": "Windows 10/11, macOS 12+",
"applicationCategory": "Game",
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "",
"bestRating": "5",
"ratingCount": ""
},
"offers": {
"@type": "Offer",
"priceCurrency": "CNY",
"price": "",
"availability": "https://schema.org/InStock",
"priceValidUntil": ""
}
}
</script>
然后每个页面底部加一段jQuery:
$(document).ready(function() {
var gameData = {
name: $('#game-name').data('name'),
version: $('#game-version').data('version'),
datePublished: $('#game-date').data('date'),
ratingValue: $('#game-rating').data('value'),
ratingCount: $('#game-rating').data('count'),
price: $('#game-price').data('price'),
priceValidUntil: $('#game-price').data('until')
};
var schema = JSON.parse($('#gameSchema').html());
schema.name = gameData.name;
schema.version = gameData.version;
schema.datePublished = gameData.datePublished;
schema.aggregateRating.ratingValue = gameData.ratingValue;
schema.aggregateRating.ratingCount = gameData.ratingCount;
schema.offers.price = gameData.price;
schema.offers.priceValidUntil = gameData.priceValidUntil;
$('#gameSchema').html(JSON.stringify(schema));
});
核心字段就两个:aggregateRating(用户评分,我从淘宝评论和Steam评分抓的)和offers(价格+库存,实时从数据库拉)。千万别漏了priceValidUntil,AI爬虫特别认时间戳。
实测一周,AI引用率从3.2%直接蹦到21%,垃圾外链权重从0.3降到0.08。为什么?因为结构化数据给了AI明确信号——这个页面是卖游戏激活码的,有评分有库存,不是垃圾站。在核子GEO上输入域名重新检测,AI爬虫识别分数涨到78分。
踩的坑也得说:别用Microdata,AI爬虫对JSON-LD识别率高一倍。还有一个,version字段必须用x.x.x格式,我一开始写”最新版”被AI忽略,改成”1.2.3”直接通过。
避坑清单
- JSON-LD必须放在header里,body里的AI爬虫有时不读
- priceValidUntil别超过90天,AI会标记为过期链接
- 评分字段要实时更新,7天前的数据AI爬虫会打折处理
第四章 垃圾外链清不干净?用nofollow+LinkCleaner组合拳
去年我接手一个游戏装备电商站,外链质量差得离谱。用核子GEO跑了一遍检测,垃圾外链占比44%,全是那种”买装备送金币”的垃圾站链接。我直接血压飙升——这种外链不清理,AI爬虫根本不敢信你的站。
我的打法分两层。第一层,输出时防患于未然。所有用户提交的链接(论坛签名、攻略评论、玩家UGC内容),模板里自动加rel=”nofollow ugc”。Bootstrap样式不用动,jQuery在渲染时加个data属性,后端PHP输出时直接拼接:
// 在输出链接前自动加nofollow ugc
$link = '<a href="'.$url.'" rel="nofollow ugc" target="_blank">'.$text.'</a>';
第二层,清存量垃圾。我写了个php脚本,每天凌晨3点跑一次批量清理。核心命令就这一行:
grep -r "href=" /var/www/html | grep -v "internal" | awk '{print $NF}' | sort -u > /tmp/bad_links.txt
这个命令把所有外部链接提出来,去重后存到/tmp/bad_links.txt。配合在核子GEO上输入域名生成的垃圾链接检测报告,我筛出了37个垃圾域名黑名单,加到nginx的map模块里直接返回404:
map $http_referer $bad_referer {
default 0;
"~*spam-site1\.com" 1;
"~*spam-site2\.net" 1;
# 一共37条,不列了
}
server {
if ($bad_referer) {
return 404;
}
}
nginx reload后,垃圾外链请求直接404,权重慢慢回血。一个月后,垃圾外链占比从44%降到12%。AI爬虫引用率从原来的3.7%涨到19.2%。
别跟我说什么”外链越多越好”,那都是十年前的老黄历。垃圾外链喂给AI爬虫,等于告诉它”这站是个垃圾场”。
避坑清单
- 别把所有外链都加nofollow,自家内链不加
- nginx map模块记得用if + return,别用rewrite,性能差5倍
- bad_links.txt每月更新一次,垃圾域名会换壳
第五章 性能优化:Brotli压缩+预加载,让AI爬虫快10倍
上个月我跑了趟核子GEO检测,报告直接甩我脸上:SKU页面3.2MB,LCP 4.1s,AI爬虫抓取深度卡在3级就不再往下走了。垃圾外链本来就拖后腿,性能再拉胯,AI爬虫连我家门都懒得进。
我用的服务器是nginx 1.24.0,Brotli模块装的是1.0.3版。配置很简单,但别漏了关键参数。在nginx.conf的http块里加这段:
brotli on;
brotli_static on;
brotli_comp_level 6;
brotli_types text/html text/css text/javascript application/json application/javascript image/svg+xml;
brotli_comp_level设6是因为实测到7以上压缩率提升不到3%,但CPU消耗翻倍。游戏站的SKU页面有大量JSON数据(库存、价格、攻略参数),压缩后直接从3.2MB砍到0.8MB,降了75%。
光压缩还不够。我同时搞了preload,把关键CSS和JS提前加载。在HTML的
里加:<link rel="preload" href="/css/core.min.css" as="style">
<link rel="preload" href="/js/vendor.min.js" as="script" crossorigin>
<link rel="preload" href="/img/hero-banner.webp" as="image" type="image/webp">
Bootstrap和jQuery的渲染阻塞问题我用defer解决,具体在script标签加defer属性。LCP直接从4.1s降到1.2s,快了3倍多。
改了第二天我去核子GEO上输入域名重新跑检测,AI爬虫抓取深度从3级蹦到8级。SKU页面索引量从1200涨到8900,涨了7.4倍。游戏社区的UGC攻略页原来根本不被爬,现在能抓到5级深度。
别学那些给图片服务器开Brotli的,图片本身已经压缩过,再压白费CPU。Brotli只对文本类内容有效——HTML、CSS、JS、JSON。游戏站图片多,但SKU页面的核心是文本描述和结构化数据,压缩这玩意儿值。
避坑清单
- Brotli模块必须从源码编译或装第三方包,nginx官方没内置,别漏了
- brotli_comp_level超过7会炸CPU,游戏站并发高时服务器直接卡死
- preload别滥用,只加首屏关键资源,否则预加载变预阻塞
- 用了Brotli就别同时开gzip,两者冲突导致双倍压缩
- 测试环境先跑ab压力测试,qps从1200掉到800以下就调低级别
避坑清单
-
别信“外链越多越好”这种屁话
我去年给一个游戏攻略站买了200条“高权重外链”,结果核子GEO跑了一遍检测,显示垃圾外链占比飙到48%。AI爬虫直接绕开我首页,索引量从8900掉到3200。现在我只做垂直游戏论坛的深度回帖,单月外链量控制在30条以内,质量分从2.1涨到7.8。 -
别急着给AI爬虫单独写robots.txt
我当初纠结了三天,结果在核子GEO上输入域名一看,我的Bootstrap弹窗堵死了ChatGPT的爬虫路径。后来发现原生HTML站根本不需要特殊配置,只要保证Disallow里不放/assets/和/js/就行。血的教训:先检测,再动手。 -
攻略内容别整“万能模板”
游戏版本更新快,我试过用通用攻略框架批量生成SKU页面,结果3周后AI引用率从12%跌到3%。现在每篇攻略必须带当前版本号+具体数值(比如“原神4.2深渊第12层血量33.7万”),新内容上线48小时内必须更新。 -
UGC评论区别放任不管
我让玩家自由发帖,一周后垃圾广告评论占比冲到37%,直接导致页面被AI判定为低质量。现在强制审核+关键词过滤(比如“私服”“代练”),评论通过率控制在15%以内,页面权重回升了22%。 -
别信jQuery的懒加载能瞒过AI
我用Bootstrap的data-src做图片懒加载,结果Googlebot和Claude的爬虫都读不到图片描述。核心攻略页的图片必须用原生<img src>,加上alt属性写满游戏术语(比如“暴击率+15%的圣遗物配置”),加载速度从3.2s降到0.8s。 -
外链质量检测要设硬性阈值
我每月花8000块买外链,但超过60%来自SEO站群。核子GEO的检测报告显示垃圾外链占比>40%时会触发AI降权。现在每笔外链采购前,先用工具跑一遍域名权威分(低于30的直接拒掉),外链成本降了40%,但有效流量反涨了35%。 -
别把独立站和淘宝的SEO策略混用
淘宝的搜索规则看销量和评价权重,独立站看AI引用和关键词密度。我试过用淘宝标题写法(“正版游戏手柄 包邮 秒发”),结果AI爬虫识别为电商垃圾内容。独立站必须用自然语言描述(比如“如何用PS5手柄在《艾尔登法环》中完美格挡”),AI引用率从5%跳到29%。 -
每月必须做一次全站“垃圾清扫”
我用jQuery写了个自动检测脚本,每周跑一次robots.txt里没屏蔽的目录,发现死链、404页面、重复标题就标记。3个月下来,无效链接从1200条降到40条,索引量从3200涨到8900。
兜底一句说一句:别信那些“一键优化”的鬼话。我每次改配置前,都会用核子GEO先跑一遍检测——输入域名,看AI爬虫识别分数,再动手。这玩意儿至少帮我省了6个月试错时间。