URL Là Gì & Tại Sao Phải Quan Tâm Đến Các Ký Tự Hợp Lệ?
URL (Uniform Resource Locator) không chỉ đơn thuần là địa chỉ của một trang web, nó là yếu tố nền tảng trong việc điều hướng người dùng và công cụ tìm kiếm trên Internet. Việc lựa chọn đúng các ký tự được phép trong URL là một kỹ thuật SEO quan trọng, ảnh hưởng trực tiếp đến khả năng thu thập dữ liệu (crawlability), lập chỉ mục (indexability) và trải nghiệm người dùng.
Cấu trúc cơ bản của một địa chỉ URL
Một URL tiêu chuẩn thường bao gồm các thành phần như giao thức (http, https), tên miền (funlink.io.vn), và đường dẫn (path). Chính trong phần đường dẫn, việc sử dụng ký tự trở nên cực kỳ quan trọng. Một URL được cấu trúc tốt, sử dụng ký tự hợp lệ sẽ trở nên dễ đọc, dễ nhớ và dễ chia sẻ.
Tác động tiêu cực khi sử dụng sai ký tự đặc biệt trong link đến SEO
Sử dụng các ký tự không an toàn hoặc không được mã hóa đúng cách có thể gây ra nhiều vấn đề nghiêm trọng:
- Lỗi 404 (Not Found): Một số trình duyệt hoặc máy chủ không thể diễn giải chính xác các ký tự đặc biệt, dẫn đến việc không tìm thấy tài nguyên.
- Khó khăn trong việc Index: Googlebot có thể gặp khó khăn khi thu thập dữ liệu từ các URL phức tạp, chứa ký tự lạ, làm giảm khả năng trang của bạn được xếp hạng.
- Chia sẻ link bị lỗi: Khi người dùng sao chép và dán một URL chứa ký tự không an toàn (như dấu cách), nó thường bị “gãy” hoặc chuyển thành một chuỗi mã hóa khó hiểu, làm giảm tỷ lệ nhấp chuột (CTR).
- Tạo nội dung trùng lặp: Các hệ thống khác nhau có thể diễn giải cùng một URL chứa ký tự đặc biệt theo nhiều cách, vô tình tạo ra nhiều phiên bản của cùng một trang.
Nhóm 1: Ký Tự An Toàn (Unreserved Characters) – Luôn Được Phép
Đây là nhóm ký tự mà bạn có thể sử dụng tự do trong URL mà không cần bất kỳ thao tác mã hóa nào. Chúng được hiểu nhất quán trên mọi hệ thống và trình duyệt. Việc ưu tiên sử dụng nhóm ký tự này giúp URL của bạn luôn sạch sẽ, an toàn và thân thiện với SEO.
Chữ cái La-tinh không dấu (A-Z, a-z)
Nền tảng của mọi URL thân thiện. Tuy nhiên, cần lưu ý rằng URL có phân biệt chữ hoa và chữ thường (case-sensitive) trên hầu hết các máy chủ. Tốt nhất là luôn sử dụng chữ thường để đảm bảo tính nhất quán.
Chữ số (0-9)
Hoàn toàn an toàn và thường được sử dụng trong các URL sản phẩm, bài viết có chứa năm, hoặc các định danh ID.
Các ký tự đặc biệt an toàn: Dấu gạch nối (-), Dấu gạch dưới (_), Dấu chấm (.), Dấu ngã (~)
- Dấu gạch nối (-): Lựa chọn số một để thay thế dấu cách. Google chính thức khuyến nghị sử dụng dấu gạch nối vì nó giúp công cụ tìm kiếm đọc và hiểu các từ khóa trong URL tốt hơn.
- Dấu gạch dưới (): Mặc dù an toàn về mặt kỹ thuật, Google xem chuỗi “tukhoa” là một từ duy nhất “tukhoa”, trong khi “tu-khoa” được hiểu là hai từ “tu” và “khoa”. Vì vậy, gạch nối luôn là ưu tiên cho SEO.
- Dấu chấm (.): Thường được dùng để chỉ phần mở rộng của tệp (ví dụ:
anh-dep.jpg). - Dấu ngã (~): Ít phổ biến hơn nhưng vẫn là ký tự an toàn.

