站点每發一批新頁面,运营都關心同一個問题:蜘蛛什么时候能看到。答案並不取决于某一個設定,而取决于有多少條路通向這些 URL,以及每條路是否真的通着。
几條常见的發現通道
- 内鏈:從已被频繁抓取的頁面鏈向新頁面,這是最稳定的一條路。
- Sitemap:批量声明 URL,适合兜底和补齐,但更新後不保證立刻被讀。
- 主動推送:通過搜尋引擎提供的接口提交單個或少量 URL,用于新内容或改動内容。
- RSS / Atom:更新频繁的栏目用订阅源輸出,部分抓取程序會定期讀取。
- 站外連結:外部頁面指向新 URL,能形成另一條獨立入口。
- 歷史重訪:曾经被抓過的 URL 被再次訪問时,若它已改版並鏈出新頁面,也算一條路。
這些通道之間不是替代關系。關掉其中一條,剩下的通道仍要承担覆盖任務,只是效率會下降。
推送只是把 URL 放進队列
很多誤解集中在推送接口上,以為提交了就等同于被處理。實际流程大致是:接口接收 URL,進入待抓列表,然後由抓取調度按自己的节奏安排。中間還隔着判断——這個 URL 是否允许抓取、是否重复、站点目前响應是否正常。
推送解决的是“蜘蛛知不知道有這個 URL”,不解决“蜘蛛什么时候来抓、抓几次、要不要留下”。
所以推送之後仍然要看日誌,而不是提交完就当任務結束。
内鏈這一條路最容易被低估
新頁面如果只在同批次的新頁面之間互相連結,實际上形成的是一個封閉小组——里面的 URL 都還没被抓過,蜘蛛没有理由從外部進入。更可行的做法是從已有抓取记錄的頁面鏈出,比如首頁、栏目首頁、内容列表頁,或者任何在日誌里出現频率較高的模板頁。
加連結时留意几点
- 連結是服務端輸出的 HTML,而不是加载後才拼接出来的。
- 連結文字能說明目标頁面的主题,避免清一色的“点击查看”。
- 不要给站内正常入口加 nofollow,那會削弱這條通道。
- 新頁面本身也要向下鏈出,形成可繼續走的路径,而不是死胡同。
Sitemap 的角色是兜底和补齐
Sitemap 覆盖面广,但不擅長實时。它更适合處理两類情况:一是頁面數量多、内鏈难以全部覆盖;二是頁面位置較深,從入口走進去需要经過多跳。使用时注意 URL 必须返回正常狀態碼,已刪除的頁面及时移除,lastmod 與實际改動時間保持一致。較大的站点拆成索引加分片,避免單個文件過大導致讀取不完整。
RSS 與栏目頁适合更新型内容
资讯、公告、商品上新這類更新节奏稳定的栏目,用 RSS 輸出最近若干條 URL 是成本很低的做法。它的價值在于持續暴露“最近變化了什么”,而不是替代 Sitemap 的全量声明。
怎么確認某條路真的通了
- 在抓取日誌里篩選新 URL,看是否有訪問记錄,以及首次訪問距發布過了多久。
- 检查该 URL 的服務器响應,確認不是 404、5xx 或長時間重定向。
- 核對 robots.txt 與頁面上的 noindex,排除被主動拒绝抓取的情况。
- 確認内鏈所在頁面本身是被抓取的,否則鏈路起点就不成立。
- 對比同類頁面的表現,判断是單頁問题還是整批通道問题。
如果日誌里完全没有痕迹,先怀疑通道断了,而不是怀疑蜘蛛不感兴趣;如果日誌里有訪問但频次很低,那更可能是站点整体抓取节奏的問题,需要回到站点结构和响應质量上找原因。
一個可执行的發布顺序
發布前確認内鏈入口已经存在並能正常点击,同时更新 Sitemap;發布後通過推送接口提交本次新增或改動的 URL;随後几天观察日誌,確認首批訪問已经發生。若某批頁面長期没有任何抓取记錄,再补充站外連結或調整内鏈位置,而不是反复重复推送。
把 URL 發現看成多條並行的通道,比指望某一個動作更接近實际情况。通道越多、越通,新頁面進入抓取流程的效率通常也更稳定。