URL Parameter Handling for Sorting
Quản lý tham số URL như ?sort=price_asc để tránh tạo nội dung trùng lặp và lãng phí ngân sách thu thập.
URL Parameter Handling for Sorting là gì?
URL Parameter Handling for Sorting là cách website thương mại điện tử quản lý các tham số trong URL dùng để sắp xếp sản phẩm — ví dụ: ?sort=price_asc, ?sort=date_newest, ?sort=rating_desc. Mục tiêu chính là ngăn Googlebot thu thập và lập chỉ mục hàng loạt phiên bản URL gần như giống nhau (chỉ khác tham số sắp xếp), từ đó tránh tạo nội dung trùng lặp, phân tán sức mạnh liên kết và lãng phí ngân sách thu thập (crawl budget).
Tại sao quan trọng trong SEO?
Trong thương mại điện tử, một danh mục sản phẩm có thể sinh ra hàng chục — thậm chí hàng trăm — URL khác nhau chỉ vì thay đổi tham số sắp xếp. Nếu không kiểm soát, Google có thể:
- Lập chỉ mục nhiều URL hiển thị cùng nội dung (ví dụ: danh sách 24 sản phẩm iPhone, chỉ khác thứ tự), gây nhiễu tín hiệu xếp hạng;
- Phân tán PageRank và tín hiệu liên kết giữa các phiên bản;
- Đánh mất ngân sách thu thập vào các URL không mang giá trị SEO — làm chậm việc khám phá trang mới hoặc cập nhật nội dung quan trọng;
- Gây khó khăn cho việc đo lường hiệu quả SEO do dữ liệu báo cáo bị phân mảnh.
Theo nghiên cứu của DeepCrawl và Botify, trung bình 18–35% tổng số URL được phát hiện trên site E-commerce là URL có tham số sắp xếp — trong đó hơn 60% không cần lập chỉ mục.
Cách hoạt động
Hệ thống xử lý tham số sắp xếp dựa trên hai cơ chế chính: khai báo với công cụ tìm kiếm và kiểm soát tại tầng máy chủ.
Google hỗ trợ cấu hình tham số qua Google Search Console > Cài đặt > Tham số URL (tính năng đã chuyển sang dạng gợi ý tự động trong GSC mới, nhưng vẫn hoạt động qua robots.txt + canonical). Cơ chế hoạt động gồm:
- Website gửi tín hiệu rõ ràng rằng tham số
sortchỉ ảnh hưởng đến thứ tự hiển thị, không thay đổi nội dung chính; - Google sử dụng tín hiệu này để nhóm các URL có cùng gốc (ví dụ:
/dien-thoai) và chọn một phiên bản đại diện để lập chỉ mục; - Các phiên bản còn lại được coi là “phụ” và không ưu tiên thu thập — trừ khi có yếu tố đặc biệt (ví dụ: có backlink mạnh).
Hướng dẫn thực hiện
Dưới đây là quy trình thực hiện chuẩn, áp dụng cho đa số nền tảng (Shopify, Magento, WooCommerce, custom PHP/Node.js):
- Xác định tất cả tham số sắp xếp: Dùng công cụ như Screaming Frog hoặc Sitebulb để crawl toàn bộ site, lọc URL chứa
?sort=,&sort=,?order=… Lưu danh sách đầy đủ. - Thêm thẻ
rel="canonical": Đặt thẻ canonical trỏ về URL gốc không có tham số (hoặc phiên bản mặc định) trên mọi trang cósort. Ví dụ:<link rel="canonical" href="https://example.com/dien-thoai/" />
- Cấu hình trong robots.txt (tùy trường hợp): Không chặn hoàn toàn — vì Google vẫn cần thu thập để hiểu cấu trúc — nhưng có thể giới hạn bằng
Disallow: /*?sort=nếu dùng phương pháp cũ. Tuy nhiên, cách này ít được khuyến khích hiện nay do thiếu linh hoạt. - Sử dụng
data-nosnippethoặcnoindex(có thể thay đổi): Chỉ dùngnoindexnếu chắc chắn phiên bản đó không bao giờ cần xuất hiện trong kết quả tìm kiếm — ví dụ: trang sắp xếp theo “độ phổ biến nội bộ”. Với đa số trường hợp, nên ưu tiên canonical + cấu hình tham số. - Cấu hình tham số trong Google Search Console: Truy cập GSC > Settings > URL Parameters (nếu hiển thị) hoặc dùng tính năng “Crawl > Parameters” trong phiên bản mới. Khai báo:
sortlà tham số “Does not change page content” và chọn “Let Google decide” hoặc “No URLs” cho hành vi lập chỉ mục.
Lỗi thường gặp
- Lỗi 1: Đặt
noindexcho tất cả URL cósortmà không kiểm tra ảnh hưởng đến trải nghiệm người dùng
→ Khắc phục: Kiểm tra tỷ lệ traffic từ tìm kiếm đến các URL sắp xếp (qua GSC > Performance). Nếu có lượng lớn lượt click từ “sắp xếp theo giá tăng dần”, hãy giữ phiên bản đó có index và dùng canonical thông minh — ví dụ:/dien-thoai/?sort=price_asccó thể là phiên bản đại diện nếu nó là lựa chọn phổ biến nhất. - Lỗi 2: Thiếu thẻ canonical trên trang con có nhiều tham số kết hợp (ví dụ: ?sort=price_asc&filter=brand-apple)
→ Khắc phục: Luôn đảm bảo canonical trỏ về URL gốc hoặc phiên bản chuẩn nhất — không phải URL “gốc + filter”, mà là URL gốc không có tham số nào. - Lỗi 3: Cấu hình sai trong GSC — khai báo
sortlà “Changes page content”
→ Khắc phục: Sửa thành “Does not change page content”. Sai sót này khiến Google coi mỗi URL sắp xếp là trang riêng biệt — gây trùng lặp nghiêm trọng.
Ví dụ thực tế
Một website bán laptop có danh mục https://shop.vn/laptop/. Sau khi crawl, phát hiện 7 URL sau:
| URL | Nội dung hiển thị | Thẻ canonical | Được lập chỉ mục? |
|---|---|---|---|
https://shop.vn/laptop/ |
Danh sách laptop (mặc định) | https://shop.vn/laptop/ |
✅ Có |
https://shop.vn/laptop/?sort=price_asc |
Cùng danh sách, chỉ sắp xếp giá tăng dần | https://shop.vn/laptop/ |
❌ Không (Google chọn phiên bản gốc) |
https://shop.vn/laptop/?sort=rating_desc&filter=gaming |
Danh sách laptop gaming có đánh giá cao — nội dung khác | https://shop.vn/laptop/?filter=gaming |
✅ Có (vì filter thay đổi nội dung) |
→ Kết luận: Chỉ tham số sort được xử lý như “không ảnh hưởng nội dung”; tham số filter thì cần xử lý riêng (thường giữ index nếu tạo nội dung độc đáo).
Câu hỏi thường gặp
URL có tham số sắp xếp có nên chặn bằng robots.txt không?
Không nên. Chặn bằng robots.txt sẽ ngăn Googlebot thu thập → không thể hiểu cấu trúc, không thể áp dụng canonical, và không thể nhóm URL. Cách đúng là dùng rel="canonical" + cấu hình tham số trong GSC.
Có nên tạo sitemap cho các URL sắp xếp không?
Không. Sitemap chỉ nên chứa URL chính — tức những trang có nội dung độc nhất và giá trị SEO rõ ràng. Việc đưa URL ?sort=... vào sitemap sẽ làm loãng chất lượng sitemap và gây nhầm lẫn cho Google.
Shopify và WooCommerce có xử lý tự động không?
WooCommerce (với plugin Yoast SEO hoặc Rank Math) hỗ trợ tự động thêm canonical cho URL sắp xếp — nhưng chỉ khi bật tùy chọn “Canonical URLs for sorting”. Shopify thì mặc định thêm canonical trỏ về URL gốc cho các tham số sắp xếp — tuy nhiên cần kiểm tra thực tế vì có thể thay đổi tùy theme hoặc app cài thêm.