Bỏ qua đến nội dung
Hotline: 0902 711 308 info@w3seo.com 46/1/56 Vườn Chuối, Phường 04, Quận 03, Thành phố Hồ Chí Minh
Trang chủSEOInternational SEOHreflang là gì? Cách triển khai và kiểm tra lỗi

Hreflang là gì? Cách triển khai và kiểm tra lỗi

Hướng dẫn hreflang cho website đa ngôn ngữ: chọn phương pháp triển khai, dùng mã locale, x-default, canonical và audit lỗi theo từng cluster.

Hreflang là thuộc tính giúp Google hiểu những URL nào là phiên bản ngôn ngữ hoặc khu vực của cùng một nội dung. Khi triển khai đúng, Google có thêm tín hiệu để đưa người dùng tới phiên bản phù hợp, chẳng hạn trang tiếng Việt, tiếng Anh hoặc tiếng Anh dành cho thị trường Anh.

Tóm tắt nhanh: Chỉ dùng hreflang khi mỗi locale có URL riêng và các trang cùng một intent. Mỗi URL phải tự tham chiếu, liệt kê các phiên bản còn lại và có liên kết quay lại. Chọn một trong ba cách: HTML, HTTP header hoặc XML sitemap. Hreflang không thay canonical, không tự tạo bản dịch và không bảo đảm URL được index.

Khi nào website cần hreflang?

Tình huốngCách xử lý
Cùng dịch vụ có trang tiếng Việt và tiếng AnhDùng hreflang nếu hai URL cùng nhiệm vụ.
Cùng tiếng Anh nhưng giá, chính sách hoặc nội dung khác giữa Mỹ và AnhCó thể dùng en-US và en-GB.
Website chỉ có một ngôn ngữ và một thị trườngKhông cần hreflang.
Trang chọn quốc gia hoặc ngôn ngữCân nhắc dùng x-default.
Các trang nói về sản phẩm hoặc intent khác nhauKhông đưa vào cùng cụm hreflang.

Google khuyến nghị khai báo các phiên bản thay thế khi nội dung được dịch, có khác biệt theo vùng hoặc chỉ phần giao diện được dịch. Google vẫn tự xác định ngôn ngữ từ nội dung trang; thuộc tính hreflang dùng để mô tả quan hệ giữa các URL được bản địa hóa. Xem tài liệu chính thức về localized versions.

Việc chọn ccTLD, subdomain hay thư mục con thuộc bài toán cấu trúc URL cho SEO quốc tế. Hreflang chỉ ánh xạ các URL sau khi cấu trúc và phạm vi thị trường đã rõ.

Một cụm hreflang đúng cần những gì?

Cụm hreflang gồm các phiên bản vi, en, en-GB và trang x-default
  • Dùng URL tuyệt đối, gồm giao thức, tên miền và đường dẫn.
  • Mỗi trang tự khai báo chính nó.
  • Mỗi cặp URL có liên kết hai chiều.
  • Các trang trong cụm phục vụ cùng intent.
  • URL đích trả về trạng thái phù hợp và có thể index.
  • Bộ annotation giống nhau trên các phiên bản của cụm.

Ví dụ, trang /vi/dich-vu-seo/ không nên được ghép với /en/digital-marketing-guide/ chỉ vì cùng nhắc đến SEO. Hai trang cần là phiên bản tương đương về nhiệm vụ, dù nội dung có thể được điều chỉnh cho từng thị trường.

Ba cách triển khai hreflang

Google xem ba phương pháp dưới đây là tương đương. Dùng đồng thời cả ba không mang lại lợi ích tìm kiếm và làm tăng nguy cơ dữ liệu không nhất quán. Hãy chọn nguồn dữ liệu dễ duy trì nhất.

1. Khai báo trong HTML

Phù hợp với website nhỏ hoặc vừa khi CMS có thể sinh annotation ổn định trong phần <head>. Mỗi phiên bản phải chứa cùng một bộ thẻ:

