URL 是站点里最容易被忽视、又最难回头改的東西。内容可以重寫,模板可以換,但地址一旦被蜘蛛抓取、被用戶收藏、被外鏈引用,改動成本就會成倍上升。很多站点的结构問题並不出在内容质量上,而是地址本身就没有規律:同一個栏目有三種寫法,同一批頁面有的带日期有的不带,有的用 ID 有的用拼音。平时看不出来,等到要做栏目調整、批量替換或站点迁移时,問题會集中爆發。
先分清“可讀”和“可维護”两件事
URL 好不好看是次要的,能不能被稳定维護才是關键。一條合格的地址通常满足三個條件:
- 可归類:從路径就能看出它属于哪個栏目、哪一類内容,而不是一串無语义的编号。
- 可预测:同類頁面的命名規則一致,寫規則、做匹配、批量處理时有章可循。
- 可變更:栏目調整时能通過一條重定向規則覆盖一整段,而不是逐頁配置。
只要這三点成立,即使地址里带 ID、带拼音,也不會成為负担。反過来,如果命名規則前後不一致,哪怕每條地址單看都很“干净”,整站依然是乱的。
常见的混乱現象
- 大小寫混用:Article 與 article 同时存在,服務器大小寫敏感时會被当成两個頁面。
- 參數與静態混排:一部分栏目用目錄形式,另一部分長期停留在 ?id= 形式。
- 命名語言不统一:同一层級里英文、拼音、中文编碼、缩寫混着用。
- 层級過深:為了“归档清晰”不断加目錄,實际訪問路径已经超過四层。
- 日期目錄随意:有些栏目带年月,有些带年月日,有些干脆不带。
- 重复入口:同一篇内容在多個栏目下都有可訪問地址,且没有明确的規范版本。
一次可落地的自查清單
- 抓取站点主要栏目和内容頁,抽样 50 到 100 條地址,按路径前缀归類。
- 检查同一類内容的命名規則是否一致(分隔符、大小寫、是否带日期)。
- 確認是否存在大小寫或斜杠差异導致的重复訪問地址。
- 列出仍然依赖查询參數的栏目頁和列表頁,评估能否改為静態路径。
- 確認每篇内容只有一個明确的主地址,其余入口是否已做規范處理。
- 检查目錄层級,把過深的路径压平,或確認這是有意為之。
- 核對内鏈、Sitemap、站点地图文件中的地址是否與线上保持一致。
命名约定要寫下来,而不是靠自觉
命名規則如果没有文档,就會随着人員更替慢慢走样。建议在站点内部文档里明确几條简單規則,例如:
- 路径统一使用小寫字母,單词之間用连字符。
- 栏目层級不超過三层,超出部分用标簽或篩選參數承载。
- 内容頁優先使用稳定 ID 加简短标识,避免标题改動導致地址變化。
- 日期只用于时效性明确的归档栏目,且格式统一。
規則不需要多复杂,能被执行、能被後来的人看懂就够了。
變更时把三件事一起做
哪怕只是改了一個栏目名,也建议同步完成三件事:舊地址到新地址的重定向、站内連結的替換、地图與提交文件的更新。只做其中一件,站内就會長期並存新舊两套地址,既增加维護成本,也让抓取端在重复入口之間来回消耗。
URL 结构不是一次性设計,而是一個需要跟着站点一起迭代的约定。定期花半小时抽查一遍,比出問题後大規模救火划算得多。
最後提醒一句:结构優化不必追求一步到位。先把規則理清、把明顯重复的入口收敛掉,剩下的可以随着栏目調整逐步推進。稳定、可预期、可维護,比“好看”重要得多。