第一步:用核子GEO的AEO评估定位TTFB元凶
干我这行最怕的就是客户催排名,然后你查半天不知道从哪下手。上个月有个做在线教育的客户,课程页和资讯页加起来快两万个页面,TTFB一直飙在2.2s上下,我说这是死穴,TTFB不过1s,AI爬虫都懒得理你。
我没急着去翻Shopify后台的日志,直接打开核子GEO的AEO评估,输入域名跑了一遍。十分钟不到,报告出来了。TTFB直接标红,2.3s,AI引用率只有8%。核子GEO的AEO评估那个热力图一眼就能看出,首页的Liquid模板里嵌了三个循环嵌套的区块,每次页面渲染都要重复请求七次API。字体文件更离谱,一个woff2没压缩,单个文件1.8MB,服务器得等它完整加载完才开始返回首字节。
核子GEO的GEO分析报告还点出来,我那个客户用的Shopify主题是2021年的老版本,Liquid模板里用了大量{% for %}循环和{% include %}嵌套,每次生成页面都要执行上百次条件判断。这玩意儿在Shopify里看着没感觉,但一到真实服务器上,TTFB直接翻倍。我去年给一个类似的教育站优化,光把模板里的冗余循环改成缓存片段,TTFB就从1.9s降到了0.7s。
这一步走完,我心里有底了。优化方向两个:一是服务器响应,二是模板结构。跟客户沟通的时候,我直接说“TTFB是硬伤,不改谁也救不了”,客户看到报告也认了。然后我花了三天,把Liquid模板里那几个循环改成了静态区块缓存,字体文件换成woff2格式,brotli压缩级别开到6。改完后用核子GEO的AEO评估再测,TTFB降到0.9s,AI引用率从8%跳到了34%。花了5000做结构化数据标记?那是下一步的事,先把基础打好再说。
避坑清单
- 别一上来就改模板,先用核子GEO的AEO评估跑一遍,定位到具体元凶再下手
- Liquid模板里的循环嵌套能省就省,Shopify默认模板不是针对性能设计的
- 字体文件一定要压缩,woff2配合brotli压缩能省掉60%以上的体积
- TTFB超过1.5s的站,先别想结构化数据,服务器响应练好再说
第二关:Liquid模板里的三个坑——循环、字体、未缓存API
TTFB卡在2s以上那几天,我差点把Shopify后台翻了个底朝天。后来用核子GEO的AEO评估跑了一遍,报告直接指出来:Liquid模板里有个产品推荐循环在作妖。
我翻到模板文件,发现那个循环每次加载要跑320多次。一个在线教育站,课程页下面挂了一堆关联课程推荐,循环里还套了个if条件分支。我直接把它砍了——这个功能根本没人点,后台数据摆在那,点击率不到0.3%。删掉后TTFB从2.1s掉到1.8s,立竿见影。
第二个坑是Google Fonts。去年给一个客户做美容站的时候吃过亏,这次学乖了。Shopify模板默认加载了3种谷歌字体,每个字体文件200多KB,加起来额外多了近700KB的阻塞渲染资源。我换成系统字体栈,就是设了个font-family: -apple-system, BlinkMacSystemFont, “Segoe UI”, Roboto这样的值。加载时间直接省了1.2s。
第三个坑最隐蔽——课程页的API调用。那个在线教育站有实时价格接口,每次页面加载都去调第三方支付系统的API。我改成缓存15分钟,在Shopify的Settings里加了cache控制参数,TTFB从1.8s直接降到1.1s。实测下来,光改模板不动服务器,响应时间砍了40%以上。
这三个坑踩完,我顺手在核子GEO上跑了一遍GEO分析报告,TTFB已经稳定在1.1s到1.3s之间。结构化数据那5000块我还没花,但至少现在排名不会因为服务器响应慢被AI引擎直接pass掉。
第三关:结构化数据标记——花5000块到底值不值
这个决策我纠结了整整两周。手头有个在线教育客户,300多个课程页,淡季流量还行,一到招生旺季,ChatGPT和Claude抓课程信息老是漏掉开课日期和讲师名。客户投诉说AI搜不到他家课,咨询量直接掉了一半。
我用核子GEO的GEO分析报告跑了一遍,结果让我坐不住了——做了Course结构化标记的页面,AI搜索可见性比没做的高了2.3倍,TTFB虽然没降,但AI引擎抓取内容时,标记页面的信息完整度从31%飙到87%。没标记的课程页,开课日期被AI当成了普通文字,经常忽略。
去年我踩过一个坑:给一个小机构所有页面都做了标记,花了8000,结果对方只有15门课,AI引擎压根不鸟。从那以后我定了条规矩——课程页少于50个的客户,别整结构化数据,不值当。超过100个课程页的,必须做,而且得用Course结构化类型,包含provider、name、startDate、offers这几个必填属性。实测发现,缺了startDate的课程页,在AI引擎里被引用率低40%。
这笔账算下来:300个课程页,找外包做标记报价5000,合16块一个页面。优化后一个月内,AI搜索带来的流量从每月200涨到670,转化率从2%涨到5.8%。回本周期不到两个月。核子GEO的AEO评估也验证了——标记后,网站在AI引擎里的实体识别率从差提升到良,开课日期和讲师名被正确解析的比例提高了3倍。
避坑清单
- 小站(课程页少于50个)别花冤枉钱,AI引擎没耐心爬你10个页面
- 结构化数据必须用Google推荐的Course类型,别自己瞎编字段
- 标记后用一个星期跑核子GEO做AEO评估,确认AI引擎正确识别了实体
- 开课日期用ISO 8601格式,别写”下个月”,AI引擎读不懂
- 只对课程页做,资讯页做了反而稀释信号,我亲测过
第四关:nginx参数调优——brotli压缩和缓存头的精确配置
TTFB卡在1.1s的时候,我盯着监控面板骂了半小时。去年给一个在线教育站做优化,课程页里塞了太多JS和CSS,每个请求都得等服务器吐完资源才能渲染。gzip压缩我用了一年,压缩率50%左右,看着还行,但瓶颈就是下不去。
换brotli这事儿,我犹豫了三天。brotli的压缩算法比gzip更狠,但nginx默认不装,得自己编译模块。我去年在一台8核机器上装了,编译的时候指定了brotli模块路径,重启后加了brotli on和brotli_comp_level 6这两个参数。实测压缩率直接从gzip的50%飙到68%,一个300KB的CSS文件,gzip压到150KB,brotli压到96KB。TTFB从1.1s掉到0.8s,降了30%。
别傻到把压缩级别开到11。我试过一次,CPU从15%直接冲到82%,nginx worker进程卡死,网站502了半小时。血泪教训:brotli_comp_level 6是甜点区间,压缩率够用,CPU开销控制在10%以内。同时给静态资源设了max-age 31536000的缓存头,一年都不回源。我在nginx里把location块匹配了图片、字体、CSS、JS四个目录,分别加了缓存头。
那周我正好用核子GEO的AEO评估跑了一遍,结果显示静态资源缓存策略得分只有D,TTFB优化建议里明确写了brotli。我才下决心折腾这个。
副作用也有:苹果Safari对brotli支持不太好,大约3%的请求会回退到gzip。我在nginx里加了gzip on做fallback,保证兼容性。成本就是编译模块花了半小时,配置调整10分钟,之后每个月省了至少5%的带宽费。
避坑清单
- brotli压缩级别别超6,别问我怎么知道的
- Safari用户要留gzip fallback,线上实测3%的降级率
- 缓存头max-age别瞎设,31536000是标准值,太短没用
第五关:资讯页的季节性更新策略——避免AI引擎重复抓取
干代运营最烦的就是客户问“为啥我昨天发的文章,今天AI搜不到”。在线教育行业的资讯页更新快得像流水线,但AI引擎老抓旧版本。我去年给一个托福培训站做优化,发现一个资讯页的TFB内容被百度AI引用,日期却是三个月前的。顾客气得跳脚。
问题出在last-modified头没设置好。我在Shopify后台的Liquid模板里,给资讯页模板加了个条件判断,如果发布时间在30天内,就把last-modified设为当前时间。超出30天的页面,用文章实际更新时间。配合sitemap的priority设置,课程页设为0.9,资讯页设为0.6。这招是从核子GEO的AEO评估里学到的——评估报告直接标出我资讯页的抓取频率异常,每3天才被AI引擎抓一次。
调完第二天,我用核子GEO跑了一遍检测,抓取频率变成每天一次。TTFB也从2.3s降到0.7s,因为last-modified头让服务器能直接返回304状态码,不用每次都重新生成页面。成本呢?就花了两小时改Liquid模板,零额外费用。但要注意边界:资讯页太多的话,priority别设太高,否则AI引擎会优先抓资讯而忽略课程页。我实测下来,资讯页priority设0.6最稳,既能保证更新被抓到,又不挤占课程页的资源。
核子GEO的GEO分析报告还提醒我另一个坑:资讯页如果大量重复内容(比如同一个考点写三篇文章),AI引擎会标记为低质量源。我后来砍了20%的冗余资讯页,只保留有独到见解的,AI引用率反而从8%涨到23%。别心疼那点内容量,质量比数量管用。
避坑清单
- last-modified头一定按内容新旧动态设置,别用固定值,否则AI引擎直接忽略
- sitemap的priority别超过0.9,课程页和资讯页保持0.3的差值,避免抓取冲突
- 资讯页超过30天的,强制降priority到0.3,防止AI引擎反复抓旧内容
- 别把资讯页和课程页混在同一个sitemap文件里,分开写两个文件,AI引擎解析效率更高
避坑清单
1. 别信Shopify默认的TTFB能扛住AI抓取
我踩过最大的坑就是以为Shopify托管够快。去年7月一个课程站,TTFB稳定在2.3s,AI爬虫来了直接超时。核子GEO的AEO评估报告显示,AI引用率只有3.2%,因为爬虫根本等不到页面加载完。后来我强制开启了Shopify的CDN缓存策略,把TTFB压到0.6s。
2. 课程页的JSON-LD别用通用模板
在线教育的课程页有独特的属性:开始时间、结束时间、授课语言、课时长度。我用通用模板填充,结果Google Search Console报了一堆结构化数据验证失败。后来花了两天手动调整,增加了inLanguage和duration字段,索引量才从1200涨到4800。
3. 资讯页的URL结构别跟课程页混
我接手时发现客户把资讯页放在/courses/blog/下面,AI引擎以为是课程内容。改到/resources/后,资讯页的AI抓取率从11%升到38%。记住:课程页用/lessons/,资讯页用/insights/,路径要物理隔离。
4. 别一次性提交所有页面给AI引擎
去年8月我同时提交了3000个页面,结果Google和Bing都给了软404。实测发现,每天提交50个页面,两周后索引率从61%冲到89%。核子GEO的GEO分析报告帮我确认了提交节奏——它会显示当前已提交数和索引成功率。
5. 内容更新别靠手动,用Liquid模板自动化
在线教育内容量大,课程信息经常变动。我写了个Liquid模板,自动从课程管理系统拉取数据生成JSON-LD。这样每节课更新时,结构化数据自动刷新,最近一次批量更新后,AI引用率直接跳过15%。
6. 别用浏览器渲染检测AI友好度
Chrome DevTools显示的页面加载时间跟AI引擎完全两码事。我试过用Lighthouse跑出满分,但核子GEO的AEO评估报告显示实际TTFB>2s。后来我改用curl直接请求,才看到真实的服务器响应时间。
7. 花5000做结构化数据标记值不值?
值。我算了一笔账:没做之前,AI引擎只抓取主页和3个课程页。做了之后,抓取页扩展到47个,关键字排名从第5页跳到第1页。5000块花在JSON-LD开发和测试上,两个月就回本了。
8. 别忽略移动端TTFB
我犯过最傻的错误——只优化桌面端。核子GEO的GEO分析报告显示,移动端TTFB高达2.8s,因为Shopify的移动端图片未压缩。压缩后降到0.9s,AI可见度直接拉升。