Google 網址結構最佳做法

Google 支援由 RFC 3986 所定義的網址。由標準定義為保留的字元必須使用百分比編碼。未使用百分比編碼的 ASCII 字元可能會保留為未編碼的格式。此外,非 ASCII 範圍中的字元應採用 UTF-8 編碼。

如果可以,請盡量在網址中使用具有意義的字詞,不要使用冗長的 ID 號碼。

建議:在網址中使用簡單的描述性字詞:

https://en.wikipedia.org/wiki/Aviation

建議:在網址中使用本地化字詞 (如果適用)。

https://example.com/lebensmittel/pfefferminz

建議:視需要使用 UTF-8 編碼。舉例來說,下方範例中的網址採用阿拉伯字元的 UTF-8 編碼:

https://example.com/%D9%86%D8%B9%D9%86%D8%A7%D8%B9/%D8%A8%D9%82%D8%A7%D9%84%D8%A9

下方範例針對網址中的中文字元採用 UTF-8 編碼:

https://example.com/%E6%9D%82%E8%B4%A7/%E8%96%84%E8%8D%B7

下方範例針對網址中的日耳曼語元音變音採用 UTF-8 編碼:

https://example.com/gem%C3%BCse

下方範例針對網址中的表情符號採用 UTF-8 編碼:

https://example.com/%F0%9F%A6%99%E2%9C%A8

不建議:在網址中使用非 ASCII 字元:

https://example.com/نعناع
https://example.com/杂货/薄荷
https://example.com/gemüse
https://example.com/🦙✨

不建議:在網址中使用不具意義的冗長 ID 號碼:

https://example.com/index.php?id_sezione=360&sid=3a5ebc944f41daa6f849f730f1

請勿使用片段來變更網頁內容,因為 Google 通常不支援網址片段。如果使用 JavaScript 變更內容,請改用 History API

不建議使用:網址片段:

https://example.com/#/potatoes

如果您的網站是多地區網站,建議考慮使用可輕鬆為網站指定不同地理區域的網址結構。如需更多範例,瞭解如何建構網址,請參閱使用地區專屬的網址

建議:使用國家/地區專屬的網域:

https://example.de

建議:搭配 gTLD 使用國家/地區專屬子目錄:

https://example.com/de/

您可以在網址中使用連字號來分隔字詞,讓使用者和搜尋引擎更容易識別網址中的關鍵字。建議您在網址中使用連字號 (-),不要使用底線 (_)。

建議使用:連字號 (-):

https://example.com/summer-clothing/filter?color-profile=dark-grey

不建議使用:底線 (_):

https://example.com/summer_clothing/filter?color_profile=dark_grey

不建議:將網址中的字詞連在一起:

https://example.com/greendress

指定網址參數時,請使用以下常見的編碼:使用等號 (=) 分隔鍵/值組合,並使用連接符號 (&) 新增其他參數。如要在一個鍵/值組合內針對相同鍵列出多個值,可以使用任何不會與 IETF STD 66 衝突的字元,例如逗號 (,)。

建議:使用等號 (=) 分隔鍵/值組合,並使用連接符號 (&) 新增其他參數:

https://example.com/category?category=dresses&sort=low-to-high&sid=789

建議:使用逗號 (,) 列出同一個鍵的多個值、等號 (=) 分隔鍵/值組合,並使用連接符號 (&) 新增其他參數:

https://example.com/category?category=dresses&color=purple,pink,salmon&sort=low-to-high&sid=789

不建議:使用半形冒號 : 分隔鍵/值組合,以及使用括號 [ ] 新增其他參數

https://example.com/category?[category:dresses][sort:price-low-to-high][sid:789]

不建議:使用單引號 , 分隔鍵/值組合,以及使用雙引號 ,, 新增其他參數

https://example.com/category?category,dresses,,sort,lowtohigh,,sid,789

網址相關的常見問題

太過複雜的網址可能會為檢索器帶來問題,特別是那些包含多個參數的網址,因為這意味著可能有大量不必要的網址指向網站上的相同或類似內容,導致 Googlebot 平白占用更多頻寬,甚至無法為網站的所有內容建立索引。

造成網址數量過多的原因有很多種,其中包括:

  • 對項目組進行多重篩選。許多網站能讓您以不同方式檢視同一組項目或搜尋結果,通常是允許使用者透過預先定義好的條件來篩選某一組項目,例如「顯示海灘旅館」。如果系統允許組合多個篩選器,例如「顯示有健身中心的海灘旅館」,那麼網站中的網址數量 (也就是資料的檢視方式) 就會大幅增加。建立大量只有些微差異的旅館清單並無必要,因為 Googlebot 僅需要查看少量清單即可造訪每個旅館的網頁。例如:
    • 「平價」旅館:
      https://example.com/hotel-search-results.jsp?Ne=292&N=461
    • 海灘上的「平價」旅館:
      https://example.com/hotel-search-results.jsp?Ne=292&N=461+4294967240
    • 海灘上附有健身中心的「平價」旅館:
      https://example.com/hotel-search-results.jsp?Ne=292&N=461+4294967240+4294967270
  • 動態產生文件。這類做法會讓網址因為計數器、時間戳記或廣告而產生些微差異。
  • 網址中的問題參數。例如,工作階段 ID 會建立大量重複項目和海量網址。
  • 排序參數。有些大型購物網站提供多種方式來排序相同的項目,因而產生大量網址。例如:
    https://example.com/results?search_type=search_videos&search_query=tpb&search_sort=relevance&search_category=25
  • 網址包含無關的參數,像是參照連結網址參數。例如:
    https://example.com/search/noheaders?click=6EE2BF1AF6A3D705D5561B7C3564D9C2&clickPage=OPD+Product+Page&cat=79
    https://example.com/discuss/showthread.php?referrerid=249406&threadid=535913
    https://example.com/products/products.asp?N=200063&Ne=500955&ref=foo%2Cbar&Cn=Accessories.
  • 日曆問題。動態產生的日曆可能產生連向未來與過去日期的連結,但這些連結並未針對起始或結束日期設下任何限制。例如:
    https://example.com/calendar.php?d=13&m=8&y=2011
  • 損毀的相關連結。損毀的相關連結可能會產生無限空間,這種問題通常是重複的路徑元素所造成。例如:
    https://example.com/index.shtml/discuss/category/school/061121/html/interview/category/health/070223/html/category/business/070302/html/category/community/070413/html/FAQ.htm

解決網址相關問題

如要避免網址結構可能造成的問題,建議採取下列做法:

  • 建立簡單的網址結構。請試著組織網站內容,使用具有邏輯的網址結構,讓人容易理解。
  • 考慮透過 robots.txt 檔案禁止 Googlebot 存取有問題的網址。一般說來,請考慮封鎖動態網址,例如會產生搜尋結果的網址,或是可能建立無限空間的網址 (例如日曆)。只要在 robots.txt 檔案中使用規則運算式,即可輕鬆封鎖大量網址。
  • 盡可能避免在網址中使用工作階段 ID,並考慮改用 Cookie。
  • 如果您的網路伺服器會忽略網址中文字的大小寫差異,請將所有文字都轉換成大寫或小寫,以利 Google 判斷網址參照的網頁是否相同。
  • 刪去不必要的參數,盡可能縮短網址。
  • 如果您的網站有無限日曆,請在指向動態產生未來日曆網頁的連結中加入 nofollow 屬性
  • 檢查網站是否有損毀的相關連結。