服務器日誌里,某個 URL 几乎每天都被蜘蛛訪問,返回碼 200,字节數也正常,但用 site 命令查不到它。這種情况很容易被理解為“蜘蛛不喜欢這個頁面”,實际上更常见的解释是:頁面被抓取了,但没進入索引。抓取和收錄是两件不同的事,中間還隔着一层评估。
抓取與收錄分別看什么
抓取是爬虫把文档取回来的動作,门槛主要是可訪問性、返回碼、渲染成本和抓取配額。收錄則是在取回内容之後,判断這頁是否值得放進索引、能否參與检索。日誌里出現一次成功的 200,只說明内容送達,不代表被采用。
- 抓取侧關注:是否可達、是否被屏蔽、服務端是否稳定、抓取频次與配額。
- 收錄侧關注:内容是否唯一、是否有检索價值、規范信号是否明确、站点整体表現如何。
把這两层混在一起,就容易在日誌里看到抓取就以為“快了”,或者看到不收錄就繼續去刷抓取频次,方向都會偏。
先把日誌讀准
確認被抓的是哪個版本
同一個 URL 可能被抓取的是 HTML 文档、CSS、JS 或图片。真正影响收錄的是 HTML 文档本身。核對时看返回碼、响應字节數、是否命中缓存、是否被重定向,不要只看“有没有蜘蛛”。
分辨真爬虫與伪装請求
User-Agent 可以伪造。用反向 DNS 或官方公布的 IP 段做一次核對,否則可能拿一堆假日誌在分析收錄問题。
看抓取量的分布
如果某個栏目吃掉了大部分抓取,而目标頁只是偶尔出現,問题往往在站点结构和内鏈上,頁面离首頁太遠,缺少稳定的發現路径。
抓取正常但收錄不動时的核對顺序
- 抓取版本是否正确。服務端是否给爬虫返回了简化頁、登入頁、地区跳轉頁或空壳模板。用相同 UA 手動請求一次,和用戶浏览器看到的内容做對比。
- 頁面指令有没有拦。robots meta、X-Robots-Tag、canonical 指向別處,都可能出現“能被抓取但不被索引”的结果。指令冲突时要先收敛,再谈收錄。
- 正文是否在初始 HTML 里。依赖 JS 才能出現的正文,抓取與索引分成两轮,中間任何一步失敗都可能導致頁面被取回却没有内容可评估。
- 與站内其他頁面是否高度相似。同一模板下正文差异很小,或者由參數批量生成的近似頁面,容易被归並到一個代表頁,剩下的一直停在“已發現”狀態。
- 這頁有没有獨立存在的理由。只靠内鏈支撑、與其他頁答案高度重合、缺少明确需求的頁面,被索引的概率天然偏低。
- 站点整体信号。長期存在大量低质頁面,會稀释整站的抓取與索引表現,新頁面也會被拖慢。
哪些調整通常有帮助
- 從相關内容的正文里给目标頁加内鏈,锚文本自然,避免只在頁脚堆連結。
- 补充獨有信息,减少與同類頁面重复的段落和结论。
- 把没有检索價值的參數頁、排序頁、篩選组合用 canonical 或 robots 規則收敛。
- 保持站点地图更新,lastmod 寫真實時間,不要每次全量刷新。
- 检查服務端是否對爬虫返回了與普通用戶不同的内容,不一致會让评估结果不稳定。
抓取频次高只能說明頁面可達,不能推導出會被收錄。把抓取日誌当成“收錄進度條”,往往會把精力用在错誤的地方。
观察节奏
調整之後不要每天盯 site 结果。以周為單位看日誌里的抓取分布、索引覆盖报告和頁面實际获得的搜尋流量。收錄本身有延迟,频繁改動指令或反复提交,反而會让狀態更难收敛。如果几周過去仍無變化,回到内容本身重新评估,比繼續加連結或催抓取更有效。