一個 SEO 友善的 URL,核心只有三件事:路徑用人看得懂的字描述內容、格式全站一致(小寫、連字號、結尾斜線統一)、每頁用 canonical 指定唯一正主。把這三件事在動工前定好,後面幾乎不會再為網址的事情回頭返工;反過來,等網站上線、網址被收錄、被分享出去之後才想改,你要處理的就是一整串重導、權重轉移與內部連結更新。這篇我們把 URL 設計拆成可以逐條照做的判斷點,從命名、格式、動態參數到 canonical 與階層對應,讓你在規劃階段就一次定對。

1. 先問一句:拿掉網址裡的字,你還猜得到這頁是什麼嗎

判斷一個網址夠不夠好,有個很快的測試:把路徑裡的描述字拿掉,你還看得懂這頁在講什麼嗎?看不懂,代表命名不夠語意化。URL 不只是給伺服器定位檔案用的,它是搜尋引擎理解頁面主題的線索之一,也是使用者在搜尋結果、在別人貼過來的連結裡,決定要不要點進來的依據。語意清楚的網址天生就比一串亂碼更容易被點,也更容易被正確歸類。

1.1 語意化命名,讓網址自己說明主題

語意化的意思,是用真正描述內容的字詞組成路徑。像 /products/seo-tools/ 這樣的網址,一眼就知道是 SEO 工具的產品頁;而 /p?id=812 則什麼都看不出來。我們在替客戶整理資訊架構時,有個習慣的做法:把每一段路徑當成一句極短的標題來寫,寫完之後自己讀一遍,如果拿掉路徑裡的字就完全猜不到內容,就代表命名還不夠語意化,要再調。這個自我檢查只花幾秒,卻能在網站長大之前擋下大量含糊的網址。

命名時還要留意一致的詞彙。同一種頁面類型,就固定用同一個字根。服務頁都用 services,產品頁都用 products,不要這裡寫 service、那裡寫 offerings。詞彙一致,網址整體才會讀起來像同一套規則,搜尋引擎也更容易從路徑推斷頁面之間的關係。

1.2 網址不是關鍵字堆疊區

語意化不等於把關鍵字全塞進去。我們在服務經驗中看過有人把整串目標關鍵字用連字號串成落落長的網址,像是想靠網址本身衝排名,結果反而顯得刻意,也讓網址難讀難記,分享出去更像垃圾連結。搜尋引擎早就不靠網址裡塞了多少關鍵字來判斷相關性,這種寫法拿不到它想要的效果,只留下一個難看又難用的路徑。

原則很單純:用最少的字把主題講清楚,一個路徑段落對應一個概念。放一到兩個真正描述內容的核心字詞是合理的,能幫使用者與搜尋引擎快速判斷主題;但不要為了塞字而犧牲可讀性。網址是寫給人看的,人看得順,機器通常也讀得懂。

1.3 中文網址可以用,但要留意編碼呈現

中文 URL 在台灣網站是可以使用的,語意上對本地使用者甚至更直覺,看到中文路徑一眼就懂。要注意的是,中文在被複製、被貼到某些外部平台時,可能會被轉成一長串百分比編碼的字元,例如 %E6%9C%8D%E5%8B%99,在那種情境下網址會變得難讀、也難在訊息裡辨認。

所以我們的建議是看使用情境決定:如果你的網址經常要被貼到社群、論壇、外部媒體,英文路徑在分享時比較穩定好認;如果主要是站內導覽、使用者很少直接複製網址,中文路徑的直覺性就是加分。不論選哪一種,重點始終是語意清楚、階層一致,而不是中英文本身的優劣。

2. 大小寫、符號、連字號,這三個小地方最容易生出重複頁

URL 的格式細節看起來瑣碎,卻是最常見的技術性錯誤來源。同一個頁面因為大小寫不同、符號不同,就可能產生好幾個網址,搜尋引擎會把它們當成不同頁面,重複內容與權重分散的問題就這樣長出來。這一節把幾個最常踩的格式坑一次講清楚。

2.1 全站一律小寫,避免大小寫生出重複頁

在多數伺服器設定下,/Page 與 /page 會被當成兩個不同的 URL。如果你的內部連結有時寫大寫、有時寫小寫,或使用者手動輸入時大小寫不一,同一份內容就被切成好幾個網址。我們的做法是全站網址一律小寫,並在伺服器層設定把大寫請求自動重導到小寫版本,從根源杜絕同一頁因大小寫而分裂的狀況。

