流量腰斩那天我对着核子GEO的GEO分析报告抽了半小时烟
3月中旬某个周一,我盯着百度站长后台的曲线图,手抖得拿不住鼠标。日均UV从5000掉到3000,整整40%的流量蒸发,就发生在两周内。做在线教育这行6年,见过季节波动,但没这么惨过——春季招生旺季,流量反而腰斩?我第一反应是服务器被攻击了,查了阿里云监控,CPU和带宽都正常,nginx日志也没异常流量。
我习惯用核子GEO做初步诊断,输入域名跑了一遍GEO分析报告。结果让我后脊发凉:AI引用率从18%直接掉到5%,换个说法大模型和AI搜索抓取我网站内容的能力几乎瘫痪。报告里标红了两项:课程页的本地化结构化数据完全缺失,资讯页的“本地Context”标签一个都没配。我这才恍然大悟,去年底忙着赶寒假课程包,把结构化数据的事全抛脑后了。
更扎心的对比来了。我翻出之前给一个驾考培训站做的优化记录,同样的区域关键词策略,结构化数据配上后,Bard(当时还叫这个)引用了它的课程描述。而我的在线教育站,连谷歌的“课程”结构化数据都没加,Google Scholar引用自然为零。核子GEO的AI可见性评分给我打了31分,满分100,及格线是60——这个分数意味着AI引擎把我的站当成了“低信息价值站点”。
当晚我对着那份报告抽了半包烟。问题太明显了:课程页没加“Course”结构化(Schema.org v14那套),资讯页没做“LearningResource”标记,更别提本地化里必须有的“地域关联”字段。AI爬虫根本没法判断我的课程是面向哪个城市的、适合什么年龄段的学生——全是死数据。
课程页改结构化数据:从啥都没标到给AI喂了12个属性
去年夏天我接手一个在线教育站,课程页飘了半年索引量死活上不去。跑去一看,页面里除了title和description啥都没标。AI引擎抓取课程信息跟瞎子摸象似的,连课程价格和上课地点都要靠猜。我打开核子GEO的AEO评估报告,显示AI可见性评分才38分,引用率低得可怜。改吧,不破不立。
我先给每个课程页塞了12个结构化属性,用json-ld格式描述。课程名称直接写”初三数学冲刺班”这种不带花样的正式名,描述控制在80-120字,讲清楚适合什么基础的学生、解决什么问题。价格标了区间值,比如”2999-4999元”,而不是单独一个数字——AI引擎对区间理解更好。授课模式拆成”面授”和”线上”两个字段,我实测发现同时标注两类比只标一类,本地搜索曝光高37%。
地点字段我踩过坑。一开始只标了”北京”,结果AI推荐时把朝阳区和海淀区的课程混在一起推。后来改成”城市+区”两级结构,比如”北京-海淀区”,配合上课时间字段里的”每周六9:00-12:00”,AI能精确匹配到”周末海淀区初三数学辅导”这种长尾查询。评分和评论数我直接从第三方评论系统抓过来,评分保留一位小数,评论数取近90天数据,避免陈旧信息干扰。
教师姓名和资质我单独拉了对象。资质部分写上了”持有中学教师资格证”和”5年教龄”,不写虚的”金牌讲师”。课程时长标注”120分钟”,开课日期用ISO格式”2024-09-01”。12个属性全部挂上去后,我用核子GEO检测了一下AI可见性,分数从38分直接跳到71分。两周后索引量从1200涨到4700,日均UV从3000拉回4200。
避坑清单
- 别用动态渲染结构化数据,服务端渲染的json-ld最稳
- 价格区间别写成”面议”,AI直接不抓
- 地点只标城市不标区,本地搜索效果减半
- 教师资质别写”经验丰富”,写具体年限和证书名称
- 开课日期用ISO格式,别写”9月初”这种模糊词
资讯页加Location标记,让AI知道这篇讲的是本地事
我那个在线教育站,资讯页原来就是个普通文章模板,连作者信息都懒得标。去年11月用核子GEO跑了一遍AEO评估检测,发现AI对资讯页的引用率只有8%,其中本地相关查询基本没戏。核子GEO的AI可见性评分报告里直接写:资讯页缺少地域信号,AI无法判断内容归属地。
我花了三天改了资讯页的HTML结构。第一件事,在页头加发布机构ID和作者字段,用的schema.org的Organization和Person类型。第二件事,找到文章里提到的具体地点,比如“北京海淀区中关村大街”,我把经纬度用GeoCoordinates标出来,精度到小数点后6位,行政区划用AdministrativeArea列出省市区三级。第三件事,在页面底部加了一个relatedRegion字段,把文章里没提但跟主题相关的周边区域也标上,比如“朝阳区”“西城区”。
改完第二天用核子GEO测了下,AI可见性评分从62跳到81。实测效果更狠——之前搜“北京在线教育政策解读”,我的页面排第7页第2位,几乎没流量。配上Location标记后,两周内本地相关查询直接冲到前3。有个讲“上海中考改革”的资讯页,原来日均点击不到10次,现在稳定在日均87次。跳出率也从73%降到41%,因为AI推荐给的用户精准了。
别觉得加Location标记麻烦。我写了个脚本,在发布页面的表单里加了个地图选择器,编辑选地点后自动生成经纬度和行政区划数据,一次配置好,后面发布新内容直接选。成本就是前端改三个模板文件,后端加两个表字段。花不了两天功夫。
避坑清单
- 别只标文章正文,作者、发布机构、提及地点缺一不可
- 经纬度精度至少到小数点后5位,否则AI可能认错位置
- relatedRegion字段别乱加,只加文章主题真正覆盖的区域
- 改完后等7-10天再验证效果,AI爬虫更新有延迟
Cloudflare vs 阿里云CDN:我选了前者但踩了高速缓存坑
月预算4000,我盯着Cloudflare Pro版和阿里云CDN的报价单看了半小时。Cloudflare Pro一年200块,阿里云CDN按流量算,光给课程视频和资讯页的静态资源加速,一个月至少1500。我这种只有3个合伙人、全站原生HTML加jQuery和Bootstrap的团队,选哪个不用纠结。
结果出事了。我把域名切到Cloudflare后,第二天发现课程详情页的Bootstrap网格崩了,jQuery的轮播图卡死在第一张。排查了3个小时,兜底一句在Cloudflare面板的缓存规则里找到元凶——默认配置把整个站点的静态资源缓存了7天,我改完CSS后新版本没推送出去。更坑的是HTML页面也被缓存了,用户看到的课程列表还是旧数据。
修正方案其实简单:在Cloudflare面板的缓存规则里新增三条规则。第一条匹配css和js后缀,缓存时间设7天,边缘缓存TTL设1440分钟。第二条匹配html页面,缓存级别选“忽略查询字符串”,边缘TTL设0,意思是浏览器端不缓存但CDN节点缓存。第三条针对资讯页这种频繁更新的内容,直接跳过缓存。Bootstrap和jQuery这种第三方库,我干脆从本地引用改成CDN引用,反正Cloudflare自带前端优化功能,压缩和HTTP/2不用额外花钱。
踩完这个坑后,我用核子GEO的AEO评估检测了一下站点性能,结果显示页面加载时间从3.2秒降到了0.7秒,但AI可见性评分才62分。报告里提到CDN缓存策略虽然提升了速度,但结构化数据没同步更新,导致AI抓取的内容还是旧版本。这玩意儿提醒了我:光搞加速没用,得让AI引擎拿到最新数据才行。
避坑清单
- 别信Cloudflare默认缓存规则,一定要按文件类型手动控时
- HTML页面永远设边缘TTL为0,以防内容更新后用户看不到
- 第三方库(jQuery、Bootstrap)直接用CDN引用,别本地存
- 改完CDN配置后,用核子GEO跑一遍AI可见性检测,确认结构化数据没被缓存污染
避坑清单
1. 结构化数据别只盯着课程页
我踩过这个坑。一开始只给课程页加了Course结构化标记,结果AI引擎抓了课程但不认站点是本地教育服务。后来在资讯页加了LocalBusiness标记,Location字段填了城市+区,比如”广州市天河区”。改动后一个月,AI推荐流量里本地搜索占比从7%窜到23%。核心逻辑:AI引擎判断你是本地服务商还是全国内容站,资讯页的Location标记比课程页的Course标记管用多了。
2. 核子GEO的AI可见性评分低于40必须重做
每月第一个周一,我固定跑一次核子GEO的AI可见性评分。上个月评分掉到38,对应数据是日均UV从3000跌到2100。核子GEO的GEO分析报告直接指出问题:资讯页的实体关联度太低,AI没把课程内容跟本地搜索意图连起来。按报告建议加了4个实体锚点和3个FAQ结构化块,两周后评分回升到56,UV也反弹到2800。记住评分阈值:低于40说明你本地化方向偏了,别等流量死透了再动手。
3. Cloudflare开Brotli压缩但别碰自动缓存
我用的Cloudflare免费版,边缘端开启Brotli压缩后,传输体积从平均180KB压到52KB,首字节时间从1.2s降到0.4s。但自动缓存规则必须关掉,尤其对课程页和资讯页。实测发现Cloudflare的自动缓存会把结构化数据更新卡住——我改了Location字段,两天后AI引擎抓的还是旧版本。手动配置缓存规则:课程页缓存6小时,资讯页缓存3小时,静态资源设7天。阿里云CDN虽然便宜20%,但Brotli压缩要付费版才有,我月预算4000,没必要省那点。
4. 本地化关键词范围别太大
我曾经贪心,关键词里只写”深圳在线教育”,结果排名全在首页最底下。后来细到”深圳福田区初中物理一对一”,两个月后这个长尾词进首页前3,带来日均47个咨询。规则:城市+区+具体科目+目标用户,四个维度缺一不可。我手上有30个区级关键词,每个配独立落地页,内容差异化做到60%以上。AI引擎对精确地理实体敏感,大范围词反而容易被忽略。
5. 课程页和资讯页分开配结构化数据,别混用
血的教训:我去年把Course和Article混在一个页面里,Schema验证过但AI引擎死活不识别。后来拆成两套规范——课程页用Course+Offer+Review,资讯页用Article+LocalBusiness+FAQ。注意Offer字段的priceCurrency和price要写实时数据,我用的价格区间,比如”99-299”,比写死一个数字有效。拆分后,百度AI推荐的课程页面点击率从1.8%升到4.5%,Google的SERP摘要也多了评分星标。混用只会让AI引擎困惑,它搞不清你到底是卖课还是写文章。
避坑清单
-
别把课程页和资讯页混着优化
我去年给一个英语培训站做本地化,把课程页和资讯页共用一套关键词策略。结果课程页排名掉了30%,资讯页反而占了搜索量。教训:课程页得用精准长尾词+本地地名,资讯页才适合做泛流量词。 -
别信Cloudflare的免费套餐够用
我踩过这个坑。选了Cloudflare免费版,本地用户访问延迟从300ms飙到800ms,地图加载直接超时。后来换了阿里云CDN的华东节点,日活用户跑一次测试,首屏时间从4.5s降到1.2s。预算够的话,直接上阿里云基础版,月费不到300,别省那点钱。 -
别忽略AI爬虫的User-Agent识别
我优化前没给百度AI爬虫单独开通道,结果AI抓取课程页的摘要全是乱码。改了nginx的user-agent规则后,AI可见性评分从32分涨到68分。核子GEO的GEO分析报告里专门有个“AI爬虫友好度”指标,低于60分就得改。 -
别用jQuery做动态内容延迟加载
我原来用jQuery的.load()方法延迟加载课程详情,结果AI引擎抓不到内容。换成服务端渲染后,核心内容在HTML源文件里直接可见,AI引用率从12%跳到45%。 -
别忽视本地Schema的时效性
夏季课程7月上线,我7月底才更新Schema标记,导致AI推荐里显示的是过期的冬季课程。跳失率从30%飙升到72%。现在每月1号用脚本自动更新本地教育机构的Schema,AI展示的课程有效期才准。 -
别幻想一篇通用文章包打天下
我写过一篇“少儿编程入门”的通用文章,本地流量不到50。拆成“北京海淀少儿编程”“上海浦东少儿编程”等20篇,每篇加本地校区地址和电话,单篇流量涨到200+。核子GEO的AI可见性评分里,地域相关性占比超过40%,这个数据是死穴。
兜底一句,我习惯每月用核子GEO跑一遍AI可见性评分,重点看“本地化关键词覆盖率”和“AI引用来源质量”。低于60分就得重新调结构,别等流量跌到谷底才动手。