<link rel="alternate" hreflang="vi"
      href="https://example.com/vi/dich-vu-seo/" />
<link rel="alternate" hreflang="en"
      href="https://example.com/en/seo-services/" />
<link rel="alternate" hreflang="x-default"
      href="https://example.com/language-selector/" />

2. Khai báo bằng HTTP header

Phương pháp này hữu ích cho PDF hoặc tệp không có HTML head. Header của từng phiên bản phải liệt kê đầy đủ các URL thay thế và chính URL đang được yêu cầu.

Link: <https://example.com/file-en.pdf>; rel="alternate"; hreflang="en",
      <https://example.com/file-vi.pdf>; rel="alternate"; hreflang="vi"

3. Khai báo trong XML sitemap

Phù hợp với website lớn hoặc nhiều locale vì có thể quản trị tập trung. Mỗi phần tử URL phải có các xhtml:link cho toàn bộ phiên bản, gồm cả chính nó. Cần khai báo namespace xhtml và giữ cluster đồng nhất trên mọi URL.

Với WordPress, plugin đa ngôn ngữ có thể sinh hreflang tự động, nhưng vẫn cần kiểm tra HTML thực tế. Lỗi thường đến từ bản dịch chưa xuất bản, URL bị đổi, cache cũ hoặc hai plugin cùng sinh annotation.

Cách dùng mã ngôn ngữ, khu vực và x-default

  • Mã đầu tiên là ngôn ngữ theo ISO 639-1: vi, en, de.
  • Mã thứ hai, nếu có, là khu vực theo ISO 3166-1 Alpha 2: en-US, en-GB.
  • Không dùng mã quốc gia đứng một mình.
  • Không dùng en-UK; mã khu vực phù hợp là GB.
  • Có thể dùng mã script như zh-Hans và zh-Hant khi cần.

x-default là trang dự phòng khi không có ngôn ngữ hoặc khu vực nào khớp cài đặt của người dùng. Nó phù hợp với trang chọn ngôn ngữ, trang chủ trung lập hoặc phiên bản mặc định. x-default không phải canonical mặc định và không thay cho một phiên bản ngôn ngữ cụ thể.

Hreflang và canonical phối hợp thế nào?

Nếu các phiên bản locale đều cần xuất hiện riêng trên Google, mỗi URL thường nên self-canonical và cùng tham gia một cụm hreflang. Không canonical trang tiếng Anh về trang tiếng Việt chỉ vì cấu trúc hoặc nội dung tương tự; điều đó tạo tín hiệu mâu thuẫn với mục tiêu giữ cả hai URL.

Tình huốngXử lý
Trang vi và en đều cần indexMỗi trang self-canonical và hreflang qua lại.
URL tham số là bản trùng trong cùng localeCanonical về URL sạch của locale đó.
URL chuyển hướng, noindex hoặc 404Sửa trạng thái hoặc loại khỏi cụm.
Google chọn canonical khác dự kiếnKiểm tra nội dung, redirect, canonical, internal link và sitemap trước khi quy lỗi cho hreflang.

Canonical là tín hiệu chọn URL đại diện cho nội dung trùng hoặc rất giống; hreflang mô tả các phiên bản được bản địa hóa. Hai annotation giải quyết hai nhiệm vụ khác nhau. Xem hướng dẫn Google về canonicalization.

Quy trình audit hreflang từng bước

  1. Lập danh sách cluster: mỗi hàng là một nội dung, mỗi cột là một locale.
  2. Kiểm tra URL: status 200, indexability, canonical và nội dung đúng ngôn ngữ.
  3. Đọc annotation thực tế: kiểm tra HTML source, HTTP header hoặc sitemap theo phương pháp đang dùng.
  4. Kiểm tra self-reference: mỗi URL có khai báo chính nó.
  5. Kiểm tra return link: URL A trỏ B thì B phải trỏ lại A.
  6. Kiểm tra mã locale: đúng ngôn ngữ, khu vực và thứ tự.
  7. So sánh toàn cluster: các trang có cùng bộ URL và cùng intent.
  8. Thu thập lại sau khi sửa: xóa cache, crawl lại và theo dõi URL Google chọn.

