多數站点把 URL 發現的希望押在 Sitemap 上,這没错,但 Sitemap 只是一個入口。蜘蛛在抓取過程中,還會顺着頁面連結、Feed、更新列表、主動推送接口等路径去找 URL。把這些入口分清楚,能让新内容少绕几道弯。
一、Feed 與更新列表:按時間排序的入口
RSS 或 Atom feed 本身就是一個按發布時間倒序的 URL 列表。對更新频繁的站点来说,feed 比 Sitemap 更轻,蜘蛛抓一次就能拿到最近一批新 URL。
使用时注意几点:
- feed 地址保持固定,不要随栏目改版频繁更換;
- 只放稳定可訪問的頁面 URL,不要放草稿、登入後地址或临时頁面;
- 保留最近一段時間的内容即可,几十到上百條通常够用;
- feed 的 lastBuildDate 與條目發布時間要真實,不要每次請求都刷新成目前時間。
首頁或栏目頁上的“最新文章”“最近更新”区块,作用類似:它给蜘蛛一條從首頁出發、层級很浅的路径。這個区块如果被折叠收起、被异步加载,或者只在登入後可见,蜘蛛可能看不到。
二、主動推送:告诉搜尋引擎“這里有新 URL”
部分搜尋引擎提供主動推送接口,常见形式是提交一條或多條 URL,或者用 IndexNow 一類协议同步给多個引擎。它的定位是“通知”,不是“保證”。
推送成功只代表請求被接收,代表 URL 進入了待處理队列,不代表一定會被立即抓取,更不代表頁面會被收錄。是否抓、何时抓,仍由搜尋引擎根據頁面质量、站点整体抓取情况自行判断。
推送时容易踩的坑:
- 把全站 URL 反复推送,尤其是老頁面、參數頁、重复頁,反而可能稀释真正的新内容;
- 推送接口和 Sitemap、feed 提交的内容互相矛盾,比如推送一個已被 robots.txt 屏蔽的地址;
- 頁面還没上线就推送,蜘蛛来了拿到 404 或跳轉,几次之後這個入口的可信度會下降。
三、标簽頁、聚合頁與站内搜尋
标簽頁、专题頁、年度归档這類聚合頁,也能带出一批 URL。它們的好處是連結集中、更新明顯;風險是容易生成大量低差异頁面,把蜘蛛的路径引向重复内容。
比較稳妥的做法是:聚合頁只保留有實际检索價值的维度,控制每個聚合頁带出的連結數量,避免“标簽套标簽”無限延伸。如果某個聚合頁長期没有獨立内容,可以考虑用 nofollow 或 robots 規則减少它占用的抓取路径。
四、多個入口怎么分工
- Sitemap:全量清單,适合稳定、可索引的 URL,按類型分片;
- Feed:近期更新,适合高频改動的栏目;
- 首頁與栏目更新区块:给重要新頁面一條短路径;
- 主動推送:时效性强的内容,按真實更新量提交,不要刷量。
這几個入口不冲突,但要有主次。入口太多而且内容不一致时,蜘蛛會在同一批 URL 上反复確認,抓取效率反而下降。
五、用日誌確認入口有没有被用
判断某個入口是否有效,最直接的办法還是看服務器日誌:
- Feed 地址最近有没有蜘蛛訪問记錄,抓取频次是否與更新节奏匹配;
- 新 URL 第一次被抓取时,訪問顺序或 Referer 是否指向首頁、栏目頁、feed;
- 被推送的 URL 是否在推送後的一段時間内出現在日誌里;
- 抓取請求返回的狀態碼是否正常,有没有大量 3xx、4xx 落在入口頁上。
如果日誌里長期看不到某個入口的訪問,先检查它是否被 robots.txt 或服務器規則拦住,再检查是否被頁面上的 nofollow、脚本加载方式挡住。入口本身不通,再多的 URL 也送不出去。
URL 發現更像是一套通路,而不是一個開關。Sitemap、feed、更新区块、主動推送各管一段,通路稳定、内容一致、狀態碼干净,蜘蛛才有机會顺着它們把新頁面找出来。