中关村在线 SEO 实测:966 条对比链接,85% 返回 502
首页 1.81 MB、8810 条出链,站点地图却是 122 字节的空索引;产品五页零 canonical,参数对比页 85% 返回 502。逐项给出优先级与改法。
中关村在线(zol.com.cn)是一个很典型的例子:规模做到了,发现机制没跟上。这次把首页、产品五个页面、列表页、资讯页、五个 robots.txt 与站点地图全部抓了一遍,问题集中在三处——一条过载的入口、一张空地图、一批打不开的对比页。
一、先看规模:一页 8,810 条链接,地图是空的
首页 HTML 有 1.81 MB,gzip 后 225 KB,站内不支持 brotli。页内有 8,810 个 a 标签、5,275 个唯一地址。同一天的 /sitemap.xml 返回 200,内容是一个 122 字节的空索引,一条 URL 都没有。
第三方口径对照:百度权重 4、移动权重 4,360 为 5,谷歌 PR 8;百度收录 111,970,PC 词 5,842 个(前 10 名 887 个),移动词 2,486 个。域名注册于 1999 年 3 月,27 年 8 个月。
再看流量。爱站估日均 IP 约 138 万、PV 约 386 万,但百度来路只有 6,061 到 8,317 IP,移动来路 1,723 到 3,067。搜索带来的量不足全站的 1%,绝大部分是直接访问与品牌词。
这就值得追问了:一个 27 年、11 万收录、138 万日 IP 的站,为什么自然搜索几乎不参与。下面三节按抓取、收敛、呈现三层拆。
1. 首页把整个产品库入口压在一页里
首页出链按 URL 族拆开,结构非常整齐:664 个产品,每个产品固定挂四类页面,各约 970 条。
| 链接族 | 出现次数 | 唯一地址 | 占全站链接 |
|---|---|---|---|
| 参数页 param | 948 | 664 | 10.8% |
| 点评页 review | 972 | 664 | 11.0% |
| 图片页 pic | 972 | 664 | 11.0% |
| 文章页 article | 966 | 659 | 11.0% |
| 参数对比页 | 966 | 659 | 11.0% |
| 京东联盟跳转 | 472 | — | 5.4% |
平均下来,一个产品对应 3.99 个站内 URL。同一件商品,参数、点评、图片、评测各占一个地址,首页把它们并排铺开。四类合计占首页出链的 44%。

这本身不算错,错在没有收敛信号。后面第三节会说。
2. 站点地图存在,但是空的
六个候选路径逐一回访,结果分成两组:状态码 200 的两个是空索引,其余四个是同一张 44,869 字节的错误页。
| 路径 | 状态码 | 实际内容 |
|---|---|---|
| /sitemap.xml | 200 | 空 sitemapindex,122 B |
| /sitemap_index.xml | 200 | 与上一行同一份 |
| /sitemaps.xml | 404 | 站内错误页,44,869 B |
| /sitemap/index.xml | 404 | 同一张错误页 |
| /news/sitemap.xml | 404 | 同一张错误页 |
| /urllist.txt | 404 | 同一张错误页 |
五个 robots.txt 分布在 www、detail、news、wap、m 五个主机上,合计 155 条 Disallow、27 条 Allow、19 个 UA 分组,Sitemap 指令数为 0。地图既没生成,也没被声明。

