站点地图(sitemap)常被当成“提交了就等着收录”的工具,实际上它只解决一件事:把 URL 主动告诉搜索引擎,减少纯靠链接爬行带来的遗漏。至于是否抓取、是否收录,仍由搜索引擎根据页面质量和站点整体情况判断。所以更值得花时间的,是放对文件、写对内容、保持更新。
文件放在哪,怎么被找到
最省事的做法是把 sitemap.xml 放在站点根目录,然后在 robots.txt 里用 Sitemap 行声明它的完整地址。这样即使没人手动提交,爬虫也能顺着 robots.txt 找到它。
如果站点有多个子域或目录,可以分别生成,再汇总到一个索引文件里。需要注意:一份 sitemap 里通常只能放同一站点(同协议、同主机)下的 URL,把别的域名塞进来一般会被忽略。子域、独立域名各自提交,读起来也更清楚。
单文件的上限与拆分方式
单个 sitemap 文件有两条硬上限:URL 数量(通常 50,000 条)和文件体积(未压缩约 50MB)。任意一条超了就要拆。
拆分有两种思路:按内容类型分(文章、商品、栏目),或按时间分(按月归档)。前者便于单独观察某一类页面的抓取表现,后者便于控制单文件大小。拆完之后用 sitemap index 文件把子文件列出来,只提交这一个索引地址即可。
子文件建议放在同一目录下,路径别写错——一个 404 的子文件会让那一整块 URL 白提交。文件较大时可以 gzip 压缩,但要确保声明的地址指向压缩后的文件,且文件名后缀与内容一致。
哪些 URL 该放进去
- 返回 200、允许被抓取、且希望出现在索引里的规范 URL。
- 新上线、站内链接较少、靠爬行不容易被发现的页面。
- 正文更新过、希望尽快被重新抓取的重要页面。
反过来,下面这些不建议放:
- 设置了 noindex 的页面,两者诉求互相矛盾。
- 会 301、302 跳转的旧地址,直接写跳转后的目标更有效。
- 404、410 或根本不存在的地址。
- 带大量参数的筛选、排序 URL,除非这些页面确实需要被索引。
- 分页、标签、站内搜索结果页等低价值或重复度高的地址,是否放入要看站点策略。
容易踩的几个误解
提交等于收录
不是。sitemap 只影响“发现”,页面能否进索引取决于内容质量、重复程度、站点整体可信度等。提交后长期不收录,应该回头查页面本身,而不是反复提交。
URL 塞得越多越好
把无价值页面一起塞进去,既稀释了有效信号,也占用抓取资源。宁少而准。
lastmod 随便填
时间戳与页面实际修改情况不符时,会被判断为不可靠,之后即使真的更新也难获得优先抓取。模板批量改动导致全站时间一起变化的情况尤其要注意。
索引文件里混入错误地址
索引文件本身也是 XML,里面的子文件地址必须可访问、可解析。一个子文件返回错误,可能连累对整份提交有效性的判断。
维护节奏与自查顺序
- 确认 robots.txt 中声明的地址能正常打开,返回 200 且内容是 XML。
- 检查是否有 noindex、重定向、404 地址混入,先清理掉。
- 核对 URL 数量与文件体积是否接近上限,接近就拆分。
- 子文件地址逐一验证,再用索引文件统一提交。
- 新增页面按天或按小时更新,下线页面及时移除,别只增不减。
- 隔一段时间对比“已提交”与“已收录”的数量差,差异大的那部分才是要重点分析的对象。
sitemap 能保证的是“你告诉过它”,不是“它会收录”。把它当成一份干净、及时、可维护的 URL 清单,比当成收录开关更接近它的实际作用。