说到让搜索蜘蛛找到 URL,最常用的两个抓手是 Sitemap 和站内链接。很多站点把它们当同一件事来维护,结果要么重复劳动,要么两边互相打架:Sitemap 里列了一堆页面,站内却没有任何入口;内链走得通的页面,Sitemap 里又长期缺失。把两者的职责分开看,管理会清爽很多。
Sitemap 解决的是“我有哪些 URL”
Sitemap 本质是一份候选清单,它回答的问题是:这个站点希望被看到的地址都有哪些。它的优势在于覆盖面和效率,不需要蜘蛛沿着链接一层层爬,就能拿到一份完整度较高的列表。
- 适合列举层级较深、内链不容易覆盖到的页面;
- 适合新页面刚上线、内链还没铺开时的早期暴露;
- 适合数量庞大、靠导航难以穷举的归档类页面。
需要记住的是,Sitemap 只是提出候选。它不是收录开关,也不是抓取承诺,蜘蛛仍然会按自己的判断决定是否访问、何时访问。
内链解决的是“这些 URL 怎么被走到”
蜘蛛在站内的行动方式是跟着链接走。链接决定了路径长度、入口数量,以及一个页面是不是长期处于可达状态。这部分工作 Sitemap 替代不了。
- 首页和栏目页的导航,决定了站点的基本层级;
- 面包屑和列表页,决定了详情页离入口有多远;
- 正文里的相关链接,决定了页面之间的引用关系。
一个只在 Sitemap 里出现、站内没有任何链接指向它的页面,实际上接近孤岛状态。清单里有名字,路却走不通。
三类常见的错配
Sitemap 里有,内链里没有
通常是历史遗留的栏目页、活动页,或者由后台自动生成但从未挂到导航上的地址。这类 URL 即使被抓取,也很难获得后续访问。
内链里有,Sitemap 里没有
常见于改版后新增的栏目、临时页面、参数变体,或者由程序拼出来的列表页。它们能被走到,但清单里没有登记,规模一大就容易失控。
两边都在,但内容对不上
比如 Sitemap 里还留着已经 404 的旧地址、被 robots 屏蔽的路径,或者指向了带追踪参数的变体。清单本身不干净,核对时就容易误判。
一次可执行的核对顺序
- 导出当前 Sitemap 中的全部 URL,去重后形成清单 A;
- 用站内抓取工具或爬虫从首页出发,抓出所有内链可达的 URL,形成清单 B;
- 比对 A 与 B:只出现在 A 里的,检查是否需要补内链入口;只出现在 B 里的,检查是否需要补进 Sitemap;
- 对两个清单都出现的 URL,抽查状态码、canonical 和 robots 规则,剔除重定向、失效和被屏蔽的地址;
- 改版、上新栏目或批量下架后,重复一次这个流程,而不是只在建站时做一遍。
不要期待它解决收录问题
理顺 Sitemap 与内链,能减少“明明有页面却没人发现”和“清单里全是走不到的死地址”这两类问题。但它不会直接带来收录,也不影响页面在结果中的位置。把它当成一项基础维护:清单保持干净,路径保持通畅,剩下的交给蜘蛛自己的调度。
清单负责让蜘蛛知道有什么,链接负责让蜘蛛走到哪里。两者分开看,问题往往更容易定位。