很多人把“蜘蛛来過”直接当成“頁面被收錄”:日誌里出現了訪問记錄,就以為這個地址已经在索引里了。實际流程並不是這样,抓取只是第一道工序,抓到的内容還要经過渲染、規范化、去重和價值判断,才可能真的進入索引。把這几步拆開看,排查問题时就不會一直停在“蜘蛛怎么還不来”上。
抓取解决的是“能不能拿到”,不是“要不要收”
抓取阶段要處理的事情很具体:這個地址返回什么狀態碼、是否被 robots.txt 允许、响應体多大、内容是否需要执行脚本才會出現。它回答的是“我們能不能稳定地取到這份内容”。至于取到之後要不要放進索引,是後面几步决定的。
所以一個地址天天被抓、却始终没進索引,並不矛盾:抓取正常說明取數没問题,没進索引說明卡在了更靠後的环节。
第一步:渲染,决定蜘蛛看到的是什么
如果頁面的主要内容由前端脚本在浏览器里生成,抓取到的初始 HTML 可能只是一個空壳。系統通常還會做一次渲染,把内容跑出来再判断,但這會消耗額外资源,也更容易出現“蜘蛛看到的内容和用戶看到的不一样”的情况。
- 正文是否出現在初始 HTML 里,還是必须等接口返回後才出現;
- 渲染後主要区块是否完整,有没有因為接口失敗只剩骨架;
- 關键内容是否藏在需要点击、滚動或登入之後才加载的位置。
渲染這一步没問题,後面的判断才有可靠輸入。它出問题的常见表現是頁面進了索引,但摘要是空白或者一段模板文字。
第二步:規范化,决定用哪個地址代表這份内容
同一個頁面往往有多種可達寫法:带不带结尾斜杠、大小寫不同、挂着一串追踪參數、混進分頁或排序參數。系統會尝试把它們收敛到一個代表版本,規范化的结果决定了後續哪一條地址被当作“正主”。
如果站内連結、canonical 标注、sitemap 里寫的是三個不同的版本,就等于在给系統出選擇题,而答案往往不由站点决定。想让某個版本被繼續處理,最好让入口、标注和提交這三條线指向同一個地址。
第三步:去重與聚類,决定要不要只留一個代表
規范化處理的是同一份内容的不同地址,去重處理的是内容高度相似的多個頁面。系統會把它們聚在一起,通常只選一個作為代表進入索引。
這就解释了一個常见現象:某個頁面确實存在,也确實被抓過,但拿它的标题去搜却搜不到,因為被選中的代表是另一個版本。商品的多規格頁、文章的打印頁、列表的篩選结果頁,都容易出現這種情况。
第四步:頁面價值與需求判断
走完前面三步,剩下的問题才是“這一頁值不值得占一個索引位”。判断依據通常包括:内容是否足够獨立、有没有可被检索的明确主题、與站内同類頁面的差异有多大、用戶是否真的可能用這類词来找。
這一步没有開關式的标准,但方向是稳定的:信息量低、主题模糊、和已有頁面高度重合的地址,進入索引的把握自然更小。
把“抓到”和“收錄”当成两件事,排查时就能先确定卡在哪一道工序,而不是在不相關的环节上反复調整。
几個容易被当成结论的信号
- 日誌里有訪問记錄:只能說明抓取發生過,不代表頁面進入索引。
- 提交了 sitemap:這是告知地址存在、方便被發現,不是收錄保證。
- 索引狀態里能看到這個地址:說明它被處理過,不等于某個查询一定能把针對的主题检出来。
- 收錄量下降:可能来自去重合並,也可能是頁面登出,需要按地址逐個確認。
自查时可以按顺序做的几件事
- 確認目标地址的真實狀態碼,以及有没有被 robots.txt 或登入墙挡住;
- 關閉脚本查看初始 HTML,再對比渲染後的内容,看主体是否依赖脚本;
- 检查 canonical 是否自指,站内連結是否都指向同一個版本;
- 列出内容相近的其他頁面,判断自己會不會被当成重复版本合並;
- 確認搜尋结果里代表這個主题的是哪一條地址,再决定要不要調整入口和标注。
這套顺序不一定能立刻让頁面進入索引,但能避免把問题归错原因。抓取、渲染、規范化、去重、评估是几道不同的關,先定位卡点,再谈怎么優化才有意义。