這個重導要用 301,告訴搜尋引擎大寫版本已永久移到小寫版本,權重才會完整轉過去。只在前端統一寫小寫還不夠,因為外部連結、舊書籤、別人手打的網址都可能帶大寫進來,伺服器層的重導才是真正的保險。

2.2 用連字號分隔字詞,不要用底線

字詞之間用連字號(-)分隔,是搜尋引擎公認能正確斷詞的做法;底線(_)與空白則不建議。空白會被編碼成難看的 %20,底線在斷詞判斷上也不如連字號清楚,搜尋引擎傾向把用底線連起來的字當成一個詞看待。這是個很小的規則,但一旦定調就要全站一致,不要一部分用連字號、一部分用底線,否則又製造出格式不統一的問題。

同樣要避免的還有連續的分隔符號與結尾多餘的符號,例如 seo--tools 或 seo-tools-。這些通常是程式自動從標題產生網址時沒清乾淨留下的,看起來不影響功能,卻讓網址顯得粗糙,也偶爾會在不同系統間造成不一致。

2.3 結尾斜線要統一,別讓兩種寫法並存

網址結尾要不要加斜線(/),本身沒有絕對對錯,但同一站內必須二選一、從頭到尾一致。/services/seo-audit 和 /services/seo-audit/ 在伺服器眼中可以是兩個不同的網址,如果兩種寫法都能打開、又都被收錄,就是一組現成的重複內容。選定一種之後,在伺服器層把另一種重導過去,內部連結也全部照同一種寫法走。

2.4 用一張表把常見寫法的好壞看清楚

網址寫法 問題 建議
/Products/SEO_Tools/ 大寫加底線,易生重複頁、斷詞不清 改為 /products/seo-tools/
/p?id=123&cat=5 動態參數,語意不明 重要頁改為靜態語意路徑
/article/2026/01/post-8842/ 含流水號,無語意 用主題字命名路徑
/我的產品 頁面/ 含空白,編碼後難讀 字詞間用連字號,去掉空白
/seo-tools-tools-best-seo-tools/ 關鍵字堆疊,刻意又難讀 精簡為 /seo-tools/
/services/seo-audit/ 語意清楚、階層明確 維持這種寫法

3. 動態參數不是不能用,而是別讓它變成主要網址

問號後面的參數在功能上很方便,篩選、排序、追蹤都靠它。問題不在參數本身,而在當這些參數變成頁面被收錄的主要網址時,同一批內容會因為參數順序、追蹤碼不同而生出無數個變體,搜尋引擎抓也抓不完,權重也被稀釋。分清楚哪些頁面該有乾淨的靜態網址、哪些功能交給參數處理,是這一節的重點。

3.1 參數會產生無限多個網址變體

我們在服務經驗中看過一個篩選功能複雜的電商網站,光是顏色、尺寸、排序的參數組合,就讓一個分類頁衍生出上千個網址。爬蟲把抓取預算全花在這些幾乎一樣的頁面上,真正重要的內容反而被冷落、遲遲沒被好好收錄。參數本身沒錯,錯在放任它們每一個組合都被當成獨立頁面對待。

更麻煩的是參數的順序。?color=red&size=l 和 ?size=l&color=red 指向的是同一批商品,但對搜尋引擎來說是兩個不同的網址。再加上行銷活動帶進來的各種追蹤碼,變體數量會以驚人的速度膨脹,這也是很多網站「已找到、尚未建立索引」頁面暴增的隱藏原因之一。

3.2 重要頁面用靜態、語意化的路徑

我們的做法是把需要被搜尋引擎收錄、要競爭關鍵字的頁面,一律給它乾淨的靜態路徑,把動態參數留給那些不需要被索引的功能性操作。舉例來說,一個商品分類頁給它 /products/seo-tools/ 這樣的固定網址,而使用者在頁面上點選的顏色、價格區間篩選,則透過參數運作但不另外製造一個要被收錄的新網址。

這樣安排之後,重要頁面有一個穩定、語意清楚的門面,參數變體則收斂回主網址,不去分散權重。規劃時可以先列出一份清單:哪些頁面是要衝排名的主力、哪些只是過濾與排序的中間狀態,兩者的網址策略分開對待,後面的索引管理會輕鬆很多。

