頁面改完,很多人會立刻去看搜尋结果有没有變化。但蜘蛛不是守着你的編輯器工作的,它有自己的一套再抓取安排。與其追問“到底多久来一次”,不如先弄清楚:哪些因素會左右它下一次到訪的時間。
蜘蛛不會因為你儲存了修改就立刻回来
再抓取的节奏,主要由蜘蛛自己的調度决定。你這邊能做的,是给出一個“這頁值得再看一遍”的信号。信号越明确,它在下一轮調度里排到這一頁的概率就越高。這個過程没有固定时長,也没有办法提前预约。
影响再抓取時間的几個現實變量
這次改動的幅度
把标题里的一個词換掉,和把整篇文章重寫、換掉配图、調整版式,在蜘蛛那里不是同一件事。抓回来的内容與它上次留存的内容差异越大,越容易被判定為需要重新處理;反過来,只動了几處标点或空白,它下次来可能看不出区別。
頁面在站内的位置
离首頁近、被多個栏目鏈到的頁面,本来就是蜘蛛的常客,改動之後被再次取走的間隔通常更短。埋得深、只有一條内鏈指向的詳情頁,往往要等上一級列表頁被抓過,才有机會被顺路再走一遍。這也是為什么更新老内容时,顺手在相關頁面补一條鏈過去,比干等要實际得多。
Sitemap 與提交入口
Sitemap 里的 lastmod 可以作為參考,但蜘蛛是否采用、采用到什么程度,並不由你决定。更稳妥的做法是:真的改過才更新自己這邊的時間标记,不要批量刷;同时把重要頁面的地址稳定在同一份 Sitemap 里,別今天換地图、明天換路径。
站点自身的抓取歷史
如果一個站点長期响應慢、错誤多,蜘蛛對這里的整体抓取节奏都會收紧,單頁更新也很难被優先安排。反過来,服務器稳定、頁面返回干净的站点,在同样的改動幅度下,往往能被更快地回头看一眼。
怎么確認蜘蛛已经来過
- 在服務器日誌里按路径過滤,看该 URL 最近一次被抓取的時間與狀態碼。
- 把抓取時間與你的改動時間對一下,判断它拿到的是改前還是改後的版本。
- 留意狀態碼:200、301、304、404 各自說明的情况並不相同。
- 如果多次抓取的時間点几乎没變化,先检查是不是 CDN 或缓存层把舊版本递了出去。
可以顺手做的几件小事
- 改動較大的頁面,在站内相關位置补一條内鏈,给它一個新的入口。
- 把确實更新過的 URL 放進 Sitemap,不動没改過的條目。
- 確認頁面返回的 HTML 里已经包含新内容,而不是靠脚本稍後再补。
- 清理指向该頁的失效連結和過長跳轉鏈,別让蜘蛛在中間绕路。
- 用日誌观察一轮再决定是否繼續調整,不要凭感觉反复折腾模板。
再抓取是蜘蛛的調度结果,不是你直接下達的指令。能做的只是把頁面改清楚、把入口留顺畅,剩下的交给它的节奏。
與其每天守着發布時間刷新结果,不如隔一段時間回看日誌:這一頁最近被抓過几次、抓到了什么版本、下次要不要再為它铺一條路。把這些弄清楚,比追問“多久”更有用。