Canonical URL là gì và cách dùng đúng để khỏi tự hại mình
Thẻ canonical chỉ cho Google đâu là bản chính khi nhiều URL cùng một nội dung. Khai báo sai thẻ này có thể khiến nhầm trang biến mất khỏi tìm kiếm.
Canonical URL (URL chính tắc) là cách bạn nói với Google rằng "trong số nhiều địa chỉ cùng dẫn tới nội dung này, đây mới là bản chính cần xếp hạng." Khai báo bằng một dòng mã nhỏ đặt trong phần đầu trang — thẻ rel="canonical" — nó âm thầm giải quyết một trong những vấn đề kỹ thuật dai dẳng nhất: cùng một nội dung lại truy cập được qua nhiều đường dẫn khác nhau.
Nghe có vẻ là chuyện hiếm, nhưng thực ra nó xảy ra ở gần như mọi website mà chủ web không hề hay biết. Một sản phẩm hiện ra dưới nhiều URL vì có tham số lọc, một bài viết vừa vào được qua http lẫn https, trang chủ truy cập được cả ở dạng có dấu / cuối lẫn không. Mỗi biến thể đó, trong mắt Google, có thể là một trang riêng — và đó là lúc canonical URL trở thành tấm bản đồ chỉ đường. Bài này giải thích thẻ canonical là gì, hoạt động ra sao, khi nào cần dùng, và những lỗi khai báo khiến nó phản tác dụng.
Vì sao một nội dung lại có nhiều URL
Trước khi hiểu canonical, cần thấy vấn đề nó sinh ra để giải quyết. Một trang nội dung tưởng chỉ có một địa chỉ, nhưng thực tế thường tồn tại dưới nhiều phiên bản URL mà bạn không cố ý tạo ra:
- Tham số theo dõi và lọc:
/ao-thun?mau=dovà/ao-thun?mau=xanhcùng dẫn tới một trang sản phẩm, hoặc các tham số chiến dịch như?utm_source=...tạo ra vô số biến thể. - HTTP và HTTPS: trang vào được cả
http://lẫnhttps://nếu chưa chuyển hướng dứt khoát. - www và không www:
example.comvàwww.example.combị coi là hai địa chỉ khác nhau. - Dấu gạch chéo cuối:
/dich-vuvà/dich-vu/đôi khi trả về cùng nội dung qua hai URL. - Trang in, trang sắp xếp, trang phân trang: nhiều hệ quản trị tự sinh ra các bản sao nhẹ của cùng một trang.
Với mỗi biến thể này, Google đứng trước câu hỏi: đây là cùng một trang hay nhiều trang? Nếu không có chỉ dẫn, nó tự đoán — và đoán sai thì sức mạnh xếp hạng bị xé lẻ ra cho từng URL, không bản nào đủ mạnh để lên top. Đây là mảnh đất màu mỡ sinh ra duplicate content (nội dung trùng lặp).
Thẻ canonical hoạt động thế nào
Thẻ canonical là một dòng đặt trong phần <head> của trang, có dạng:
<link rel="canonical" href="https://example.com/trang-chinh" />
Dòng này nói với Google: "mọi biến thể URL khác đều là bản sao của trang này; hãy gom tín hiệu về đây và xếp hạng bản này." Khi xử lý, Google chọn URL được trỏ tới làm bản chính để hiển thị trong kết quả, đồng thời dồn các tín hiệu xếp hạng (giá trị backlink, độ liên quan) từ các bản sao về URL chính đó.
Điểm cần nắm: canonical là một gợi ý (hint), không phải mệnh lệnh tuyệt đối. Google thường tôn trọng khai báo của bạn, nhưng nếu phát hiện mâu thuẫn — chẳng hạn trang bạn nói là bản sao lại có nội dung khác hẳn bản chính — nó có thể bỏ qua canonical và tự chọn. Đây là khác biệt lớn so với redirect 301 vốn là chỉ thị cứng. Vì là gợi ý, canonical đòi hỏi khai báo nhất quán thì Google mới tin.
Để hình dung canonical can thiệp vào đâu: Google phải thu thập rồi lập chỉ mục một trang trước khi xếp hạng. Thẻ canonical tác động ngay ở khâu lập chỉ mục — nó quyết định URL nào được lưu vào kho khi có nhiều bản giống nhau.

