URL Parameter
Phần sau dấu ? trong URL (ví dụ: ?utm_source=fb) có thể tạo ra nhiều URL trùng lặp nếu không được xử lý đúng trong robots.txt hoặc GSC.
URL Parameter là gì?
URL Parameter (tham số URL) là phần xuất hiện sau dấu chấm hỏi ? trong địa chỉ web, dùng để truyền dữ liệu bổ sung cho máy chủ hoặc ứng dụng. Ví dụ: https://example.com/san-pham?utm_source=fb&utm_medium=cpc&ref=blog. Trong đó utm_source, utm_medium, ref là các tham số; fb, cpc, blog là giá trị tương ứng.
Tham số URL không làm thay đổi nội dung chính của trang — ví dụ cả /tin-tuc?ref=newsletter và /tin-tuc?ref=social đều hiển thị cùng bài báo — nhưng lại tạo ra những URL khác nhau trong mắt công cụ tìm kiếm.
Tại sao quan trọng trong SEO?
Khi một trang có nhiều biến thể URL nhờ tham số, Google có thể hiểu nhầm rằng đây là nhiều trang riêng biệt chứa nội dung trùng lặp. Điều này dẫn đến:
- Mất tập trung tín hiệu liên kết (link equity bị chia nhỏ giữa các URL)
- Tăng tải cho bộ thu thập (crawler budget bị lãng phí vào các URL không cần thiết)
- Giảm khả năng xếp hạng do nội dung bị phân mảnh
- Rủi ro bị xếp vào danh sách nội dung mỏng hoặc duplicate content
Theo tài liệu chính thức của Google, tham số URL là một trong những nguyên nhân hàng đầu gây ra vấn đề trùng lặp URL trên website lớn — đặc biệt với site thương mại điện tử, tin tức hoặc nền tảng có hệ thống lọc sản phẩm (ví dụ: ?color=red&size=m&sort=price).
Cách hoạt động
Trình duyệt gửi toàn bộ URL — bao gồm phần tham số — tới máy chủ. Máy chủ xử lý tham số để cá nhân hóa trải nghiệm (ví dụ: hiển thị banner theo nguồn giới thiệu), lưu hành vi người dùng, hoặc điều khiển chức năng (lọc, sắp xếp, phân trang). Tuy nhiên, nếu nội dung HTML trả về giống hệt nhau cho nhiều tổ hợp tham số, thì đây là tín hiệu rõ ràng rằng các URL đó nên được gộp thành một.
Googlebot đọc và thử thu thập các URL có tham số như bình thường. Nếu không có hướng dẫn rõ ràng, nó sẽ coi mỗi biến thể là một trang độc lập — ngay cả khi chúng trả về nội dung giống nhau 100%.
Hướng dẫn thực hiện
Dưới đây là 4 bước xử lý tham số URL đúng cách, được Google khuyến nghị:
- Xác định tham số nào ảnh hưởng đến nội dung: Dùng Google Search Console > Báo cáo "URL với tham số" (nếu bật) hoặc kiểm tra thủ công bằng cách thay đổi giá trị tham số và so sánh HTML (dùng công cụ như Diffchecker). Nếu nội dung thay đổi → giữ nguyên. Nếu không thay đổi → cần xử lý.
- Thông báo cho Google qua Google Search Console: Vào Settings > URL Parameters (tính năng đã chuyển sang chế độ "đọc-only" từ 2023, nhưng vẫn hiển thị dữ liệu lịch sử). Với website mới, dùng URL Inspection Tool + gửi yêu cầu "Request indexing" cho URL chuẩn (không tham số).
- Sử dụng thẻ
rel="canonical": Đặt thẻ canonical trỏ về URL chuẩn (không tham số hoặc có tham số bắt buộc) trên mọi trang có biến thể. Ví dụ: trang/san-pham?id=123&ref=emailphải có<link rel="canonical" href="/san-pham?id=123" />. - Quản lý bằng robots.txt hoặc cấu hình máy chủ: Không chặn hoàn toàn bằng
Disallowtrong robots.txt nếu muốn Google hiểu cấu trúc — thay vào đó, dùngnoindex(meta hoặc header) cho các biến thể không cần lập chỉ mục, hoặc cấu hình rewrite rule trên Nginx/Apache để chuyển hướng 301 về URL chuẩn (chỉ áp dụng khi tham số không mang ý nghĩa nội dung).
Lỗi thường gặp
1. Để mặc định tất cả tham số đều được lập chỉ mục
Hệ quả: Hàng nghìn URL trùng lặp xuất hiện trong GSC, chiếm crawler budget, làm chậm việc lập chỉ mục trang quan trọng.
Cách khắc phục: Kiểm tra danh sách URL trong GSC > "Coverage", lọc theo mẫu ?*, sau đó áp dụng canonical hoặc noindex.
2. Dùng Disallow trong robots.txt cho tham số không cần index
Hệ quả: Google không thu thập được URL → không biết đó là bản sao → không thể áp dụng canonical hoặc hiểu cấu trúc.
Cách khắc phục: Thay vì chặn, hãy để Google thu thập và dùng noindex hoặc canonical. Chỉ dùng Disallow khi tham số gây rủi ro bảo mật (ví dụ: ?session_id=abc) hoặc tải nặng (ví dụ: ?debug=true).
3. Thiết lập canonical sai (trỏ vòng tròn hoặc trỏ ngoài miền)
Hệ quả: Google bỏ qua thẻ canonical, tiếp tục lập chỉ mục trùng lặp.
Cách khắc phục: Kiểm tra bằng URL Inspection Tool; đảm bảo canonical luôn là URL tuyệt đối, cùng tên miền, trả về mã 200, và không có thẻ noindex đi kèm.
Ví dụ thực tế
Một website bán hàng có trang danh mục: https://shop.vn/danh-muc/dien-thoai. Người dùng có thể lọc bằng tham số:
?brand=samsung&price_max=10000000→ hiển thị điện thoại Samsung dưới 10 triệu?sort=rating&page=2→ trang 2, sắp xếp theo đánh giá?utm_source=zalo&ref=qr→ chỉ dùng theo dõi, không ảnh hưởng nội dung
Trong trường hợp này:
brandvàprice_max: ảnh hưởng nội dung → nên giữ và tối ưu riêng (có thể dùng canonical linh hoạt hoặc tạo trang con tĩnh nếu đủ giá trị)sortvàpage: tạo trùng lặp → dùng canonical trỏ về trang đầu tiên không sort (/danh-muc/dien-thoai)utm_source,ref: không ảnh hưởng nội dung → thêmnoindex, followhoặc loại bỏ bằng JavaScript trước khi gửi đến Google (tùy trường hợp)
| Loại tham số | Ảnh hưởng nội dung? | Khuyến nghị xử lý | Ghi chú |
|---|---|---|---|
| Utm_* (utm_source, utm_medium...) | Không | noindex hoặc canonical về URL gốc | Google khuyến nghị không lập chỉ mục |
| Phân trang (page=2, offset=20) | Không (nội dung là bản sao) | canonical về trang đầu tiên + noindex cho các trang sau | Trừ khi trang 2 có nội dung độc nhất (ít gặp) |
| Bộ lọc sản phẩm (color=red, size=m) | Có (nếu hiển thị sản phẩm khác) | Duy trì, tối ưu thẻ title/meta, dùng canonical linh hoạt | Có thể cần tạo trang tĩnh nếu lượng tìm kiếm cao |
| Debug/test (debug=true, test=abc) | Không | Chặn bằng robots.txt hoặc noindex | Ưu tiên chặn ở tầng server để tránh rò rỉ |
Câu hỏi thường gặp
URL Parameter có ảnh hưởng đến tốc độ tải trang không?
Không trực tiếp — nhưng nếu tham số kích hoạt tính năng nặng (ví dụ: tải dữ liệu phân tích thời gian thực, gọi API bên thứ ba), thì có thể làm chậm thời gian phản hồi. Tốc độ phụ thuộc vào cách lập trình xử lý tham số, không phải bản thân tham số.
Có nên xóa hoàn toàn tham số khỏi URL không?
Không nên — trừ khi chúng không cần thiết. Tham số rất hữu ích cho phân tích, cá nhân hóa và vận hành. Mục tiêu là kiểm soát cách Google xử lý chúng, không phải loại bỏ chức năng.
Google có tự động nhận diện tham số không cần index không?
Có, nhưng không đáng tin cậy. Google có thể phán đoán dựa trên mẫu (ví dụ: utm_*, fbclid), nhưng vẫn ưu tiên tín hiệu rõ ràng từ webmaster như canonical, noindex hoặc cấu hình trong Search Console. Không nên phụ thuộc vào khả năng tự động phát hiện.