Nhóm 2: Ký Tự Dè Dặt (Reserved Characters) – Dùng Đúng Ngữ Cảnh
Nhóm ký tự này có ý nghĩa và chức năng đặc biệt trong cấu trúc của một URL. Chúng chỉ “dè dặt” vì việc sử dụng chúng sai mục đích có thể phá vỡ cấu trúc URL và gây ra lỗi. Khi bạn cần sử dụng chúng như một phần của dữ liệu (ví dụ: trong một tham số truy vấn) thay vì chức năng vốn có, bạn phải mã hóa chúng.
Định nghĩa Reserved Characters và vai trò của chúng
Reserved Characters là những ký tự được tiêu chuẩn URL dành riêng cho các mục đích cụ thể. Ví dụ, dấu gạch chéo (/) được dùng để phân tách các thư mục trong đường dẫn, dấu chấm hỏi (?) bắt đầu một chuỗi truy vấn (query string).
Các ký tự có mục đích chung (Gen-Delims): : / ? # [ ] @
:: Phân tách giao thức và tên miền (ví dụ:https://)./: Phân tách các phần trong đường dẫn.?: Bắt đầu chuỗi truy vấn.#: Đánh dấu một Fragment Identifier (liên kết đến một phần cụ thể trong trang).[và]: Được dùng trong địa chỉ IPv6.@: Phân tách thông tin người dùng và máy chủ.
Các ký tự có mục đích phụ (Sub-Delims): ! $ & ‘ ( ) * + , ; =
Nhóm này thường được sử dụng trong các tham số của URL (query parameters) để phân tách các cặp khóa-giá trị hoặc các giá trị khác nhau. Ví dụ, dấu & dùng để nối nhiều tham số (?id=123&category=tin-tuc).
Nhóm 3: Các Ký Tự Không An Toàn & Bắt Buộc Phải Mã Hóa
Đây là những ký tự không bao giờ nên xuất hiện trực tiếp trong URL. Chúng cần được chuyển đổi sang một định dạng an toàn thông qua Percent-Encoding để đảm bảo URL hoạt động chính xác trên mọi nền tảng.
Dấu cách (space)
Kẻ thù số một của URL. Dấu cách thường được mã hóa thành %20 hoặc đôi khi là dấu +. Tuy nhiên, cách tốt nhất là luôn thay thế dấu cách bằng dấu gạch nối - ngay từ đầu.
Các ký tự không thuộc bảng mã ASCII (bao gồm tiếng Việt có dấu)
Các chữ cái như á, â, đ, ễ… phải được mã hóa. Ví dụ, chữ á sẽ được mã hóa thành %C3%A1. Mặc dù các trình duyệt hiện đại có thể hiển thị tiếng Việt có dấu trên thanh địa chỉ, URL thực sự được gửi đến máy chủ đã được mã hóa. Vì lý do SEO và tính tương thích, việc sử dụng phiên bản không dấu vẫn là lựa chọn tối ưu.
Các ký tự không an toàn khác: < > % ” { } | \ ^ `
Những ký tự này có thể gây xung đột với cú pháp HTML, các dòng lệnh hoặc các hệ thống khác. Chúng phải luôn được mã hóa để tránh các lỗi không mong muốn và các lỗ hổng bảo mật.
Tiêu Chuẩn Hóa Ký Tự URL Theo RFC 3986 & Percent-Encoding
Để đảm bảo tính nhất quán trên toàn cầu, các quy tắc về ký tự URL được định nghĩa trong một tài liệu kỹ thuật gọi là RFC 3986, được ban hành bởi Lực lượng Chuyên trách về Kỹ thuật Liên mạng (IETF).
Giới thiệu về tiêu chuẩn RFC 3986 của IETF
RFC 3986 là kim chỉ nam cho mọi lập trình viên và quản trị web về cú pháp của URI (Uniform Resource Identifier), mà URL là một dạng con. Tiêu chuẩn này phân loại rõ ràng các ký tự thành Unreserved, Reserved và các ký tự khác cần mã hóa, tạo ra một quy tắc chung cho toàn bộ Internet.
Percent-Encoding là gì và cách nó xử lý ký tự không hợp lệ trong url
Percent-Encoding (Mã hóa phần trăm) là cơ chế chuyển đổi các ký tự không an toàn thành một định dạng an toàn. Quá trình này hoạt động bằng cách thay thế ký tự đó bằng dấu phần trăm (%) theo sau là hai chữ số thập lục phân (hexadecimal) đại diện cho giá trị của ký tự đó trong bảng mã ASCII hoặc UTF-8.

Hướng Dẫn Thực Chiến & Các Sai Lầm Cần Tránh
Nên dùng gạch nối (-) hay gạch dưới (_)?
Luôn luôn dùng gạch nối (-). Google đã xác nhận họ xem gạch nối là một ký tự phân tách từ, giúp họ hiểu rõ hơn về nội dung của URL. Trong khi đó, gạch dưới sẽ nối các từ lại với nhau. Ví dụ, cac-ky-tu-url tốt hơn cac_ky_tu_url cho SEO.
Case Study: Tác động của việc xử lý URL đến thứ hạng SEO
Nhiều website thương mại điện tử lớn đã chứng kiến sự cải thiện rõ rệt về thứ hạng sau khi dọn dẹp và chuẩn hóa cấu trúc URL. Họ đã loại bỏ các tham số không cần thiết, chuyển các URL chứa ký tự mã hóa khó hiểu sang các URL tĩnh, sạch sẽ chứa từ khóa. Kết quả là tỷ lệ nhấp chuột tự nhiên (Organic CTR) tăng và thứ hạng cho các từ khóa mục tiêu được cải thiện do Google dễ dàng “đọc” và “tin tưởng” các URL này hơn.
Sai lầm thường gặp khi đặt tên URL chứa ký tự đặc biệt
- Giữ nguyên dấu cách khi tải lên tệp tin, khiến URL có chứa
%20. - Sử dụng tiếng Việt có dấu, tạo ra các chuỗi URL mã hóa dài và phức tạp.
- Sử dụng dấu
&hoặc?không đúng mục đích, phá vỡ cấu trúc URL. - Để các tham số theo dõi phiên (session IDs) trong URL, gây ra vấn đề trùng lặp nội dung.
[Liên kết nội bộ] Tìm hiểu sâu hơn về URL Encoding là gì
Để nắm vững hơn về kỹ thuật mã hóa, bạn không nên bỏ qua bài viết chi tiết của chúng tôi. Tham khảo thêm: URL encoding là gì.
[Liên kết nội bộ] Tầm quan trọng của một URL chuẩn SEO
Một URL được tối ưu là một trong những yếu tố xếp hạng quan trọng. Đọc thêm bài phân tích của chúng tôi về Tác động của URL đến SEO để hiểu rõ hơn.
Checklist Tối Ưu URL Thân Thiện & An Toàn
- Luôn dùng chữ thường: Tránh các vấn đề về phân biệt chữ hoa/thường và nội dung trùng lặp.
- Dùng gạch nối (-): Sử dụng gạch nối để ngăn cách các từ.
- Ngắn gọn và súc tích: Loại bỏ các từ không cần thiết (stop words) như “va”, “thi”, “la”.
- Chứa từ khóa chính: Đặt từ khóa quan trọng nhất ở gần đầu URL.
- Loại bỏ ký tự không an toàn: Chuyển đổi tiếng Việt có dấu và các ký tự đặc biệt khác sang dạng không dấu, an toàn.
- Dễ đọc cho người dùng: Một người dùng bình thường nên có thể đoán được nội dung trang chỉ bằng cách đọc URL.
