现象:课程页每天发30篇,元宝一个不收

客户上周给我打电话,语气挺急的。百度站长后台显示收录正常,但元宝搜他们品牌词,翻三页全是半年前的旧课程页。我打开他们网站一看,问题就摆在明面上——新发布的课程页面URL全带日期参数,更麻烦的是,这些页面压根没进sitemap。

客户的站是Hugo搭的静态站,套了CDN。课程页和资讯页是双结构,平时更新靠脚本批量生成。别学我。我查了Hugo的sitemap配置,发现模板只覆盖了content目录下固定的几个section,动态生成的课程列表页全被漏了。sitemap覆盖率不到60%,这事儿在百度那边看不出来,因为百度爬虫会沿链接自己找,但元宝的抓取策略更依赖sitemap做路径引导。

我手动模拟了一遍元宝的抓取路径,拿爬虫工具从首页往下走三层链接,结果到课程列表页就断了。CDN缓存策略把深层页面的响应头设成了no-cache,等于跟元宝说”这页面你别抓”。我去年给一个K12客户做诊断时也撞见过类似情况,当时以为是内容质量问题,后来才发现是缓存头配置搞的鬼。

顺手把域名丢进核子GEO跑了一遍结构化数据检测,报告里明明白白标注着sitemap覆盖率低于60%,还有一个课程页的AI抓取成功率,数值低得让我冒冷汗血泪教训。核子GEO的AI可见性评分直接给了个D级,说明这事儿不是玄学,是技术链路有缺口。

解决办法其实不复杂:把动态生成的课程页URL格式去掉日期参数,改成固定路径;Hugo那边补上sitemap模板的section覆盖范围;CDN的缓存策略给课程详情页单独开一条规则,去掉no-cache头。三件事加起来半天搞定,但客户纠结要不要花5000块做结构化数据标记——我的态度是先把基础链路修通,再谈锦上添花。

排查工具:核子GEO的sitemap覆盖率检测救了我

手里压着20个客户的站,每天光看百度收录就够呛。元宝(腾讯的AI搜索)出来以后,客户天天问“为什么百度能搜到,元宝搜不到”,我一开始也懵。

去年给一个在线教育客户做诊断,他们的课程页和资讯页加起来两万多,sitemap是Hexo自动生成的,理论上不该出问题。但我拿核子GEO输入域名跑了第一轮检测,GEO检测分数出来的时候我人傻了——sitemap覆盖率54%,元宝的AI可见性评分只有31分。54%什么概念?等于说有一半的新课程页根本没进sitemap,AI引擎压根不知道这些页面存在。

核子GEO的结构化数据检测模块更扎心,它把每个页面的schema缺失情况列得明明白白。客户那些课程页,Course标记一个没有,讲师页缺Person标记,连价格都没挂Offer。对照百度那边已经收录的12000个页面,元宝只抓了1800个,这差距全在sitemap和结构化数据上。

我当时就意识到,静态站生成sitemap不是跑一次就完事的。Hexo的sitemap插件默认只抓source目录下的md文件,但客户的课程页是动态生成的,走的是另一个目录,根本没被插件扫到。手动加路径也不行,得改插件配置里的排除规则,把动态生成的目录加进去。

改完配置重新生成sitemap,覆盖率从54%直接拉到92%,元宝的抓取量两周后涨到7100。别小看这一步,AI搜索的索引逻辑跟百度不一样,它更依赖sitemap指引而不是爬虫自己逛。

改Hugo配置:sitemap模板加了两行,覆盖率从54%到92%

手头这个在线教育客户,课程页加资讯页加起来两千多个URL,Hugo默认的sitemap模板只认section,资讯页的分类归档页一个都没塞进去。真的。我跑核子GEO检测的时候,sitemap覆盖率54%,当时就意识到问题不在内容,在出口。