3.3 追蹤碼與篩選參數,用 canonical 收斂

行銷活動用的追蹤參數幾乎一定會出現,這時候 canonical 就是你的安全網。帶參數的網址在 canonical 上指回乾淨的主網址,告訴搜尋引擎「這些變體的正主是這一頁」,權重就不會被切碎。這個習慣可以幫你省掉很多後續的重複內容麻煩,也讓報表裡的數據更集中、更好讀。

要補充的是,canonical 是給搜尋引擎的強烈建議,不是硬性指令。它對收斂同批內容的變體很有效,但若頁面內容差異其實很大,硬用 canonical 指在一起反而會讓搜尋引擎困惑。所以要先確認這些變體確實是同一份內容的不同呈現,再用 canonical 收攏,不要當成萬用的清理工具。

4. 每頁一個 canonical,是你收斂重複內容的最後防線

canonical 標籤的作用,是在多個網址指向同一份內容時,告訴搜尋引擎哪一個才是正主。它是處理重複內容最直接的工具,但也最常被設錯。我們在診斷過的案例中看過 canonical 設定衝突、循環指向的網站,結果搜尋引擎乾脆忽略它的指示,自己選一頁當正主,而選的往往不是你想要的那一頁。這一節講怎麼把 canonical 設對。

4.1 每頁都要有自我指向的 canonical

基本原則是:每一頁都設定一個 canonical,而且在沒有重複內容的情況下,它指向自己。這個自我指向看似多餘,卻能在網址被加上追蹤參數、或被別人以不同寫法連過來時,穩穩地把權重收回主網址。它是一個成本很低、保護力卻很高的習慣,建議在版型層就預設好,讓每一頁自動帶上指向自己的 canonical。

實務上最怕的是整站漏設或設成空白。如果頁面根本沒有 canonical,遇到參數變體或大小寫不同的連結時,搜尋引擎就少了一個明確的收斂訊號,只能自己猜。預設自我指向,等於替每一頁先繫好安全帶,之後不管外面帶進什麼變體,都有個明確的正主可以回。

4.2 避免衝突與循環指向

canonical 最怕互相打架:A 頁指向 B、B 頁又指向 A,或整批頁面指向一個根本不對的網址。我們的做法是在改版或大量產頁之後,用爬取工具檢查每頁的 canonical 指向,確認沒有循環、沒有指到 noindex 或不存在的頁面,讓每一條指向都乾淨明確。一旦出現循環或指向死路,搜尋引擎可能直接忽略你的設定,前面的功夫就白費了。

另一個常見錯誤是把所有頁面的 canonical 都寫死成首頁網址。這通常是範本變數沒設對造成的,結果整站內頁都在對搜尋引擎說「我的正主是首頁」,內頁自然很難被單獨收錄。大量產頁時特別要抽查,確認 canonical 是動態帶入每頁自己的網址,而不是被寫死成同一個。

4.3 canonical 與 URL 規則要一致

canonical 裡寫的網址,格式要跟你定的 URL 規則完全一致:一樣小寫、一樣的斜線結尾、一樣的通訊協定(https)。如果 canonical 寫的是大寫、或缺斜線、或還停在 http 的版本,跟頁面實際網址對不上,等於自己製造了一組新的不一致,收斂反而失效。細節對齊,收斂才會真正生效,這也是為什麼 URL 規則要在一開始就定清楚,canonical 才有一致的標準可以照著寫。

5. 路徑要和階層對得起來,網址才不會自打嘴巴

URL 不是孤立存在的,它是網站階層的投影。路徑的每一段都應該對應頁面在結構中的位置。當網址路徑跟導覽、麵包屑講的是同一個故事,搜尋引擎對頁面歸屬的判斷才會一致;三者各說各話時,訊號就矛盾,搜尋引擎得多花力氣去猜這頁到底屬於哪一類。

5.1 路徑階層對應實際結構

/services/seo-audit/ 這樣的路徑,清楚說明它是「服務」底下的「網站稽核」。使用者從網址就能推斷自己在網站的哪一層,爬蟲也能從路徑讀出階層關係。反過來,若一個服務詳頁的網址跟服務總覽毫無路徑關聯,像是直接掛在根目錄下的 /seo-audit-xyz/,爬蟲就得多花力氣去理解它的歸屬,這頁與同類頁面之間的關聯也被削弱。

