Canonical URL Là Gì?
Canonical URL (URL chính tắc) là phiên bản URL đại diện cho một trang web khi nội dung đó tồn tại ở nhiều URL khác nhau. Canonical tag (thẻ canonical) là đoạn code HTML thông báo cho máy tìm kiếm biết phiên bản nào là bản chính thức cần được index và xếp hạng.
Cú pháp của canonical tag như sau:
<link rel="canonical" href="https://example.com/bai-viet" />
Tag này đặt trong phần <head> của trang HTML. Khi Googlebot crawl trang, nó đọc tag này và hiểu: “Đây là URL chính, hãy index URL này thay vì URL hiện tại đang crawl”.
Tại sao lại cần? Vì trong thực tế, cùng một nội dung có thể truy cập qua nhiều URL khác nhau. Nếu không có canonical tag, Google sẽ tự chọn — và không phải lúc nào cũng chọn đúng phiên bản bạn muốn.
Tại Sao Nội Dung Trùng Lặp Là Vấn Đề?
Nội dung trùng lặp (duplicate content) xảy ra khi cùng một nội dung xuất hiện ở nhiều URL. Đây là vấn đề phổ biến hơn bạn nghĩ:
- Tham số URL:
?utm_source=facebook,?sort=price,?page=2tạo ra URL khác nhưng nội dung giống nhau. - HTTP vs HTTPS: Cùng trang có thể truy cập qua cả
http://vàhttps://. - www vs non-www:
www.example.comvàexample.com. - Trailing slash:
example.com/page/vàexample.com/page. - Bản mobile riêng:
m.example.comvàexample.com. - Nội dung syndication: Bài viết đăng trên nhiều trang khác nhau.
Hậu quả của nội dung trùng lặp:
- Phân tán tín hiệu: Backlink, PageRank bị chia cho nhiều URL thay vì tập trung vào một.
- Lãng phí crawl budget: Google bot crawl nhiều bản sao thay vì trang mới.
- Sai phiên bản index: Google có thể index URL
?utm_source=...thay vì URL sạch. - Giảm thứ hạng: Nội dung trùng lặp nghiêm trọng có thể bị Google đánh giá thấp.
Cách Canonical Tag Hoạt Động
Khi Google tìm thấy nhiều URL có nội dung giống hoặc rất giống nhau, nó thực hiện quá trình canonicalization — chọn một URL làm đại diện (canonical) và gộp các tín hiệu từ tất cả các URL trùng lặp vào URL canonical đó.
Bạn có thể ảnh hưởng đến quyết định này bằng nhiều cách, theo thứ tự mạnh yếu của tín hiệu:
- Redirect 301: Tín hiệu mạnh nhất. Chuyển hướng vĩnh viễn từ URL cũ sang URL chính.
- rel=”canonical” link tag: Tín hiệu mạnh. Thẻ HTML trong phần
<head>. - rel=”canonical” HTTP header: Tín hiệu mạnh, dùng cho file không phải HTML (PDF, hình ảnh).
- Sitemap inclusion: Tín hiệu yếu. Chỉ liệt kê URL canonical trong sitemap XML.
Google khuyến nghị kết hợp nhiều phương pháp để tăng hiệu quả. Ví dụ: dùng cả redirect 301 và rel=”canonical” sẽ mạnh hơn chỉ dùng một.
Google Có Bao Giờ Bỏ Qua Canonical Tag Của Bạn Không?
Có. Canonical tag là gợi ý (hint), không phải mệnh lệnh. Google có thể chọn URL khác làm canonical nếu đánh giá rằng URL đó phù hợp hơn. Lý do thường gặp:
- URL canonical trả lỗi 404 hoặc redirect.
- URL canonical bị chặn bởi robots.txt.
- Nội dung hai trang quá khác nhau.
- URL canonical có nội dung noindex.
- Tín hiệu internal link và backlink chỉ ra URL khác mạnh hơn.
Để kiểm tra Google chọn URL nào làm canonical, dùng URL Inspection trong Google Search Console.
Cách Triển Khai Canonical Tag
1. Qua HTML (Thường Nhất)
Thêm dòng sau vào phần <head> của trang:
<link rel="canonical" href="https://example.com/bai-viet-chinh" />
Đây là cách phổ biến nhất, hoạt động với mọi trang HTML.
2. Qua HTTP Header (Cho File Không Phải HTML)
Đối với PDF, hình ảnh, hoặc file không có <head>:
HTTP/1.1 200 OK Content-Type: application/pdf Link: <https://example.com/tai-lieu>; rel="canonical"
Cách này cấu hình ở mức server (Nginx, Apache), phù hợp khi bạn có file PDF hoặc tài liệu tải xuống.
3. Qua Redirect 301
Khi bạn muốn loại bỏ hoàn toàn URL trùng lặp, redirect 301 là cách mạnh nhất:
Redirect 301 /bai-viet-cu https://example.com/bai-viet-moi
Google hiểu: URL cũ không còn tồn tại, toàn bộ tín hiệu được chuyển sang URL mới. Đây là tín hiệu canonical mạnh nhất.
4. Qua Sitemap
Chỉ liệt kê URL canonical trong sitemap XML. Đây là tín hiệu yếu, nhưng khi kết hợp với các phương pháp khác sẽ tăng độ tin cậy.
Cách Thiết Lập Canonical Tag Theo Nền Tảng
WordPress
WordPress từ bản core đã tự động thêm canonical tag cho các trang. Nhưng để kiểm soát tốt hơn:
- Yoast SEO: Trong trình soạn thảo bài viết, cuộn xuống phần Yoast, tab “Advanced”, nhập canonical URL manually nếu cần override.
- Rank Math: Tương tự, trong tab “Advanced” của Rank Math metabox.
Mặc định, các plugin này tự động set canonical trỏ đến URL của bài viết hiện tại. Bạn chỉ cần override khi:
- Bài viết là bản sao của bài khác.
- Trang có tham số URL mà bạn muốn canonical hóa.
- Nội dung được syndicate từ nguồn khác.
Shopify
Shopify tự động xử lý canonical tag khá tốt. Hầu hết cửa hàng nhỏ và vừa không cần thêm canonical manually. Nếu cần tùy chỉnh, phải edit theme code (file .liquid).
Website Tự Code
Thêm thẻ <link rel="canonical"> vào template <head> của mọi trang. Đảm bảo URL là absolute (có cả https://), trỏ đến phiên bản chính thức của trang đó.
Quy Tắc Vàng Khi Dùng Canonical Tag
1. Dùng Absolute URL
Luôn dùng URL đầy đủ (https://example.com/page), không dùng relative URL (/page). Google hỗ trợ relative URL nhưng khuyến nghị absolute để tránh nhầm lẫn.
2. Chỉ Một Canonical Tag Mỗi Trang
Nếu có nhiều canonical tag trên cùng trang, Google sẽ bỏ qua tất cả. Đảm bảo mỗi trang chỉ có một thẻ rel="canonical".
3. Không Dùng Canonical Cùng Với noindex
Đây là lỗi phổ biến. noindex nói “Đừng index trang này”. rel="canonical" nói “Hãy index URL khác thay vì URL này”. Hai tag này mâu thuẫn nhau. Google có thể ưu tiên canonical hoặc noindex tùy trường hợp, tạo ra kết quả khó đoán. Chỉ dùng một trong hai.
4. Không Chặn URL Canonical Bởi robots.txt
Nếu URL canonical bị chặn trong robots.txt, Google không thể crawl nó để xác nhận. Kết quả: canonical bị bỏ qua, và “link equity” không được chuyển.
5. Canonical Phải Trả 200 OK
URL canonical không được trả lỗi 4xx hoặc 5xx. Nếu Google crawl URL canonical và nhận lỗi, nó sẽ tự chọn URL khác.
6. Không Dùng Canonical Cho Trang Khác Biệt Về Nội Dung
Canonical tag chỉ nên dùng khi nội dung giống hoặc rất giống nhau. Nếu hai trang có nội dung khác biệt đáng kể, dùng canonical sẽ gây nhầm lẫn cho Google và có thể bị phạt.
7. Kiểm Tra hreflang
Nếu website đa ngôn ngữ dùng hreflang, đảm bảo canonical tag chỉ đến trang cùng ngôn ngữ. Không trỏ canonical của trang tiếng Việt sang trang tiếng Anh.
Các Trường Hợp Cần Dùng Canonical Tag
Tham Số Tracking
Khi người dùng click link từ email, Facebook, Google Ads, URL thường có tham số tracking: ?utm_source=newsletter&utm_medium=email. Mỗi комбination tham số tạo ra URL khác. Canonical tag giúp gộp tất cả về URL gốc.
Trang Danh Mục E-commerce
Trang danh mục sản phẩm có thể có nhiều biến thể: ?sort=price, ?color=red, ?page=2. Tất cả hiển thị cùng danh mục nhưng nội dung hơi khác. Canonical tag trỏ về URL danh mục gốc.
Nội Dung Syndicate
Nếu bạn đăng lại bài viết trên Medium, LinkedIn, hoặc trang khác, thêm canonical tag trỏ về bài gốc trên website của bạn. Điều này báo cho Google biết bài gốc nằm ở đâu.
Bản In, Bản PDF
Nếu có phiên bản in (?print=1) hoặc PDF của bài viết, canonical tag trỏ về trang web gốc.
AMP Pages
Nếu có phiên bản AMP riêng, canonical tag phải trỏ giữa phiên bản AMP và phiên bản thường theo quy tắc: AMP page trỏ canonical về page thường, page thường trỏ rel="amphtml" về AMP page.
Phân Biệt Canonical Tag, Redirect 301, Và noindex
Ba khái niệm này thường bị nhầm lẫn:
- Canonical tag: Giữ nguyên URL trong trình duyệt, nhưng báo cho Google biết URL nào là bản chính. Người dùng vẫn truy cập được URL trùng lặp.
- Redirect 301: Chuyển hướng người dùng và bot từ URL này sang URL khác. URL cũ không còn truy cập được.
- noindex: Báo Google đừng index trang này, nhưng không chỉ định URL thay thế.
Khi nào dùng cái nào?
- Canonical: Khi URL trùng lặp vẫn cần truy cập được (tham số tracking, filter, sort).
- 301: Khi URL cũ không còn giá trị sử dụng (đổi URL, xóa sản phẩm, migrate domain).
- noindex: Khi trang không muốn index nhưng không có URL thay thế (trang thank you, trang search nội bộ).
Kiểm Tra Canonical Tag
Để kiểm tra canonical tag của trang bất kỳ:
- View Source: Mở trang, Ctrl+U (hoặc Cmd+Option+U trên Mac), tìm
rel="canonical". - Google Search Console: Dùng URL Inspection tool, xem “Google-selected canonical” vs “User-declared canonical”.
- Screaming Frog: Crawl toàn bộ website, báo cáo tất cả canonical tag, phát hiện lỗi.
- Ahrefs Site Audit: Kiểm tra canonical issue hàng loạt.
Đặc biệt chú ý trường hợp “Google-selected canonical” khác “User-declared canonical”. Nghĩa là Google bỏ qua canonical tag của bạn và chọn URL khác. Nguyên nhân thường là do tín hiệu internal link/backlink không đồng bộ với canonical tag.
Canonical Tag Va Crawl Budget
Canonical tag không trực tiếp tiết kiệm crawl budget như redirect 301 (vì Google vẫn crawl URL trùng lặp để đọc canonical tag). Nhưng nó giúp Google hiểu rõ cấu trúc trang, từ đó crawl hiệu quả hơn.
Đối với website lớn (hàng chục nghìn URL), việc kết hợp canonical tag với sitemap sạch và internal link nhất quán sẽ giúp Google tập trung crawl vào trang quan trọng thay vì lãng phí vào bản sao.
Canonical Tag Trong On-Page SEO
Canonical tag là một trong những yếu tố kỹ thuật quan trọng nhất của on-page SEO. Cùng với title tag, meta description, heading structure, canonical tag đảm bảo rằng mỗi trang trên website của bạn được Google hiểu đúng — không bị trùng lặp, không bị phân tán tín hiệu.
Nếu bạn đang xây dựng backlink cho website, canonical tag càng quan trọng. Một backlink trỏ đến URL ?utm_source=... sẽ không truyền full giá trị nếu canonical tag không đúng. Toàn bộ link equity cần được gộp về một URL duy nhất.
Loi Thuong Gap Khi Dung Canonical Tag
1. Canonical Tu Loop
Trang A trỏ canonical về trang B, trang B trỏ canonical về trang A. Google sẽ bỏ qua cả hai. Luôn đảm bảo canonical chain một chiều.
2. Canonical Răc Theo Pagination
Trang 1 (?page=1), trang 2 (?page=2) có nội dung khác nhau (danh sách sản phẩm khác). Nếu canonical tất cả về trang 1, Google sẽ không index trang 2, 3… Cách đúng: dùng rel="next" và rel="prev", hoặc canonical từng trang về chính nó.
3. Quên Canonical Cho Trang Chu
example.com, example.com/, www.example.com, https://example.com — tất cả cần canonical về một phiên bản duy nhất. WordPress plugin tự xử lý, nhưng website tự code thường bỏ sót.
4. Dùng Canonical Đe Giải Quyết Nội Dung Gần Giống
Hai bài viết về cùng chủ đề nhưng nội dung khác nhau 30-40% không nên dùng canonical. Google có thể phạt vì cố tình thao túng. Thay vào đó, viết lại hoặc hợp nhất nội dung thực sự.
Ket Luan
Canonical tag là công cụ mạnh mẽ để giải quyết vấn đề nội dung trùng lặp, nhưng chỉ khi dùng đúng. Sai lầm với canonical có thể khiến Google index sai trang, bỏ qua nội dung quan trọng, hoặc phân tán tín hiệu SEO.
Nguyên tắc cốt lõi:
- Chỉ dùng canonical khi nội dung thực sự trùng lặp hoặc rất giống.
- Dùng absolute URL, một canonical tag mỗi trang.
- Không kết hợp canonical với noindex.
- Đảm bảo URL canonical trả 200 OK và không bị chặn bởi robots.txt.
- Kiểm tra Google Search Console thường xuyên để xác nhận Google chọn đúng canonical.
Canonical tag đúng = tín hiệu SEO tập trung, index chính xác, thứ hạng ổn định. Đơn giản, nhưng ảnh hưởng lớn đến toàn bộ hiệu quả SEO của website.