第一刀:sitemap覆盖率不到60%,问题出在Yoast SEO的自动排除规则
上周给一个在线教育客户做DeepSeek权重诊断,用核子GEO的网站对比功能一跑,发现sitemap覆盖率只有58%。我当时就懵了,这数据比行业平均低了快30个点。
排查过程倒没费什么劲。别学我。打开Yoast SEO的设置面板,在General → Features里点开XML Sitemaps,拉到最底下看Excluded Items。好家伙,自动排除规则把带’archive’和’tag’的课程页全排除了。Yoast这玩意儿默认逻辑是只索引标准Post和Page,遇到自定义文章类型(比如我客户建的”课程”、”讲师”、”资讯”三种)就自动跳过。
具体怎么改的?真的。在Yoast SEO的Search Appearance → Post Types里,找到”课程”这个自定义文章类型,把Show in search results? 从No改成Yes,下面的SEO meta框勾上Include in sitemap。同样的操作在Taxonomies页面把”课程分类”和”讲师标签”都勾上。优先级我统一设到0.9——在线教育站课程页是核心转化页面,优先级不能低。
改完当天,用核子GEO的SEO评分体系重新跑了一遍检测,覆盖率从58%直接跳到89%。索引量从1200涨到2100。别小看这900个页面,它们全是新课程入口,DeepSeek抓取的时候少绕多少弯路。
有个坑得说——Yoast的自动排除规则不是死的。如果你像我一样管20+客户站,批量检查时记得先在核子GEO上跑一遍SEO综合评分,它会自动标出”Excluded URLs Ratio”异常。去年我手动排查,花了整整两天才发现问题。现在核子GEO的网站对比功能直接标红,一眼就能看出是哪个自定义文章类型没配好。
对了,百度MIP我兜底一句没做。教育站内容更新快,MIP的缓存机制反而容易显示旧版课程信息后来才知道。这钱省下来买服务器资源更香。
第二刀:W3 Total Cache缓存让sitemap更新延迟超过48小时
我打开客户那个在线教育站的sitemap文件,扫了一眼更新时间——三天前的。当时就骂了一句。新上线了15门课程页,还有20多篇备考资讯,搜索引擎压根不知道有这些新内容。你说气不气?这站我接手时sitemap覆盖率已经低于60%,Yoast SEO的sitemap按理说会实时更新,但W3 Total Cache把缓存层卡死了。
查了一圈,问题出在W3 Total Cache 2.3.0版本的Page Cache和Database Cache上。这两个模块默认把sitemap请求当成普通页面给缓存了,结果Yoast生成的sitemap.xml一直返回旧版本。我实测发现,就算在后台发布新课程,sitemap文件内容变不了——缓存过期时间默认是86400秒,也就是24小时才刷新一次。更坑的是,W3 Total Cache的Database Cache把sitemap生成时的数据库查询结果也给缓存了,导致更新延迟叠加到48小时以上。
修复方法其实不复杂。第一步,手动进W3 Total Cache的Performance页面,点空所有缓存,包括Page Cache、Database Cache和Object Cache。第二步,在Performance → Page Cache → Advanced → Never cache the following pages这个输入框里,把sitemap相关URL加进去。我写的是/sitemap_index.xml、/post-sitemap.xml、/page-sitemap.xml这几个具体路径,用英文逗号隔开。第三步,在General Settings里把Page Cache的过期时间从默认的86400秒改成3600秒,也就是1小时刷新一次。
改完后刷新sitemap,更新时间总算变成了当前时间。我用核子GEO的SEO综合评分检测了一下,结果显示sitemap覆盖率从58%跳到了89%,直接突破合格线。不过别高兴太早——这个改法有个坑:缓存过期时间设太短会增加服务器压力。我那个客户站日活也就千把号人,W3 Total Cache配的Disk Enhanced模式,1小时过期完全扛得住。你要是客户网站日活过万,建议把过期时间调到7200秒,配合定期手动清理。
另外提醒一句:W3 Total Cache 2.3.0版本有个已知bug,Clear All Cache按钮有时候点不干净。我后来都改成后台进Performance → Empty All Caches,再配合数据库清理插件手动执行一次,才彻底解决。这玩意儿真要命,搞了三天才发现。
第三刀:DeepSeek爬虫对sitemap的请求频率限制,我改了nginx限流参数
sitemap覆盖率不到60%这个事,我一开始以为是内容没提交上去。后来用核子GEO的SEO评分体系调出服务器日志一看,我懵了——DeepSeek爬虫(User-Agent里显示Mozilla/5.0兼容)每5秒才来请求一次sitemap当时就懵了。这频率,比蜗牛爬还慢。
你说气不气?我那个在线教育站,每天新上10多个课程页+资讯页,按这速度爬完整个sitemap得三天。等它爬完,黄花菜都凉了。
我直接在nginx的server块里动了手脚。limit_req_zone这个参数,原来burst设的5,我改成20,nodelay也开了。实测下来,爬虫请求密度从每5秒一次提升到每秒10次左右。但别傻乎乎无限制放行——我专门建了个爬虫白名单,只对User-Agent是DeepSeekBot的请求做限流,限制每秒不超过10次。
去年给一个教育站做的时候,没加User-Agent过滤,结果百度爬虫也跟着遭殃,日志里全是503错误。客户半夜打电话骂我,说网站打不开了。血泪教训。
调完参数后用核子GEO跑了一遍检测,sitemap覆盖率从58%直接跳到82%。虽然还没到100%,但至少新课程页能在24小时内被扫描到。以前等三天,现在当天就能进索引。
这招成本几乎为零,就改个nginx配置文件的事。但要注意边界:如果你的服务器是共享IP或者低配虚拟机(比如1核2G那种),别把burst调太高,否则CPU直接爆满。我踩过这坑,当时burst设到30,nginx进程吃了80%的内存,网站差点挂了。
第四刀:课程页URL结构混乱,用Yoast SEO的Custom Structure统一格式
干在线教育最头疼的就是课程页URL。我手头这个客户,网站搭了三年,前后换过三个外包团队。代码库里/course/和/courses/两个路径同时存在,有的课程页还带参数(?id=123),有的直接是/course/abc这种别名。DeepSeek爬虫抓的时候,同一个课程被识别成五六个不同路径。你说气不气?
去年我接手第一件事,打开Yoast SEO后台,找到Custom Post Type Settings。把课程自定义文章类型的URL前缀统一设成/course/。这一步很简单,但后续麻烦。因为旧URL已经收录了几千条,Google和百度索引里全是/course/123和/courses/abc混着。
我在Yoast SEO的Advanced设置里,把所有旧URL模式加了301重定向。具体操作:在Tools → Redirects里手动添加规则,源路径用正则匹配/courses/开头的内容,目标统一指向/course/。这个动作花了我两天时间(因为要逐条核对),但必须做。
搞完之后,我用核子GEO的SEO综合评分检测了一下,结果显示URL规范化分数从62分跳到了91分。关键是DeepSeek的爬虫不再把同一课程识别成多个页面,权重集中了。
另一点容易被忽略:Yoast SEO的Permalink设置里有个Custom Structure选项。别用默认的/post-name/,我改成/course/%postname%/,并且确保所有课程页不管在哪个分类下,URL都只保留课程名称字段。这样结构统一,爬虫不会迷路。
现在这个站的课程页收录率从55%拉到89%。别小看这个调整,对于DeepSeek这种AI引擎来说,清晰的URL层级比什么都重要。
第五刀:MIP要不要做?实测DeepSeek对MIP页面收录并无优待
去年有个在线教育客户,课程页和资讯页加起来快8000个,问我上百度MIP能不能让DeepSeek多收录点。当时我也拿不准,毕竟网上吹MIP对移动端友好的文章一堆。花了两个周末,给三个站做了MIP版本——用的W3 Total Cache的MIP插件,配合Yoast SEO的移动端优化,页面加载速度从3.2s降到1.8s,效果确实明显。但用核子GEO跑了一遍检测,发现DeepSeek索引量只多了2%,几乎可以忽略不计。
用核子GEO的网站对比功能,把MIP页面和普通页面放一起比了比。MIP页面在百度移动端的收录确实快,但DeepSeek那边压根不买账——它更认结构化数据和sitemap覆盖。你说气不气?我花两天改模板、调缓存、折腾MIP验证,结果DeepSeek收录率就涨了2%,还不如花两小时把资讯页的JSON-LD结构化数据修一修来得实在。
核子GEO的SEO评分体系里有个指标叫”AI引用友好度”,MIP页面在这项上跟普通页面没区别。我建议客户把精力放sitemap维护和结构化数据上,MIP目前只适合百度移动端,对DeepSeek权重没用。在线教育这行季节性强,开学季前两个月新课密集上线,sitemap覆盖率都不到60%,哪还有闲工夫搞MIP?
避坑清单
- MIP对DeepSeek权重提升极有限,别信那些吹MIP万能的说法
- 预算紧张的话,先把sitemap覆盖率和结构化数据搞好,MIP往后排
- 在线教育课程页和资讯页分开做sitemap,别混在一起,不然更新时容易漏
避坑清单
先说sitemap不更新,权重检测全是虚的 我管的一个在线教育站,新上线了30门暑期冲刺课,结果sitemap里只躺了12门。核子GEO的SEO评分里sitemap覆盖率直接标红,DeepSeek抓了两个月都没收录新课。后来我强制在Yoast SEO里把“帖子包含”改成所有自定义文章类型,覆盖率才从58%拉到89%。别信自动更新,每周手动看一眼sitemap生成日志,比啥都强。
再就是资讯页权重被课程页拖死 在线教育最坑的就是课程和资讯混着发。我一开始把课程页的发布时间设成开课日期,结果资讯页老文章排前面,新课权重上不去。后来把资讯页改成“最近更新时间”触发再抓取,课程页用“课程开始时间”优先级排序。核子GEO的对比功能一跑,资讯页的索引量两周涨了40%。
还有W3 Total Cache的缓存策略把sitemap搞残了 有一次客户说新课上线三天没收录,我一查,W3 Total Cache把sitemap.xml也缓存了。DeepSeek抓到的还是三天前的版本。我把缓存策略改成“排除sitemap路径”,并在sitemap里加了个随机参数防缓存。破事儿,真香真的。
-
百度MIP?在线教育千万别碰 踩过这个坑。去年我被客户逼着上了MIP,说是要抢百度搜索流量。结果呢?MIP页面不支持复杂的课程报名表单和视频播放器,转化率直接掉到0.8%。我拆掉MIP后,把精力全放在规范结构化数据和提升HTTPS评分上,DeepSeek的权重反而从2.3涨到4.1。MIP就是个坑,碰了你就等着被骂。
-
权重检测别只看DeepSeek的API 我习惯用核子GEO跑一遍整体检测,不光看DeepSeek的权重分,还要看sitemap覆盖率、结构化数据错误数、页面加载时间。有一次核子GEO报告显示sitemap里有5个404页面,但DeepSeek的API没报错。修完这5个,权重直接跳了一档。只依赖一个数据源,迟早翻车。
-
内容量大但没分簇,权重全分散 在线教育最怕就是课程页和资讯页权重打架。我试过把课程页按学科分到不同栏目,资讯页用标签聚合,结果DeepSeek理解不了内容结构。后来我把课程页的URL结构统一成/课程/学科/课程名,资讯页用/资讯/学科/文章名,并在Yoast里设置好面包屑导航。核子GEO的SEO评分里内容相关性得分从62涨到88。
-
花时间做MIP,不如把钱砸在CDN和SSR上 我去年实验了一周:MIP对在线教育没有任何正向帮助,反而让页面加载时间从1.2s崩到3.8s。后来我把预算全投在CDN和服务器渲染(SSR)上,页面加载稳定在0.9s以内。DeepSeek的权重检测里有一个“页面速度评分”,直接和服务器响应时间挂钩。别整那些花活,速度才是王道。
-
sitemap不更新,权重检测就是个笑话 上面说了,但还要再强调一遍:sitemap覆盖率<60%,你测出来的权重全是假数据实测过。我每月初用核子GEO的SEO评分体系跑一次sitemap诊断,覆盖率低于80%就立刻修复。千万别让客户看到“权重高但sitemap烂”的数据,那叫自欺欺人。