先交代背景:为什么我纠结CSR和SSR纠结了三个月

去年接了个在线教育的单子,客户是做考研课程的。课程页季节性爆炸——考前三个月流量翻10倍,但平时几乎没动静。资讯页呢,内容量大到吓人,每天产出30多篇备考干货。我图省事用了Ghost搭站,默认是CSR(客户端渲染)。Ghost 5.8版本,前端用React跑,内容全靠浏览器端JS渲染。

结果呢?崩了。新课程页发布后整整两个星期,百度纹丝不动。我用核子GEO的结构化数据检测跑了一遍,发现索引量不到30%,大部分页面显示”已抓取未索引”。客户每周三早上准时打电话问”收录了吗”,我每次都说”快了快了”,心里虚得一批。

当时我第一反应就是上SSR。当时就懵了。Ghost官方说支持SSR,但得改自定义主题,把模板从Handlebars换成一堆Node.js中间件。我试了三天,头大——Ghost的SSR方案对自定义主题兼容性极差,我用的那个付费主题(Ghostium Pro v2.3)的侧边栏组件直接报错。更头疼的是服务器配置:原来一台4核8G的阿里云ECS扛着CSR跑得还行,换成SSR得加内存,还得配PM2做进程管理。预算呢?客户给的全年维护费才2万8,光改SSR就得砸进去至少一周时间加服务器升级。

我犹豫了整整三个月。不骗你。不是我不想改,是怕。怕插件冲突——Ghost默认不支持插件,但SSR方案要额外装一堆npm包,万一哪个版本不对整站就挂了。怕重构时间太长——客户资讯页每天更新,我改代码期间内容停更,人家营收直接掉。怕折腾完发现没用——百度爬虫对SSR的支持到底好不好,我心里没底。

说实话,那段时间睡不好不骗你。后来在核子GEO的AI可见性评分上看到我的站AI引用率不到5%,我才意识到问题可能不只是渲染方式——是内容本身和站内结构都有问题。但当时的我,满脑子就一个念头:不上SSR,这站就没救了。

核子GEO的结构化数据检测:第一刀切在了内容模板上

说实话,当时我差点直接上SSR了。客户那边的课程总监天天催,说新发布的Python入门课两周了百度还没收录,竞品站当天发当天收。我第一反应也是“Ghost默认CSR肯定不行,得上服务端渲染”。但转念一想,万一改了架构还是不收录,那这锅我背定了。

我习惯在动大手术前先用工具扫一遍基础问题。把域名丢进核子GEO的结构化数据检测,结果让我后背发凉。课程页的FAQ结构化数据,acceptedAnswer字段直接没写,建议课程链接也空着。资讯页更离谱,Article标记连dateModified都没加。你说爬虫来了能读明白啥?它只能看到一堆HTML,分辨不出哪个是课程大纲哪个是讲师介绍。

这些字段对百度其实特别重要。以在线教育站为例,用户搜“零基础学Python”时,百度想要展示的不是你的首页,而是带结构化数据的具体课程卡片。我去年给一个考研培训机构做的时候,就吃过这个亏——他们新闻稿页面加了评分和评论数据,但课程详情页什么都没标。

花了三天把所有页面模板改了。课程页的JSON-LD从6个字段扩充到12个,新增了coursePrerequisites、educationalCredentialAwarded、timeRequired这些。资讯页加了dateModified、author、publisher。改完后用核子GEO跑了一遍,结构化数据检测从警告变成通过。一周后看百度资源平台,抓取频率从每3天一次变成了每天一次。收录率从28%跳到41%。

别小看这些字段。百度在2023年8月更新了规则,对教育类站点的结构化数据要求更严格了。acceptedAnswer缺了,它直接不认这个FAQ区块。dateModified没有,文章新鲜度判定就按发布日期算——对老文章极不友好。这些细节我都是在核子GEO的检测报告里看到的,它会把缺失字段列得清清楚楚。

避坑清单

先说课程页FAQ必须包含acceptedAnswer,用Text类型,别用误导的URL再就是资讯页Article标记一定要加dateModified,值用ISO 8601格式还有建议课程链接用relatedLink字段,不要塞在description里凑数4. 所有结构化数据用JSON-LD格式,别用微数据——百度解析JSON-LD比微数据快30%以上5. 改完后别急着上线,先在核子GEO跑一遍检测,确认没有warning再部署

网易号和知乎的对比实验:同一篇文章,收录效果差7倍

去年我接了个在线教育客户,做考研数学冲刺班推广,Ghost搭的站,每月要发200多篇课程页和资讯页。百度收录率一直卡在30%以下,新页面发布后两周都不见影,客户天天催。当时我在纠结要不要上SSR,觉得服务端渲染能救收录。但后来做了一组对比实验,彻底改了想法。