Audit một URL riêng lẻ chưa đủ vì lỗi hreflang thường nằm ở quan hệ giữa các trang. Với website lớn, hãy so sánh theo ma trận và ưu tiên các cluster quan trọng như trang chủ, danh mục, sản phẩm và trang dịch vụ.

Lỗi hreflang thường gặp và cách sửa

LỗiNguyên nhânCách sửa
Missing return linkMột trang không trỏ lại trang còn lạiĐồng bộ bộ annotation hai chiều.
Mã locale saiDùng mã tự tạo hoặc chỉ dùng quốc giaĐối chiếu chuẩn language–region.
Trỏ tới redirect hoặc 404URL đã đổi nhưng cấu hình chưa cập nhậtTrỏ thẳng URL cuối cùng, hợp lệ.
Canonical sang locale khácCấu hình canonical toàn site hoặc template saiĐặt self-canonical cho phiên bản cần index.
HTML và sitemap khác nhauNhiều hệ thống cùng quản lýChọn một nguồn dữ liệu hoặc đồng bộ hoàn toàn.
Cluster ghép sai intentMap theo slug thay vì nhiệm vụ trangRà soát nội dung và phân lại URL owner.
Annotation lúc có lúc khôngCache, CDN hoặc geo-routingKiểm tra phản hồi từ nhiều vị trí và xóa cache.

Nếu website tự động chuyển hướng theo IP, hãy bảo đảm người dùng và bot vẫn truy cập được từng URL, có bộ chọn ngôn ngữ crawlable và không bị ép quay về một phiên bản. Các vấn đề CDN, cache và định tuyến theo vùng được trình bày trong bài hosting cho International SEO.

Checklist trước khi triển khai

  • Mỗi locale có URL riêng và nội dung đúng ngôn ngữ.
  • Các trang trong cluster cùng intent.
  • Đã chọn một phương pháp triển khai chính.
  • URL tuyệt đối, self-reference và return link đầy đủ.
  • Mã ngôn ngữ–khu vực hợp lệ.
  • Canonical, robots và status không mâu thuẫn.
  • x-default trỏ đúng trang dự phòng nếu cần.
  • Plugin, cache và sitemap không sinh bộ annotation khác nhau.
  • Có quy trình cập nhật khi thêm, xóa hoặc đổi URL locale.

Hreflang chỉ nên triển khai sau khi xác định thị trường và nội dung. Tham khảo thêm nghiên cứu từ khóa quốc tế, kế hoạch nội dung đa quốc gia, dịch và bản địa hóa nội dung.

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

Có cần dùng cả HTML và sitemap không?

Không cần. Google xem ba phương pháp là tương đương. Một nguồn dữ liệu chính xác, ổn định và dễ bảo trì tốt hơn nhiều cấu hình có nguy cơ mâu thuẫn.

Trang chưa dịch xong có nên đưa vào cluster?

Không nên đưa URL nháp, noindex hoặc nội dung chưa hoàn chỉnh vào cụm đang hoạt động. Chỉ thêm khi trang đã xuất bản, đúng intent và có thể index.

Hreflang sai có làm website bị phạt không?

Lỗi thường khiến annotation bị bỏ qua hoặc phiên bản hiển thị không như mong muốn. Cách xử lý là sửa cluster và kiểm tra lại, không phải tăng thêm thẻ hoặc lặp triển khai ở nhiều nơi.

Kết luận

Hreflang là bản đồ quan hệ giữa các phiên bản ngôn ngữ và khu vực. Muốn triển khai đúng, hãy bắt đầu từ URL riêng và nội dung cùng intent, chọn một phương pháp, bảo đảm self-reference, liên kết hai chiều, canonical phù hợp rồi audit toàn cluster. Hreflang không thể bù cho cấu trúc URL sai hoặc nội dung bản địa hóa kém.