做蜘蛛池的人经常纠结一個問题:目标 URL 到底该靠入口頁里的連結被發現,還是干脆整理成 Sitemap 提交上去。這两條路並不冲突,但它們解决的問题不太一样,混着用容易既没把量做上去,也看不清到底是哪條路在起作用。
Sitemap 的優势是清單明确,劣势是缺少上下文
Sitemap 本质上是一份 URL 清單,搜尋引擎抓取它的成本很低,解析速度也快,适合批量、结构化地告诉搜尋引擎“我這里有哪些地址”。当目标 URL 數量大、层級深、站内互鏈稀疏时,Sitemap 往往是更省事的申报方式。
但 Sitemap 只给地址,不给上下文。一個 URL 出現在 Sitemap 里,並不代表搜尋引擎就認為它值得抓、值得留。它没有锚文本、没有頁面位置、没有和周围内容的语义關系,因此在判断優先級和重要程度时,Sitemap 能提供的信息相当有限。很多站点把几萬條 URL 塞進 Sitemap,實际被請求到的只是其中一小部分,原因通常就在這里。
入口頁内鏈的優势是带上下文,代價是依赖前置條件
頁面里的連結天然带着锚文本、所在段落、周围内容以及頁面本身的權重信号,搜尋蜘蛛顺着連結走的时候,能顺便拿到這些信息。入口頁内鏈的另一個好處是“發現”和“抓取”往往连着發生,不像 Sitemap 那样容易排進队列後長期不動。
代價是它有前置條件:入口頁自身得先被抓到、得能被稳定訪問、連結不能藏在 JS 渲染之後或者被 robots 規則挡住。入口頁一旦不被回訪,里面寫得再整齐的連結也等于零。
两者配合时,比較稳妥的做法
- 目标 URL 數量大、结构規整:先用 Sitemap 兜底,保證地址至少被申报過,再用入口頁内鏈给其中重点的 URL 加一层上下文。
- 目标 URL 數量少、需要强調:以入口頁内鏈為主,Sitemap 作為补充,不必為了几十條 URL 专门维護一個文件。
- 目标 URL 分散在不同域名或子域下:按可提交的域名邊界分別整理 Sitemap,不要混在一個文件里,跨域混装容易被忽略。
- 入口頁里的連結:保持真實可点击、指向最终地址,避免多层跳轉之後才落到目标 URL。
几個常见誤区
- 把 Sitemap 当成“提交即抓取”的通道,忽略了入口頁本身也需要持續被回訪。
- Sitemap 里塞入大量參數頁、篩選頁、重复頁,反而稀释了真正想推的那些 URL。
- 入口頁里只放一條指向 Sitemap 的連結,不放具体地址,等于把入口頁做成了一張目錄頁。
- 两邊長期不一致:Sitemap 里有、入口頁里没有,或者反過来,却從不核對。
發現路径多一條,不等于抓取和收錄就多一份。搜尋蜘蛛的時間和带宽是有限的,最终仍按它自己的判断来分配。
怎么判断哪條路在起作用
看日誌比猜更靠谱。可以重点观察三件事:一是搜尋蜘蛛請求 Sitemap 文件的频率和返回狀態;二是入口頁被訪問的频次,以及訪問之後有没有對目标 URL 的後續請求;三是目标 URL 上出現的抓取請求,其来源或時間戳能否和入口頁的訪問對上。
如果 Sitemap 抓得很勤,但目标 URL 上几乎没有後續請求,說明清單被讀取了却没有被優先處理;如果入口頁本身的訪問量就很低,那問题多半出在入口頁,而不是連結的寫法上。
小结
Sitemap 和入口頁内鏈不是二選一的關系。Sitemap 解决“有哪些地址”的覆盖問题,入口頁内鏈解决“這條地址為什么值得看”的上下文問题。實际运营中比較常见也比較好维護的做法是:用 Sitemap 保證覆盖面,用入口頁内鏈突出重点,然後定期用日誌回過头核對两條路各自的實际产出。