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.
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-thunvà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-trangvà/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ống | Nê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/2 | Mỗ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 Google | Canonical 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ục | Chọ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 Anh | Mỗ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ẳn | Dù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ại | Google 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
- Mỗi trang có đúng một thẻ
rel="canonical", nằm trong<head>. - Địa chỉ tuyệt đối,
https://, đúng tên miền chính (có hay không có www như bản chính). - Địa chỉ đích trả 200, không chuyển hướng, không noindex.
- Trùng khớp với địa chỉ trong sitemap và trong liên kết nội bộ.
- 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
Chuyển hướng 301, 302, gom www và HTTPS: làm một lần cho đúng
Mọi biến thể http và www phải chuyển hướng vĩnh viễn 301 về một địa chỉ chính thức trong đúng một bước. 302 là chuyển tạm, cho Google tín h…
Sitemap XML: cấu trúc, giới hạn 50.000 địa chỉ, lastmod và những thứ không nên đưa vào
Sitemap XML liệt kê những địa chỉ bạn muốn Google biết tới. Sitemap tốt chỉ chứa trang trả 200, đúng bản chính tắc, có lastmod trung thực v…
Vì sao trang không được lập chỉ mục: đọc đúng trạng thái trong Search Console và cách kiểm từng nguyên nhân
Trang không vào chỉ mục vì Google bị chặn (noindex, robots.txt, lỗi máy chủ, 404) hoặc vì Google chọn không lưu (trùng lặp, nội dung mỏng).…
hreflang cho site nhiều ngôn ngữ: tự tham chiếu, x-default và các lỗi làm Google bỏ qua
hreflang cho Google biết các phiên bản ngôn ngữ của cùng một trang để hiện đúng bản cho đúng người, không làm tăng thứ hạng. Muốn có tác dụ…