多數站点在做 URL 發現时,习惯只盯两件事:XML Sitemap 有没有提交、内鏈有没有铺到位。這两件事确實重要,但它們只覆盖了「已知 URL 的搬运」。当新栏目、新专题、新一批詳情頁第一次上线时,蜘蛛往往需要一個額外的入口提示,這就是补充發現路径存在的意义。
XML Sitemap 與内鏈的覆盖邊界
XML Sitemap 擅長批量声明,前提是你已经知道這些 URL 存在,並且能稳定生成文件;内鏈擅長權重传導和路径连續性,前提是頁面能被抓到、連結能被解析出来。以下几種情况會同时落在两者的盲区里:
- 新頁面還没進入任何列表頁,也没有被導航引用;
- 列表頁是前端异步渲染,首屏 HTML 里没有連結;
- Sitemap 分片更新滞後,或者生成任務失敗没有告警;
- 頁面被參數、分頁、排序切成了多條路径,入口被稀释。
這几類情况下,加一條补充入口,往往比反复調整内鏈位置更直接。
三類可用的补充入口
HTML 站点地图頁
在站点底部放一個 /sitemap 或 /site-map.html 之類的 HTML 頁面,按栏目列出主要入口連結。它的作用是给蜘蛛一條可爬、可解析的静態通道,不依赖 JS,也不依赖 XML 文件是否被正常讀取。頁面本身要能被 robots.txt 放行,連結用真實的 a 标簽,而不是按钮或点击事件。
RSS / Atom Feed
Feed 天然按時間倒序輸出最新 URL,适合更新频繁的栏目。它不需要全站覆盖,只要覆盖「最近有更新的那部分」即可。Feed 文件要保持稳定輸出,避免出現空文件、大量重复條目或者只在特定 UA 下才返回内容。
外鏈與内容分發
外部平台的引用連結是蜘蛛發現新域名的常见入口之一。這里不需要刻意堆量,重点是連結指向的頁面可訪問、返回正常狀態碼,並且落地頁内容與連結描述一致。指向 404、跳轉鏈過長或者需要登入才能看到内容的外鏈,基本等于白给。
补充入口解决的是「第一次被發現」。能不能被持續抓取,仍然取决于站点响應速度、狀態碼稳定性和内容更新节奏。
落地顺序與观察方法
- 先確認服務器與狀態碼稳定,避免蜘蛛来了却拿到 5xx 或超时;
- 补上 HTML 站点地图,頁面放在導航可到達的位置;
- 為高频更新栏目開啟 Feed,检查輸出是否為有效 XML;
- 在日誌里按 UA 分组,观察這些通道對應的抓取记錄是否出現;
- 對比新 URL 首次被抓的時間,判断入口是否真正生效。
观察周期建议按周看,而不是按小时。抓取調度本身存在排队,短時間内没動静不代表入口無效;但如果连續多周毫無记錄,就要回头检查連結是否真的暴露在 HTML 里,而不是藏在脚本拼接的内容中。
几個容易踩的坑
- HTML 站点地图里連結數過多,一頁塞進几千條,反而降低可讀性,按栏目拆分更稳;
- Feed 只輸出标题不輸出完整連結,或者連結被重定向包裹;
- 补充入口指向的頁面需要登入、需要 Cookie 才能訪問,蜘蛛拿到的是跳轉頁;
- 把补充入口当主力,反而放松了 Sitemap 和内鏈的基础维護。
整体思路是把 URL 發現拆成几條互不依赖的通道:Sitemap 负责批量声明,内鏈负责路径與權重,HTML 站点地图和 Feed 负责兜底與增量提示,外鏈负责新域名的首次曝光。任何一條通道出問题,其他通道仍然能维持基本的發現能力,這比押注單一入口可靠得多。