SEO E-Commerce

Canonical Tag Implementation

Thẻ rel="canonical" dùng để chỉ định phiên bản chính của trang khi có nhiều URL dẫn đến cùng nội dung sản phẩm hoặc danh mục.

3 lượt xem Cập nhật: 28/05/2026

Canonical Tag Implementation là gì?

Canonical Tag Implementation (triển khai thẻ canonical) là việc chèn thẻ HTML <link rel="canonical" href="[URL-chính]"> vào phần <head> của trang web để thông báo với công cụ tìm kiếm rằng đây là phiên bản chính trong số nhiều URL có nội dung giống hoặc gần giống nhau. Trong thương mại điện tử, hiện tượng này thường xảy ra khi một sản phẩm xuất hiện ở nhiều đường dẫn: qua danh mục, bộ lọc (giá, màu sắc, kích thước), phân trang, phiên bản mobile/desktop, hoặc URL có tham số theo dõi (UTM, session ID).

Tại sao quan trọng trong SEO?

Thẻ canonical giúp giải quyết vấn đề nội dung trùng lặp — một trong những nguyên nhân hàng đầu khiến trang web bị giảm khả năng xếp hạng. Khi Google phát hiện nhiều URL hiển thị cùng nội dung sản phẩm, nó có thể:

  • Chia sẻ quyền lực liên kết (link equity) giữa các phiên bản → làm yếu tín hiệu xếp hạng tổng thể;
  • Chọn sai phiên bản để lập chỉ mục (indexing) → trang không tối ưu được hiển thị;
  • Giảm tốc độ thu thập (crawling budget) vì bot phải xử lý quá nhiều URL dư thừa.

Việc triển khai đúng canonical giúp tập trung toàn bộ tín hiệu SEO (backlink, thời gian ở lại, tỷ lệ chuyển đổi) về một URL duy nhất — từ đó tăng cơ hội lên top cho trang chủ sản phẩm hoặc danh mục cốt lõi.

Cách hoạt động

Thẻ rel="canonical" là một tín hiệu hướng dẫn, không phải lệnh bắt buộc. Google và các công cụ tìm kiếm khác sẽ ưu tiên tuân thủ nếu thẻ được đặt đúng cách và không mâu thuẫn với các yếu tố khác (như redirect 301 hay nội dung thực tế). Cơ chế hoạt động gồm 3 bước:

  1. Bot tìm kiếm thu thập (crawl) nhiều URL dẫn đến nội dung tương tự;
  2. Nó đọc thẻ canonical trong phần <head> của từng trang;
  3. Nếu tất cả các phiên bản đều trỏ về cùng một URL chuẩn — và URL đó tồn tại, trả mã 200, có nội dung phù hợp — công cụ tìm kiếm sẽ ưu tiên lập chỉ mục URL đó và gộp tín hiệu từ các phiên bản còn lại.

Hướng dẫn thực hiện

