很多人把站点地图(sitemap)当成催收錄的工具:文件一提交,就等着收錄數字往上涨。實际關系更朴素一些——sitemap 解决的是「蜘蛛知不知道有這個地址」,也就是 URL 發現這一环;抓不抓、收不收,是後面两步的事。把它当清單用可以,当收錄承诺用就容易走偏。
sitemap 能做什么,不能做什么
先把它的位置摆正,後面很多事情就清楚了:
- 能做的:把一批可抓取的規范 URL 一次性摆到蜘蛛面前,减少它靠内鏈慢慢爬的等待;新頁面發布後可以更快被知道;内容有實质更新时,也可以提示重新看一眼。
- 不能做的:不能保證被抓取,不能保證被索引,更不能改變頁面在结果里的位置。抓取配額有限时,蜘蛛仍然會按自己的優先級挑選。
發現是入口,抓取是過程,收錄是结果。sitemap 主要影响第一环,後面两环看的是頁面本身。
哪些 URL 适合放進去
判断标准可以概括成一句话:你希望它出現在搜尋结果里,並且它自己能站得住。
- 返回 200、内容是正文或有效聚合的規范地址;
- 新發布、刚更新過的重要頁面;
- 层級較深、靠内鏈不容易走到的頁面,這類頁面尤其需要 sitemap 帮忙發現。
反過来,下面這些放進 sitemap 基本是给自己添乱:
- 已经設定 noindex 的頁面;
- 被 robots.txt 屏蔽的地址;
- 會跳轉的舊地址、404 地址;
- 篩選、排序、站内搜尋生成的參數组合;
- 登入、购物车、後台、測試环境等不该被索引的頁面。
几種常见的寫法問题
把全站 URL 一股脑塞進去
有人图省事,把所有能生成的地址都寫進去,包括重复頁和參數頁。结果是蜘蛛把配額花在了大量低價值地址上,真正想被看到的頁面反而排在後面。sitemap 追求的是准,不是全。
sitemap 里的地址和 canonical 不一致
頁面自己声明規范地址是 A,sitemap 里提交的是 B,两個信号互相打架。這種冲突不一定立刻出問题,但會让處理過程變慢。两者保持一致是最省事的做法。
文件長期不更新
sitemap 里的 lastmod 如果和頁面實际更新時間對不上,參考價值就會下降。更新频率不用很高,但内容變了,记錄要跟着變。
提交之後的自查顺序
- 從 sitemap 里抽样二三十條 URL,逐條訪問,確認返回狀態和最终落地地址;
- 检查這些 URL 與頁面上的 canonical 是否指向同一個地址;
- 看服務器日誌里蜘蛛是否抓取過 sitemap 文件,以及是否顺着抓了里面的頁面;
- 對已抓取但未收錄的頁面,回到内容层面看:是否有重复、信息量是否過少、是否與其他頁面高度相似。
提交了却没有變化,往下看什么
先分清卡在哪一环:日誌里完全没有抓取记錄,說明還停在發現或抓取环节,要检查 sitemap 是否被讀取、URL 是否被屏蔽;有抓取记錄但没有收錄,問题多半在頁面质量和重复度上;收錄之後又消失,則和内容更新、站点结构變化有關,是另一套排查路径。
sitemap 是一個补充發現渠道,不是收錄開關。把范围收窄,只放真正想要、也确實拿得出手的地址,比堆一份上萬條的清單更有實际意义。