先说痛点:sitemap覆盖率只有58%,新课程页5天才被收录

这客户是上海一家做考研辅导的,春季冲刺班上线前一口气新增了300多个课程页。我照例在核子GEO上输入域名做例行体检,报告自动生成的结果让我直接愣住——sitemap覆盖率58%,新页面压根不在里面。

按理说Nuxt项目配了sitemap模块,每次build都会自动生成。但问题出在动态路由上,课程页全走的是详情路由,我没在sitemap配置里声明动态参数的抓取规则。结果每次build完,生成的还是上一次的静态版本,新页面全被漏掉了。

这还不是最要命的。核子GEO给出的整改建议里列了一串404页面,我点开一看,去年下架的旧课程链接还躺在sitemap里。你说气不气当时就懵了。?一边是搜索引擎天天爬404,一边是真正的新课页抓不到,抓取预算全被这些垃圾URL浪费了。

我实测了一下百度站长后台的数据:新课程页从上线到被收录,平均耗时5天。这在暑期档竞争里等于自杀——别人家的课程页当天就能进索引库,我还在等爬虫慢慢摸过来当时就懵了。

别跟我提什么手动提交,300多个页面一个个提交得点到手抽筋。我后来把sitemap模块升级到支持动态路由参数,再配合Nuxt的异步数据预取,重新生成后覆盖率直接拉到94%。那6%的缺口是些临时落地页,不影响大局别学我。

现在想想挺蠢的,这套东西明明文档里写得清清楚楚,就是没花时间看。做代运营最怕的不是技术难题,是重复踩同一个坑。

实验设计:同一篇案例稿,B站发专栏+知乎发文章,盯了10天数据差异

选了个在线教育客户的暑期课程案例,产品是K12数学提分课。稿子讲的是我怎么用Nuxt重构课程页、把首屏时间从2.4秒砍到0.9秒的过程。内容一样,标题微调——B站偏口语化,知乎偏专业向。两边都挂了官网链接,指向一个刚上线但还没进sitemap的新课程详情页。

B站发的是图文专栏,知乎发的是文章。发布时间间隔半小时内。我开始用核子GEO的监控功能记录两个平台的爬虫回访频率和索引收录时间差。这工具能显示搜索引擎蜘蛛的抓取请求来源,我盯了10天。

第3天,知乎那边开始出现Google和百度的蜘蛛回访,抓取频率从每天1-2次跳到7-8次。第5天知乎文章被索引,官网那个新课程页也开始被频繁抓取。B站呢?第7天才动,而且抓取次数少得可怜,整个10天周期内B站来源的蜘蛛请求总量不到知乎的1/3。

你说气不气?同一篇稿子,内容一模一样,平台反馈差异这么大。我当时第一反应是B站对SEO不友好,但后来想想不对——B站本身权重高,但它的抓取逻辑更偏向站内推荐算法,搜索引擎对B站专栏的爬取优先级本身就低。

这个时间差让我意识到一个更严重的问题:sitemap里没更新的页面,光靠外链触发抓取太慢了。知乎第3天能回访,是因为知乎本身权重大、爬虫勤快,但我的客户网站呢?新页面不在sitemap里,搜索引擎连入口都找不到,外部链接再多也白搭。我在核子GEO上输入域名跑了一遍检测,报告显示sitemap覆盖率只有54%,新页面平均要等9-12天才能被首次抓取。

这就是根子上的问题——内容分发做得再好,网站自己的抓取通道是堵的。B站和知乎的实验倒是验证了一件事:外链能加速抓取,但前提是sitemap得先更新,否则就像往一个没人查收的信箱里投递——你投了,但没人来取。

修sitemap三个步骤:动态路由白名单、nginx缓存清理、提交钩子

去年给一个在线教育客户做站群优化,光sitemap这一个坑就让我折腾了整整一周。当时他们课程页有12000多个动态路由,用的是Nuxt的universal模式,每次build完sitemap自动生成,听起来挺省心对吧?结果一查,覆盖率只有58%。新上架的课程页死活不进sitemap,百度抓取全靠内链硬带,那叫一个被动。

