網站收錄

URL 结构怎么设計才好抓:目錄深度、命名和參數的取舍

URL 不只是頁面地址,也是蜘蛛發現頁面、判断层級和規范版本的线索。本文從目錄深度、路径命名、參數控制、大小寫與斜杠几個角度,說明哪些设計真的影响抓取與收錄,哪些被過度放大,並给出一份上线前的自查清單。

網站收錄

URL 结构怎么设計才好抓:目錄深度、命名和參數的取舍

URL 不只是頁面地址,它也是蜘蛛發現頁面、判断頁面归属和規范版本的一條线索。结构本身不會直接决定收錄與否,但它會影响發現速度、抓取时的判断,以及後期改動的成本。下面几件事是實操里最常被問到的。

目錄层級:深不是原罪,不可達才是

常听到“三层以上蜘蛛就不抓了”,這個说法並不准确。蜘蛛能否抓到某個 URL,主要看它能不能通過連結到達,以及這個地址是否值得抓。一個四层路径的頁面,從首頁三次点击就能到,一样會被正常抓取;反過来,一层路径但没有任何内鏈指向,就是孤儿頁面。

真正麻烦的是這几種情况:

  • 列表頁只顯示前几頁,深處的條目只能靠站内搜尋進入;
  • 目錄层級深,而且每一层都是纯篩選頁,把連結信号稀释掉了;
  • 面包屑和導航由 JS 生成,蜘蛛拿到的原始 HTML 里没有連結。

所以判断标准不是“几层”,而是“從入口到它需要几次跳轉、有多少條路径”。重要内容尽量控制在三次点击以内,同时确保有不止一處内鏈指向它。

路径命名:语义化有用,但別為了改名反复折腾

语义化路径(/shoes/running-shoes)比纯數字(/p/1002381)多提供了一点信息,對蜘蛛判断主题、對用戶阅讀地址都有帮助。但這個收益是小幅的,不值得為了它把所有舊 URL 推倒重来。

更實际的做法是:新站直接用语义化路径;已有站点保持稳定,除非结构本身有硬伤,比如分類混乱、大量重复路径。因為每次改 URL 都意味着 301、外鏈價值衰减、索引重新計算,改得越频繁,收口成本越高。

命名上不必追求完美:英文、拼音、數字混用都可以接受,關键是同一類頁面用同一套規則,別今天用 /article/xxx,明天換成 /a/xxx。

參數與“伪静態”:稳定比好看重要

带參數的 URL 並不意味着不能收錄。搜尋引擎能處理 ?id=123 這類地址,問题出在參數的组合爆炸:排序、篩選、分頁、追踪參數叠加,同一個頁面能生成几十個地址。這时需要的不是把參數改寫成静態路径,而是控制參數的产生。

  • 排序和篩選參數用 robots.txt 或 noindex 收口,只保留預設视图;
  • 追踪參數(utm 等)不要寫進站内連結;
  • 分頁可以保留,但翻到很深的頁碼可以考虑不再輸出連結。

把參數强行重寫成静態路径,表面看干净了,但如果底层逻辑没變,蜘蛛依然能通過其他入口發現那些组合版本,反而更难排查。

長度、大小寫和结尾斜杠

URL 過長,比如几百個字符,不會直接被拒绝,但容易被截断、複製时出错。中文路径會被编碼成一長串 %XX,可讀性差,也不方便人工核對。條件允许时用短一点的英文或拼音。

大小寫和结尾斜杠属于規范問题:/Page 和 /page 可能被服務器当成两個地址,/list 和 /list/ 也是。選定一種寫法後,用 301 统一,別让两個版本同时返回 200。

上线前可以自查的几項

  • 新頁面發布时,是否至少有一處站内連結指向它;
  • 導航、面包屑、列表頁的連結是否出現在原始 HTML 中,關掉 JS 後仍能看到;
  • 同一内容是否存在多個 URL 版本,canonical 是否指向正确;
  • URL 结构近期是否改過,舊地址是否都做了 301;
  • 站点地图里的地址是否都是規范版本。
URL 结构没有唯一正确答案。判断标准是三條:蜘蛛能不能顺利找到、能不能判断哪個是規范版本、以後改動时成本高不高。

把這三件事解决掉,剩下的细节不用過度纠结。改结构之前先想清楚收口方案,比事後一處處补救省事得多。