Canonical và 301 redirect khác nhau ở đâu
Đây là chỗ gây nhầm lẫn nhiều nhất, vì cả hai đều xử lý tình huống "nhiều URL, một nội dung". Khác biệt mấu chốt nằm ở việc URL kia còn sống hay không.
Với 301 redirect, URL cũ biến mất — ai truy cập đều bị đẩy thẳng sang URL mới, không còn cách nào xem bản cũ. Với canonical, cả hai URL vẫn vào được bình thường; bạn chỉ ngầm báo cho Google đâu là bản nên xếp hạng, còn người dùng vẫn xem được mọi biến thể.
| Tiêu chí | 301 redirect | Thẻ canonical |
|---|---|---|
| URL gốc còn truy cập? | Không — bị chuyển hẳn | Có — vẫn xem được |
| Bản chất | Chỉ thị cứng | Gợi ý (Google có thể bỏ qua) |
| Dùng khi | URL cũ không cần tồn tại nữa | Cần giữ cả hai URL nhưng gom tín hiệu |
| Ví dụ điển hình | Đổi slug, dời tên miền, gộp bài | Trang lọc sản phẩm, trang in, tham số UTM |
Nguyên tắc chọn nhanh: nếu URL kia không có lý do gì để tồn tại, dùng 301 cho dứt khoát. Nếu URL kia vẫn cần phục vụ người dùng (ví dụ trang lọc theo màu, theo size) mà bạn không muốn nó cạnh tranh với bản chính, dùng canonical. Chi tiết về cách chọn loại chuyển hướng nằm ở bài redirect 301 và 302.
Khi nào nên dùng thẻ canonical
Canonical phát huy tác dụng rõ nhất ở những website có nhiều biến thể URL tự sinh. Các tình huống nên dùng:
- Trang thương mại điện tử có bộ lọc và sắp xếp. Một danh mục sản phẩm với hàng chục tổ hợp lọc (
?gia=...,?mau=...,?sapxep=...) nên trỏ canonical về URL danh mục gốc để gom sức mạnh. - Nội dung xuất hiện ở nhiều chuyên mục. Một bài nằm trong hai chuyên mục, vào được qua hai đường dẫn — chọn một làm canonical.
- Phiên bản dành cho in hoặc cho thiết bị riêng. Bản in
?print=1nên trỏ canonical về bản thường. - Nội dung được phân phối lại (syndication). Khi bài của bạn được đăng lại trên site khác, site đó nên đặt canonical trỏ về bản gốc của bạn để bạn giữ quyền tác giả trong mắt Google.
- Tự trỏ về chính mình (self-referencing canonical). Mỗi trang nên có một canonical trỏ về chính URL chuẩn của nó — đây là thực hành tốt giúp Google khỏi nhầm với các biến thể tham số.
Canonical là một mảnh ghép trong bức tranh on-page tổng thể: nó nằm cùng nhóm với thẻ tiêu đề, heading, URL và internal link — những thứ bạn khai báo ngay trên trang để Google hiểu đúng.

Những lỗi canonical khiến trang biến mất khỏi tìm kiếm
Thẻ canonical mạnh, nhưng đặt sai thì hậu quả nặng — vì bạn đang tự tay chỉ Google "đừng xếp hạng trang này". Các lỗi nguy hiểm nhất:
Trỏ canonical về sai trang
Lỗi kinh điển: nhiều trang khác nhau cùng trỏ canonical về trang chủ, hoặc một template lỗi khiến mọi bài viết trỏ về cùng một URL. Kết quả là Google gom hết và chỉ xếp hạng đúng một trang, còn lại biến mất khỏi kết quả. Mỗi nội dung độc lập phải có canonical trỏ về chính nó, không phải về một trang chung.
Canonical mâu thuẫn với tín hiệu khác
Nếu trang A trỏ canonical sang B, nhưng B lại có 301 redirect về A, hoặc robots.txt chặn B — các tín hiệu đánh nhau và Google bối rối, thường là bỏ qua canonical rồi tự quyết theo cách bạn không lường được. Mọi tín hiệu kỹ thuật phải nhất quán cùng chỉ về một hướng.
Canonical trỏ tới trang bị chặn index hoặc lỗi
Trỏ canonical về một URL đang để noindex, đang trả lỗi 404, hoặc nằm trong chuỗi redirect — đều khiến Google không tin và tự chọn bản chính. Bản chính bạn khai báo phải là một URL khoẻ mạnh: trả về mã 200, cho phép index, và là đích cuối cùng.
Dùng URL tương đối thay vì tuyệt đối
Một số hệ thống khai báo canonical bằng đường dẫn rút gọn (/trang) thay vì URL đầy đủ (https://example.com/trang). Điều này dễ gây hiểu sai địa chỉ, nhất là trên website có nhiều tên miền phụ. Luôn dùng URL tuyệt đối, đầy đủ giao thức.
Một dòng mã nhỏ, ảnh hưởng lớn tới index
Canonical URL là cách bạn chỉ cho Google đâu là bản chính khi một nội dung tồn tại dưới nhiều địa chỉ, nhờ đó gom tín hiệu xếp hạng về một trang thay vì để chúng xé lẻ. Nó khác 301 ở chỗ giữ cho mọi URL vẫn truy cập được, và là gợi ý chứ không phải mệnh lệnh — nên chỉ hiệu quả khi mọi tín hiệu kỹ thuật trên website cùng nhất quán. Dùng đúng, nó dọn sạch tình trạng trùng lặp âm thầm; đặt sai, nó có thể xoá nguyên một mảng trang khỏi kết quả tìm kiếm.
Vì là thứ nằm ẩn trong mã nguồn và không lộ ra với người dùng, lỗi canonical rất khó tự phát hiện nếu không rà soát có hệ thống — và đó thường là điều đầu tiên cần soi khi một website "có nội dung tốt mà mãi không được index".
Nghi ngờ website đang khai báo canonical sai khiến nhiều trang không lên kết quả? Để chuyên gia SEO 10+ năm kinh nghiệm audit cấu hình kỹ thuật và sửa tận gốc. Nhận tư vấn miễn phí.
Muốn áp dụng cho website của bạn?
Nhận khảo sát và tư vấn miễn phí từ đội ngũ SeoRankGo.