網站收錄

抓取成功不等于被收錄:從响應碼到入索引的排查顺序

服務器日誌里能看到抓取记錄,索引里却找不到頁面,問题往往不在抓取本身。本文把抓取和收錄拆成几道判断:内容是否真的取到、指令是否允许索引、canonical 指向哪里、頁面是否具备獨立價值,並给出一條可执行的排查顺序,帮你把两類問题分開處理。

網站收錄

抓取成功不等于被收錄:從响應碼到入索引的排查顺序

很多人判断一個頁面有没有被收錄,习惯直接看索引报告或者搜尋 site: 的结果。但如果換個角度,先去服務器日誌里看抓取记錄,往往會遇到另一種情况:爬虫明明来過,返回碼也是 200,索引里却找不到這個地址。這时候需要先分清两件事:抓取(crawl)和收錄(index)。

抓取和收錄是两道不同的關

抓取指的是爬虫把 URL 對應的内容取回去,只說明它發現了這個地址並且能訪問。收錄則是搜尋引擎在抓取之後,對内容做解析、去重、质量判断,最後决定是否寫入索引並允许被检索。從抓取到入索引之間還有若干道判断,任何一道没過,日誌里都會留下抓取记錄,但索引里看不到结果。

第一關:抓取本身是否真的成功

日誌里的 200 不等于内容被完整取到。常见的干扰有:

  • 返回 200 但正文是空壳,内容依赖 JS 渲染,而渲染阶段没有跑起来;
  • 返回 200 的其實是软 404 頁面,内容與错誤頁高度相似;
  • robots.txt 屏蔽了 CSS 與 JS,爬虫拿到的是残缺頁面;
  • 頁面被登入墙、驗證碼或 CDN 的频控拦在门外。

這一關要確認的是:返回碼正常、正文能被取到、渲染後的内容與用戶看到的基本一致。

第二關:可索引性判断

抓取成功之後,搜尋引擎會先看這個頁面允不允许被索引。meta robots 里的 noindex、HTTP 头里的 X-Robots-Tag,以及 canonical 指向了別的地址,都會让頁面即使被抓取也不進入索引,或者索引里挂的是另一個 URL。此外,如果同一批内容存在多個近似版本,搜尋引擎通常只會挑一個作為代表,其余的以替代頁面的形式存在,在报告里往往表現為已抓取但尚未编入索引。

第三關:是否被選中

指令上允许索引,也不代表一定會被收錄。這一层更多是價值判断:頁面是否有獨立信息、主体内容占比是否够、與站内其他頁面的差异是否明顯。批量生成的列表頁、内容高度相似的地域頁,容易出現抓取正常但收錄很少的情况。

建议的排查顺序

  1. 用日誌或 URL 检查工具確認最近一次抓取時間、返回碼,以及抓取的是哪一個 URL 版本;
  2. 检查 robots.txt 是否放行该目錄,以及頁面是否带有 noindex;
  3. 查看 canonical 指向的是自己還是別的地址;
  4. 對比站内是否存在内容近似的多個版本,確認谁是首選;
  5. 检查正文主体是否完整,是否被導航和推荐模块淹没;
  6. 確認该 URL 有内鏈可達,並且出現在 sitemap 中。

按這個顺序走,可以把抓取問题和收錄問题分開,避免在一個点上反复改動。

日誌能說明什么,不能說明什么

有抓取记錄,只能說明發現和訪問發生過,不能作為收錄的證據;反過来,某段時間日誌里没有某個地址,也不代表它没進索引,可能只是已有缓存、暂时不需要重抓。判断收錄,最终還是要回到索引狀態本身,把日誌当作抓取侧的补充信息。

抓取是過程,收錄是结果。先把過程里的異常排掉,再去解释结果。

實操中比較省事的做法是:為一批重点頁面單獨建個小清單,记錄抓取時間、返回碼、canonical、是否 noindex、索引狀態這几項,定期回看。這比事後集中排查更容易定位到變化發生的节点。