站点里有不少頁面,内容不差,但訪問日誌里几乎看不到蜘蛛的身影。排查时大家习惯先看 Sitemap、robots.txt,却容易忽略一個更基础的問题:從首頁出發,蜘蛛要经過几條連結才能走到這個頁面。
蜘蛛靠連結移動,連結层級就是距离
蜘蛛没有站内搜尋框,它進入站点後能依靠的只有連結。首頁是绝大多數抓取的起点,之後每跟一條連結,就往外走一层。层級越深,被走到的概率越低,這不是哪條規則寫死的,而是抓取量和路径损耗叠加的结果。
所以“頁面能不能被抓到”這件事,一半取决于内容本身,另一半取决于它离入口有多遠。
目錄层級和連結层級是两回事
URL 里的斜杠數量(例如 /a/b/c/d/page.html)只是地址寫法,蜘蛛不會因為 URL 長就放弃。真正决定距离的是連結跳數:首頁有没有指向它,中間要经過几次点击。
不過两者常常相關。目錄越深的頁面,往往也只被同級栏目連結到,于是連結层級也跟着變深。把重要内容放在較浅的目錄里,再用内鏈补足路径,是更省事的做法。
三種真正有效的内鏈入口
首頁與一級栏目頁
首頁的連結位置最值钱,但數量有限。與其把所有分類都堆在首頁,不如让首頁指向栏目頁,栏目頁再指向下一級,形成清晰的树状结构。每一层都要有返回上一級的連結,別让蜘蛛走到叶子頁面後無路可走。
面包屑導航
面包屑的另一個作用是给蜘蛛提供一條從深层頁面回到首頁的路径。它同时把頁面的归属關系寫清楚,連結文本通常就是栏目名,指向也稳定。注意面包屑里的每一級都應该是可点击的真實連結,而不是纯文本。
正文里的上下文連結
文章中提到相關主题时顺手加一條内鏈,往往是發現效率最高的入口。它带给蜘蛛的不只是地址,還有语义线索。相比在頁脚堆几十條全站連結,几條放在正文里的相關連結通常更容易被跟到。
几個容易被忽略的细节
- 連結用 a 标簽和 href 寫出来,依赖 JS 点击事件的跳轉,蜘蛛不一定能执行到位。
- 列表頁分頁、篩選條件都會生成新連結,注意別让它們把深层詳情頁挤到抓取队列後面。
- 重要頁面尽量在多個位置出現,比如栏目頁、相關推荐、面包屑,路径越多越不容易断。
- 頁面改版或調整目錄後,老連結要做跳轉,別让内鏈指向已失效的地址。
- 同一頁面重复指向同一個地址,收益有限,數量不必刻意追多。
深层頁面太多时,加一层聚合入口
如果一個栏目下有上千條詳情頁,靠栏目頁逐個連結並不現實。可以按主题、時間或标簽做聚合頁,让蜘蛛從栏目頁走到聚合頁,再從聚合頁走到詳情頁。聚合頁本身要有實际内容,避免變成只有連結的空壳。
用日誌驗證,而不是凭感觉
改完内鏈,最直接的驗證方式是看服務器日誌:蜘蛛訪問深层頁面的次數有没有變化,哪些层級長期没有记錄。也可以自己在浏览器里從首頁点進去,看看需要几步、有没有断鏈、有没有跳轉到不希望被抓的地址。這一步比反复調整 Sitemap 更實在。
内鏈不會让頁面必然被收錄,但它决定了蜘蛛有没有机會看到這個頁面。把路径铺平,剩下的交给内容本身。