搜尋抓取

内容改動之後:怎么让搜尋蜘蛛重新抓取已發現的 URL

URL 被發現只是第一步,能否被再次抓取取决于變化信号是否真實可信。本文按日誌確認、服務器時間戳、Sitemap lastmod、頁面本体變化、内鏈入口更新、主動通知的顺序,给出一套可执行的再抓取安排,並列出几類常见的無效做法。

搜尋抓取

内容改動之後:怎么让搜尋蜘蛛重新抓取已發現的 URL

URL 被發現之後,很多站点會預設蜘蛛以後還會回来。實际情况是,再抓取取决于抓取资源怎么分配:如果一個地址長期没有變化,或者變化信号不可靠,回訪間隔就會被慢慢拉長。想让已發現的地址保持新鲜,需要给它一個再来一次的理由。

先確認蜘蛛上次究竟抓到了什么

打開服務器日誌,筛出目标 URL 最近几次的訪問记錄,重点看狀態碼、响應体大小和抓取時間。這一步比任何猜测都有用。

  • 200 且内容有變化:属于正常更新,重点看變化信号有没有传出去。
  • 200 但内容一模一样:回訪間隔自然拉大,属于正常現象。
  • 304:說明缓存协商在工作,省流量,但不會加快再抓取。
  • 5xx 或超时:先修服務端,再谈内容更新,否則更新也传不出去。

服務器端的時間信号要真實

Last-Modified 與 ETag 是蜘蛛判断頁面是否變化的第一手依據。如果每次請求都返回目前時間,等于告诉蜘蛛每次内容都變了。短期或许能骗来几次抓取,長期會削弱整站信号的可信度,得不偿失。

時間戳是一種承诺,不是開關。全站统一刷新時間戳,換来的往往是整体信任度下降。

Sitemap 里的 lastmod 要克制

lastmod 只應标注真正發生内容變化的 URL。整站 lastmod 全部寫成同一天,是相当常见的错誤做法,會让這個字段失去參考價值。分片 sitemap 可以按更新频率来拆,例如把高频更新的列表頁、聚合頁放在一片,把長期稳定的詳情頁放在另一片。

一個简單的分组思路

  • 每天或每周有新增内容的栏目,單獨成片。
  • 改動很少的說明頁、政策頁,合並成一片。
  • 已经下线的頁面從 sitemap 中移除,而不是保留舊的 lastmod。

頁面本体的變化才算變化

蜘蛛對比的是正文主体、标题、结构化資料這類核心内容。只換頁脚的版權年份、只挪動广告位、只改一句推廣文案,通常不會被当成有效更新。如果只是零星改了几個字,可以攒一攒再统一發布,比反复微調更有效。

内鏈入口也要跟着動

更新的内容如果出現在首頁、栏目列表頁靠前的位置,蜘蛛顺着内鏈走過来时就會重新訪問這個地址。反過来,已经把内容更新了,但入口被挤到深處分頁里,再抓取的時間点會被明顯推後。内容和入口最好一起調整。

主動通知是补充,不是主渠道

IndexNow 已被 Bing、Yandex 等搜尋引擎支持,适合有明确更新事件的站点。需要留意的是,Google 的 sitemap ping 已经停用,Indexing API 官方僅面向招聘信息與直播類结构化資料,普通頁面並不适用。频繁推送没有變化的 URL,效果會明顯递减,甚至让後續提交被忽略。

几件不要做的事

  • 為了催抓取,反复修改 lastmod 或頁面上顯示的更新時間。
  • 每次發布一点点改動,就把全站 URL 重新提交一遍。
  • 頁面已经失效,却保留 200 狀態碼只改文字。
  • 更新時間用脚本渲染,蜘蛛拿到的 HTML 里根本看不到。

可执行的检查顺序

  1. 用日誌確認目标 URL 上一次抓取的狀態碼與時間。
  2. 把 5xx、超时、空响應這類問题先修掉。
  3. 確認 Last-Modified、ETag 反映的是真實修改時間。
  4. 检查 sitemap 的 lastmod,只保留真正變化的地址。
  5. 從首頁或列表頁给出到更新頁面的内鏈入口。
  6. 有明确更新事件时,再考虑 IndexNow 之類的通知方式。

再抓取不是一次性的動作,而是長期的信号维護。把時間戳、sitemap、内鏈和服務器稳定性這几件事做扎實,蜘蛛回訪的节奏會更接近内容實际的更新节奏。