中公教育 SEO 实测:994 条 sitemap,73% 已经 404
中公教育的 sitemap 只有 994 条地址,981 条的 lastmod 停在 2014 年 3 月 7 日。随机抽 60 条复测:44 条 404,14 条能打开但没有 canonical。http 与 https 同时返回 200,另有 24 个省级子域不写 canonical。
中公教育的 sitemap 通篇只有 994 条地址,其中 981 条的 lastmod 停在 2014 年 3 月 7 日。我从这 981 条里随机抽 60 条复测:44 条返回 404,14 条还能打开、但一条 canonical 都没写。这份清单 12 年没有更新过,今天仍在告诉爬虫「这些页面的优先级是 0.9」。
一个文件,52 个栏目,48 个正好 20 条
robots.txt 只有三行、75 个字节:允许所有爬虫、屏蔽 /offcn、声明一个 sitemaps.xml。sitemaps.xml 不是索引文件,是单个 urlset,174,292 字节,994 条 loc。
把 994 条按路径首段分组,得到 52 个栏目。其中 48 个栏目的条数正好是 20 —— 不多一条,不少一条。gjgwy、bjgwy、zjgwy 一直到 xjgwy,每个省级公务员栏目都是 20 条。
这种整齐只有一个解释:某次脚本按「每栏目取最新 20 篇」生成了清单,之后流水线停摆。它不是内容索引,是 2014 年 3 月某一天的首屏快照。
| 清单特征 | 实测值 | 说明 |
|---|---|---|
| 文件类型 | 单个 urlset | 无 sitemapindex,5 万条以内的地址全塞一个文件 |
| 条目总数 | 994 条,全部唯一 | 无重复 loc |
| 栏目数 | 52 个 | 48 个栏目的条数正好 20 |
| 协议 | 981 条 http,13 条 https | http 占 98.7% |
| lastmod | 只有 2 个取值 | 2014-03-07(981 条)、2026-07-27(13 条) |
| priority | 0.9 占 900 条 | 90.5%;changefreq 有 985 条写 weekly |
lastmod 的粒度也说明了问题:981 条只写日期,不写时分秒。真正有维护的清单,时间戳通常精确到秒,且分散在不同时刻 —— 那是内容更新时间;同一天、同一格式、同一天全量覆盖,那是生成批次时间。
同一份清单对 6,270 万条收录,覆盖率 0.0016%。它已经失去「告诉爬虫有什么新东西」的功能,只剩下「告诉爬虫有一批 2014 年的页面」。同样是时间戳问题,什么值得买的 5 万条 lastmod 挤在 11 分钟里是另一个极端:时间戳会动,但动的原因是批次写入,不是内容更新。

抽样 60 条:73.3% 已 404
从 980 条 2014 年地址里(去掉首页那一条)随机抽 60 条,固定随机种子,不跟随跳转、只取首跳状态码。
首跳分布
44 条 404(73.3%)、14 条 200(23.3%)、2 条 301 且目标都指向首页(3.3%)。
404 是干净的真 404:状态码正确,错误页 9,395 字节、带 39 个站内链接,明确写「页面已被删除」。这一点比很多站做得好 —— 不是软 404,不会把死链伪装成正常页面继续消耗抓取预算。
问题在另外两个数。301 只有 2 条,目标都是首页:等于把一篇 2014 年某省公告的权重直接倒进首页,用户点进去也找不到原文。而 73.3% 的死链率,折算到 980 条就是约 719 个地址 —— 一边 404,一边在 sitemap 里标着 0.9 的优先级。
| 首跳状态 | 抽样条数 | 占比 | 折算到 980 条 | 处理判断 |
|---|---|---|---|---|
| 404 | 44 | 73.3% | 约 719 条 | 从清单移除,或补 301 到现行栏目页 |
| 200 | 14 | 23.3% | 约 229 条 | 保留,loc 改 https 并补 canonical |
| 301 | 2 | 3.3% | 约 33 条 | 目标为首页,需改为最近的对应内容 |
活着的 14 页,一个 canonical 都没有
14 条 200 页面平均 3,101 个汉字,最短 2,008 字,最长 3,576 字,内容本身是完整的。逐条查 head:14 条全部没有 canonical 标签。
它们也全部可以用 http 打开,服务端不做 301 到 https。首页同理:http 与 https 都返回 200,Content-Length 都是 502,727 字节,完全一致。没有 canonical、没有 HSTS,同一份内容在协议层就有了两个可索引副本。

