Google Search Console

User-Declared Canonical

URL được chỉ định là canonical thông qua thẻ <link rel="canonical"> hoặc header HTTP Link.

2 lượt xem Cập nhật: 29/05/2026

User-Declared Canonical là gì?

User-Declared Canonical (URL chính thức do người dùng khai báo) là URL mà chủ sở hữu trang web chủ động chỉ định làm phiên bản gốc và ưu tiên hiển thị trong kết quả tìm kiếm của Google. Việc khai báo này được thực hiện bằng cách chèn thẻ <link rel="canonical" href="https://example.com/duong-dan-chinh"> trong phần <head> của trang HTML, hoặc qua header HTTP Link: <https://example.com/duong-dan-chinh>; rel="canonical".

Đây là tín hiệu rõ ràng gửi đến Google rằng: "Trang này là bản sao, còn URL kia mới là phiên bản chính — xin hãy lập chỉ mục và xếp hạng URL đó thay vì trang hiện tại".

Tại sao quan trọng trong SEO?

User-Declared 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 phổ biến khiến Google khó xác định phiên bản nào nên hiển thị, dẫn đến phân tán tín hiệu xếp hạng (như backlink, thời gian ở lại, tỷ lệ nhấp) giữa nhiều URL giống nhau.

Khi bạn khai báo canonical đúng:

  • Google tập trung xếp hạng cho một URL duy nhất, tăng khả năng xuất hiện ở vị trí cao hơn;
  • Không bị phạt hay giảm chất lượng lập chỉ mục do trùng lặp nội dung;
  • Các chỉ số trong Google Search Console (GSC) như lượt hiển thị, CTR, vị trí trung bình sẽ phản ánh chính xác hiệu quả của phiên bản chính;
  • Hệ thống hiểu rõ cấu trúc website, hỗ trợ crawl hiệu quả hơn — đặc biệt với trang lọc, phân trang, phiên bản mobile/desktop.

Cách hoạt động

Google coi thẻ rel="canonical" là một tín hiệu gợi ý, không phải mệnh lệnh bắt buộc. Google có thể bỏ qua nếu phát hiện mâu thuẫn mạnh (ví dụ: trang A khai báo B là canonical, nhưng B lại khai báo C, hoặc nội dung giữa hai trang quá khác biệt).

Quy trình xử lý gồm 3 bước:

  1. Bot Google thu thập thẻ canonical từ HTML hoặc header HTTP;
  2. So sánh với các tín hiệu khác: nội dung tương đồng, cấu trúc URL, backlink, tín hiệu người dùng (CTR, thời gian ở lại);
  3. Nếu tín hiệu nhất quán và hợp lý, Google chọn URL được khai báo làm phiên bản chính để lập chỉ mục và xếp hạng.

Lưu ý: User-Declared Canonical chỉ ảnh hưởng đến việc lập chỉ mục và xếp hạng — không thay đổi URL hiển thị cho người dùng khi họ truy cập trực tiếp vào trang con.

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

Dưới đây là các bước triển khai chuẩn, áp dụng cho cả trang tĩnh và động:

  1. Xác định phiên bản chính: Chọn một URL duy nhất cho mỗi nhóm nội dung giống nhau (ví dụ: https://example.com/san-pham?color=redhttps://example.com/san-pham?color=blue nên có chung canonical là https://example.com/san-pham).
  2. Thêm thẻ canonical: Đặt trong phần <head> của mọi trang con, trỏ về URL chính. Ví dụ:
    <link rel="canonical" href="https://example.com/bai-viet" />
  3. Ưu tiên HTTPS và dạng chuẩn: Luôn dùng URL đầy đủ (có http/https), viết thường, không query string thừa, không dấu gạch chéo cuối nếu không cần thiết.
  4. Kiểm tra header HTTP (nếu dùng server-side): Với các trang không render HTML (API, PDF, JSON-LD), dùng header Link: <https://example.com/chinh>; rel="canonical".
  5. Xác minh trong GSC: Vào Pages > Coverage, lọc theo trạng thái "Excluded > Duplicate without user-selected canonical" để kiểm tra lỗi khai báo.

Lỗi thường gặp

Dưới đây là 4 lỗi phổ biến và cách khắc phục:

Lỗi Dấu hiệu trong GSC Cách khắc phục
Canonical trỏ về URL 404 hoặc redirect Trạng thái "Crawled – currently not indexed" hoặc cảnh báo "Invalid canonical" Sửa thành URL tồn tại, trả mã 200, không redirect
Self-referencing sai (self-canonical không khớp) URL hiển thị trong GSC không trùng với thẻ canonical trên chính trang đó Đảm bảo mỗi trang đều có thẻ canonical trỏ đúng về chính nó (nếu là phiên bản chính)
Chuỗi canonical vòng lặp (A → B → C → A) Google báo "Inconsistent canonicals" trong báo cáo Coverage Rà soát toàn bộ nhóm URL, thống nhất một URL làm gốc duy nhất
Dùng canonical cho nội dung khác biệt lớn Google bỏ qua canonical, lập chỉ mục cả hai trang Chỉ dùng canonical khi nội dung tương đồng ≥ 85% — nếu khác nhiều, nên dùng noindex hoặc viết nội dung riêng

Ví dụ thực tế

Ví dụ 1 – Trang sản phẩm có nhiều biến thể:
Trang https://shop.vn/ao-thun?size=m&color=denhttps://shop.vn/ao-thun?size=l&color=trang đều có nội dung mô tả, hình ảnh, tiêu đề gần giống nhau.
→ Cả hai đều khai báo:
<link rel="canonical" href="https://shop.vn/ao-thun" />

Ví dụ 2 – Phiên bản in:
Trang https://blog.vn/bai-viet/in là bản in của https://blog.vn/bai-viet.
→ Trang in khai báo canonical trỏ về trang gốc, còn trang gốc không cần khai báo ngược lại.

Ví dụ 3 – Website đa ngôn ngữ:
Không dùng canonical để liên kết giữa tiếng Việt và tiếng Anh — thay vào đó dùng hreflang. Canonical chỉ dùng khi cùng ngôn ngữ, khác tham số (ví dụ: ?utm_source=fb → canonical về URL sạch).

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

User-Declared Canonical có thay thế được thẻ noindex?

Không. noindex ngăn Google lập chỉ mục hoàn toàn, còn canonical chỉ định phiên bản nào nên được lập chỉ mục. Nếu muốn loại bỏ một trang khỏi kết quả tìm kiếm, dùng noindex — không dùng canonical làm công cụ chặn lập chỉ mục.

Có thể khai báo canonical cho trang 301 redirect không?

Tùy trường hợp. Nếu trang A redirect 301 sang B, thì không cần đặt canonical từ A sang B — vì redirect đã là tín hiệu mạnh hơn. Tuy nhiên, nếu giữ A tồn tại (không redirect), thì nên khai báo canonical từ A sang B.

Google có ưu tiên canonical khai báo bằng header HTTP hay thẻ HTML?

Cả hai được xử lý như nhau. Tuy nhiên, header HTTP nhanh hơn (không cần parse HTML), phù hợp cho tài nguyên không có thẻ <head> như PDF. Với trang web thông thường, thẻ HTML là lựa chọn phổ biến và dễ kiểm soát hơn.