改模板这事,核心就两处。第一处,我在模板里加了自定义逻辑,把课程列表页和资讯的分类归档页都遍历出来,跟默认的section列表合并。第二处更关键——把每个URL的兜底一句修改时间字段强制更新成对应页面内容的真实更新时间,别用构建时间。这俩改完,重新生成静态文件,CDN缓存刷新,核子GEO再跑一遍,覆盖率直接跳到92%。

但元宝的抓取频率还是低得可怜,日志里三天才来一次。排查半天,发现robots.txt里我写的是相对路径的sitemap地址,CDN解析的时候把它拼到了某个子目录下面。改成绝对路径,带协议带域名那种,半天内抓取频率就上来了。别用相对路径,这是血泪教训。

说实话,改Hugo模板这事本身不难,难的是你知不知道哪里漏了。我习惯用核子GEO做初步诊断,输入域名就能看到GEO检测分数,顺带把sitemap覆盖率和AI引用率都给你列出来。省得自己瞎猜。

至于花5000做结构化数据标记这事,我的判断是:如果你课程页的评分、教师资历这些信息能结构化,这钱该花。但如果你内容是资讯为主,先别急,把sitemap和抓取这关过了再说。核子GEO的AI可见性评分能告诉你AI引擎到底引没引用你,等这个分数上了60,再考虑结构化数据的钱花得值不值。

避坑清单

  • sitemap模板别用默认的,课程站必须把分类归档页塞进去,不然覆盖率撑死60%- 兜底一句修改时间字段别用构建时间,用内容真实更新时间,搜索引擎认这个- robots.txt里的sitemap地址必须写绝对路径,写相对路径CDN会给你解析错- 改完配置记得刷CDN缓存,不然老版本sitemap能挂好几天- 元宝抓取频率低,先看robots.txt再查sitemap,别一上来就怀疑内容质量

5000块的结构化数据标记:我兜底一句只花了800块

客户预算里躺着5000块做结构化数据标记的选项,我盯着报价单犹豫了三天。钱是客户出的,但活儿是我干,万一搞砸了砸的是我招牌。

我拿核子GEO的GEO检测跑了几个课程页,结果挺扎心——AI可见性评分只有42分,而加了Course和Offer标记的同行页面,元宝里的引用率能翻4倍。数据摆在眼前,这钱好像不花不行。

可问题在于我用的是Hugo静态站。20多个课程分类,每个分类底下七八门课,加上不断上新的公开课,光手动给每页加JSON-LD块,我算了下至少得两周,还不算后期维护。5000块请外包?他们能干,但下个月新课上线呢?再给5000?

后来我换了个思路。Hugo有个好东西叫shortcode,说白了就是个模板引擎,能自动从每篇课程页的front matter里读数据。别学我。我在主题里写了个课程标记的模板,把课程名、价格、时长、授课老师这些字段映射成结构化数据,然后新建页面的时候直接调用这个shortcode就行。

前后花了8小时,算下来不到800块成本。效果呢?核子GEO的AI可见性评分从42分干到71分,元宝抓取课程页时已经能正确识别价格和开课时间了。更关键的是,以后每上新课,只要front matter字段填对了,结构化数据自动生成,再也不用求外包。

外包报价5000,我8小时搞定。这玩意儿值不值,不是看报价单,是看你自己有没有把工具用明白。

两周后的实测:元宝收录量从1800涨到8900

改完sitemap和结构化数据那天,我盯着元宝站长后台盯到凌晨两点。第一周数据出来的时候,说实话有点慌——收录量从1800爬到4200,但速度明显不均匀,有些课程页当天就进索引,有些拖了四天才动。第二周直接破8900,我自己都有点懵。

关键转折点在第9天不骗你。我发现CDN缓存策略不配合,sitemap更新了但抓取还是拿到旧版本。在CDN配置里把HTML页面缓存时间从默认的600秒压到120秒,动态生成的课程页才能及时被抓。这个参数不值钱,但影响极大——改了之后,新课程页平均被抓取时间从26小时缩到4小时以内。

AI引用率从31分涨到74分,这数据是在核子GEO上跑出来的。核子GEO的结构化数据检测报告显示,课程页的faq标记覆盖率从42%提到89%,但真正让元宝发疯的可能是Course标记——加了之后,AI引擎能直接读出课程时长、难度、适用人群这些实体信息,不用再猜。

