蜘蛛池做的事情,本质上是把一批 URL 送到蜘蛛面前。入口頁互鏈属于被動發現,蜘蛛要顺着連結一层层爬過来;而 sitemap 與各類主動推送接口,是把“我這里有新 URL”這件事直接说出去。两者不是替代關系,配合使用才能让發現环节更稳。
一、被動發現與主動告知的分工
三種通道各有邊界,混着用容易出問题:
- 内部互鏈:最基础,也是蜘蛛判断頁面重要性的參考之一。缺点是鏈路長、传递慢。
- sitemap:批量、结构化地列出 URL,适合數量多、层級深的站点结构。它不保證被抓,只是提供一份清單。
- 推送接口:把單個或少量 URL 主動提交,时效性最好,但通常有每日配額。
二、sitemap 的寫法要点
结构與分片
- 單個 sitemap 文件建议不超過 5 萬條 URL,未压缩体积不超過 50MB,超出就分片並生成 sitemap index。
- 只放規范 URL,不要放會 301 跳轉的地址、被 robots.txt 屏蔽的路径或 noindex 頁面。
- URL 中的 & 等字符要按 XML 規則轉义,否則解析會出错。
- 分片按目錄或业務切,後面排查問题时好定位。
lastmod 怎么填
lastmod 只在頁面内容真正變化时更新。不少程序在每次生成 sitemap 时把 lastmod 统一刷成目前時間,短期看像“很活跃”,長期會让這個字段失去參考價值,蜘蛛也會逐渐不再依赖它。
声明位置
把 sitemap 放在域名根目錄,並在 robots.txt 里用 Sitemap 指令声明绝對地址。多域名的情况下,每個域名各自一份,不要互相混用。
三、主動推送的几個通道
- IndexNow:Bing 等引擎支持,提交一次多引擎共享,接口简單,适合自動化。
- 搜尋资源平台接口:百度等平台的普通收錄與快速收錄接口,通常按天計算配額。
- RSS / Atom:适合更新频繁的列表型頁面,蜘蛛會定期拉取。
- 入口頁自身的更新:把新 URL 放在入口頁的可见位置,仍然是有效的补充。
每個通道的配額都有限,優先推给真正希望被發現的頁面,不要拿来刷無意义的參數頁。
四、和入口頁怎么配合
- 入口頁新增連結後,同步更新 sitemap,让两邊保持同一批 URL。
- 如果希望入口頁本身被重新抓取,也可以把它放進 sitemap,但別把每個入口頁都标成高频更新。
- 推送前先做一次去重和存活检查,避免把 404、跳轉鏈推上去。
- 推送记錄和訪問日誌對照看,才能知道哪些 URL 真的被来過。
五、常见誤区
- 把 sitemap 当成收錄保證,認為提交了就會進索引。
- sitemap 長期不更新,里面混着大量已失效連結。
- 同一批 URL 每天重复推送,占用配額却没有任何變化。
- sitemap 里全是入口頁,真正需要内容支撑的目标頁反而一條没有。
主動告知只能缩短“被發現”的時間,是否抓取、何时抓取、抓多少,仍然由搜尋引擎按自己的策略决定。
六、几條落地建议
- 先確認入口頁和 sitemap 都能正常訪問,再谈推送。
- 推送分批進行,观察一轮日誌後再調整频率。
- 定期清理 sitemap 中的死鏈和跳轉鏈,保持清單干净。
- 把 sitemap、推送、互鏈当成三條並行的线,而不是只依赖其中一條。