很多站長遇到過這種情况:日誌里明明有搜尋引擎蜘蛛来抓過,頁面返回碼是 200,内容看起来也完整,但過了一两周再看,狀態還是“已抓取,尚未编入索引”。這时候繼續加外鏈、繼續铺量發文章,往往没什么用,因為卡住的不是發現和抓取,而是抓取之後的判断环节。
抓取和索引是两道獨立的關口
抓取解决的是“能不能拿到這個頁面的内容”,索引解决的是“這個頁面值不值得留在候選库里”。前者偏技術:robots.txt 是否放行、服務器是否稳定、返回碼是否正常、内容是否出現在 HTML 里。後者偏判断:這個頁面與站内、站外已有的内容相比,有没有獨立的價值。
所以“抓取成功”只說明第一關過了。第二關没過,頁面就不會出現在搜尋结果中,即便它在後台狀態里顯示“已抓取”。
已抓取但未索引,先按這几類排查
一、頁面本身太薄或高度重复
正文只有一两句话、大量模板文字、商品只有參數没有描述、列表頁只有标题和連結——這類頁面被大量抓取後,搜尋引擎往往只挑其中少數几個進索引,其余長期停留在“已抓取”。同一套模板生成的几百個頁面,最後進入索引的可能只有個位數。
二、正文没有出現在初始 HTML 里
如果主要内容依赖 JavaScript 渲染,而渲染排队又没轮上,搜尋引擎拿到的可能接近一個空壳。抓取本身是成功的,但它“看到的内容”和用戶看到的不一样,自然也就不會進索引。
三、頁面自己把索引關掉了
常见的矛盾组合:頁面被 noindex,同时又被 canonical 指向另一條 URL;或者 canonical 指向了一個打不開的地址。這類情况下抓取正常,索引是被主動放弃的。
- 检查 meta robots 里是否含 noindex
- 检查 canonical 指向的 URL 是否可訪問、是否自指
- 检查 HTTP 响應头里是否也带了 X-Robots-Tag
四、站点可索引頁面的規模太小
新站、内容量很少的站点,搜尋引擎會先控制索引規模,收錄一部分观察一段時間,再决定是否放量。這属于正常的配額机制,不是针對某個頁面的處罚。
一個可以照着走的自查顺序
- 用抓取工具看一下頁面返回的原始 HTML,確認正文是否在里面。
- 確認返回碼是 200,且没有意外的重定向鏈。
- 確認 meta robots、X-Robots-Tag、canonical 三者不打架。
- 把该頁面和站内最相似的几個頁面放在一起,看内容差异是否足以支撑獨立索引。
- 確認這個 URL 没被 sitemap 漏掉,站内也有正常入口連結指向它。
- 观察两到四周,不要一天看三次就急着動手改。
別把“已抓取未索引”直接当成故障
抓取是一個動作,索引是一個结果。動作做完不代表结果一定给,也不代表给得很快。
如果確認内容、结构、指令都没有問题,那大概率只是還没轮到,或者搜尋引擎判断這個頁面暂时不需要單獨展示。此时能做的只有两件事:把頁面本身做得更值得被索引,以及保證站内有足够多、足够合理的入口指向它。
反复提交同一批 URL、频繁改動标题和正文,反而會拉長判断周期。稳住内容,观察日誌和索引狀態的變化,比来回折腾更有效。