路徑也不宜過深。雖然階層要反映結構,但一層套一層到四五層深,網址會又長又難記,也暗示這頁埋得很深、離首頁很遠。我們的經驗是重要頁面盡量維持在三層以內,既保有階層語意,又不會因為路徑太深而顯得邊緣。

5.2 網址、麵包屑、導覽講同一個故事

我們的做法是把 URL 路徑、麵包屑、導覽三者放在一起檢查,確認它們對頁面的分類是一致的。三者一致時,搜尋引擎收到的是同一個明確訊號;三者各說各話時,訊號就矛盾。舉例來說,如果網址把某頁放在 /services/ 底下,麵包屑卻顯示它屬於「部落格」,這種前後不一會讓頁面的主題歸屬變得模糊。URL 是這三者裡最難改的一環,所以更值得在一開始就定對。

5.3 改網址前,先想好重導計畫

URL 一旦上線就有慣性,別人的連結、搜尋引擎的收錄都綁在舊網址上。我們在服務經驗中看過網站為了「讓網址更漂亮」就直接改路徑、卻沒做重導,結果舊網址全變 404,累積的排名一夕蒸發。要改網址,務必用 301 把舊網址永久導向新網址,把權重完整地轉過去,同時更新站內所有指向舊網址的連結,並重新提交 sitemap。

更穩妥的順序是:先把新舊網址的對應關係列成一張清單,確認每一個舊網址都有對應的新網址可以導,再一次切換。漏掉其中幾條對應,那幾頁的權重就斷在半路。改網址從來不是單純換個路徑,而是一次牽動重導、內部連結與 sitemap 的工程,規劃清楚再動手,才不會賠掉原本的排名。

6. 常見問題

6.1 網址裡到底要不要放關鍵字?

放一到兩個真正描述內容的核心字詞是合理的,能幫使用者與搜尋引擎判斷主題。但不要把整串關鍵字堆進網址,那樣既難讀又顯得刻意,也拿不到想要的排名效果。原則是語意清楚、一段路徑對應一個概念,而不是把網址當成關鍵字的堆疊區。

6.2 已經上線的醜網址,值得回頭改嗎?

要看代價與收益。改網址必須搭配 301 重導,並更新內部連結與 sitemap,過程有一定風險。若舊網址只是稍微不夠漂亮、排名也穩定,通常不急著動;若它有動態參數失控、重複內容嚴重等實質問題,才值得規劃一次完整的重導再處理。先評估改動能帶來多少實際收益,再決定要不要動這一刀。

6.3 帶追蹤參數的網址會被當成重複內容嗎?

如果沒有處理,同一頁加上不同追蹤參數會被視為多個網址,確實有重複內容風險。標準做法是在頁面設定自我指向的 canonical,讓所有帶參數的變體都收斂回乾淨的主網址,權重就不會被切散。這也是為什麼我們建議每一頁都預設好 canonical,而不是等問題出現才補。

6.4 canonical 設定自己指向自己,不是多此一舉嗎?

不是。自我指向的 canonical 是一道保護:當網址被加上參數、或被人用大小寫不同的寫法連過來時,它能把這些變體的權重收回主網址。這個習慣成本很低,卻能預防很多難以事後追查的重複內容問題,所以值得在版型層就預設好。

6.5 中文網址和英文網址,哪個對 SEO 比較好?

兩者都可行,搜尋引擎都能處理。中文網址對本地使用者語意更直覺,但被貼到外部平台時可能被轉成百分比編碼字元而變難讀。選擇的關鍵不在中英文,而在語意是否清楚、格式是否一致、路徑是否對應階層。若網址常被分享到外部,英文在呈現上較穩定,可以納入考量。

6.6 動態參數的頁面完全不能被索引嗎?

不是完全不能,而是要有取捨。真正需要競爭關鍵字的重要頁面,建議給它乾淨的靜態路徑;而篩選、排序、追蹤這類功能性參數,則透過 canonical 收斂,避免它們大量佔用爬蟲的抓取預算。重點是讓抓取資源花在真正想被收錄的頁面上。

6.7 結尾斜線到底要不要加?

加或不加都可以,沒有絕對對錯,關鍵是全站統一。選定一種寫法之後,把另一種用 301 重導過去,內部連結也全部照同一種走。真正會出問題的不是選了哪一種,而是兩種寫法並存、又都能打開,製造出一組現成的重複內容。