抓取预算不是无限的
搜索引擎分配给每个站点的抓取资源有上限,中小站点尤其明显。同一个目录下,如果每个页面都要下载几百 KB 的 HTML,蜘蛛在相同时间里能走完的 URL 数量就会下降。反过来,把页面瘦下来,你不需要额外提交任何东西,蜘蛛就能在同样的窗口里覆盖更多地址。这不是玄学,只是下载和解析成本的问题。
体积通常在哪些地方悄悄膨胀
- 模板把整站导航、页脚、侧边栏复制到每个页面,DOM 节点动辄几千个;
- 把 CSS、JS 直接内联进 HTML,尤其是整段 UI 框架代码;
- 图片以 base64 形式写进 HTML,单张图就能顶几十上百 KB;
- 列表页一次渲染上百条记录,或者输出大量隐藏菜单、弹窗结构;
- 编辑器与建站工具留下的冗余包裹标签、注释、空容器;
- 结构化数据里塞进整篇正文或大量用不上的字段。
可以照着做的自查步骤
- 从抓取日志或服务器访问记录里,挑 5 到 10 个被频繁抓取的栏目页与详情页;
- 用命令行直接拉取未压缩的 HTML,记录字节数与节点数量;
- 对比开启压缩与未压缩两种情况,看真实传输体积差多少;
- 翻模板的提交记录,定位体积明显增长的时间点;
- 估算正文文本占页面字节的比例,如果只有百分之几,说明大部分内容对蜘蛛没有意义。
按收益排序去处理
先动效果最明显的部分:把内联的大段脚本和样式改成外链或按需加载;把 base64 图片换成独立文件并配合懒加载;控制列表页的输出条数,不要一页铺满几百条;删掉长期不用的隐藏 DOM。这些做完之后,再考虑压缩空白、合并重复结构这类细活,性价比会低一些,但可以顺手做。
页面变小不等于内容变少。要削减的是模板噪音,不是正文本身。
短期内改不动怎么办
如果整站模板一时半会儿没法重构,可以先从被抓取最频繁的那几个模板下手。比如首页、主栏目列表、文章详情页这三类,通常占了抓取量的大头。把这三类页面的体积压下去,整体收益就已经可观。其余的次要模板可以排进后续迭代,不必一次性推倒重来。
和索引表现的关系
体积大不会直接导致不收录,但它会拉长每个 URL 的处理时间。当蜘蛛在一个大页面上停留过久,同一天里其他页面被访问的机会就少一次。长期下来,常见表现是栏目页已经更新,详情页却迟迟没有抓取记录。把体积控制在合理范围,是让索引跟上发布节奏的基础工作之一。
按月复盘的几个指标
- HTML 平均体积与最大体积的变化趋势;
- 正文文本字节数占整页的比例;
- 单个页面的 DOM 节点总数;
- 抓取统计中每次访问的平均下载字节数。
这些数字不需要天天盯着,一个月对一次就够。如果发现某次改版之后体积翻倍,先排查是不是新增了组件库或统计脚本,再决定回退还是优化,别让问题一直挂着。