站点运营

站点运营:站点地图自查,把要被抓的 URL 清單维護清楚

站点地图是给爬虫的一份 URL 清單,寫對能帮新頁面更快被發現,寫错則可能浪費抓取预算。本文從地址一致性、lastmod 真實性、该收與不该收的頁面、生成與更新流程几個方面,整理一套可以照着做的 sitemap 自查方法。

站点运营

站点运营:站点地图自查,把要被抓的 URL 清單维護清楚

站点地图不是提交完就完事

站点地图(sitemap)本质上是一份清單:告诉爬虫我們有哪些 URL、大概什么时候更新過。它不保證收錄,也不直接带来排名,但能让有價值的頁面更快進入抓取队列,减少靠外鏈慢慢被發現的時間。很多站点的問题不是没有 sitemap,而是這份清單長期没人管,里面混着死鏈、重定向和一堆不该出現的動態地址,反而消耗了抓取预算。

一份能用的 sitemap 應该長什么样

  • 只放返回 200、可公開訪問的頁面地址,登入後頁面、後台地址不要寫進去。
  • 地址用绝對 URL,並與頁面上的 canonical 保持一致,避免同一内容出現两種寫法。
  • lastmod 填真實的最後修改時間,不要每次發布都全站刷新成当天。
  • 單個文件通常控制在 5 萬條 URL 以内、未压缩体积 50MB 以内,超出就拆成多個文件並用 sitemap index 匯總。
  • 收錄重点:栏目首頁、文章詳情、有獨立價值的专题頁;不收錄篩選參數頁、站内搜尋结果頁、纯标簽聚合頁。

几個高频問题,逐條對照检查

地址與线上不一致

http 與 https、带 www 與不带 www、结尾斜杠有無、路径大小寫,這些只要有一處不统一,清單里就可能出現大量會跳轉的地址。做法很简單:從 sitemap 里随机抽一批地址,用脚本批量請求,看最终落到哪個 URL,把出現 301 的寫法统一掉。

混入不该出現的頁面

常见的有:已经下线的舊栏目、被设成 noindex 的頁面、404 頁面、以及分頁列表的第二頁之後(首頁通常保留一條即可)。這些地址被反复抓取,只會让真正需要更新的内容排在後面。

lastmod 不诚實

如果每次生成都把全站時間改成目前時間,爬虫很快會判断這個字段没有參考價值,之後就不再依據它安排抓取。正确做法是取内容真實的更新時間,只让改動過的頁面發生變化。

生成逻辑失控

有些程序會把所有列表頁、标簽頁、分頁组合自動輸出,站点規模一上来,清單就膨胀到几萬條。建议给生成規則加上白名單:只輸出内容類型明确、模板獨立的頁面。

把它接到日常流程里

  1. 發布环节自動更新:内容上线、下线时同步触發 sitemap 重新生成,不靠人工導出。
  2. 每周抽查一次:随机取二十條地址,检查狀態碼、canonical 和頁面是否正常渲染。
  3. 每月對帳日誌:看爬虫實际抓了哪些地址,清單里長期無人訪問的頁面,判断是價值不足還是入口太弱。
  4. 每季度清理一次:刪除已下线栏目和長期無更新的低质頁面,保持清單精简。
  5. 在 robots.txt 中寫明 sitemap 地址,並在搜尋资源平台提交,方便统一查看抓取情况。

別把它当成萬能钥匙

站点地图只是發現渠道之一,導航、内鏈和外部連結同样决定頁面能不能被找到。清單寫得再漂亮,頁面本身没有内容價值,也不會带来想要的结果。

把 sitemap 当成一份需要定期對帳的清單:地址對得上、時間如實、该收的收、该删的删。做這件事花不了多少時間,但能让你在排查“為什么新頁面迟迟没動静”时,少一個怀疑對象。