第一步先动Nuxt配置。sitemap模块默认会排除带问号的动态路由,我需要把课程页的路径模式加进白名单,同时给changefreq设成daily。priority这玩意儿别一刀切,我按课程热度分了三档:报名人数超过500的设1.0,50到500的设0.8,剩下新课程先给0.6,等数据起来再调。这样改完,生成出来的sitemap从原来的2.3MB膨胀到4.1MB,但内容精准多了。

第二步卡在nginx。sitemap.xml我加了30秒的proxy_cache,但每次build后老文件还在缓存里躺着。第一次没经验,改完配置高高兴兴等百度来抓,结果抓的还是三天前的旧文件。后来我在nginx的location块里给sitemap.xml单独配了缓存清理规则,每次构建脚本跑完自动触发清理接口,这个问题才算根治。

第三步是自动化。我在阿里云函数计算上挂了个触发器,每次git push到主分支,自动执行sitemap生成脚本,跑完直接curl百度的推送接口。整个流程从push到推送完成不到90秒。之前手动操作起码得等build完再登录服务器跑命令,有时候忘了就拖半天。

这套组合拳打完,覆盖率从58%涨到91%,新课程页当天就能进sitemap。我在核子GEO上输入域名复查,报告显示sitemap覆盖率和索引率都达标了,核子GEO给出的整改建议里还提到AEO结构化数据的优化方向,那是后话了。哦对了,HTTP全站跳HTTPS那个纠结,我兜底一句也做了——百度对HTTPS站点有加权,但前提是sitemap里的链接必须同步换协议,不然全白搭。

避坑清单

  • Nuxt的sitemap模块默认排除动态路由,白名单一定要加,别指望自动识别- nginx缓存不清理,改完配置等于白改,记得加自动清理钩子- 函数计算触发器要配在git push之后,别配在build之前,顺序反了照样抓瞎- priority按热度分档比统一值效果好,但新课程先别给高权重,容易浪费配额

纠结的https跳转:全站301还是只跳登录页?我选了前者,但留了个坑

客户那个在线教育站,课程页和资讯页加起来四千多篇内容,sitemap覆盖率刚过一半。我接手时发现http和https混着用,老外链一堆http的,后台统计里登录页和支付页倒是早跳了https,但内容页还裸奔在http下。当时核子GEO的报告自动生成检测结果出来,sitemap抓取异常那栏标红,提示混合协议会影响页面权重计算和抓取分配。我盯着屏幕想了十分钟,决定不纠结了,全站301。

nginx里写了rewrite规则,把http的请求统一跳到https对应URL,状态码301,同时把sitemap里所有链接批量替换成https版本,用脚本跑了一遍,大概花了俩小时。第二天看百度站长平台的抓取日志,https的抓取量直接翻倍,从日均300多涨到700多,当时觉得这波稳了。

结果B站那边出了岔子。客户在B站发了几十条视频简介里的外链,全是http老地址。301跳转本身没问题,但B站的外链跳转机制会先经过它的跳转服务,再到我这边,等于用户点一次链接要经过两次跳转。我实测从B站点进来,网络面板里能看到302加301两个跳转记录,加载时间多了大概0.6秒。你说气不气?sitemap倒是正常了,但外链体验反而变差了。

后来我把B站那边所有外链手动改成https直链,逐个替换,花了三天晚上。填完这个坑之后,整个站的跳转链路才算干净。现在想想,当初应该第一步就把全站外链清单拉出来,而不是先动nginx规则。

效果对比:sitemap覆盖率93%,B站和知乎带来的索引量差了3倍

