很多站点把“蜘蛛来過”当成好消息,但日誌里出現抓取记錄,只說明搜尋引擎把那個 URL 取回去了,並不代表它會被建立索引、出現在结果里。把這两件事分開看,排查問题时才不會找错方向。
抓取、索引、展示是三件事
抓取是搜尋引擎把頁面内容下载回来,這一步解决的是“能不能拿到”。索引是對拿到的内容做處理、判断有没有必要存進索引库,解决的是“值不值得收”。展示則要再结合查询词和排序,解决的是“什么时候拿出来”。三個环节各有取舍,抓取顺畅不等于後面两步自動通過。
頁面被抓取之後,通常要過這几道關
- 解析與渲染。普通 HTML 直接解析;依赖 JavaScript 才能生成内容的頁面會被放進渲染队列排队。队列有先後,渲染完成前蜘蛛拿到的首屏往往是空壳。
- 規范化與去重。多個 URL 指向同一份内容时,搜尋引擎會挑一個作為代表,其余地址的處理方式可能是合並。這里面包含參數、大小寫、结尾斜杠、canonical 声明等因素。
- 内容质量判断。頁面是否有獨立信息、是否與站内其他頁面高度雷同、是否只是模板加几行文字,都會影响是否建立索引。
- 索引後的更新。已收錄頁面在内容變化後可能被重新處理,也可能维持原样,取决于改動幅度和後續回訪结果。
抓了却不收錄,常见原因在這几處
- 頁面返回 200,但正文是“暂無内容”、报错提示或空白模板;
- 正文主要靠 JS 渲染,蜘蛛拿到的那份 HTML 里没有可用文字;
- 頁面自己寫了 noindex,被抓取属于正常現象,被排除也是预期结果;
- canonical、hreflang 或分頁關系指向別的 URL,目前地址被当作副本;
- 站内多個 URL 内容几乎一致,只有排序、来源等少量差异,被合並成一條;
- 頁面只承担跳轉或收集外鏈的作用,缺少能獨立成立的内容。
這些原因大多和“蜘蛛有没有来”無關。抓取量涨了、日誌里 URL 變多了,頁面本身仍可能落在索引之外。
站点可以做的几項自查
把抓取資料和索引資料對照着看
從服務器日誌或搜尋平台的抓取統計里筛出被訪問的 URL,再和已收錄的 URL 做一次比對。差异集中的目錄或模板,往往就是問题所在,比逐頁猜测省事得多。
確認同一 URL 在不同环境下返回一致
- 带與不带 www、http 與 https、移動版與桌面版,是否返回同一份内容;
- 登入態與未登入態下,蜘蛛看到的是不是同一批文字;
- 地区、語言或用戶代理不同时,是否出現内容替換。
检查首屏 HTML 里有没有正文
關掉 JavaScript,或用“查看源代碼”看原始 HTML。如果文字全都不在,蜘蛛想拿到内容就得等渲染队列,能不能排到、什么时候排到都不由站点决定。把關键内容放進初始 HTML,通常比事後补提交更有效。
別把抓取量本身当成目标
抓取次數是過程指标。同一批 URL 被反复抓、新 URL 却迟迟不進队列,說明抓取资源花在了产出有限的地方。這时可以收一收:把參數化地址、無内容入口、重复列表頁通過 robots 或連結策略收敛掉,让蜘蛛把時間用在真正需要被處理的頁面上。
至于各類“蜘蛛池”入口堆量,能带来更多抓取請求,但改變不了頁面是否值得建索引這件事。入口再多,内容這一關過不了,结果還是一样。
抓取解决“拿到”,索引解决“值不值得收”。排查問题时先把這两件事分開,再去看路径、狀態碼和内容本身。