关键词不弱,漏分漏在模板与外链
关键词布局:10.8 万词配 6,270 万收录
爱站综合查询显示:PC 词 108,084,移动词 117,056,百度收录 6,270 万,360 收录 1,810 万,Alexa 世界排名 1,020。折算成「每个词分摊多少条收录」是 1:580。
这个比值在同类站里偏低(快递100 约 1:1,096,穷游 1:2,428,什么值得买 1:3,790),收录页里有排名的比例更高 —— 说明它的长尾页不是纯占位,模板化不等于没价值。
移动词比 PC 词还多 8.3%,这在工具类站点里少见(什么值得买的移动词只有 PC 的 2.4%)。m.offcn.com 首页 147,697 字节,是 PC 首页的 29%,轻页面拿移动词,逻辑成立。
真正刺眼的是另外三个数:24 小时收录 4 条,一周收录 55.1 万,一月收录 93 万。三个数不在一个量级,说明新内容基本不靠 sitemap 发现,而是靠站内链接与栏目页的自然抓取。
页面结构:三处可定位的模板损耗
抽到的文章页 64,772 字节、3,101 个汉字,正文容器只有 1,357 字节 —— 正文占整页 2.1%,其余是导航、侧栏与推荐位,全页 342 个链接(253 个唯一地址)。首页更极端:3,027 个链接、18,531 个汉字,平均每 6 个字一个链接;355 张图里 331 张没有 alt(93.2%);没有 H1,没有 H2。
三处可以直接定位的模板问题:
其一,H1 混进了按钮文案。 抽检页的 H1 实际文本是「2014年上半年重庆公务员考试 3月10日报名 4月12日笔试进入阅读模式」。「进入阅读模式」是工具栏按钮,被包进了 h1 标签,与标题一起成为页面主标题。
其二,description 取自导航文本。 同一页的 meta description 是「报名入口职位检索照片修改成绩查询活动预告:重庆市公职类考试QQ群 | …」,这是侧栏导航的串接,不是摘要;keywords 末尾还留着一个被截断的「备考指导息」,说明字段是程序截断生成、没有人复核。
其三,JSON-LD 语法错误。 页面确实输出了一段 ld+json,内容是 pubDate、upDate 两个键,没有 @context 与 @type,结尾还多一个逗号。JSON 解析器会直接判为无效,等于没有结构化数据。
外链与站群:四条入口互不认账
外链侧的数据很薄:爱站反链字段为空,未取得有效数据。这本身说明外部链接不是这个站的抓手 —— 它靠站群与品牌词。
站群的问题在信号方向。m.offcn.com 首页的 canonical 写的是 //www.offcn.com/,移动站主动把索引权交给 PC 站;PC 站却没有任何 canonical,也没有 HSTS,只在 head 里放了一条 alternate,media 写成 only screen and(max-width: 640px) —— 括号前少一个空格,条件解析不生效。
24 个省级子域(bj、sh、gd 等)同样没有 canonical。三个省站首页分别是 413 KB、599 KB、440 KB,H1 数量是 2、0、1 —— 同一个模板,三个省三种结构。它们与主站既不互指,也不互斥。
链接卫生还有一处:首页 3,027 个链接里有 235 个以 http:// 开头,包含站内地址。自己给自己发 http 链接,等于主动制造第二轮重复。