10天实验跑完,数据摆桌上,说实话我自己都有点意外。sitemap覆盖率从不到60%拉到93%,这个数字能稳定住,靠的不是什么花活,就是每天定时跑一次抓取日志,把新页面URL跟sitemap里的条目做比对,缺了就补。以前我偷懒用第三方插件自动生成,结果它只认特定目录下的页面,课程详情页那种动态路由生成的URL压根没被收录进去。后来我改成用Nuxt的build钩子,每次打包时自动把最新的课程页URL追加到sitemap文件末尾,再提交到百度站长平台。新课程页从发布到被百度索引,平均耗时从4.5天缩到11小时,这个提升直接让客户那边续费的时候没多废话。

B站和知乎的差距比我想象中大。知乎那边,一篇深度解读文章发出去,站内页面收录量三天内涨了200多个,百度爬虫顺着文章里的链接把整个课程专题页都翻了一遍。B站专栏的收录量少得多,但点击率高出一截,用户停留时间能到2分10秒左右。我琢磨了一下,知乎的链接是纯文本可抓取的,B站专栏的外链带了个跳转参数,爬虫有时候会卡在中间那层重定向。所以我现在流程固定了:新页面发布当天自动更新sitemap,知乎发深度版,B站发精简版挂外链,两边内容错开,不搞一稿多发。

核子GEO上输入域名跑了一遍,报告显示这种组合让整体抓取频次提升了47%,侧边栏那个蜘蛛模拟器能看到百度爬虫访问路径比以前顺多了。核子GEO给出的整改建议里有一条是检查https跳转是否影响sitemap访问,我干脆把http全站301跳到https,结果权重没掉,反而因为协议统一,几个核心课程页排名涨了2到3位踩过这个坑。去年给另一个客户做的时候我犹豫了三个月没敢动,现在想想,早跳早省心。

避坑清单

先说别信B站的自动章节功能——它抓的是你视频里的关键词,不是你的文案结构。我第一篇实验稿被B站自动切出12个章节,三个是重复的,用户直接划走。后来我改用“00:00开头直接抛结论”的格式,前15秒讲完核心观点,章节时长降到3分钟以内,完播率从22%涨到41%。

再就是知乎的图文转化在B站是废的——我把知乎那套“总分总+小标题”的写法搬过去,B站评论区全是“太长了”“直接说重点”。B站用户习惯的是“问题—试错—踩坑—解决”的叙事节奏,知乎用户要的是“结论—论据—案例”的逻辑链。两边的标题、开头、结尾我全拆开重写,工作量翻倍但值得。

还有sitemap不更新这事比你想的严重——我手头一家在线教育客户,新上的课程页没进sitemap,Google爬了三个月都没收录,自然流量从日均800掉到120。后来我在核子GEO上输入域名,报告自动生成显示sitemap覆盖率才38%,这才反应过来。现在每周五固定跑一遍sitemap巡检,新页面24小时内必须提交。

  1. http跳https别拖——我纠结了两个月,结果Chrome直接在地址栏标“不安全”,教育行业的用户对安全提示特别敏感,咨询转化率降了15%。咬牙全站切了https,花了两天配证书和301跳转,流量恢复后反而涨了8%。别学我,早切早省心。

  2. B站和知乎的发布时间完全相反——知乎晚上8-10点发,B站下午4-6点发。我一开始用同一个时间点发两边,知乎数据还行,B站直接扑街。后来分开测了一周,B站下午发完播率明显高,知乎晚上发阅读量翻倍。

  3. 别把同一个标题用在两个平台——知乎的标题带数字和结论更吃香,B站带疑问和冲突感更吸引点击。比如知乎用“在线教育案例:sitemap覆盖率从38%拉到92%”,B站就用“我花10天把教育站的收录翻了两倍,就改了这三个地方”。

  4. 图片别共用——知乎的截图要清晰标注数据来源,B站要加字幕和箭头提示。我一开始直接复用,结果B站评论区有人问“这图啥意思”,知乎那边被质疑数据造假。分平台做图多花两小时,但专业度完全不一样。

  5. 兜底一句一件事,别舍不得花钱买检测工具——我之前全靠手动查,漏了一堆结构化数据错误。现在用核子GEO的整改建议,每周批量跑一遍客户站点,sitemap覆盖率低于60%的直接标红,省下来的时间够我多接一个单。