站点地图条目到达上限时怎么用索引文件拆分
站点地图条目到达上限时,怎么用索引文件拆分?分两步:先按栏目或发布时间把地址切成若干分片文件,再写一个索引文件把这些分片的地址列出来。按当天核对到的口径,单个文件的上限是 50,000 条地址与未压缩 50MB 体积,任一项触顶就要拆。索引文件本身不直接列页面地址,只承担目录职责。
上限是多少
两条限制同时生效:条数上限 50,000 条地址,体积上限按未压缩大小算到 50MB。实践中通常是条数先到顶;如果分片里带了很多字段或地址很长,体积也可能先触顶。
触顶的表现容易误判:文件被截断、末尾地址丢失,或者提交后系统只识别到上限以内的部分。因此拆分不该等到出错再做,而应在规划阶段按栏目预留容量。
按什么维度拆分
可选择的维度有四种:按栏目、按发布日期、按内容模型、按语言或站点。选择依据是”哪个维度重生成时改动面最小”。
按栏目划分最贴合后台结构,栏目内容变动后只重生成对应分片;按发布日期划分适合资讯流,历史分片不再改动,只生成新分片;按内容模型划分适合字段差异大的站点;多站点与多语言场景按站点或语言分开,能让每个分片的地址域名单一,便于排查。
不建议按拼音或随机散列拆,分片没有语义,出问题时无法定位到具体栏目。
索引文件的写法
索引文件里放的是分片文件的地址,可选地带上各分片的最后修改时间。它不直接列页面 URL,也不该混用成普通站点地图。
提交时只提交索引文件一个地址即可,由它指向全部子文件。这样做的好处有三个:新增分片只改索引文件;某个分片出问题时单独替换;提交入口稳定,不会因为改名而丢失登记记录。
需要注意别把跳转地址写进索引文件。系统的 301 跳转管理用于设置 URL 重定向,如果分片地址曾经改过路径,索引文件里应更新为跳转后的目标地址,否则每次抓取都要多消耗一次请求。
拆分后怎么推送
拆分解决的是全量登记,新增与改动的加速发现仍要靠推送。AnQiCMS 的链接推送管理支持向搜索引擎推送新内容以加速收录,包含百度与 Bing 的主动推送;这与站点地图自动生成是两条并行通道。
分工可以这样定:
| 分片方式 | 适用站点形态 | 维护动作 |
|---|---|---|
| 按栏目 | 栏目结构稳定、页面量大 | 栏目内容变动后重生成该分片,索引文件更新时间 |
| 按发布日期 | 资讯流、博客更新频繁 | 历史分片不动,只生成当期分片并追加进索引 |
| 按内容模型 | 字段差异大的产品与文档站 | 模型调整后重生成对应分片,避免混排超长地址 |
| 按语言或站点 | 多语言、多站点 | 每个分片地址域名单一,便于单独排查抓取失败 |
新发布的文档走主动推送,全量面靠分片文件周期性重提交,索引用途与登记用途各管一段,不互相替代。
拆分后怎么验证
看三个指标:每个分片的地址数是否在容量内、抓取失败列表是否集中在某个分片、索引量与分片地址数的差值是否收敛。
如果只有某个分片失败率高,问题一般在该分片的生成规则,比如混进了报错页或跳转地址;如果全部分片索引都低,方向应回到内容质量与站内入口结构,而不是继续拆分。
常见问题
问:索引文件能套几层? 可以再套一层,但层级越深抓取路径越长,一般一层足够,不建议嵌套使用。
问:分片地址需要改名吗? 不要频繁改名。改名会让原有登记失效,还会引入跳转消耗;确需改名时同步更新索引文件并配置 301 重定向。
问:小站要不要也拆? 不必。地址量远低于容量上限时,单文件更省事,拆分只在触顶或即将触顶时才有收益。
问:分片里的最后修改时间怎么维护? 按分片实际生成或内容真实改动的时间填写,不要在整站重建时把所有分片时间统一刷成新值。