Rel canonical là tín hiệu giúp công cụ tìm kiếm biết URL nào được chủ website xem là phiên bản đại diện trong một nhóm trang trùng hoặc gần trùng. Canonical không phải lệnh bắt buộc; Google có thể chọn URL khác khi các tín hiệu trên website mâu thuẫn.
Để xử lý đúng, cần phân biệt canonical do website khai báo với canonical do Google lựa chọn. Hai URL này có thể giống hoặc khác nhau.
Canonical URL là gì?
Khi nhiều URL có nội dung giống hoặc rất gần nhau, công cụ tìm kiếm có thể gom chúng thành một cụm. URL đại diện được dùng để xử lý tín hiệu và thường là URL có khả năng xuất hiện trong kết quả tìm kiếm.
| Khái niệm | Ý nghĩa |
|---|---|
| User-declared canonical | URL được website khai báo bằng rel=canonical, redirect, sitemap hoặc tín hiệu khác |
| Google-selected canonical | URL Google chọn làm đại diện sau khi đánh giá toàn bộ tín hiệu |
| Duplicate URL | URL trong cùng cụm nhưng không được chọn làm đại diện |
| Self-canonical | Trang khai báo chính URL của mình là phiên bản ưu tiên |
Canonicalization không đồng nghĩa URL còn lại bị xóa hoặc luôn biến mất khỏi index ngay lập tức. Đây là quá trình lựa chọn URL đại diện trong một cụm nội dung.
Cách khai báo rel=canonical
<link rel="canonical" href="https://example.com/trang-dai-dien/" />
Thẻ nên nằm trong phần <head> của HTML. URL canonical nên là URL tuyệt đối, truy cập được và phản ánh đúng phiên bản mà website muốn ưu tiên.
- Mỗi trang chỉ nên có một canonical rõ ràng.
- Canonical không nên trỏ đến URL 404, 5xx hoặc redirect chain dài.
- URL được chọn nên indexable và có nội dung tương đương.
- Không để HTML, HTTP header và JavaScript khai báo các canonical khác nhau.
- Sitemap và internal link nên nhất quán với URL ưu tiên.
Xem tài liệu chính thức về canonicalization và cách hợp nhất URL trùng lặp.
Canonical là gợi ý, không phải mệnh lệnh
Google xem canonical là một tín hiệu. Nếu URL khai báo canonical nhưng internal link, sitemap, redirect, nội dung và phiên bản HTTPS lại chỉ về URL khác, Google có thể chọn URL khác làm đại diện.
| Tín hiệu | Vai trò thường gặp |
|---|---|
| Redirect | Tín hiệu mạnh khi URL cũ thực sự chuyển sang URL mới |
| rel=canonical | Tín hiệu mạnh cho trang trùng hoặc gần trùng vẫn cần tồn tại |
| Sitemap | Tín hiệu yếu hơn, đồng thời hỗ trợ khám phá URL |
| Internal link | Giúp củng cố URL mà website xem là phiên bản chính |
| HTTPS và URL nhất quán | Giảm xung đột giữa các phiên bản kỹ thuật |
| Nội dung và metadata | Giúp xác định các trang có thật sự tương đương hay không |
Không có một tín hiệu đơn lẻ bảo đảm lựa chọn. Cần làm cho toàn bộ hệ thống cùng chỉ về một URL ưu tiên.
Khi nào nên dùng canonical?
- URL có tham số sắp xếp, tracking hoặc bộ lọc tạo nội dung gần giống.
- Một sản phẩm xuất hiện qua nhiều đường dẫn danh mục.
- Trang in, phiên bản AMP cũ hoặc phiên bản kỹ thuật tương đương vẫn cần tồn tại.
- Nội dung được syndicate hợp pháp và cần chỉ nguồn gốc.
- Các biến thể URL khác nhau nhưng cùng phục vụ một nội dung.
Canonical phù hợp khi nội dung đủ tương đương để người dùng không mất ý nghĩa nếu Google chọn URL đại diện. Không nên dùng canonical để che các trang khác intent hoặc khác giá trị.
Khi nào nên dùng redirect thay canonical?
Dùng redirect khi URL cũ không còn cần phục vụ người dùng và đã có URL thay thế. Canonical phù hợp hơn khi URL phụ vẫn cần truy cập được nhưng không phải phiên bản ưu tiên.
| Tình huống | Phương án thường phù hợp |
|---|---|
| Đổi slug hoặc migration URL | Redirect vĩnh viễn đến URL mới |
| Hai bài được hợp nhất | Redirect bài cũ về owner URL sau khi hợp nhất |
| URL tham số vẫn cần cho người dùng | Canonical về phiên bản ưu tiên khi nội dung tương đương |
| Trang hết hạn không có bản thay thế | 404 hoặc 410 có thể phù hợp hơn |
| Trang khác intent | Giữ self-canonical, không dùng canonical để hợp nhất giả tạo |
Canonical không thay thế noindex
noindex yêu cầu không lập chỉ mục một trang khi crawler có thể truy cập và đọc chỉ thị. Canonical đề xuất URL đại diện trong một cụm. Hai cơ chế phục vụ mục tiêu khác nhau.
- Muốn loại một trang khỏi kết quả tìm kiếm: xem xét noindex hoặc kiểm soát truy cập phù hợp.
- Muốn hợp nhất tín hiệu giữa các URL tương đương: dùng canonical hoặc redirect.
- Không dùng robots.txt như một cách chắc chắn để noindex.
- Không kết hợp noindex và canonical trên diện rộng với kỳ vọng Google luôn xử lý theo một cách cố định.
Self-canonical có cần thiết không?
Self-canonical không bắt buộc trong mọi hệ thống, nhưng thường hữu ích để khai báo rõ URL ưu tiên và giảm rủi ro do tham số hoặc biến thể URL. Với CMS, cần kiểm tra template sinh canonical đúng theo từng URL.
- Trang bài viết self-canonical về permalink chính.
- Trang danh mục self-canonical về URL danh mục nếu trang đó cần index.
- Trang phân trang cần chiến lược riêng; không tự động canonical mọi trang về trang 1.
- Trang đa ngôn ngữ thường self-canonical theo từng ngôn ngữ và liên kết bằng hreflang.
Canonical cho website đa ngôn ngữ
Các bản dịch đầy đủ thường không phải duplicate theo nghĩa cần canonical về một ngôn ngữ duy nhất. Mỗi phiên bản nên self-canonical và dùng hreflang để chỉ quan hệ ngôn ngữ hoặc khu vực.
Đọc thêm website đa ngôn ngữ, URL và hreflang.
Canonical trong JavaScript
Canonical nên có sẵn và nhất quán trong HTML. Nếu JavaScript thay đổi canonical sau khi tải, cần kiểm tra rendered HTML để bảo đảm không tạo tín hiệu xung đột.
- Kiểm tra HTML nguồn và rendered HTML.
- Không để canonical mặc định của template trỏ mọi trang về một URL.
- Không tạo nhiều thẻ canonical trong cùng trang.
- Kiểm tra canonical sau hydrate, route change hoặc client-side navigation.
Cách kiểm tra canonical
- Crawl toàn bộ URL trong phạm vi.
- Ghi declared canonical, status code và indexability.
- Đối chiếu internal link và sitemap.
- Kiểm tra nội dung giữa URL nguồn và URL đích.
- Dùng URL Inspection để xem user-declared và Google-selected canonical khi có dữ liệu.
- Kiểm tra rendered HTML với trang dùng JavaScript.
- Ghi finding theo page type thay vì sửa từng URL rời rạc.
| Finding | Rủi ro | Cách xử lý |
|---|---|---|
| Canonical trỏ 404 | Tín hiệu không hợp lệ hoặc bị bỏ qua | Trỏ về URL 200 phù hợp |
| Canonical chain | Tín hiệu vòng hoặc không rõ | Trỏ trực tiếp đến URL cuối |
| Canonical khác intent | Trang có thể bị loại khỏi cụm không phù hợp | Self-canonical hoặc tách owner URL |
| Sitemap chứa URL phụ | Tín hiệu mâu thuẫn | Chỉ giữ URL canonical, indexable, 200 |
| Internal link trỏ URL phụ | Lãng phí crawl và xung đột ưu tiên | Cập nhật link về URL ưu tiên |
| Google chọn URL khác | Hệ thống tín hiệu chưa nhất quán | Kiểm tra nội dung, redirect, link, sitemap và HTTPS |
Những lỗi canonical thường gặp
- Canonical mọi trang về trang chủ.
- Canonical bài khác search task chỉ vì cùng keyword.
- Dùng canonical để che thin content thay vì sửa nội dung.
- Canonical từ HTTPS về HTTP hoặc ngược lại với redirect.
- Canonical đến URL noindex hoặc robots chặn.
- Sitemap, hreflang và canonical dùng ba tập URL khác nhau.
- Sửa template sitewide mà không pilot và rollback.
Canonical và Keyword Cannibalization
Không nên dùng canonical như cách mặc định để xử lý các bài cùng keyword. Nếu hai URL phục vụ intent khác nhau, chúng có thể cùng tồn tại. Nếu trùng search task, cần chọn owner URL, hợp nhất nội dung hoặc phân vai lại.
Xem thêm Keyword Cannibalization để phân biệt trùng keyword với xung đột URL thật.
Kết luận
Rel canonical là một tín hiệu lựa chọn URL đại diện. Hiệu quả phụ thuộc sự nhất quán giữa nội dung, redirect, internal link, sitemap, HTTPS và indexability.
Không sửa canonical diện rộng chỉ từ một cảnh báo công cụ. Hãy audit theo page type, thử trên phạm vi nhỏ, đọc lại dữ liệu đã lưu và kiểm tra Google-selected canonical sau khi hệ thống được crawl lại.
Nhận tư vấn website và SEO theo mục tiêu kinh doanh
Chúng tôi giúp bạn xác định vấn đề ưu tiên, hướng triển khai và cách đo lường hiệu quả.
Nhận tư vấn miễn phí →