網站收錄

URL 里带中文、空格和特殊符号,收錄會不會出問题

URL 里出現中文、空格、#、& 等字符,浏览器能正常打開,但抓取和收錄环节可能因為编碼差异把同一份内容拆成多個地址。本文說明编碼是怎么回事、哪些字符最容易埋雷,以及怎样用统一寫法、301 跳轉和 canonical 把地址收敛到一處。

網站收錄

URL 里带中文、空格和特殊符号,收錄會不會出問题

做站的时候,URL 往往是最後才被認真對待的部分。栏目名直接寫中文、頁面标题拼進地址、從別處複製来的連結带着空格和 & ,這些寫法浏览器都能正常打開,但在抓取和收錄环节會带来一些不必要的麻烦。需要先明确一点:問题不在于“中文 URL 一定不被收錄”,而在于同一份内容可能因此产生好几個地址。

URL 里的字符要先经過编碼

URL 中允许直接出現的字符是有限的一批。中文、日文、空格、引号等都要先做百分号编碼(percent-encoding),才能在地址栏和請求里稳定传輸。浏览器通常會在複製或發起請求时自動帮你轉換,于是同一個頁面可能出現两種寫法:一種顯示為中文,另一種是 %E4%B8%AD 這样的编碼串。

對用戶来说两者等價,對搜尋引擎和日誌分析来说,它們首先是两個不同的字符串。如果站内不同位置分別用了這两種寫法,就等于把連結和訪問指向了两個地址。

几類容易出問题的字符

  • 空格:被编碼成 %20,肉眼很难發現,從表格或文档里粘贴連結时最常见。
  • #:後面的内容属于片段标识,不會發送给服務器,用在路径中間會让服務器收到一個被截断的地址。
  • ? 和 &:是查询參數的起止符号。本来想表達頁面名,寫成 a&b 就會被解析成两個參數。
  • 中文與全角符号:编碼後長度變長,連結在分享、贴到论坛或聊天工具时容易被截断或二次轉义。
  • 大小寫:URL 路径在多數服務器上区分大小寫,/Page 和 /page 可能是两個地址。

收錄环节真正要担心什么

搜尋引擎一般能正常處理编碼後的 URL,也會把中文形式的連結和它的编碼形式對應起来。所以單看一個中文 URL,通常不是收錄的直接障碍。

問题出在重复和分散上。同一篇内容,如果站内連結用编碼形式、sitemap 用中文形式、外鏈又是另一種轉义寫法,蜘蛛就會按多個地址去抓。结果是抓取预算被摊薄,頁面之間的信号被拆開;如果 canonical 也没有统一,索引里最终留下哪個版本就更不确定。

另一類影响出現在日誌和工具报表里。同一個頁面在不同来源下寫成不同字符串,統計时會被拆成好几行,看起来像是一批低價值地址,排查时容易绕遠路。

把地址收敛到一種寫法

  1. 新建頁面时,路径尽量用英文單词、拼音或數字 ID,避開中文、空格和标点。
  2. 站内所有連結、導航、分頁、面包屑统一使用编碼後的形式,不要一部分用中文一部分用编碼串。
  3. 對已经存在的多種寫法,選一個作為規范地址,其余用 301 跳到規范地址。
  4. canonical 指向規范地址,並保證 sitemap、内鏈、canonical 三處寫法一致。
  5. 检查外鏈和已分享出去的地址,如果發現大量指向非規范形式,可以在服務器端做统一跳轉。

自查顺序

如果怀疑 URL 字符影响了收錄,可以按這個顺序看:

  • 在日誌或抓取工具里搜尋同一個頁面的不同寫法,看是否被当成多個地址抓取。
  • 對每個頁面確認唯一的規范地址,检查 canonical 與 sitemap 是否一致。
  • 用站内搜尋或爬取工具找出带空格、未编碼中文、重复參數的連結。
  • 检查服務器是否對大小寫、尾斜杠、编碼差异做了统一跳轉。
URL 字符本身很少直接决定收錄與否,它更多是通過“同一内容出現几個地址”来間接影响抓取和索引。把它当成規范化問题来處理,比纠结该不该用中文 URL 更有用。