说到让搜尋蜘蛛找到 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 與内鏈,能减少“明明有頁面却没人發現”和“清單里全是走不到的死地址”這两類問题。但它不會直接带来收錄,也不影响頁面在结果中的位置。把它当成一項基础维護:清單保持干净,路径保持通畅,剩下的交给蜘蛛自己的調度。
清單负责让蜘蛛知道有什么,連結负责让蜘蛛走到哪里。两者分開看,問题往往更容易定位。