优化清单:按 P0 / P1 / P2 排优先级
| 档位 | 动作 | 具体改法 | 验收标准 |
|---|---|---|---|
| P0 | 重建 sitemap | 改 sitemapindex 按栏目分片,单文件不超 5 万条;loc 一律 https;清掉 404 的约 719 条;lastmod 取真实更新时间 | 抽样 30 条死链率为 0,索引文件可访问 |
| P0 | 全站补 canonical | 在公共模板 head 加自指绝对地址,protocol 一律 https | 抽 20 页 100% 有 canonical 且与当前 URL 一致 |
| P0 | http 到 https 全站 301 | 服务端按协议跳转,保留路径与参数;同时下发 HSTS | http 首页返回 301,不再返回 200 |
| P0 | 修 /offcn 的 403 | 该目录返回 403 却仍写在 Disallow 里,先确认目录用途:废弃则删规则,在用则修权限 | 该路径返回 200 或 404,不再是 403 |
| P1 | 移动站 canonical 自指 | m 站改为自指,PC 站补 alternate 并修正 media 的空格写法 | 移动页 canonical 指向自身,双向 alternate 可解析 |
| P1 | 清理 H1 模板 | 把「进入阅读模式」按钮移出 h1;省站统一为每页 1 个 H1 | 抽 20 页 H1 数量恒为 1,不含按钮文案 |
| P1 | 重写 description 规则 | 取正文首段前 80 字,去空白与导航残留;keywords 加长度校验 | 抽 10 页 description 与正文首段一致 |
| P1 | 修 JSON-LD | 补 @context、@type 为 NewsArticle,去尾逗号,补 datePublished 与 author | 结构化数据测试工具零报错 |
| P2 | 文章页减链接 | 342 个链接压到 120 个以内,正文前置到首屏 | 正文占页面字节比从 2.1% 提到 8% 以上 |
| P2 | 图片 alt 批量化 | 首页 331 张缺 alt 的图按「栏目加标题」规则批量补齐 | 首页无 alt 图片数降为 0 |
| P2 | 省站策略定一个 | 子域与目录二选一:保留子域则各自自指 canonical 并与主站互链;改目录则 301 合并 | 24 个省站 canonical 策略一致 |
| P2 | 旧公告页收口 | 2014 年前后的公告页 301 到现行栏目页,或在文末补相关阅读 | 抽样旧页 404 率降到 10% 以下 |
第一周只做三件事
如果只能改三处,顺序是:先把 981 条旧 loc 从清单里摘掉,再把 canonical 补上,最后打通 http 到 https 的 301。前两件各是一次模板改动,第三件是一次服务端配置 —— 三件做完,重复内容与死链声明就同时消失。
重建清单时不必追求全量。先把 SEO 板块 29 篇、人工智能板块 55 篇已发布文章按更新时间切片,每个分片控制在 2 万条以内,观察两周索引率再放量。sitemap 的价值在于「新、准、可验证」,条数不是指标。
两到四周做结构与内容
H1、description、JSON-LD 属于同一层:都在模板里,改一次全站生效。建议先改一页做对照,用同一批关键词观察 30 天的点击率变化,再全量推 —— 这三项对排名的直接影响有限,但对「页面被正确理解」影响直接,属于必须做但不该期待暴涨的项。
省站策略要单独决策。24 个子域各自 400 KB 到 600 KB 的首页,如果内容与主站高度重叠,本质是 24 份重复;如果确有本地化内容(省考公告、本地课程),就该给每个子域自指 canonical 并与主站互链,把「重复」变成「分工」。
小结: 994 条 sitemap 不是「SEO 没做」,是「做了,12 年没人维护」。它现在同时扮演三个负面角色:向爬虫声明 719 个死链、给 2014 年的旧页面标 0.9 的优先级、并让站点误以为自己有 sitemap。相比之下,关键词侧的 10.8 万词与 1:580 的词效比说明底子不差 —— 真正在漏分的是模板与外链这两层,而这两层恰好都是改一次就能覆盖全站的。
数据说明:sitemap 与页面数据为本站在 2026-11-12 直抓实测,抽样固定随机种子、不跟随跳转取首跳状态码;关键词、收录、反链与流量为爱站综合查询同日数据,口径以该平台为准。
登录后可点赞、收藏与反馈。