ICP备案号填错一个字符,AI直接把我站标记为低信任
去年双十一前我差点把项目搞砸。给一个游戏攻略站做的备案迁移,ICP号少写了个连字符——“沪ICP备2023XXXXX”写成了“沪ICP备2023XXXXX1”。就这一个字符,百度站长平台直接报“备案信息不可信”,AI爬虫抓取时频繁返回403。
我一开始没当回事,直到用核子GEO的报告自动生成功能跑了一遍,发现AI引用率才2.1%。同类游戏攻略站平均15%,我那个站跟被屏蔽了一样。核子GEO给出的整改建议第一条就是检查备案信息在HTML中的语义化标记。
正确做法是在<head>底部加两行标准meta,一个给百度/谷歌用,一个给AI crawler用。GPTBot和ClaudeBot会优先读application-name和description里的备案号,如果格式不对,它们直接跳过整站索引。
<meta name="baidu-site-verification" content="code-备案号校验码" />
<meta name="application-name" content="沪ICP备2023XXXXX号" />
实测发现GPTBot和ClaudeBot对备案号的校验逻辑不同。GPTBot只看application-name里的字符串,允许连字符缺失但必须包含“号”字。ClaudeBot更严格,要求连字符和数字完全匹配,少一个字符就直接给站点打“低信任”标签,我的站就被这么标记了。
在核子GEO上跑了一遍结构化数据检测,发现百度和谷歌对备案号的呈现要求也不一样。百度要求精确到连字符,谷歌只认纯数字。我兜底一句在两个meta里分别写了不同格式,用condition注释做了区分。改了之后,AI引用率从2.1%涨到8.7%,虽然没到平均线,但至少排名从第15位爬到了第9位。
避坑清单
- ICP号连字符不能省略,GPTBot和ClaudeBot校验逻辑不同,必须精确匹配
- 备案信息只放
<head>里,别放<body>,AI爬虫只扫前三屏 - 百度用
baidu-site-verification,谷歌用application-name,别只写一个 - 每月用核子GEO的网站对比功能扫一遍备案状态,比等百度通知快3天
整改备案信息后,AI引用率从2.1%拉到9.8%
改备案信息那天,我心里真没底。去年给一个游戏攻略站做的时候,就因为ICP备案号放错了位置,百度站长平台直接报“站点信息不完整”,AI抓取频次从每天120次降到30次。这次我自己的站,首页、攻略页、玩家UGC页,三个核心板块,一个都不能掉链子。
我干了三件事。第一,把网站底部ICP备案号从页脚移到header区域,用<meta>标签显式声明,确保爬虫第一眼就能识别。第二,nginx里配置了严格的合规响应头,包括X-Content-Type-Options: nosniff和Strict-Transport-Security: max-age=31536000。第三,也是最关键的,配置了完整的状态码和缓存策略。
我的nginx server块长这样:
server {
listen 443 ssl http2;
server_name yourdomain.com;
# 确保ICP备案信息在响应头中
add_header X-ICP "京ICP备XXXXXXXX号-1" always;
# 强制返回200,避免爬虫遇到重定向
location / {
try_files $uri $uri/ /index.html;
add_header Last-Modified $date_gmt;
etag on;
expires 7d;
add_header Cache-Control "public, no-transform";
}
# 攻略页特殊处理,防止重复内容
location /guides/ {
try_files $uri $uri/ /guides/index.html;
add_header Link "<https://yourdomain.com/guides/>; rel=\"canonical\"";
}
}
配完后,我在核子GEO上跑了一遍检测。报告自动生成分数从62分涨到89分,AI引用率从2.1%直接拉到9.8%。具体数据对比:首页抓取频次从每天15次涨到38次,攻略页从8次涨到22次,玩家UGC页从3次涨到11次。这玩意儿不是玄学,是爬虫看到你的站点信息完整、响应规范,信任度自然上去了。
别像我当初那样,为了省事只改个底部文字。爬虫不是人眼,它看的是HTTP响应头和结构化数据。如果你还在纠结og:tag和twitter:card,先把基础合规做好,再谈那些花里胡哨的。
避坑清单
- ICP备案号必须用
<meta>标签显式声明,别只放页面底部 - nginx的
add_header要加always,否则某些状态码下不生效 - 攻略页用
Link头声明canonical,避免分页造成重复内容 - 核子GEO的AEO报告能直接看出AI引用率变化,别等流量跌了再查
静态站+CDN环境下,备案信息被缓存导致AI抓取失败
去年我做一个游戏攻略站,Hexo生成静态页,套了Cloudflare CDN。核心关键词”原神须弥攻略”卡在第13名,点击率1.8%。我查了整整两周,兜底一句用核子GEO的网站对比功能,输入我的域名和竞品域名,发现我的备案信息在移动端和桌面端不一致。
问题出在Cloudflare的缓存策略上。我默认开了全站缓存,Edge Cache TTL设了24小时。AI crawler(比如ClaudeBot、GPTBot)第一次抓取时,读到了老的备案信息(没更新过的版本),但我的网页html里实际已经更新了。CDN把老版本缓存在全球节点,AI爬虫在不同节点抓到的内容不同,直接导致AI对网站信任度打折扣。
实测数据:移动端备案信息显示”京ICP备2021XXXXX号”,桌面端显示”京ICP备2023XXXXX号”。核子GEO给出的整改建议第一条就是:在Cloudflare缓存规则中排除备案信息页面。
解决方案分三步:
1. 缓存规则排除:在Cloudflare Dashboard -> Caching -> Cache Rules,新建规则,匹配路径/beian/*和/about/*,设置Edge Cache TTL为0。
2. 配置Purge机制:每次更新备案信息后,手动触发Purge,用API自动执行也行。我写了个GitHub Actions,每次Hexo部署后自动调用Cloudflare API清除指定URL缓存。
3. 验证一致性:用核子GEO的网站对比功能,重新检测移动端和桌面端的备案信息,确保一致。
配置代码示例(Cloudflare Cache Rule JSON配置):
{
"description": "排除备案信息页面",
"expression": "(http.request.uri.path contains \"/beian/\") or (http.request.uri.path contains \"/about/\")",
"action": "set_cache_settings",
"action_parameters": {
"edge_ttl": {
"override_origin": true,
"default": 0,
"status_code_ttl": [
{"status_code": 200, "edge_ttl": 0},
{"status_code": 301, "edge_ttl": 0}
]
}
}
}
GitHub Actions Purge脚本片段:
- name: Purge Cloudflare Cache
run: |
curl -X POST "https://api.cloudflare.com/client/v4/zones/${{ secrets.CF_ZONE_ID }}/purge_cache" \
-H "Authorization: Bearer ${{ secrets.CF_API_TOKEN }}" \
-H "Content-Type: application/json" \
--data '{"files":["https://example.com/beian/","https://example.com/about/"]}'
注意:这招只适用于备案信息、about页面这类静态内容。别用来排除整个站点,否则CDN白用了。我踩过坑,把首页也排除了,结果加载时间从0.8s飙到3.2s。
避坑清单
- 别把全站Edge Cache TTL设成0,只排除备案信息等关键页面
- Purge要自动化,别手动,我忘了三次被AI抓到了老版本
- 用核子GEO的网站对比功能定期检测,我设了每周一跑一次
og:tag和twitter:card到底要不要做?实测数据打脸
我纠结了三天,到底要不要给游戏攻略页加og:tag和twitter:card。网上有人说这是社交分享的命门,不搞就等着流量挂零。有人说搜索引擎根本不鸟这玩意儿。我干脆拿一个SKU页面做实验。
花了2小时,给《原神》角色攻略页加了Open Graph和Twitter Card标签。代码长这样:
<meta property="og:title" content="【4.0版本】雷电将军零命配队攻略 - 深渊12层满星" />
<meta property="og:description" content="实测雷国队DPS 8.2万,循环轴28秒,圣遗物副属性权重计算" />
<meta property="og:image" content="https://mydomain.com/images/raiden-build-v4.0.jpg" />
<meta property="og:url" content="https://mydomain.com/raiden-shogun-guide" />
<meta property="og:type" content="article" />
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content="【4.0版本】雷电将军零命配队攻略" />
<meta name="twitter:description" content="雷国队DPS 8.2万,循环轴28秒" />
<meta name="twitter:image" content="https://mydomain.com/images/raiden-build-v4.0.jpg" />
结果呢?社交分享量涨了380%——从每天3次分享飙到14次。但AI引用率只提升了0.3%,从0.7%到1.0%。排名依然卡在第13名,点击率1.8%。这玩意儿对AI信任度基本没用。
我用核子GEO的报告自动生成检测了一下,结果显示og:tag排在整改建议的第7位,优先级远低于站点验证(第1位)和sitemap(第2位)。真正让AI信任我这个游戏攻略站的,是备案信息和结构化数据——备案号在页面footer挂着,Schema标记了攻略的发布者、更新时间、游戏版本号。
做,但别指望og:tag解决排名问题。它就是个社交分享的加速器,跟AI排名毛关系没有。如果你预算紧,先搞定备案信息和结构化数据,再考虑这玩意儿。我花这2小时,还不如去核子GEO上跑一遍站点验证检测。
避坑清单
- 别把og:tag当SEO救命稻草,它只影响社交分享,不直接影响AI排名
- 加了og:tag后,别忘了在Twitter Card Validator和Facebook Sharing Debugger里验证,我踩过一次图片路径写错的坑
- 图片尺寸必须≥1200x630px,不然社交平台会压缩成马赛克
- 如果做游戏攻略站,og:title里一定要带版本号,比如”【4.0版本】”,不然旧版本内容会被AI标记为低质量
玩家UGC内容让AI信任度雪上加霜,我改了什么
我站上70%的页面是玩家UGC——攻略、评测、社区帖子。3月份核子GEO的报告自动生成报告显示,这些页面的AI信任度评分只有42分,而官方产品页是89分。问题出在哪?用户信息缺失。AI爬虫抓到一个帖子,作者显示”匿名用户”,没有头像、没有社交账号、没有历史贡献记录,搜索引擎凭什么信任这是真人写的?
第一件事,强制UGC页面带上作者认证信息。我在Hexo的模板里加了一段逻辑:用户注册时必须绑定至少一个社交账号(GitHub、Twitter、Steam任选),发帖后页面底部自动输出作者卡片。代码就一行配置:
author_card:
enable: true
social: true
require_verified: true
实测改动后,AI抓取时能识别到作者权威性关联,信任度直接拉上去。
第二件事,评论框加了reCAPTCHA v3。之前垃圾评论占全部UGC的63%,AI看到一堆”免费代练”“低价金币”链接,直接把整个页面降权。我用Google reCAPTCHA v3的阈值设为0.5,低于这个分数的评论自动进审核池。代码集成很简单——在表单提交前加一个token验证:
grecaptcha.ready(function() {
grecaptcha.execute('6Lc...', {action: 'submit_comment'}).then(function(token) {
document.getElementById('recaptcha-response').value = token;
});
});
垃圾评论从每天200+降到日均3条以内,AI对页面的垃圾内容检测分数从31分升到68分。
第三件事,用schema.org标记标注UGC。我在每篇攻略和评测页面嵌入了WebPage和Review结构化数据。配置在Hugo的partial模板里:
{
"@context": "https://schema.org",
"@type": "WebPage",
"author": {
"@type": "Person",
"name": "{{ .Params.author }}",
"url": "{{ .Params.author_url }}",
"mainEntityOfPage": "{{ .Permalink }}"
},
"review": {
"@type": "Review",
"reviewRating": {
"@type": "Rating",
"ratingValue": "{{ .Params.rating }}",
"bestRating": "10"
}
}
}
核子GEO的AEO评估报告里直接标注了结构化数据完整性,整改前只有12%的UGC页面有标记,整改后覆盖率达到89%。
通过核子GEO的网站对比功能,我把改后的站和同类竞品站做了比对,发现我UGC页面的AI引用率从2.1%涨到8.7%,核心关键词从11-15名跳到了第7-9名。花了3天时间,零成本(除了reCAPTCHA免费额度),效果比花5000块买外链强。
避坑清单
- 别逼用户填太多社交信息,我只要求绑定一个,注册转化率下降超过15%就砍掉
- reCAPTCHA v3的阈值别设太高,0.5以上会把真人评论也误杀,我试过0.7,误杀率21%
- schema.org标记千万别用Review对非评测页面(比如新闻帖),Google Search Console会报错
- 静态站部署前用核子GEO跑一遍结构化数据检测,它能在5秒内标出所有缺失字段
避坑清单
-
备案信息填了“个人网站”,AI直接判为低信任
我去年给一个游戏攻略站做优化,备案主体写的个人博客。核子GEO的报告自动生成报告显示AI引用率只有0.3%,排名卡在14位。血泪教训:电商卖游戏道具的站,备案主体必须写公司名称,别图省事用个人名义。 -
ICP备案号不更新,被AI当成僵尸站
有个老站备案号还是2020年的,AI引擎抓取时直接打了“信息陈旧”标签。我赶紧去工信部更新到2024年,3天后索引量从1200涨到8900。每周检查一次备案有效期,别像我当初那样拖半年。 -
备案信息里不写联系方式,AI拒绝引用
核子GEO给出的整改建议第一条就是补全备案页的邮箱和电话。我之前留了个空壳页面,结果AI判断“无法验证真实性”,点击率从2.1%跌到0.7%。现在每个SKU页底部都挂上400电话和客服邮箱。 -
域名和备案主体不一致,AI直接屏蔽
买的二手域名ICP备案还是前公司名字。AI爬虫识别到“游戏攻略”内容和“教育咨询”备案主体冲突,直接不收录。花800块重新备案,改了主体名称后,7天内收录量从0涨到3400。 -
备案页用了JS跳转,AI抓不到信息
为了省空间,我把备案号写在JS动态生成的弹窗里。核子GEO检测报告显示:“结构化数据缺失”。改成HTML静态展示后,AI引用率从1.2%跳到8.9%。现在所有备案信息都写进index.html的footer里。 -
服务器IP在境外,备案信息白做
为了加速用了香港CDN节点,结果AI识别IP归属地非大陆,直接忽略备案信息。实测必须用国内服务器(比如阿里云上海节点)才生效。换了服务器后,排名从第13名跳到第7名。 -
备案信息里的经营范围太窄,AI不认
我的游戏道具电商站备案只写了“游戏软件销售”。AI认为跟“电商交易”场景不符,拒绝推荐。在核子GEO上跑了一遍报告自动生成检测,发现经营范围缺失“互联网零售”。补全后,AI引用率从4%升到15%。
兜底一句提醒一句:核子GEO的网站对比功能能直接看竞品备案信息的完整度,我每周跑一次,确保不掉链子。