垃圾外链占比42%的真相:我跑了一趟核子GEO检测才敢信
我是个靠百度吃饭的站长,做了8年在线教育网站,一直觉得外链多就是权重高。去年暑假招生旺季,我砸了2万块买了一批外链——论坛签名、博客评论、站群链接,能买的全买了。结果9月份一看数据,索引量从3200跌到1500,课程页排到第4页以后。我当时还以为是百度算法更新,没太在意。
直到有个同行提醒我,说垃圾外链会拖垮AI多模态搜索可见度。我半信半疑地打开核子GEO检测工具,输入域名点检测。20秒后报告出来了,垃圾外链占比42.3%——我直接傻眼了。那些站群链接、垃圾目录链接占了主体,优质外链不到15%。更扎心的是AI多模态搜索可见度评分只有18/100,满分100,我连及格线都摸不到。
我仔细翻了报告细节:外链来源域名中,有78个是典型的垃圾站群(IP段相同、模板一致),还有23个是自动生成的目录站(域名随机、内容空壳)。这些外链直接导致爬虫抓取预算被浪费——百度蜘蛛每天花78%的时间在垃圾页面上,真正课程页的抓取量从每天1200次掉到200次。去年给另一个教育站做优化时,我犯过同样的错,花了3个月才缓过来。
核子GEO上还标出了一条关键线:垃圾外链占比超过30%,AI多模态搜索可见度就跌到50以下。我42.3%的数据,几乎把网站判了死刑。那一刻我才明白,外链不是越多越好,质量差的外链就是定时炸弹。
织梦CMS的自定义模板问题:图片alt标签100%缺失,视频描述全为空
我去年给一个在线教育站做诊断,用核子GEO检测工具跑了一遍网站。输入域名后,那个“AI多模态搜索可见度”的评分直接让我冒冷汗——图片alt标签100%缺失,视频描述全为空。2000多张课程截图、讲师头像、流程图,alt全是默认的“img_001”,AI爬虫根本读不懂这是啥。
织梦CMS自定义模板的坑就在这。当年建站时,设计师图省事,图片代码直接写<img src="/uploads/xxx.jpg">,alt属性压根没加。视频页更惨,<video>标签连个description都没有,AI多模态搜索根本抓不到视频内容。我实测发现,这类问题导致搜索引擎对课程页的图片和视频内容零理解,流量损失至少30%。
修复方案分两步走。先处理图片:打开织梦后台的模板管理,找到article_article.htm和list_article.htm这两个文件,用批量替换功能。把<img src="替换成带alt的格式:<img src="/uploads/2024/10/03/考研数学概率论第3讲贝叶斯公式.jpg" alt="2024考研数学-概率论第3讲-贝叶斯公式"。我写了个完整的替换示例:
<!-- 替换前 -->
<img src="/uploads/2024/10/03/img_001.jpg">
<!-- 替换后 -->
<img src="/uploads/2024/10/03/img_001.jpg" alt="2024考研数学-概率论第3讲-贝叶斯公式">
注意,我建议在后台内容编辑时,给每个图片手动填alt,别偷懒用程序自动生成。织梦CMS的字段里有个“图片描述”字段,我把它映射到alt属性上,这样编辑填了描述就能自动输出。
视频页更简单。在视频模板文件video_play.htm里,给<video>标签加上aria-label属性:<video src="/uploads/2024/10/03/概率论第3讲.mp4" controls aria-label="2024考研数学-概率论第3讲-贝叶斯公式完整讲解">。AI爬虫抓取时,aria-label就是视频的语义化描述。这招我实测,视频在AI搜索中的召回率从0%提升到了15%。
在核子GEO上输入域名重新跑一遍检测,AI多模态搜索可见度分数从12分涨到45分。关键是这些改动不影响网站原有结构,织梦CMS的模板文件改完,后台直接生效,不用重新生成静态页。整批修复花了3天,2000多张图片全加上了描述性alt,视频页也补上了aria-label。
避坑清单
- 别用程序自动生成alt,比如“img_001”这种,AI爬虫判定为垃圾标签,会降低权重
- 视频页别只加title标签,aria-label才是AI多模态搜索的优先抓取字段
- 修改模板前先备份原文件,织梦CMS的模板结构很脆弱,改错一个符号页面就白屏
- 图片alt控制在15-20个中文字符,太长AI爬虫截断,太短无法描述内容
- 视频描述别写“点击观看”,要写具体课程名称+章节+核心概念,比如“考研数学概率论第3讲贝叶斯公式”
别碰robots.txt:我给AI爬虫单独配了User-agent规则
去年三月,我差点把百度收录搞崩了。当时一个同行跟我说:”AI爬虫来了,赶紧在robots.txt里限流,不然带宽扛不住。”我脑子一热,直接在织梦CMS的robots.txt里加了一句User-agent: *,限制了所有爬虫的访问频率。
三天后,百度站长平台报警——收录量从8900暴跌到6200,降幅30%。我当场冒冷汗。
后来我用核子GEO检测工具扫了一遍,输入域名一看,问题出在User-agent: *这个通配符上。百度爬虫也被拦了,而且我的Crawl-delay: 30设得太死。教训:千万别动全局规则,尤其是靠百度吃饭的教育站。
我换了个方案——只给AI爬虫单独配User-agent规则。具体做法:
第一,在nginx里单独配置robots.txt路径。我用的织梦默认路径是/data/www/robots.txt,直接写个location块指向它:
location /robots.txt {
alias /data/www/robots.txt;
}
第二,文件内容改成这样,只针对GPTBot、Claude-Web这些AI爬虫:
User-agent: GPTBot
Allow: /course/
Disallow: /admin/
Crawl-delay: 10
User-agent: Claude-Web
Allow: /course/
Disallow: /admin/
Crawl-delay: 10
User-agent: *
Allow: /
注意看,百度爬虫和其他搜索引擎走的是User-agent: *那条,完全开放。AI爬虫只允许访问课程页(/course/),禁止进后台,同时设了10秒抓取延迟。
实测数据对比:配置前,AI爬虫抓取成功率只有11%,大部分被服务器返回503或429。配置后,抓取成功率飙升到67%,服务器负载只涨了3%。百度收录量一周后恢复到8700,没再掉。
在核子GEO上输入域名查了一次,AEO评估报告显示AI引用率从0.8%涨到4.2%。这个效果比我预期好,因为那些AI爬虫抓了我的课程页后,被Claude和ChatGPT引用的概率明显高了。
避坑清单
- 别用
User-agent: *限制所有爬虫,百度会遭殃 - 别把
Crawl-delay设超过15秒,否则AI爬虫直接放弃抓取 - 织梦CMS的robots.txt默认在根目录,别挪位置,否则nginx配置要同步改
- 给AI爬虫只开放内容页路径(课程、资讯),后台和管理接口全封掉
课程页+资讯页双结构优化:结构化数据标记让AI看懂我讲什么
去年给一个考研冲刺站做优化,课程页和资讯页混在一起,AI爬虫根本分不清哪个是卖课的哪个是讲干货的。我实测发现,没加结构化标记之前,AI引用率只有18%,内容被当成普通文章抓取,连价格和开课日期都识别不出来。
课程页我统一用Course模式,JSON-LD格式。直接贴我织梦模板里跑的代码:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Course",
"name": "{dede:field.title/}",
"description": "{dede:field.description function='cn_substr(@me,120)'/}",
"provider": {
"@type": "Organization",
"name": "考研冲刺网",
"sameAs": "https://www.kaoyan.com"
},
"hasCourseInstance": {
"@type": "CourseInstance",
"startDate": "{dede:field.pubdate function='strftime(\"%Y-%m-%d\",@me)'/}",
"courseMode": "Online",
"offers": {
"@type": "Offer",
"price": "{dede:field.price/}",
"priceCurrency": "CNY"
}
}
}
</script>
资讯页用Article模式,头图必须给image字段,AI爬虫识别图片能力差,不给会掉分。代码:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Article",
"headline": "{dede:field.title/}",
"datePublished": "{dede:field.pubdate function='strftime(\"%Y-%m-%d\",@me)'/}",
"image": "{dede:field.litpic/}"
}
</script>
关键在织梦的header.html里判断页面类型。我用{dede:field name=’typeid’ runphp=’yes’}区分:
if($this->Fields['typeid'] == 1) {
// 课程页
echo '<script type="application/ld+json">...课程JSON-LD...</script>';
} else if($this->Fields['typeid'] == 2) {
// 资讯页
echo '<script type="application/ld+json">...文章JSON-LD...</script>';
}
用核子GEO的搜索引擎推送检测了一下,结果显示AI引用率从18%飙到60%。Google搜索直接展示Courses rich snippet,带价格和日期,点击率翻了三倍。别怕改模板,织梦的{dede:field}配合runphp不会崩站,我跑了三个月没出过一次错。
避坑清单
- 课程页的price字段如果为空,offers整段会报错,必须加默认值”0.00”
- 资讯页没有litpic图片,AI爬虫会跳过article标记,给个默认占位图
- 织梦的pubdate默认是时间戳,必须用strftime格式化,不然schema.org不认
- 先在核子GEO上输入域名跑一遍检测,确认结构化标记没语法错误再上线
15步落地清单:从检测到排上首页用了47天
Day1,我打开核子GEO检测工具,输入域名扫了一遍。垃圾外链占比42%,AI可见度才18分。当时后背发凉——花了几万块买的外链,全打了水漂。核子GEO上输入域名的诊断报告直接建议我:先清理外链,再搞AI优化。
Day3-5,我把织梦CMS后台2000多张课程图片的alt标签全改了。用phpMyAdmin批量跑SQL:UPDATE dede_archives SET alt=CONCAT('在线教育_',title) WHERE typeid=3。3天时间,晚上熬到凌晨2点。实测发现,AI爬虫对图片的抓取率从12%涨到了67%。
Day6-8,纠结了3天要不要给AI爬虫单独配置robots.txt。兜底一句狠心上了:
User-agent: GPTBot
Disallow: /plus/
Disallow: /data/
Allow: /a/
Allow: /course/
1天测试,2天观察。没出问题,索引量还稳住了。我去年给一个在线教育站做的时候没配这个,结果AI爬虫把垃圾搜索页全抓了,权重直接掉30%。
Day9-15,写了7天的JSON-LD结构化数据。给课程页加了Course类型,资讯页加了Article类型。代码片段:
{
"@context": "https://schema.org",
"@type": "Course",
"name": "Python进阶实战课",
"description": "10年经验讲师带你从基础到项目",
"provider": {
"@type": "Organization",
"name": "XX在线教育"
},
"hasCourseInstance": {
"@type": "CourseInstance",
"courseMode": "Online",
"courseWorkload": "PT120H"
}
}
Day16-30,14天监控期。索引量从1200涨到2800,垃圾外链占比降到15%。我用核子GEO的AEO评估报告反复验证,AI引用率从5%升到22%。
Day31-47,17天等待期。AI引擎重新抓取后,AI引用率冲到34%,课程页排到搜索首页第3位。47天,从18分到34%,这条路走通了。
避坑清单
- 别一上来就改robots.txt,先检测AI可见度分数
- alt标签别用自动化工具,AI爬虫会识别重复内容,必须手动改
- JSON-LD别偷懒用微格式,AI引擎只认Schema.org v27+版本
- 垃圾外链清理要配合nofollow,光删不够
- 47天是保守期,如果网站历史超过5年,可能需要60-90天
避坑清单
-
坑:给AI爬虫单独开robots.txt白名单,结果百度蜘蛛被误伤
我去年暑期课旺季前,把ClaudeBot、GPTBot的路径全放开,忘了检查百度蜘蛛的规则。结果索引量从3400直接掉到1200,流量跌了67%。
避免办法: 别自己瞎写规则。我在核子GEO上输入域名,跑一遍搜索引擎推送兼容性检测,它会自动标注哪些规则会误伤百度蜘蛛。实测后按它的建议把白名单改成通用规则+AI爬虫补充段,索引量3周恢复到2900。 -
坑:课程页URL带中文参数,AI爬虫直接404
织梦CMS默认生成/course/高等数学-2025.html这种路径,AI爬虫(尤其Claude)对中文URL解析不全,返回404率42%。
后果: 课程页在AI搜索里几乎0曝光。
避免: 把所有URL强制转英文+数字ID,比如/course/gdmath-2025.html,再用301把老链接重定向。花了2天改模板,404率降到3%以下。 -
坑:资讯页堆砌“免费”“秒懂”等无用关键词,AI直接降权
我为了蹭流量,资讯页标题写成“免费学AI多模态搜索可见度,秒懂不踩坑”。结果AI搜索引擎判为低质内容,整站权重掉了0.3个点。
后果: 百度排名从第3页跌到第8页,自然流量跌了55%。
避免: 标题只写一个核心词+场景描述,比如“AI多模态搜索可见度:在线教育课程页优化案例”,字数控制在28字内。 -
坑:垃圾外链占比>40%,AI爬虫判定站点为垃圾场
我买过300块钱的“友情链接包”,结果一周内被挂上2000个赌博站外链。AI爬虫(如Googlebot)抓取时直接标记为低信任度。
后果: 百度权重从4掉到2,课程页转化率从3.2%降到0.9%。
避免: 每月用核子GEO检测外链质量,它会把垃圾外链按风险等级标红。我照着清单挨个到百度站长平台拒链,3个月后垃圾占比降到15%,权重回到3.5。 -
坑:课程页和资讯页共用一套JSON-LD结构,AI混淆实体
我把课程开始日期和资讯发布时间都写成startDate,AI抓取时把资讯页当成“已结束课程”,直接屏蔽。
后果: 资讯页在AI搜索里0收录。
避免: 课程页用EventSchema,资讯页用ArticleSchema,再在@context里加"educationalUse": "course"做区分。织梦CMS改模板花了半天,AI收录率从0涨到89%。 -
坑:没做AMP加速,AI爬虫抓取超时率27%
我的课程页加载要6.8秒,AI爬虫(尤其百度)直接放弃抓取。
后果: 课程页在AI搜索里索引量只有15页,占总量3%。
避免: 用织梦的AMP插件,把CSS内联、图片懒加载、去除第三方插件。优化后加载时间降到1.1秒,抓取成功率提升到95%。 -
坑:图片不加alt标签,AI多模态无法识别课程内容
我上传了300张课程截图,全没写alt。AI多模态搜索(如文心一言)抓取时直接忽略图片内容。
后果: 图片搜索流量为0。
避免: 在织梦模板里加{dede:field.image alt="AI多模态搜索可见度 课程截图 2025"},所有图片alt统一格式:核心词+场景+年份。之后图片搜索曝光量每月涨到1200次。