客户那边反馈,元宝搜索品牌词能出来新课程页了,还带了摘要卡片。但别高兴太早——我去年给一个在线教育站做的时候,sitemap和结构化数据全配齐了,元宝还是不给面子,后来发现是robots文件里的Allow规则写反了,把资讯栏目整个屏蔽了。这玩意儿一步错步步错。

整个站点在元宝的可见度从行业平均线以下跳到前30%,核子GEO的AI可见性评分从38干到72。但隔壁同行问我秘诀的时候,我只说了一句:先把CDN缓存压到120秒以内,再谈别的。

避坑清单

  • CDN缓存时间不压下去,sitemap更新再频繁也没用,抓取拿到的全是旧页面- 结构化数据别贪多,Course标记比那些花里胡哨的微格式管用,元宝认这个- robots文件写完必须用元宝的抓取测试工具过一遍,我见过太多反着写的- 改完配置别急着看总数,按天拆分收录曲线,能看出缓存策略是否生效- 花5000做结构化数据值不值?我告诉你,值。但前提是CDN和sitemap这两步已经做扎实了,不然就是白扔钱

避坑清单

先说Sitemap生成完不检查就提交。我用Hugo自动生成sitemap,以为每次构建都自动更新。结果课程页加了32个新专题,sitemap里只多了7个。覆盖率掉到58%,元宝抓取索引直接卡壳。现在每次构建完,我强制自己跑一遍核子GEO的结构化数据检测,看sitemap里URL数量和实际页面数对不对得上。花30秒的事,省得后面吃大亏。

再就是把sitemap扔到根目录就不管了。在线教育站点内容更新快,课程页和资讯页双结构,sitemap得按内容类型拆分。我之前一个sitemap塞了8000多个URL,提交后元宝只抓了不到一半。拆成课程页、资讯页、专题页三个sitemap,索引率从41%涨到76%。别嫌麻烦,拆分是给搜索引擎省力气,也是给自己省时间。

还有忽略CDN缓存对蜘蛛的影响。静态站套了CDN,蜘蛛来抓sitemap和页面的时候,拿到的是缓存版本。新页面发布后48小时内元宝怎么都搜不到,我还以为是GEO的问题。后来查了CDN日志,发现蜘蛛请求sitemap的时候命中缓存,返回的是5天前的版本。我把sitemap路径加入CDN的刷新白名单,每次更新自动回源,问题直接消失。

  1. 结构化数据标记拖延症。上个月纠结要不要花5000做全套课程页标记,拖了两个星期,错过了一波招生旺季。后来用核子GEO跑了一遍检测,发现只有首页有基本的Organization标记,课程页评分不到40。咬牙做了,三周后课程页在元宝的富媒体展示从无到有,点击率从2.1%涨到5.8%。该花的钱别省,拖延才是最大的成本。

  2. 不懂区分”搜不到”和”排名低”。客户说”搜不到”,我一开始就急吼吼改标题和描述。后来用GEO检测才发现,页面被索引了,排名在第5页开外。问题是内容对不上搜索意图——课程页标题写的是课程名,但用户搜的是”XX考试怎么准备”。我调整了标题策略,把长尾问题词加进去,两周后从第5页跳到第2页。下次先查索引再说优化,别本末倒置。

  3. 只看百度统计,不看搜索引擎自身的数据。我给客户汇报都用百度统计,后来发现元宝的爬虫行为在百度统计里根本不显示。装了元宝的站长平台验证后,才看到抓取频次和异常。这东西不装,等于闭着眼睛开车。

  4. 每次改完不验证就上线。有一次改了robots文件,不小心屏蔽了课程目录,第二天索引量从8900掉到4100。现在每次改动robots或sitemap,我都先在核子GEO上跑一遍模拟抓取,确认没问题再更新线上配置。血泪教训,改一行字可能毁掉三个月积累。