顺带一个细节:detail 域 43 条规则里有 2 条把路径写成绝对 URL,形如 https 加域名加路径。RFC 9309 规定路径必须以斜杠开头,合规解析器会忽略这两行。
二、抓取层:966 条对比链接,821 条是死的
首页那 966 条参数对比链接(659 个唯一地址)实测大面积不可用。取前 20 个地址,每个请求两轮,共 40 次。
结果是 6 次 200、34 次 502,失败率 85%。同一个地址两轮结果完全一致:失败的两次都失败,成功的也没掉。这不是随机抖动,是部分 URL 分片损坏。
分析一次 502 的响应:正文 199 字节,标题写着 ERROR: READ ERROR,Server 头是 web cache,X-Ser 里带了两个节点编号。故障点在 CDN 回源这一段,不在源站业务逻辑。
旧形态地址 ProductComp_compare_加两个 ID 的写法,同样是 502。整个对比服务不可用,不是某一批 ID 的问题。
把它放回首页看:每抓一次首页,爬虫会遇到约 821 条打不开的链接,占全页出链的 9.3%,同时消耗 1.81 MB 解析量。抓取预算就是这么漏掉的。
再对照 robots 规则。detail 域有三条 Disallow 专门针对 ProductComp,但它们要封的是多段下划线的旧形态,形如 ProductComp 加两到四段下划线连接。
现行的对比地址只有一段下划线:ProductComp 加 param 加产品 ID。三条规则一条也不匹配,规则在空转——被规则「保护」的页面没被挡住,反倒 85% 自己 502 了。
三、收敛层:一个产品 5 个 URL,0 个 canonical
产品主页面、参数页、点评页、图片页、评测页,五个地址全部没有 canonical 标签。五个页面各有自己的 H1,标题都带完整型号。
| 页面 | 体积 | 可见文字 | H1 | H2 | H3 | canonical |
|---|---|---|---|---|---|---|
| 产品主页面 | 229,895 B | 7,733 字 | 1 | 0 | 19 | 无 |
| 参数页 | 134,306 B | 6,035 字 | 1 | 0 | 9 | 无 |
| 点评页 | 174,645 B | 6,287 字 | 1 | 0 | 2 | 无 |
| 图片页 | 115,890 B | 4,336 字 | 1 | 0 | 5 | 无 |
| 评测页 | 158,317 B | 6,522 字 | 1 | 0 | 5 | 无 |
两个问题叠在一起。一是没有 canonical,五个页面互相不认账,链接权重被五等分。二是标题层级跳级,五页全部 0 个 H2,直接从 H1 跳到 H3。
标题也偏长。参数页标题 107 字,型号出现两次;评测页同样是 107 字。百度结果里通常只显示前 30 字左右,后半段的「规格_性能_功能」基本不可见。
1. 双斜杠与协议降级
首页同时输出两种写法:/car/index2165732.shtml 出现 156 次,双斜杠版本 //car/index2165732.shtml 出现 141 次。
实测两者都返回 200,字节数同为 219,119,md5 完全一致,都没有 canonical。同一篇内容两个地址,中间没有任何收敛信号。
协议层也有瑕疵。http 到 https 的 301 是规范的,但 https 裸域会 301 到 http 加 www,再跳一次才回到 https。这条链是两跳且中途降级。
2. 移动端只有声明,没有分流
用桌面、百度、谷歌、iPhone 四种 UA 抓同一地址,字节数与 md5 完全一致。服务端不做设备分流,移动版本只靠两处声明。
第一处是 head 里的 meta mobile-agent,第二处是 link rel=alternate 带 media 属性。后者的 media 写成 only screen and(max-width:640px)——and 与括号之间少一个空格。
按 CSS 语法,这不是合法的媒体查询,整条声明不会被正常识别。也就是说,桌面页对移动版的指向基本失效。
移动站还分成两个域:产品页走 wap.zol.com.cn,资讯与首页走 m.zol.com.cn,桌面只声明了一个。
有意思的是移动侧反而更规范:wap 参数页有 canonical 指回桌面。但 m 站首页的 canonical 写成 http 加 www,又降级了一次。
四、优先级:先修死链,再收窄入口
九条建议按「影响面 × 实施成本」排序,同一档内按投入产出比排列。

P0 三条,可以并行
修 502,或先从首页与产品页撤掉这 966 条入口。撤链是止损,修服务是根治,两者不冲突,先做哪个取决于排期。
给五个产品页补 self-canonical,指定主页面为主版本。这一步不需要改模板结构,只需要一个字段。
生成真实站点地图,按产品 ID 分片、带 lastmod,并在五个 robots 里声明。给爬虫第二条发现通路。
P1 三条,两周内
移动端改响应式,或对桌面页做 301 分流,同时修掉 alternate 的媒体查询语法。三件事建议同一次发布窗口做完。
合并 wap 与 m 两个移动域,桌面侧只声明一个移动版本。两套移动站意味着两套重复内容。
标题压到 30 字以内,型号只出现一次,把差异词放进 description。现在 description 有 263 到 283 字,重复型号四次。
P2 三条,一个季度
产品页补 Product、Offer、AggregateRating 结构化数据。全站目前只有资讯页一个 JSON-LD,还是百度 cambrian 格式,没有一条 schema.org。
清掉 141 条双斜杠链接与 10 条 http 绝对链接,统一为 https 单斜杠。
把 664 个产品入口从首页下沉到频道页与列表页,首页回到导航本位。1.81 MB 的首页不该承担产品库索引。
这组数据最值得记的一点是:故障不一定长得像故障。空站点地图返回 200,对比页 502 又不影响爬虫抓其他页面,站内监控大概率全绿。真正暴露问题的是把「首页出链逐条回访」和「robots 规则逐条匹配」当成例行检查。
同类的矩阵型站点问题,可以对照看汽车之家的多套模板与双协议并存,以及智联招聘只有第一页能抓的词库分页。39 健康网则是另一种极端:robots 返回 200,内容却是一张 404 页面。
登录后可点赞、收藏与反馈。