Bỏ qua tới nội dung

Thẻ canonical: viết đúng, các lỗi hay gặp và lúc Google bỏ qua nó

Thẻ canonical cho Google biết đâu là địa chỉ chính khi một nội dung có nhiều địa chỉ. Viết đúng là địa chỉ tuyệt đối, https, đúng tên miền chính, trỏ về trang trả 200 và chỉ một thẻ mỗi trang; Google vẫn có thể chọn khác nếu sitemap và liên kết nội bộ chỉ về nơi khác.

Ban biên tập SEO Gốc · · 6 phút đọc

Thẻ canonical là dòng <link rel="canonical" href="..."> trong phần <head> của trang, cho Google biết đâu là địa chỉ chính khi cùng một nội dung truy cập được qua nhiều địa chỉ. Viết đúng gồm bốn điều: địa chỉ tuyệt đối (có https:// và tên miền), đúng tên miền chính, trỏ về trang trả 200, và chỉ một thẻ mỗi trang. Điều cần nhớ nhất: canonical là gợi ý, không phải lệnh. Google cân nó cùng các tín hiệu khác và có thể chọn địa chỉ khác nếu các tín hiệu đó không đồng thuận.

Vì sao một nội dung có nhiều địa chỉ

Gần như site nào cũng có, dù chủ site không cố ý:

  • https://tenmien.com/ao-thun và https://tenmien.com/ao-thun/ (có và không có dấu gạch chéo cuối).
  • Bản có tham số theo dõi: ?utm_source=facebook, ?fbclid=..., ?gclid=....
  • Bản lọc, sắp xếp: ?sort=gia-tang.
  • Một sản phẩm thuộc hai chuyên mục: /nam/ao-thun-trang và /khuyen-mai/ao-thun-trang.
  • Bản http, bản www còn sống song song.
  • Bản in, bản AMP cũ, bản dành cho ứng dụng.

Google gom các địa chỉ này thành một nhóm và chọn một làm bản chính tắc. Chỉ bản chính tắc hiện trên kết quả, và tín hiệu (liên kết, lượt bấm) của cả nhóm dồn về nó. Canonical giúp bạn quyết định thay Google bản nào là bản chính.

Cách viết đúng

<head>
  <meta charset="utf-8">
  <title>Áo thun cotton trắng — Tên cửa hàng</title>
  <link rel="canonical" href="https://tenmien.com/ao-thun-cotton-trang">
  ...
</head>

Với tệp không phải HTML (PDF, tài liệu), dùng phần đầu phản hồi HTTP:

Link: <https://tenmien.com/tai-lieu/bang-gia.pdf>; rel="canonical"

Mọi trang nên có canonical tự trỏ (trỏ về chính nó, ở dạng địa chỉ sạch). Nghe thừa, nhưng nó là lá chắn rẻ nhất: khi ai đó liên kết tới trang bạn kèm tham số lạ, bản có tham số vẫn khai bản sạch là bản chính.

Google chọn bản chính tắc dựa trên gì

Tài liệu Google xếp các cách khai báo theo độ mạnh: chuyển hướng 301 là tín hiệu mạnh, thẻ canonical là tín hiệu mạnh, có mặt trong sitemap là tín hiệu yếu. Ngoài ra Google còn nhìn liên kết nội bộ trỏ về địa chỉ nào, bản nào là HTTPS, địa chỉ nào ngắn gọn hơn. Khi bạn khai canonical là A mà menu, sitemap, liên kết nội bộ đều trỏ B, đừng ngạc nhiên khi Search Console báo "Google chọn trang chính tắc khác với người dùng" — cách đọc trạng thái này có trong bài vì sao trang không được lập chỉ mục.

Quy tắc vàng: mọi tín hiệu phải chỉ về cùng một địa chỉ — canonical, sitemap, liên kết nội bộ, chuyển hướng, hreflang, dữ liệu có cấu trúc, og:url.

Ca cụ thể và cách xử lý

Tình huốngNên làm
Tham số theo dõi (utm, fbclid)Canonical tự trỏ về bản không tham số là đủ
Phân trang ?page=2, /trang/2Mỗi trang tự trỏ về chính nó. Không canonical trang 2 về trang 1 — nội dung khác nhau, Google có thể bỏ qua và bạn mất đường cho Google tới các bài ở trang sau
Trang lọc không cần lên GoogleCanonical về trang danh mục gốc; nếu số lượng rất lớn, cân nhắc chặn bằng robots.txt (khi đó canonical không còn được đọc)
Sản phẩm ở nhiều chuyên mụcChọn một đường dẫn chính, canonical từ các bản khác về đó; tốt hơn nữa là dùng một đường dẫn duy nhất không chứa chuyên mục
Bản tiếng Việt và tiếng AnhMỗi bản canonical về chính nó, nối nhau bằng hreflang. Không canonical bản tiếng Anh về bản tiếng Việt — xem hreflang
Trang đã dời hẳnDùng chuyển hướng 301, không dùng canonical — xem chuyển hướng 301
Bài của bạn được site khác đăng lạiGoogle hiện khuyên bên đăng lại dùng noindex cho bản sao thay vì trông cậy vào canonical chéo tên miền

Lỗi hay gặp

  • Canonical tương đối. href="/ao-thun" hợp lệ về mặt kỹ thuật, nhưng khi trang bị sao chép sang tên miền khác hoặc bị truy cập qua bản http, địa chỉ tương đối tự "đổi chủ" theo. Luôn viết tuyệt đối.
  • Canonical vẫn là http sau khi lên HTTPS. Rất hay gặp ở site chuyển sang HTTPS bằng cách sửa máy chủ mà không sửa mẫu giao diện. Canonical nói bản chính là http, chuyển hướng nói bản chính là https — hai tín hiệu đá nhau.
  • Hai thẻ canonical trên một trang. Thường do mẫu giao diện in một thẻ và plugin SEO in thêm một thẻ. Nếu hai thẻ khác nhau, Google có thể bỏ qua cả hai.
  • Canonical nằm ngoài <head>. Google bỏ qua canonical trong <body>. Bẫy khó thấy: một thẻ không hợp lệ trong head (ví dụ <img>, <div> do mã quảng cáo hay mã theo dõi chèn vào) khiến trình phân tích coi head đã kết thúc từ chỗ đó; mọi thẻ phía sau, kể cả canonical, rơi xuống body. Đặt canonical, title, meta robots càng gần đầu head càng an toàn.
  • Toàn site canonical về trang chủ. Do cấu hình sai một dòng trong mẫu. Google thường bỏ qua vì nội dung khác nhau quá rõ, nhưng trong lúc đó các trang có thể bị coi là trùng và rớt khỏi chỉ mục.
  • Canonical trỏ về trang 404, trang bị noindex hoặc trang chuyển hướng. Tín hiệu mâu thuẫn; Google sẽ tự chọn.
  • Dùng noindex thay canonical cho bản trùng. Noindex nói "đừng lưu trang này", canonical nói "tín hiệu dồn về trang kia". Dùng noindex cho bản trùng là bỏ phí liên kết trỏ vào bản đó.

Khi nào Google bỏ qua canonical của bạn

Vì là gợi ý, canonical bị gạt đi trong vài ca có thể đoán trước:

  • Nội dung hai trang khác nhau rõ rệt. Canonical chỉ dành cho bản trùng hoặc gần trùng. Trỏ canonical từ bài "cách chọn nồi chiên" sang bài "nồi chiên tốt nhất 2026" không gộp được hai bài; Google thấy hai nội dung khác và tự xử từng trang.
  • Bản bạn chọn kém đầy đủ hơn. Khai bản rút gọn là chính trong khi bản có tham số mới có đủ nội dung, Google nghiêng về bản đầy đủ.
  • Tín hiệu mâu thuẫn như đã nói: sitemap, liên kết nội bộ, hreflang chỉ một nơi, canonical chỉ nơi khác.
  • Canonical trỏ tới địa chỉ Google không tải được: bị robots.txt chặn, trả lỗi, đòi đăng nhập.

Thời gian cũng là một yếu tố. Sau khi sửa canonical trên toàn site, Search Console thường cần vài tuần để các nhóm trùng lặp được gom lại theo ý bạn; trang ít được thu thập sẽ cập nhật chậm nhất.

Kiểm bằng tay trong một phút

Không cần công cụ: mở trang, xem mã nguồn (trên Chrome máy tính, gõ view-source: trước địa chỉ), tìm chữ canonical. Đếm số lần xuất hiện và xem nó nằm trước hay sau thẻ đóng </head>. Với máy chủ, lệnh dưới đây in ra phần đầu phản hồi để kiểm dòng Link và mã trạng thái:

curl -sI https://tenmien.com/ao-thun-cotton-trang | grep -iE "^(HTTP|link|location)"

Nhớ rằng mã nguồn bạn xem là HTML gốc; nếu canonical được JavaScript chèn hoặc sửa sau khi tải, hãy dùng Kiểm tra URL đang hoạt động trong Search Console để xem bản Google hiển thị.

Danh sách kiểm

  1. Mỗi trang có đúng một thẻ rel="canonical", nằm trong <head>.
  2. Địa chỉ tuyệt đối, https://, đúng tên miền chính (có hay không có www như bản chính).
  3. Địa chỉ đích trả 200, không chuyển hướng, không noindex.
  4. Trùng khớp với địa chỉ trong sitemap và trong liên kết nội bộ.
  5. Kiểm bằng công cụ Kiểm tra URL của Search Console: dòng "Trang chính tắc do người dùng khai báo" và "Trang chính tắc do Google chọn" phải giống nhau.

Kiểm bằng SEO Gốc

Công cụ chấm điểm SEO dành 7/100 điểm cho canonical của trang bạn nhập: thiếu thẻ thì mất trọn 7 điểm; canonical tương đối hoặc có nhiều thẻ khác nhau thì bị trừ một phần; canonical dùng http bị trừ nửa; canonical trỏ sang tên miền khác hoặc trang khác thì mất trọn. Công cụ so địa chỉ canonical với địa chỉ cuối cùng sau chuyển hướng, nên bắt được cả ca bản www khai canonical về bản không-www và ngược lại. Cách tính từng mục có ở trang cách chấm điểm.

Tài liệu Google: Gộp các URL trùng lặp.

Hỏi đáp

Trang nào cũng cần thẻ canonical không?

Nên có. Canonical tự trỏ về chính trang là cách rẻ nhất để bản có tham số theo dõi hay biến thể địa chỉ không tranh chỗ với bản chính. Nó không gây hại gì khi trang không có bản trùng.

Có nên canonical trang 2, trang 3 về trang 1 không?

Không. Các trang phân trang có nội dung khác nhau, nên mỗi trang tự trỏ về chính nó. Canonical về trang 1 có thể khiến Google không đi tới các bài hay sản phẩm nằm ở trang sau.

Canonical và chuyển hướng 301 khác nhau thế nào?

Chuyển hướng đưa cả người lẫn máy sang địa chỉ mới, dùng khi trang cũ không còn cần. Canonical giữ cả hai địa chỉ truy cập được nhưng báo cho Google bản nào là chính, dùng khi bản phụ vẫn cần cho người dùng như trang có tham số lọc.

Vì sao Google chọn trang chính tắc khác với thẻ đã khai?

Vì các tín hiệu khác đang chỉ về nơi khác: liên kết nội bộ, sitemap, bản HTTPS, hoặc nội dung trang bạn chọn không phải bản đầy đủ nhất. Làm cho mọi tín hiệu cùng chỉ một địa chỉ rồi chờ Google thu thập lại.

Đọc tiếp