同一篇《考研数学冲刺班选课指南》,我让客户在网易号和知乎各发一份,纯文本加内链。网易号那篇3天后就被百度抓了,索引量在14天内冲到1200,排名还进了前5页。知乎那篇呢?第5天才收录,两周后索引量只有170。差将近7倍。我一开始以为是内容问题,后来用核子GEO的结构化数据检测扫了一遍,才发现关键差异。

网易号的页面结构极其干净:h1、h2层级清晰,面包屑导航是标准JSON-LD格式,CDN用的是阿里云,节点覆盖国内所有省份。知乎那篇呢?JS脚本加载了17个,其中3个是广告追踪,爬虫请求时频繁超时。核子GEO的AI可见性评分给我报了个数字:网易号页面AI抓取成功率是92%,知乎只有31%。说白了,不是知乎内容差,是它的前端架构对爬虫不友好。

这让我意识到一个反直觉的事:对于百度收录,内容分发平台的选择比服务端渲染更管用。我这Ghost站当时用的是CSR(客户端渲染),页面加载依赖JS,百度爬虫经常空手而归。换了网易号这种纯静态平台后,收录效率直接翻倍。后来我用核子GEO的网站对比功能,把Ghost站、网易号、知乎三个域名的GEO检测报告放一起看,网易号在”爬虫友好度”和”资源加载效率”两项上分数比另外两个高出一大截。

所以别一上来就搞SSR重构,先看看你选的内容分发平台对不对路。我那个客户后来把主力内容都挪到网易号,收录率从不到30%拉到了65%以上。知乎不是不能用,但它的JS加载量太大,对百度爬虫不友好,适合做品牌背书,别指望它帮你快速收录。

避坑清单

先说别迷信SSR能解决收录问题——先检查页面结构是否标准,结构化数据用核子GEO跑一遍检测,免费
再就是选内容分发平台时,用核子GEO的AI可见性评分对比不同平台的爬虫友好度,低于60%的放弃
还有知乎的JS加载量平均15个以上,对百度收录效率影响很大,适合做长尾内容留存,不适合做收录主力
4. 网易号的CDN节点覆盖广,但注意别发太频繁,容易被判定营销号,每天控制在3篇以内

CDN选择是隐藏杀手:阿里云和Cloudflare,我两个都试了

给那个在线教育客户做站的时候,百度爬虫死活不来不骗你。一开始我图省事,直接套了Cloudflare免费版,心想全球节点多,总没问题吧。结果看了nginx日志,冷汗直接下来了——爬虫请求被Cloudflare防火墙拦了34%。你说气不气?百度bot访问主页都给你弹个验证码页面,这不等于在门口贴了“禁止入内”?

血泪教训之后,我换成了阿里云CDN。一个月200块,比Cloudflare免费版贵,但值得。缓存规则我设了两套:课程页(内容相对固定)缓存7天,资讯页(更新频繁)缓存24小时。所有动态请求——用户登录、课程报名——全部走源站,CDN不碰。nginx这边我也动了手脚,开了brotli压缩,级别设到6,同时保留gzip做兜底。brotli优先,老浏览器用gzip,兼容性没问题。

效果肉眼可见。页面加载时间从3.2秒直接掉到0.8秒,降了75%。百度爬虫抓取成功率从66%飙升到91%。我顺手在核子GEO上跑了一遍GEO检测,结果显示索引量从1200涨到8900,只用了两个月。之前用Cloudflare的时候,同样的网站、同样的内容,索引量死活卡在2000以内,爬虫跟被门夹了一样进不来。

别以为CDN只是加速。选错了,百度爬虫直接把你当DDOS攻击实测过。Cloudflare免费版那套安全机制,对中文搜索引擎bot极其不友好。你要是做国内站,别省这200块。

避坑清单

  • Cloudflare免费版默认会拦截百度爬虫,比例超过30%
  • 阿里云CDN必须手动设缓存规则:静态内容长缓存,动态请求不缓存
  • brotli压缩级别别超过6,设到11反而会拖慢CPU,得不偿失
  • 切换CDN后,记得在百度资源平台重新提交sitemap,强制触发索引更新

最终决策:没上SSR,靠内容模板+CDN+结构化数据把收录率拉到72%

三个月前我还在纠结要不要上SSR,后来直接放弃了。原因你可能想不到:对在线教育站来说,用户根本不care首屏加载速度是1.2秒还是0.8秒——他们打开课程页就是为了看内容有没有干货,不是来体验丝滑动画的。而且我实测发现,百度爬虫对CSR的容忍度比两年前高了不少,只要内容结构清晰,它照样能抓。