Dưới đây là quy trình triển khai canonical cho website thương mại điện tử:

  1. Xác định URL gốc: Chọn phiên bản ngắn gọn, sạch (không tham số thừa), dễ đọc và phản ánh đúng cấu trúc danh mục — ví dụ: https://site.vn/san-pham/ao-thun-co-ban thay vì https://site.vn/san-pham/ao-thun-co-ban?color=den&size=m&ref=filter.
  2. Thêm thẻ vào <head>: Đặt chính xác trong phần <head>, trước thẻ </head>. Không đặt trong <body> — sẽ bị bỏ qua.
  3. Đảm bảo tính nhất quán: Tất cả các biến thể (phân trang, bộ lọc, phiên bản mobile) phải trỏ về cùng một URL chuẩn. Ngoại lệ: trang phân trang thứ 2 trở đi nên dùng rel="canonical" trỏ về chính nó nếu nội dung khác biệt rõ ràng (theo khuyến nghị mới nhất của Google).
  4. Kiểm tra HTTP status: URL được chỉ định trong thẻ canonical phải trả mã trạng thái 200 OK, không được là 404, 301, hay chặn bởi robots.txt.
  5. Sử dụng tuyệt đối, không tương đối: Luôn dùng URL đầy đủ (có https:// và tên miền), ví dụ: <link rel="canonical" href="https://site.vn/danh-muc/ao">. Dùng đường dẫn tương đối (/danh-muc/ao) có thể gây hiểu nhầm khi có nhiều tên miền phụ.

Lỗi thường gặp

Dưới đây là những sai lầm phổ biến và cách khắc phục:

Lỗi Hệ quả Cách sửa
Thẻ canonical trỏ tới URL 404 hoặc 301 Google bỏ qua thẻ, có thể chọn sai phiên bản để lập chỉ mục Kiểm tra bằng công cụ như Screaming Frog hoặc Google Search Console → thay bằng URL tồn tại và trả 200
Nhiều thẻ canonical trên cùng một trang Gây xung đột tín hiệu → Google có thể bỏ qua toàn bộ Chỉ giữ 1 thẻ rel="canonical" duy nhất trong <head>
Thẻ canonical trên trang A trỏ về B, nhưng B lại trỏ về C (chuỗi vòng) Mất tín hiệu, khó kiểm soát phiên bản chính Thiết lập chuỗi tuyến tính: A → B, B → B (self-referencing), không để vòng lặp
Không dùng self-referencing canonical trên trang gốc Rủi ro bị hiểu nhầm là trang không có phiên bản chính Mọi trang — kể cả trang gốc — nên có thẻ canonical trỏ về chính nó

Ví dụ thực tế

Một sản phẩm áo thun có 5 biến thể URL:

  • https://shop.vn/ao-thun?color=do&size=s
  • https://shop.vn/ao-thun?color=do&size=m
  • https://shop.vn/ao-thun?color=den&size=l
  • https://shop.vn/ao-thun?utm_source=facebook
  • https://m.shop.vn/ao-thun (phiên bản mobile)

Tất cả đều chứa nội dung mô tả sản phẩm giống nhau. Giải pháp:

  • Chọn URL chuẩn: https://shop.vn/ao-thun (ngắn, không tham số, không phụ thuộc thiết bị).
  • Trên mỗi trang con, chèn thẻ sau trong <head>:
    <link rel="canonical" href="https://shop.vn/ao-thun">
  • Trên trang https://shop.vn/ao-thun, cũng chèn thẻ tương tự (self-referencing): <link rel="canonical" href="https://shop.vn/ao-thun">.

Lưu ý: Nếu website có phiên bản tiếng Anh riêng (en.shop.vn/...), không dùng canonical để nối giữa hai ngôn ngữ — thay vào đó dùng thẻ hreflang.

Câu hỏi thường gặp

Thẻ canonical có thay thế được redirect 301 không?

Không. Redirect 301 là lệnh chuyển hướng vĩnh viễn — người dùng và bot đều bị đưa sang URL mới. Canonical chỉ là tín hiệu gợi ý lập chỉ mục, không ảnh hưởng đến trải nghiệm người dùng. Dùng canonical khi bạn cần giữ nhiều URL (ví dụ: để theo dõi chiến dịch), còn redirect khi muốn loại bỏ hoàn toàn một URL.

Có nên dùng canonical cho trang phân trang (page 2, 3…)?

Tùy trường hợp. Nếu nội dung trang phân trang khác biệt (ví dụ: mỗi trang có sản phẩm riêng, không trùng lặp), nên để canonical trỏ về chính nó. Nếu nội dung gần như giống nhau (chỉ thay đổi vài sản phẩm), Google khuyên nên dùng rel="next"rel="prev" — tuy nhiên hai thẻ này hiện chỉ còn mang tính tham khảo và không còn ảnh hưởng trực tiếp đến lập chỉ mục. Cách an toàn hơn: dùng canonical trỏ về trang danh mục gốc nếu phân trang không mang giá trị nội dung riêng.

Có thể đặt thẻ canonical trên trang 404 hoặc lỗi không?

Không nên. Thẻ canonical chỉ có hiệu lực trên trang trả mã 200 và có nội dung. Trên trang 404, Google sẽ bỏ qua thẻ. Nếu muốn chuyển hướng người dùng khỏi URL lỗi, hãy dùng redirect 301 thay vì canonical.