先分清楚是“没被發現”還是“被發現後没被收錄”
很多人把“頁面不收錄”当成一個問题處理,實际上它至少包含三個不同阶段:發現(蜘蛛知道這個 URL 存在)、抓取(蜘蛛實际取回了頁面内容)、索引(内容通過质量评估後進入索引)。如果卡在第一步,再怎么改标题、加字數都不會有效果,因為蜘蛛压根没来過。
一個简單的判断方法:如果服務器日誌里從来没有出現過這個 URL 的訪問记錄,基本可以判定是發現环节的問题;如果日誌里有訪問但狀態碼異常、返回内容為空,那問题在抓取;如果抓取正常、狀態碼 200、内容完整,却長期不進入索引,才需要回到頁面质量與重复内容上排查。
URL 發現的几條常见路径
站内連結
這是最稳定也最容易被忽视的一條路径。蜘蛛通常沿着連結爬行,一個頁面如果没有任何站内連結指向它,就只能依赖站点地图或外部連結。常见的断鏈情况包括:列表頁只顯示前若干條、分類頁翻頁被异步加载、内鏈指向的是跳轉地址而跳轉鏈被屏蔽、連結寫在 JS 事件里而不是 a 标簽的 href 上。
站点地图
站点地图是“声明”,不是“保證”。它告诉搜尋引擎這里有一個 URL,但不代表一定會抓。地图文件本身的可用性很關键:地址是否可訪問、是否被 robots.txt 誤屏蔽、單文件 URL 數量是否過大、lastmod 是否長期不更新。如果地图里的地址和站内實际連結的地址寫法不一致(例如带不带末尾斜杠、大小寫不同),也會削弱它的參考價值。
站外連結
外部連結指向新頁面,能明顯加快發現速度,但要注意連結是否可被抓取:nofollow 連結仍然可能被發現,但權重传递不同;如果外鏈頁面本身很少被抓取,指向你的連結也不會带来多少訪問。
一份可执行的核對顺序
- 確認该 URL 是否返回 200,並且匿名訪問(不带登入態)能看到完整正文。
- 在站内找一個權重較高的入口頁,检查是否存在指向它的可抓取連結,且連結不是多层跳轉。
- 检查该 URL 距首頁的点击深度,超過四五层的頁面發現速度會明顯變慢。
- 核對站点地图是否包含该地址,寫法是否與實际連結完全一致。
- 查看 robots.txt 是否有規則意外命中了這個路径。
- 观察服務器日誌中是否出現该 URL 的請求,以及請求的 UA 和返回狀態碼。
- 如果長期没有請求,尝试從其他已被频繁抓取的頁面增加一條真實内鏈,再观察一到两周。
容易被忽略的细节
- 入口頁自身没被抓:新頁面挂在一個本身就很冷的列表頁下,等于挂在死胡同里。
- 連結位置太靠後:放在頁面底部几十條之後,被處理的優先級會下降。
- 分頁與篩選參數:如果入口頁預設只展示第一頁,深层内容可能只在带參數的地址里出現,這類地址往往抓取意愿較低。
- 發布节奏:短時間内批量上线大量新 URL,會让抓取被摊薄,平均等待時間變長。
- 移動端入口:移動版頁面如果缺少同一批連結,可能影响移動優先下的發現效率。
發現、抓取、索引是三個环节。先確認蜘蛛有没有来過,再讨论頁面值不值得被收錄,能省下大量無效改動。
用日誌做观察,而不是靠猜
與其反复提交、反复修改,不如按周統計一次日誌:新增 URL 中有多少被請求過、從請求到首次出現索引大概間隔多久、哪些入口頁贡献的爬取最多。把這些資料留下来,你會慢慢看出自己站点的發現規律——哪些位置的連結真正有效,哪類頁面天生就难被發現。之後再决定是补充内鏈、調整站点地图,還是给重点頁面安排一個更靠前的入口,判断會踏實得多。