Hotline: 0988 769 317 · Thứ 2 - Thứ 6, 8:00 - 18:00
  • Canonical tag (rel="canonical") báo cho Google biết URL nào là phiên bản chính khi có nội dung trùng lặp.
  • 4 tình huống bắt buộc: URL có parameter, trang phân trang, www vs non-www, HTTP vs HTTPS.
  • Canonical là hints không phải directives - Google có thể bỏ qua nếu nội dung hai trang không khớp.
  • Lỗi nguy hiểm nhất: canonical về homepage cho toàn bộ trang, hoặc canonical loop.

Canonical Tag Là Gì? 4 Tình Huống Bắt Buộc Dùng và Lỗi Cần Tránh

Canonical tag là thẻ HTML nằm trong phần <head> của trang, có dạng <link rel="canonical" href="#">, báo cho Google biết URL nào là phiên bản “chính thức” khi cùng một nội dung xuất hiện tại nhiều URL khác nhau. Thay vì Google phải tự đoán đâu là URL gốc và phân tán tín hiệu ranking vào nhiều phiên bản, canonical tập trung toàn bộ link equity và tín hiệu vào một URL duy nhất bạn chỉ định.

Duplicate content là vấn đề phổ biến hơn hầu hết webmaster nghĩ. Một website WordPress điển hình có thể có cùng nội dung xuất hiện ở 4-6 URL khác nhau chỉ từ cấu hình mặc định: domain.com/bai-viet/, www.domain.com/bai-viet/, domain.com/bai-viet/?utm_source=email, domain.com/bai-viet/page/1/… Canonical là công cụ để kiểm soát vấn đề này một cách có hệ thống.

Điều quan trọng cần hiểu ngay từ đầu: canonical là gợi ý (hint) cho Google, không phải lệnh bắt buộc (directive). Google xử lý canonical như một tín hiệu mạnh và thường tuân theo - nhưng có thể override nếu thấy canonical không hợp lý. Hiểu điều này giúp bạn triển khai canonical đúng cách thay vì dựa mù quáng vào nó.

Canonical Tag Hoạt Động Như Thế Nào

Khi Googlebot crawl một trang có thẻ canonical, nó ghi nhận URL được chỉ định trong thẻ canonical là “preferred URL”. Toàn bộ link equity từ các trang trỏ vào URL phụ được chuyển về URL canonical. URL phụ vẫn có thể được crawl, nhưng thường không được index độc lập - Google hợp nhất tín hiệu vào URL canonical.

Cơ chế này hoạt động tốt khi nội dung hai trang thực sự giống nhau hoặc gần giống nhau. Nếu bạn đặt canonical từ trang A về trang B nhưng hai trang có nội dung hoàn toàn khác nhau, Google sẽ bỏ qua canonical và tự chọn URL nào nó cho là phù hợp hơn - không nhất thiết là URL bạn muốn.

4 Tình Huống Bắt Buộc Phải Dùng Canonical Tag

Không phải mọi trường hợp đều cần canonical. Dưới đây là 4 tình huống mà không dùng canonical là đang để lộ lỗ hổng SEO kỹ thuật nghiêm trọng.

Tình Huống 1: URL Có Parameter Tracking

URL parameter là nguồn tạo duplicate content lớn nhất trên hầu hết website. Ví dụ điển hình: trang sản phẩm /san-pham/ao-thun/ có thể xuất hiện với hàng chục URL khác nhau khi người dùng đến từ các nguồn khác nhau:

  • /san-pham/ao-thun/?color=red - filter màu
  • /san-pham/ao-thun/?utm_source=facebook&utm_medium=paid - tracking UTM
  • /san-pham/ao-thun/?ref=banner_homepage - referral tracking
  • /san-pham/ao-thun/?sort=price_asc - sorting parameter

Tất cả những URL này phải có canonical về URL gốc /san-pham/ao-thun/. Với WordPress, plugin Yoast SEO và Rank Math tự động thêm canonical self cho mỗi trang - nhưng URL với parameter thường không được plugin xử lý tự động nếu không cấu hình thêm. Cần kiểm tra và handle bằng cách cấu hình canonical trong plugin hoặc code thêm vào theme.

Tình Huống 2: Trang Phân Trang

Trang phân trang (pagination) là chủ đề có nhiều tranh luận trong SEO. Trước đây Google hỗ trợ rel="prev/next" để xác định chuỗi trang - nhưng đã ngừng hỗ trợ vào 2019. Hiện tại, cách xử lý chuẩn là dùng canonical self cho mỗi trang trong chuỗi phân trang.

Trang /blog/page/2/ nên có canonical tự trỏ về chính nó: <link rel="canonical" href="/page/2/">. Tuyệt đối không canonical tất cả trang phân trang về trang 1 - đây là lỗi phổ biến khiến Google không index trang 2, 3, 4… và người dùng không tìm thấy nội dung ở các trang sau.

