rel="canonical" for international sites
Thẻ canonical dùng để chỉ phiên bản ưu tiên trong trường hợp có nội dung tương tự giữa các phiên bản ngôn ngữ/vùng.
rel="canonical" for international sites là gì?
Thẻ rel="canonical" cho trang quốc tế là cách bạn chỉ định phiên bản ưu tiên của một nội dung khi có nhiều phiên bản tương tự nhau trên các trang web khác nhau — ví dụ: cùng một sản phẩm được hiển thị bằng tiếng Việt (vi-VN), tiếng Anh (en-US) và tiếng Thái (th-TH), mỗi phiên bản nằm trên một URL riêng. Đây không phải là công cụ để chuyển hướng người dùng, mà là tín hiệu rõ ràng gửi đến công cụ tìm kiếm (như Google) rằng: "Đây là phiên bản gốc hoặc phiên bản tôi muốn lập chỉ mục chính".
Quan trọng: thẻ canonical KHÔNG thay thế cho thẻ hreflang. Hai thẻ này bổ trợ lẫn nhau — hreflang nói với Google "đây là phiên bản cho ai", còn rel="canonical" nói "đây là phiên bản nào nên được xếp hạng".
Tại sao quan trọng trong SEO?
Khi cùng một nội dung xuất hiện ở nhiều URL (do phân vùng ngôn ngữ, tiền tệ, đơn vị đo lường…), công cụ tìm kiếm có thể coi đó là nội dung trùng lặp. Hệ quả: giảm độ tin cậy, chia sẻ sức mạnh liên kết giữa các phiên bản, thậm chí loại bỏ một số trang khỏi chỉ mục.
Việc dùng đúng rel="canonical" giúp:
- Tránh phân tán tín hiệu SEO (backlink, thời gian ở lại, tỷ lệ thoát…) giữa các phiên bản;
- Đảm bảo chỉ một phiên bản được lập chỉ mục và hiển thị trong kết quả tìm kiếm phù hợp;
- Hỗ trợ thuật toán hiểu cấu trúc đa ngôn ngữ một cách rõ ràng — đặc biệt khi kết hợp với
hreflang; - Giảm rủi ro bị phạt do nội dung trùng lặp (duplicate content) dù không cố ý.
Cách hoạt động
Google xem rel="canonical" là tín hiệu gợi ý — không phải lệnh bắt buộc. Tuy nhiên, nếu được triển khai đúng, nhất quán và không mâu thuẫn với các tín hiệu khác (như hreflang, redirect 301, nội dung thực tế), Google gần như luôn tuân theo.
Nguyên tắc cơ bản:
- Mỗi trang chỉ có một thẻ canonical hợp lệ (không dùng nhiều thẻ trên cùng một trang);
- URL trong thẻ canonical phải là URL có thể truy cập được, trả mã trạng thái HTTP 200, và không bị chặn bởi
robots.txthay thẻnoindex; - Thẻ canonical nên trỏ tới phiên bản cùng ngôn ngữ/vùng — hoặc phiên bản “chung chung” (generic) nếu tồn tại (ví dụ:
/products/thay vì/vi/products/hay/en-us/products/).
Hướng dẫn thực hiện
Dưới đây là các bước triển khai chuẩn cho website đa ngôn ngữ/vùng:
- Xác định cấu trúc URL: Chọn một trong ba mô hình: subdomain (
vi.example.com), subdirectory (example.com/vi/), hoặc miền quốc gia (example.vn). Mỗi mô hình ảnh hưởng đến cách đặt canonical — cần thống nhất từ đầu. - Chọn phiên bản gốc: Quyết định phiên bản nào là “gốc” (thường là tiếng Anh Mỹ hoặc phiên bản dành cho thị trường lớn nhất). Tất cả phiên bản khác sẽ trỏ canonical về đây — trừ khi bạn áp dụng chiến lược regional canonical.
- Thêm thẻ canonical: Đặt trong phần
<head>của mỗi trang. Ví dụ:<link rel="canonical" href="https://example.com/en-us/products/widget/">
- Kết hợp với hreflang: Luôn đi kèm thẻ
hreflangđầy đủ. Mỗi trang phải liệt kê tất cả phiên bản ngôn ngữ/vùng liên quan, bao gồm cả chính nó. - Kiểm tra tính nhất quán: Dùng công cụ như Screaming Frog, DeepCrawl hoặc Google Search Console để xác minh: không có vòng lặp canonical, không có canonical trỏ tới URL bị noindex hoặc 404, và không có mâu thuẫn giữa hreflang và canonical.
Lỗi thường gặp
Dưới đây là những sai lầm phổ biến và cách sửa:
| Lỗi | Hệ quả | Cách khắc phục |
|---|---|---|
| Canonical trỏ về phiên bản khác ngôn ngữ (ví dụ: trang tiếng Việt trỏ canonical về tiếng Anh) | Google có thể bỏ qua canonical hoặc xếp hạng sai phiên bản cho người tìm kiếm tiếng Việt | Chỉ trỏ canonical tới phiên bản cùng ngôn ngữ/vùng — hoặc tới phiên bản “generic” nếu đã thiết kế rõ ràng |
| Dùng canonical ngược chiều với hreflang (ví dụ: hreflang=en-US trỏ tới trang vi-VN) | Gây mâu thuẫn tín hiệu → Google bỏ qua cả hai | Đảm bảo hreflang và canonical đồng bộ: nếu hreflang=en-US chỉ định trang A, thì trang A phải có canonical trỏ về chính nó hoặc phiên bản gốc chung |
| Thiếu canonical trên một số trang con (ví dụ: chỉ đặt trên trang chủ, không trên danh mục/sản phẩm) | Rủi ro trùng lặp nội dung ở cấp sâu → mất kiểm soát lập chỉ mục | Tự động sinh canonical theo mẫu URL (qua CMS hoặc template), đảm bảo mọi trang đều có |
Ví dụ thực tế
Một cửa hàng điện máy có 3 phiên bản:
https://store.com/vi/products/may-giat/— tiếng Việt, thị trường Việt Namhttps://store.com/en-us/products/washing-machine/— tiếng Anh, thị trường Mỹhttps://store.com/th/th/products/เครื่องซักผ้า/— tiếng Thái, thị trường Thái Lan
Cấu trúc được thiết kế với phiên bản tiếng Anh Mỹ là “gốc”. Các thẻ trong <head> sẽ như sau:
Trên trang tiếng Việt:
<link rel="canonical" href="https://store.com/en-us/products/washing-machine/">
<link rel="alternate" hreflang="vi-VN" href="https://store.com/vi/products/may-giat/">
<link rel="alternate" hreflang="en-US" href="https://store.com/en-us/products/washing-machine/">
<link rel="alternate" hreflang="th-TH" href="https://store.com/th/th/products/เครื่องซักผ้า/">
Trên trang tiếng Anh Mỹ:
<link rel="canonical" href="https://store.com/en-us/products/washing-machine/">
<link rel="alternate" hreflang="vi-VN" href="https://store.com/vi/products/may-giat/">
<link rel="alternate" hreflang="en-US" href="https://store.com/en-us/products/washing-machine/">
<link rel="alternate" hreflang="th-TH" href="https://store.com/th/th/products/เครื่องซักผ้า/">
Lưu ý: Nếu website có phiên bản “chung chung” (không gắn vùng), ví dụ https://store.com/products/washing-machine/, thì tất cả phiên bản ngôn ngữ nên trỏ canonical về đây — tùy trường hợp.
Câu hỏi thường gặp
rel="canonical" có thay thế được hreflang không?
Không. Hai thẻ có chức năng khác nhau: hreflang giúp Google phân phối đúng phiên bản cho người dùng theo ngôn ngữ/vùng; rel="canonical" giúp Google chọn phiên bản nào để lập chỉ mục và xếp hạng. Dùng riêng lẻ một trong hai sẽ gây thiếu sót trong International SEO.
Có nên dùng canonical cho các trang có nội dung gần giống nhau nhưng khác giá/tỷ giá?
Có — nếu sự khác biệt chỉ ở yếu tố phi nội dung (giá, đơn vị tiền tệ, phí vận chuyển), còn văn bản mô tả sản phẩm, tiêu đề, meta description giống nhau. Lúc này, canonical giúp tập trung tín hiệu SEO vào một phiên bản duy nhất. Tuy nhiên, cần đảm bảo hreflang vẫn phản ánh đúng thị trường.
Nếu dùng miền quốc gia (ccTLD) như example.vn và example.th, có cần canonical không?
Có thể cần — tùy vào mức độ trùng lặp nội dung. Nếu hai miền có nội dung gần như giống hệt nhau (chỉ dịch thuật máy), canonical vẫn hữu ích để tránh phân tán tín hiệu. Nhưng nếu mỗi miền có nội dung độc lập, tối ưu riêng theo thị trường (có bài viết địa phương, đánh giá thực tế, thông tin pháp lý khác nhau), thì không cần canonical chéo — mỗi miền được xử lý như một website riêng.