站点地图放在子目录还是根目录,能覆盖的地址范围由什么决定
站点地图放在子目录还是根目录,能覆盖的地址范围由什么决定?由 Sitemap 协议的目录归属规则决定:一份站点地图只能包含与其所在路径同前缀的地址。放在根目录可以覆盖全站地址,放在子目录就只能覆盖该子目录前缀下的页面,其他目录的地址写进去也无效。所以覆盖范围不由文件名决定,也不由提交动作决定,而由文件摆放的路径决定。
协议里的归属规则是怎么写的?
sitemaps.org 协议原文给了明确示例:位于 /catalog/ 目录下的站点地图,可以包含任何以 /catalog/ 开头的地址,但不能包含以 /images/ 开头的地址。协议同时给出了这条规则的依据:如果你有权修改某一路径下的站点地图文件,就默认你也有权提供该路径前缀下地址的信息。换句话说,摆放位置本身就是一种权限声明,协议靠位置来判断这份地图说的话能算到哪些地址头上。
放在子目录会漏掉哪些页面?
典型误放是把地图生成到某个栏目目录下,比如只覆盖文章前缀,于是图片目录、标签聚合页、单页面全都不在覆盖范围内。这种漏法在后台看不出来:地图文件本身是有效的,提交也不报错,缺的地址只是永远不出现在清单里。判断方法有两步:把地图里的地址数量与站点实际内容量级对一遍,看缺口有多大;再抽查几个不在地图前缀下的地址,确认它们是否本来就该被收录。AnQiCMS 的站点地图由系统自动生成,生成后要核对的就是摆放路径与想覆盖的前缀是否一致。
两种可行做法怎么选?
地址结构简单的站点,直接把地图放根目录,一份覆盖全站,维护成本也低。内容多、栏目划分清晰的站点,可以按目录分片:每个前缀一份子地图,各自放在对应目录下,再用一份索引文件把它们汇总提交。分片的好处是各栏目独立更新互不牵连,代价是多一层索引要维护。另外要注意:地址结构迁移时,旧地址要配 301 重定向指向新地址,站点地图本身不承担跳转职责,这两件事不能互相替代。
跨子域为什么不能靠挪位置解决?
前缀规则以域名为边界,跨子域的地址不靠把文件挪来挪去解决:每个子域要有自己的地图,并分别在对应的搜索平台提交。同理,同一份地图要提交给多个搜索引擎时,也要在各家平台分别提交,提交动作不能共用。把位置规则与提交规则分开记,就不会出现”地图挪到根目录了,怎么另一个子域还是没被收录”这类困惑——那是提交面的问题,不是覆盖面的问题。
常见问题
问:地图放在根目录是不是就等于全站收录? 答:不是。覆盖范围是收录的前提,不是收录本身;内容质量、抓取频率、地址可访问性仍然各自独立起作用。
问:索引文件也要遵守前缀规则吗? 答:索引文件与其汇总的子地图各自受所在路径的前缀约束,分片时按前缀对应摆放最省事。
问:换域名后地图要怎么处理? 答:新域名下生成新地图并提交,旧域名地址配 301 重定向过渡,不要在新地图里继续列旧地址。