Tình Huống 3: www vs non-www

https://domain.comhttps://www.domain.com là hai URL khác nhau trong mắt Google. Nếu server phục vụ cùng nội dung cho cả hai mà không có redirect 301 hoặc canonical, đây là duplicate content cấp domain.

Giải pháp tốt nhất là redirect 301 từ phiên bản không ưa thích về phiên bản chính. Canonical là lớp bảo vệ thứ hai - nếu vì lý do nào đó không thể redirect (như CDN layer không cho phép), đặt canonical trên trang www trỏ về non-www hoặc ngược lại. Nhưng cần nhất quán: chọn một phiên bản và stick với nó trên toàn site.

Tình Huống 4: HTTP vs HTTPS

Sau khi migrate sang HTTPS, một số website vẫn phục vụ cả phiên bản HTTP và HTTPS. Nếu HTTP không redirect 301 về HTTPS, hai phiên bản tồn tại song song là duplicate content. Canonical trên tất cả trang HTTP cần trỏ về URL HTTPS tương ứng.

Tuy nhiên, đây không nên là giải pháp vĩnh viễn. Redirect 301 từ HTTP về HTTPS là bắt buộc - canonical chỉ là giải pháp tạm thời khi đang trong quá trình migrate hoặc khi có URL HTTP nào đó bị bỏ sót trong quá trình thiết lập redirect.

Canonical Hints vs Directives - Khi Nào Google Bỏ Qua

Điểm khác biệt quan trọng giữa canonical và robots.txt/noindex: canonical là hints (gợi ý) còn noindex là directives (lệnh). Google thường tuân theo canonical, nhưng có những trường hợp Google override:

Tình huống Google phản ứng như thế nào
Canonical URL bị chặn bởi robots.txt Bỏ qua canonical - không thể crawl URL đích để xác minh
Canonical URL trả lỗi 404 Bỏ qua canonical - URL đích không tồn tại
Nội dung hai trang quá khác nhau Có thể bỏ qua - canonical không có lý do logic
Canonical loop (A → B → A) Bỏ qua toàn bộ - Google tự chọn URL “hợp lý” nhất
Canonical mâu thuẫn với redirect Redirect thường thắng - Google follow redirect trước

Lỗi Canonical Phổ Biến Nhất

Lỗi 1: Canonical Về Homepage Cho Mọi Trang

Đây là lỗi nghiêm trọng nhất và đáng tiếc lại khá phổ biến - thường do cấu hình sai plugin SEO hoặc template cứng nhắc. Khi mọi trang đều có canonical trỏ về domain.com/, Google hiểu tất cả trang là bản sao của homepage. Kết quả: chỉ có homepage được index, toàn bộ trang con biến mất khỏi kết quả tìm kiếm.

Dấu hiệu nhận biết: Coverage report trong Google Search Console có nhiều URL “Excluded - Duplicate, submitted URL not selected as canonical” với canonical về homepage. Kiểm tra nhanh bằng cách xem source HTML của trang bất kỳ và tìm thẻ rel="canonical".

Lỗi 2: Canonical Loop

Canonical loop xảy ra khi trang A canonical về trang B, trang B canonical về trang A - tạo vòng lặp vô hạn. Hoặc phức tạp hơn: A → B → C → A. Google phát hiện loop và bỏ qua toàn bộ chuỗi canonical, tự chọn URL nào nó cho là phù hợp nhất - thường là URL có nhiều backlink nhất, không nhất thiết là URL bạn muốn.

Lỗi 3: Canonical Không Dùng Absolute URL

Canonical phải luôn dùng absolute URL (URL đầy đủ bao gồm protocol và domain), không dùng relative URL. <link rel="canonical" href="#"> là sai - Google có thể hiểu sai domain. Đúng phải là <link rel="canonical" href="#">.

Lỗi 4: Nhiều Canonical Tags Trên Một Trang

Mỗi trang chỉ được có một thẻ canonical. Nếu trang có hai canonical tags (thường do plugin SEO và code theme đều thêm canonical), Google không biết nên theo cái nào và thường bỏ qua cả hai. Kiểm tra bằng cách xem source HTML và search rel="canonical" - chỉ được xuất hiện đúng một lần.

Cách Kiểm Tra Canonical Bằng Screaming Frog

Screaming Frog là công cụ audit canonical hiệu quả nhất cho website quy mô lớn. Quy trình kiểm tra:

  • Bước 1: Crawl toàn site bằng Screaming Frog (Configuration > Spider > tắt “Ignore Canonicals” nếu đang bật).
  • Bước 2: Vào tab “Canonicals” trong Screaming Frog. Tab này hiển thị tất cả URL đã crawl cùng canonical URL của từng trang.
  • Bước 3: Export ra Excel, lọc cột “Canonical” để tìm bất thường: canonical về homepage, canonical là URL khác domain, canonical là URL 404.
  • Bước 4: Lọc filter “Non-Indexable” > “Canonicalised” để xem trang nào đang bị exclude do canonical về trang khác.

