站点地图解决的其实是“发现”问题
搜索引擎抓取一个站点,通常靠三条线:外链带路、站内链接跳转、以及站点地图(sitemap)。前两条依赖页面之间真的连得起来,第三条则是运营者主动交出去的一份地址清单。它的作用不是“提交了就收录”,而是让蜘蛛在有限的抓取时间里知道哪些地址存在、哪些是新改的,减少靠运气碰见的比例。
站点地图出问题的表现往往很安静:文件能打开,格式也没报错,但清单里塞着一堆不该出现的地址,或者该出现的页面根本没进去。下面按顺序过一遍自查要点。
一、确认清单里放什么
判断标准很简单:这个地址是不是你希望被搜索用户看到的正式页面。按这个标准过一遍,常见的几类地址应该排除在外。
- 带筛选、排序、跟踪参数的列表页,除非该参数组合本身就是一个独立内容页;
- 站内搜索结果页,以及翻页层级过深的分页地址;
- 登录、注册、个人中心、后台等需要身份才能访问的内容;
- 测试目录、预发布域名、临时上线的活动页;
- 已经被删除,访问后返回 404 或 410 的旧地址。
反过来,容易被漏掉的通常是:新上线的栏目首页、专题聚合页、内容量较大的文章详情页,以及改版后换了地址的老页面(前提是跳转已经做好)。
二、分片与容量
单个站点地图文件有数量与体积上的约定上限(常见是五万条地址、未压缩不超过 50MB),超过就要拆成多个文件,用一个索引文件把它们串起来。拆分没有固定规则,但按栏目、按内容类型、按更新频率来分更实用,因为后续排查时能一眼看出是哪个部分出的问题。
如果站点有几十万页面,不必强求全部塞进去。优先保证重要栏目、近期更新的内容和有独立价值的详情页在清单里,比平均铺开更有意义。索引文件与各分片文件都要放在能被公开访问的位置,别只在自己电脑上生成。
三、字段怎么填
lastmod
这是最有价值也最容易被滥用的字段。它的作用是告诉蜘蛛“这页自上次抓取后有变化”。如果每次生成文件时把所有页面的时间都刷成当天,这个信号很快就失去意义,蜘蛛也会逐渐不再参考它。建议只在页面正文确实发生改动时更新,并保持统一的时区与日期格式。
changefreq 与 priority
这两个字段的参考价值有限,主流搜索引擎已经表示基本不依赖它们。与其纠结数值,不如把精力放在地址本身是否正确、页面是否真的可访问上。填了不会有坏处,但不必花时间精调。
四、和 robots.txt、内链配合
站点地图需要在 robots.txt 里声明位置,通常写在文件末尾,用完整的绝对地址。这里有个常见的矛盾:robots.txt 里屏蔽了某个目录,站点地图里却还在提交该目录下的地址。两者最好保持一致,避免蜘蛛反复看到“被禁止又被告知存在”的地址。
另外要清楚,站点地图不能替代内链。真正决定页面抓取优先级和权重的还是站内链接结构:如果一个页面只出现在站点地图里,站内没有任何入口指向它,蜘蛛对它的重视程度通常不会高。新页面最好同时在栏目列表、相关推荐或导航里给出入口。
站点地图是补充,不是替代。先把站内链接理清楚,再考虑清单怎么交。
五、一份可执行的自查清单
- 打开站点地图地址,确认访问正常、编码无误、浏览器不报解析错误;
- 抽查若干条地址,逐条访问,确认不是 404、不是多级跳转、不是需要登录的页面;
- 核对协议与主机名,是否与页面上的 canonical 保持一致;
- 检查是否有已下架栏目、测试域名、旧活动页的地址残留;
- 确认新上线的栏目和重要内容已经加入清单;
- 查看分片文件的数量与生成时间,判断是否还在正常更新;
- 对照服务器日志,看蜘蛛是否真的按清单来抓,哪些地址长期没有访问记录;
- 在搜索资源平台重新提交一次,观察后续抓取与收录覆盖的变化。
写在最后
站点地图这件事,做一次不难,难在持续维护。比较省力的做法是把它接入发布流程:内容上线或下架时,清单自动跟着变;每月抽十几分钟抽查一次,看有没有失效地址混进来。把它当成一份需要定期整理的地址台账,而不是一次性提交的任务,长期看更划算。