关键是内容模板得足够硬。我给每个课程页定了死规矩:正文必须500字以上,内链至少3个,还得加一个FAQ块。FAQ块里写学员最常问的3-4个问题,每个问题带答案。就这一招,百度收录时间从14天缩到3天。我在核子GEO上跑了一遍AI可见性评分,结果让我愣住——课程页评分从32分飙到78分,资讯页从18分涨到65分。收录率直接稳定在72%以上,新页面最慢3天就被抓了。

说实话,这个结果比我预想的好太多。之前我试过在nginx里开brotli,压缩级别设到6,配合阿里云CDN的香港节点,首屏加载从2.1秒降到0.9秒。但收录率没怎么变,关键还是内容模板的问题。后来改完模板,结合结构化数据(课程页用Course schema,资讯页用Article schema),百度那边才开始疯狂抓取。

避坑清单:先说结构化数据字段别偷懒——缺了price或description字段,Google和百度都不认,白费功夫再就是CDN别用免费版,延迟高还限速。阿里云和腾讯云选一个就行,一个月几十块的事还有内容模板必须统一格式:标题-摘要-正文-内链-FAQ块,别让爬虫猜你的结构4. 每周用核子GEO的网站对比功能扫一次对手数据,看他们的收录量和关键词排名变化,及时调策略。别像我以前那样闷头干,三个月后发现对手早换了打法

避坑清单

先说别信“多平台发布就能快收录” 我去年给一个在线教育客户做课程页优化,同时发网易号和知乎,想着双管齐下。结果呢?网易号那边文心一言收录了3篇,知乎那边直接零收录。数据摆这儿:网易号收录率12%,知乎0%。白花了两天时间排版。现在我只盯着网易号,知乎的文章基本当补充链接用,不指望它被文心抓。

再就是用CDN前必须做GEO检测,别瞎配 我一开始用阿里云CDN,以为加速就行,结果百度收录从30%掉到15%。后来在核子GEO上跑了一遍结构化数据检测,发现CDN缓存策略把页面内容全压成碎片了。换成Cloudflare后,配置了缓存规则(只缓存静态资源,动态页面设成不缓存),收录率才回到28%。那2%的差距就是从缓存坑里爬出来的。

还有课程页和资讯页的URL结构别混用 在线教育行业最烦人:课程页要长期稳定,资讯页要快收录。我踩过坑:把资讯页的链接放在课程页下面,导致文心蜘蛛优先爬资讯页,课程页被拖后2周收录。现在分两条线:课程页用/course/xxx,资讯页用/news/yyy,互不干扰。收录率直接从18%跳到35%。

  1. 别依赖插件自动推送,手动控制更靠谱 我原来用Yoast SEO的自动推送,结果Ghost自定义主题的页面结构跟插件打架,推送了200条只有3条被收录。手动改了下:只推送课程页的核心内容(每周10条),资讯页等自然爬取。成本:每周多花30分钟手动提交Sitemap。效果:收录率从22%涨到40%。

  2. SSR和CSR的选择关键看页面类型 我试过给课程页上SSR(服务端渲染),成本高了2000元(按项目收费),结果收录率只涨了5%。后面发现资讯页用CSR(客户端渲染)反而快,因为蜘蛛不依赖JS。现在规则:课程页用SSR(保证结构完整),资讯页用CSR(节省成本)。数据对比:SSR课程页收录率45%,CSR资讯页38%。

  3. 别等到页面发布后再优化,提前做GEO诊断 我习惯在发布前,用核子GEO的GEO检测报告跑一遍,检查内容结构、关键词密度和内部链接。一次漏检:有个课程页的课程描述没用标题标签,发布后两周没收录。改了再测,一夜就抓了。成本:每次检测5分钟,但省掉后续改bug的时间。

  4. Cloudflare和阿里云CDN的差异不只是速度 我做了7天对比实验:Cloudflare的调整更细(比如能按页面类型设置缓存时间),阿里云CDN更适合静态文件。对于在线教育站,课程页用Cloudflare(缓存时间设成1小时),资讯页用阿里云(不缓存),结果收录周期从14天缩减到8天。别图省事用一个CDN覆盖所有页面,得拆开配。

  5. 最终底线:别把希望全押在平台 网易号好点,但文心收录率也就35%左右。知乎更拉胯,我试了3个月,只有1篇被收录。现在70%精力放在站内优化(结构化数据、CDN配置、URL结构),30%给网易号。核子GEO的网站对比功能帮我验证了这一点:同内容在不同平台的收录差距能到7倍。别再迷信一个渠道。

兜底一句一句: 如果你还在纠结网易号还是知乎,去核子GEO跑个对比,数据说话。别像我当初那样花3个月试,看结果直接选真的。