Google Search Console cũng có báo cáo canonical hữu ích: Coverage > “Duplicate, Google chose different canonical than user” - đây là danh sách các URL bạn đặt canonical nhưng Google bỏ qua và chọn URL khác. Mỗi URL trong danh sách này là một trường hợp cần điều tra.

Canonical Cho Website Thương Mại Điện Tử

Với website thương mại điện tử, canonical là kỹ thuật không thể thiếu do cấu trúc phức tạp của URL sản phẩm và danh mục. Hai tình huống đặc thù cần xử lý:

Sản phẩm có nhiều biến thể: Trang sản phẩm với URL /san-pham/ao/?color=red&size=M cần canonical về trang sản phẩm gốc /san-pham/ao/ - trừ khi từng variant có giá trị SEO riêng biệt (lượng tìm kiếm thực sự cho “áo màu đỏ size M”).

Sản phẩm xuất hiện trong nhiều danh mục: Sản phẩm có thể thuộc cả /danh-muc-a/ten-san-pham//danh-muc-b/ten-san-pham/. Chọn một URL làm canonical chính (thường là URL trong danh mục chính), các URL còn lại canonical về URL đó. Điều này quan trọng với duplicate content trong cấu trúc e-commerce.

Câu Hỏi Thường Gặp Về Canonical Tag

Canonical khác gì với redirect 301?

Redirect 301 chuyển hướng người dùng VÀ Googlebot từ URL này sang URL khác - URL cũ không còn tồn tại độc lập. Canonical giữ nguyên URL cũ (người dùng vẫn thấy URL đó trên browser), chỉ báo cho Google biết URL nào là phiên bản chính. Dùng redirect 301 khi URL thực sự không còn cần tồn tại. Dùng canonical khi URL cần giữ nguyên nhưng không muốn bị index độc lập.

Có thể dùng canonical cho trang ngoài domain không?

Có - đây gọi là cross-domain canonical. Nếu nội dung của bạn được syndicate (đăng lại) trên website khác với sự đồng ý của bạn, yêu cầu website đó thêm canonical trỏ về URL gốc trên domain của bạn. Điều này bảo vệ bạn khỏi bị Google coi là người copy nội dung từ website kia. Nhiều trang báo lớn dùng cross-domain canonical khi cấp phép nội dung cho đối tác.

Canonical self có cần thiết không?

Canonical self là khi trang A canonical về chính trang A. Điều này không bắt buộc nhưng là best practice. Lý do: nếu ai đó tạo URL bộ lọc hoặc thêm UTM parameter dẫn đến trang của bạn, canonical self trên trang gốc là tín hiệu rõ ràng cho Google đây là URL ưa thích. Mặc định Yoast SEO và Rank Math đều thêm canonical self cho mọi trang.

WordPress có tự động xử lý canonical không?

Từ WordPress 4.4, WordPress core đã tự thêm canonical tag cơ bản cho trang đơn. Nhưng canonical do WordPress core tạo ra không đầy đủ - không xử lý URL parameter, không tối ưu cho custom post type, không có cross-domain canonical. Cần cài plugin SEO như Yoast hoặc Rank Math để có kiểm soát canonical đầy đủ. Quan trọng: tắt tính năng canonical của WordPress core khi đã dùng plugin SEO để tránh duplicate canonical tags.

Kết Luận

Canonical tag là công cụ kiểm soát duplicate content quan trọng trong technical SEO - nhưng chỉ hiệu quả khi triển khai đúng. Bốn quy tắc cốt lõi: dùng absolute URL, tránh canonical loop, không canonical tất cả trang về homepage, và đảm bảo nội dung hai trang thực sự liên quan. Kiểm tra định kỳ bằng Screaming Frog và Google Search Console để phát hiện sớm bất thường. Liên hệ Digicom nếu cần tư vấn audit canonical toàn site hoặc xử lý các trường hợp phức tạp.

Liên hệ Digicom: Hotline 0988 769 317 | Email: info@digicomvn.com | digicomvn.com/lien-he

VỀ TÁC GIẢ

Đỗ Hiếu
Founder & Digital Marketing Strategist

Founder & Digital Marketing Strategist tại Digicom. Hơn 10 năm kinh nghiệm thực chiến trong lĩnh vực SEO, Entity Branding, PR báo chí và xây dựng thương hiệu.

→ Xem tất cả bài viết

Cần triển khai off-page SEO thực tế?

Digicom hỗ trợ Textlink, Backlink, Guest Post và Booking báo & PR theo đúng kiến thức trong bài này.

Zalo