Thẻ Hreflang Là Gì? Cách Viết, Khai Báo Và Kiểm Tra Hreflang Cho Website Đa Ngôn Ngữ (Cập Nhật 2026)

Website của bạn có thêm bản tiếng Anh để bán hàng ra nước ngoài, nhưng khách ở Mỹ vẫn thấy trang tiếng Việt trên Google, còn khách Việt lại bấm nhầm vào bản tiếng Anh?

Tôi là Thái Doãn Kiên, làm SEO từ năm 2016 và đã cùng đội ngũ SEODO triển khai gần 1.000 dự án. Website có từ 2 bản ngôn ngữ thì Google cần được báo trang nào dành cho khách nào, và thẻ hreflang làm việc đó. Viết sai một mã hoặc hai trang không trỏ qua lại là Google bỏ qua cả bộ khai báo.

Hreflang chỉ có vài quy tắc, nhưng phải đúng từng ký tự. Bạn sẽ có mã mẫu copy được, cách kiểm tra cả website và 7 lỗi hay gặp kèm cách sửa.

Tóm tắt nhanh

  • Hreflang là gì: dòng mã báo cho Google biết trang còn những bản ngôn ngữ, quốc gia nào khác.
  • Dùng để làm gì: để người Việt thấy bản tiếng Việt, khách nước ngoài thấy bản tiếng Anh.
  • Website nào cần: website có từ 2 bản ngôn ngữ hoặc nhắm nhiều quốc gia, website chỉ có tiếng Việt thì không.
  • Có giúp lên hạng không: không, hreflang chỉ giúp Google chọn đúng bản để hiển thị.
  • Làm thế nào: mỗi bản liệt kê chính nó và mọi bản còn lại, các bản trỏ qua lại với nhau.
  • Lỗi hay gặp: thiếu liên kết trả về, viết sai mã như en-UK, trỏ tới trang đã chuyển hướng.

1. Thẻ hreflang là gì?

Hiểu đúng hreflang làm gì để không kỳ vọng sai trước khi sửa mã.

Hreflang nối các bản ngôn ngữ, quốc gia của một trang. Nó không phải tín hiệu xếp hạng.

Thẻ hreflang là thuộc tính đặt trong thẻ link, HTTP header hoặc sitemap XML, báo cho Google biết một trang có những phiên bản ngôn ngữ, khu vực nào khác để đưa đúng bản cho người tìm (Google Search Central, Tell Google about localized versions of your page, cập nhật 21/09/2026).

Sơ đồ một trang sản phẩm có 3 phiên bản tiếng Việt, tiếng Anh cho Mỹ và tiếng Anh cho Anh, Google đưa từng bản tới đúng nhóm người tìm
Một trang, 3 phiên bản. Hreflang cho Google biết bản nào dành cho ai.

Hreflang là thuộc tính của thẻ <link>, không thuộc nhóm các thẻ meta trong SEO. Người mới nên đọc trước SEO là gì và cách Google hiểu website.

1.1. Cú pháp của thẻ hreflang

Một dòng hreflang có 3 thuộc tính và nằm trong phần head của trang:

Mã nguồn phần head có 3 dòng hreflang, chú thích thuộc tính rel, hreflang và href
Mỗi dòng đủ 3 thuộc tính, dấu nháy thẳng và URL bắt đầu bằng https.
<link rel="alternate" hreflang="en-us" href="https://noithatabc.example/en-us/" />
  • rel="alternate": URL này là bản thay thế của cùng nội dung.
  • hreflang: mã ngôn ngữ, có thể kèm mã vùng, như en-us là tiếng Anh cho Mỹ.
  • href: URL đầy đủ của bản đó.

Tiêu chí kiểm là đủ 3 thuộc tính, dấu nháy thẳng, href bắt đầu bằng https://. Dấu nháy cong (” ”) lọt vào khi copy từ Word sẽ làm hỏng cả dòng.

1.2. Hreflang làm được gì và không làm được gì

Hreflang giúp Google chọn đúng bản cho từng nhóm người dùng, nhưng có 3 việc nó không làm được:

Hai cột so sánh việc hreflang làm được và không làm được theo tài liệu Google
Hreflang chỉ giúp Google chọn đúng bản, không thay được việc dịch nội dung.
  • Nhận ra ngôn ngữ: Google xác định ngôn ngữ theo nội dung hiển thị, không theo hreflang hay thuộc tính lang.
  • Đổi tiền tệ, giá, thanh toán: việc này do từng bản của website tự xử lý.
  • Đẩy thứ hạng: không tài liệu nào của Google nói hreflang là tín hiệu xếp hạng.

Các bản bản địa hoá chỉ bị coi là trùng khi nội dung chính chưa dịch. Tiêu chí đo được là nội dung chính của mỗi bản đã dịch xong. Khi đó từng bản mới có cơ hội được Google lập chỉ mục như một trang riêng.

2. Khi nào website cần dùng thẻ hreflang?

Trả lời câu hỏi đầu tiên: website của bạn có cần hreflang hay không.

Trang có 1 phiên bản thì 0 dòng hreflang. Trang có 3 phiên bản thì mỗi bản mang 3 dòng.

Website cần hreflang khi cùng một nội dung có từ 2 bản ngôn ngữ, hoặc cùng ngôn ngữ nhưng nhắm từ 2 quốc gia trở lên. Website chỉ có tiếng Việt cho khách Việt Nam thì không cần. Google gọi đó là website đa ngôn ngữ và đa khu vực (Google Search Central, Managing multi-regional and multilingual sites, cập nhật 10/12/2025).

So sánh website một ngôn ngữ cho một thị trường với website đa ngôn ngữ, đa khu vực cần hreflang
Website Nội thất ABC chỉ bán ở Việt Nam không cần hreflang. Khi mở thêm bản tiếng Anh thì cần.

2.1. 3 tình huống nên dùng hreflang

Có 3 tình huống nên khai báo hreflang, mỗi tình huống một kiểu mã:

Ba khối tình huống dùng hreflang: đa ngôn ngữ vi và en, một ngôn ngữ nhiều quốc gia en-US và en-GB, nhiều quốc gia nhiều ngôn ngữ fr-BE và nl-BE
3 tình huống cần hreflang và mã mẫu của từng tình huống.
  • Đa ngôn ngữ: bản tiếng Việt và tiếng Anh của cùng sản phẩm, mã vi và en.
  • Một ngôn ngữ, nhiều quốc gia: tiếng Anh cho Mỹ và cho Anh với giá, phí giao hàng khác nhau, mã en-US và en-GB.
  • Nhiều quốc gia, nhiều ngôn ngữ: thị trường Bỉ có bản tiếng Pháp và tiếng Hà Lan, mã fr-BE và nl-BE.

Số dòng cần khai báo bằng số phiên bản của trang, cộng 1 nếu dùng x-default.

2.2. Khi nào không cần hreflang

Không cần hreflang khi trang chỉ có một phiên bản ngôn ngữ dùng được. Có 3 trường hợp hay gặp:

Sơ đồ quyết định 2 câu hỏi: trang có từ 2 phiên bản không, nội dung chính đã dịch chưa
Trả lời 2 câu hỏi là biết trang nào cần hreflang.
  • Website chỉ có tiếng Việt, bán cho khách ở Việt Nam.
  • Bản tiếng Anh mới dịch menu và chân trang, nội dung chính vẫn là tiếng Việt.
  • Website có bản tiếng Anh, nhưng vài trang như tin tuyển dụng chỉ có tiếng Việt.

Ở trường hợp thứ hai, dịch xong nội dung rồi mới khai báo, vì Google cảnh báo chỉ dịch khung trang là trải nghiệm kém.

3. Mã ngôn ngữ, mã vùng và x-default trong hreflang viết thế nào?

Chọn đúng mã cho từng thị trường, vì sai một mã là dòng đó mất tác dụng.

Mã ngôn ngữ 2 chữ cái đứng trước, mã vùng 2 chữ cái đứng sau nếu cần. Mã quốc gia không được đứng một mình.

Mã ngôn ngữ viết theo chuẩn ISO 639-1, như vi, en. Muốn nhắm thêm quốc gia, bạn thêm mã vùng theo ISO 3166-1 Alpha 2 sau dấu gạch nối, ví dụ en-GB. Google chỉ hỗ trợ 2 chuẩn này.

Cấu trúc giá trị hreflang en-GB gồm mã ngôn ngữ en và mã vùng GB nối bằng dấu gạch nối
Mã ngôn ngữ luôn đứng trước, mã vùng là phần tuỳ chọn.

Các mã doanh nghiệp Việt hay dùng:

Ngôn ngữ, thị trường Mã đúng Mã hay viết sai
Tiếng Việt vi, vi-VN vn, VN
Tiếng Anh, Mỹ en-US us, en_US
Tiếng Anh, Anh en-GB en-UK
Tiếng Nhật, Nhật Bản ja-JP jp
Tiếng Trung giản thể zh-CN, zh-Hans cn
Tiếng Trung phồn thể zh-TW, zh-Hant tw

3.1. Mã ngôn ngữ ISO 639-1 và mã vùng ISO 3166-1

Mỗi mã gồm 2 chữ cái và giá trị hreflang không phân biệt hoa thường, nên en-gb và en-GB đều được chấp nhận.

Hai cột mã ngôn ngữ ISO 639-1 và mã vùng ISO 3166-1 Alpha 2 hay dùng, kèm mã chữ viết tiếng Trung
Ghép mã ngôn ngữ cột trái với mã vùng cột phải để ra giá trị hreflang.

Tiếng Trung ghi được chữ viết theo ISO 15924 như zh-Hans, zh-Hant. Tiêu chí đo được là mọi giá trị có dạng 2 chữ cái hoặc 2 chữ cái, gạch nối, 2 chữ cái (trừ mã chữ viết và x-default), không dùng gạch dưới như en_us.

3.2. Lỗi dùng mã vùng thay cho mã ngôn ngữ

Lỗi này xảy ra khi ghi mã quốc gia vào chỗ của mã ngôn ngữ. Google lấy ví dụ be là tiếng Belarus, không phải nước Bỉ.

Hai cột mã sai và mã đúng: be và nl-BE, vn và vi, en-UK và en-GB, default và x-default
Mã quốc gia đứng một mình là lỗi dễ mắc khi viết hreflang.
Viết sai Viết đúng Lý do
be nl-BE, fr-BE be là tiếng Belarus
vn vi vn là mã quốc gia
en-UK en-GB Mã vùng của Vương quốc Anh là GB

Google cho biết EU, UN hay UK trong hreflang không có tác dụng. Tiêu chí đo được là 0 giá trị chỉ có mã quốc gia.

3.3. x-default dùng khi nào

x-default dùng cho trang dự phòng khi ngôn ngữ trình duyệt của khách không khớp bản nào đã khai báo. Google gợi ý gắn nó cho trang chọn ngôn ngữ.

Trang chọn ngôn ngữ của noithatabc.example gắn nhãn x-default, có 2 nút Tiếng Việt và English
Trang chọn ngôn ngữ là nơi hợp nhất để gắn x-default.
<link rel="alternate" hreflang="x-default" href="https://noithatabc.example/" />

Ghi hreflang="default" là sai, giá trị này không hợp lệ nên dòng đó bị bỏ qua. Tiêu chí đo được là mỗi bộ thẻ có tối đa 1 dòng x-default, trỏ tới trang có thật.

4. 4 quy tắc bắt buộc khi triển khai thẻ hreflang

Bốn quy tắc quyết định Google dùng hay bỏ qua bộ thẻ của bạn.

Thiếu chiều trỏ ngược là Google bỏ qua cả cặp thẻ. Cả 4 quy tắc kiểm được trong một lần crawl.

Bộ thẻ hreflang chỉ có tác dụng khi đủ 4 quy tắc:

  • Mỗi trang liệt kê chính nó và mọi bản khác.
  • Các bản trỏ qua lại với nhau.
  • URL viết đầy đủ, có https.
  • URL được trỏ tới là URL chuẩn trả mã 200.
Bốn ô quy tắc hreflang: tự tham chiếu, hai chiều, URL tuyệt đối, URL chuẩn trả 200, mỗi ô kèm tiêu chí kiểm
4 quy tắc và tiêu chí kiểm của từng quy tắc.

Quy tắc thứ tư gắn với thẻ canonical, nên kiểm 2 loại thẻ cùng lúc.

4.1. Mỗi trang liệt kê chính nó và mọi phiên bản khác

Google yêu cầu mỗi bản liệt kê chính nó cùng tất cả bản còn lại, nên bộ thẻ trên các bản giống hệt nhau.

Ba khối mã head của 3 phiên bản vi, en-US, en-GB, mỗi khối có đủ 3 dòng hreflang giống nhau, khoanh dòng tự tham chiếu
3 phiên bản mang cùng một bộ thẻ, dòng trỏ về chính trang không được thiếu.

Dòng trỏ về chính trang gọi là dòng tự tham chiếu và hay bị bỏ sót. Tiêu chí đo được là trang có N phiên bản thì có N dòng hreflang, cộng 1 nếu dùng x-default.

4.2. Liên kết phải hai chiều

Trang A trỏ sang B mà B không trỏ lại A thì Google bỏ qua cặp thẻ đó. Lỗi này hay xảy ra khi thêm bản mới mà quên sửa bản cũ.

Sơ đồ 2 cặp trang: cặp nối hai chiều được Google dùng, cặp chỉ trỏ một chiều bị bỏ qua
Thiếu một chiều là Google bỏ qua cả cặp thẻ.

Tiêu chí đo được là 0 URL ở bộ lọc Missing Return Links của Screaming Frog.

4.3. URL tuyệt đối, có https

href phải là URL đầy đủ, có giao thức https://. Google không nhận URL tương đối như /en/, vì các bản có thể nằm ở tên miền khác nhau.

Hai dòng mã hreflang, dòng href tương đối /en/ bị đánh dấu sai, dòng href tuyệt đối có https được đánh dấu đúng
URL tương đối khiến dòng hreflang mất tác dụng.

Tiêu chí đo được là 100% href bắt đầu bằng https://.

4.4. Chỉ trỏ tới URL chuẩn đang trả 200

Theo kinh nghiệm của SEODO, mọi URL trong bộ thẻ nên trả mã 200 và tự canonical về chính nó. URL đã chuyển hướng 301, URL noindex hay canonical về trang khác đều tạo tín hiệu ngược nhau.

Bảng 3 URL trong bộ hreflang kèm mã trạng thái 200, 301 và noindex, đánh dấu 2 URL phải sửa
2 trong 3 URL này phải đổi sang URL chuẩn trả 200. Số liệu minh hoạ.
URL trong bộ thẻ Trạng thái Xử lý
/vi/sofa-go/ 200, tự canonical Giữ nguyên
/en/sofa/ 301 sang /en/wooden-sofa/ Đổi sang URL đích
/en-gb/wooden-sofa/ 200 nhưng noindex Bỏ noindex hoặc bỏ dòng

5. 3 cách thêm thẻ hreflang vào website

Chọn một cách khai báo hợp với quy mô website và người bảo trì.

Head HTML, HTTP header và sitemap XML cho cùng kết quả với Google. Mỗi website chỉ chọn 1 cách.

Google viết rằng 3 phương pháp này tương đương nhau. Dùng cả 3 không có thêm lợi ích, mà mỗi lần thêm phiên bản phải sửa ở 3 nơi.

Ba khối so sánh 3 nơi khai báo hreflang: head HTML, HTTP header, sitemap XML
3 cách tương đương với Google, chọn theo loại tài liệu và quy mô website.
Cách Đặt ở đâu Hợp khi nào
Head của HTML Mã nguồn từng trang Ít phiên bản, sửa được template
HTTP header Phản hồi máy chủ File PDF, tài liệu không phải HTML
Sitemap XML File sitemap Nhiều trang, nhiều phiên bản

5.1. Đặt trong phần head của HTML

Cách này hợp với website ít phiên bản và sửa được template. Bộ thẻ đặt trong head, trước thẻ đóng </head>:

Mã nguồn trang mở bằng View Source, khoanh khối 3 dòng hreflang nằm trong head trước thẻ đóng head
Bộ thẻ phải nằm trong head, không lọt xuống body.
<link rel="alternate" hreflang="vi" href="https://noithatabc.example/vi/sofa-go/" />
<link rel="alternate" hreflang="en" href="https://noithatabc.example/en/wooden-sofa/" />
<link rel="alternate" hreflang="x-default" href="https://noithatabc.example/en/wooden-sofa/" />

Không có trang chọn ngôn ngữ thì x-default trỏ về bản tiếng Anh như trên. Tiêu chí đo được là mở View Source (Ctrl+U) thấy đủ bộ thẻ trong head, không lọt xuống body.

5.2. Đặt trong HTTP header cho file PDF

File PDF không có phần head, nên hreflang được khai báo bằng trường Link trong HTTP header. Ví dụ file catalogue có 2 bản:

Tab Network của DevTools mở file catalogue-en.pdf, phần Response Headers có dòng link chứa hreflang vi và en
Mở tab Network để xem file PDF đã trả về header Link chưa.
Link: <https://noithatabc.example/catalogue-vi.pdf>; rel="alternate"; hreflang="vi",
      <https://noithatabc.example/catalogue-en.pdf>; rel="alternate"; hreflang="en"

Máy chủ Apache thường thêm header này bằng cấu hình header trong .htaccess. Tiêu chí đo được là tab Network của DevTools, phần Response Headers của file PDF có dòng Link chứa đủ 2 giá trị hreflang.

5.3. Đặt trong sitemap XML

Website nhiều trang, nhiều phiên bản nên khai báo trong sitemap XML để mã trang gọn. Sitemap phải khai báo namespace xhtml, mỗi khối url liệt kê lại cả bộ, kể cả chính nó:

File sitemap mở trên trình duyệt, khoanh khai báo xmlns:xhtml và các dòng xhtml:link trong một khối url
Thiếu khai báo xmlns:xhtml là sitemap báo lỗi.
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
  xmlns:xhtml="http://www.w3.org/1999/xhtml">
  <url>
    <loc>https://noithatabc.example/vi/sofa-go/</loc>
    <xhtml:link rel="alternate" hreflang="vi" href="https://noithatabc.example/vi/sofa-go/" />
    <xhtml:link rel="alternate" hreflang="en" href="https://noithatabc.example/en/wooden-sofa/" />
  </url>
</urlset>

Khối url của bản tiếng Anh lặp lại đúng 2 dòng xhtml:link này. Tiêu chí đo được là sitemap mở không báo lỗi, trang có N phiên bản thì mỗi khối url có N dòng xhtml:link.

6. Cách thêm hreflang trên WordPress

Website WordPress đa ngôn ngữ thường không phải gõ tay dòng hreflang nào.

Polylang và WPML tự sinh hreflang cho bản dịch đã liên kết. Chỉ khi không dùng plugin đa ngôn ngữ mới chèn tay qua child theme.

Website dùng plugin đa ngôn ngữ như Polylang hoặc WPML thì hreflang được sinh theo các bản dịch đã liên kết. Plugin Rank Math hay Yoast SEO lo title, meta description và sitemap. Đã có plugin đa ngôn ngữ thì không chèn thêm hreflang qua plugin SEO hay theme, kẻo mã nguồn có 2 bộ thẻ mâu thuẫn.

Sơ đồ WordPress: plugin đa ngôn ngữ sinh hreflang, plugin SEO lo title, meta và sitemap
Mỗi plugin một việc để mã nguồn chỉ có 1 bộ hreflang.

6.1. Dùng plugin đa ngôn ngữ

Với Polylang, bạn tạo bản dịch từ hộp Ngôn ngữ trong trình soạn bài, liên kết bản tiếng Việt với bản tiếng Anh, plugin tự thêm hreflang lên cả hai trang.

Trình soạn bài WordPress có hộp Ngôn ngữ của Polylang, bản tiếng Việt đã liên kết với bản tiếng Anh
Liên kết đủ bản dịch trong hộp Ngôn ngữ là Polylang tự sinh hreflang.

Polylang chỉ tự tạo x-default cho trang chủ, khi trang chủ tự chuyển sang một bản ngôn ngữ. WPML tự chèn và cập nhật hreflang khi bạn thêm bản dịch. Tiêu chí đo được là mở mã nguồn 3 bài mẫu thấy đủ dòng hreflang cho từng bản.

6.2. Chèn thủ công qua child theme

Chỉ chèn tay khi không dùng plugin đa ngôn ngữ, ví dụ bản tiếng Anh chỉ gồm vài trang làm riêng. Bạn viết hàm gắn vào hook wp_head trong functions.php của child theme, mỗi URL xuất bộ thẻ riêng.

Trình sửa file WordPress mở functions.php của child theme, ghi chú không sửa header.php của theme gốc
Đặt mã trong child theme để cập nhật theme không xoá mất thẻ. Ví dụ minh hoạ.

Không sửa header.php của theme gốc, vì lần cập nhật theme sau sẽ ghi đè mất mã. Tiêu chí đo được là cập nhật theme xong, mã nguồn vẫn còn đủ bộ thẻ.

7. Cách kiểm tra thẻ hreflang

Ba cách kiểm, đi từ cả website tới từng trang và kết quả Google chọn.

Lỗi cú pháp kiểm bằng công cụ crawl, Search Console chỉ cho thấy kết quả.

Search Console không còn báo cáo riêng cho hreflang, vì báo cáo International Targeting đã bị ngừng, còn Google vẫn dùng thẻ hreflang (Search Console Help, The International Targeting report is deprecated). Bạn đưa việc này vào quy trình SEO audit kỹ thuật và làm lại sau mỗi lần thêm phiên bản. Website nhiều thị trường mà chưa có người theo dõi kỹ thuật có thể thuê dịch vụ SEO để rà bộ thẻ này định kỳ.

Ba bước kiểm tra hreflang: Screaming Frog cho cả website, công cụ kiểm tra cho từng URL, Search Console cho kết quả Google chọn
3 lớp kiểm tra, từ cú pháp tới kết quả thật trên Google.

7.1. Kiểm tra cả website bằng Screaming Frog

Bạn crawl website bằng Screaming Frog để kiểm cả 4 quy tắc một lần. Trước khi crawl, bạn vào Config, chọn Spider và bật 2 ô Store Hreflang, Crawl Hreflang. Crawl xong thì mở tab Hreflang.

Tab Hreflang của Screaming Frog với danh sách bộ lọc Missing Return Links, Incorrect Language and Region Codes, Missing Self Reference
Các bộ lọc lỗi phải về 0 URL trước khi coi là xong. Số liệu minh hoạ.

Các bộ lọc cần xem:

  • Missing Return Links: thiếu liên kết trả về.
  • Incorrect Language & Region Codes: mã sai chuẩn.
  • Missing Self Reference: thiếu dòng tự tham chiếu.
  • Non-200 Hreflang URLs: URL không trả mã 200.
  • Missing X-Default: chưa có x-default.

Tiêu chí đo được là 0 URL ở các bộ lọc lỗi, trừ Missing X-Default nếu bạn chủ động không dùng x-default.

7.2. Kiểm tra từng trang bằng công cụ kiểm tra hreflang

Kiểm một URL thì dán vào công cụ kiểm tra hreflang. Google liệt kê trình tạo thẻ của Aleyda Solis và công cụ kiểm tra của Merkle, kèm lưu ý chúng không do Google duy trì.

Kết quả kiểm tra hreflang của một URL với 3 phiên bản vi, en và x-default, không báo lỗi
Một URL đạt khi mọi phiên bản không báo lỗi mã và không thiếu liên kết trả về. Số liệu minh hoạ.

Tiêu chí đo được là không bản nào báo lỗi mã hay thiếu liên kết trả về.

7.3. Xem Google chọn trang nào trong Search Console

Search Console cho thấy Google thật sự chọn trang nào. Bạn dùng công cụ Kiểm tra URL trong Search Console để xem URL chính tắc do Google chọn của từng bản, rồi mở báo cáo Hiệu suất, lọc trang chứa /en/ và xem tab Quốc gia.

Báo cáo Hiệu suất của Search Console, tab Quốc gia, so lượt hiển thị của thư mục /vi/ và /en/
Bản /en/ nhận lượt hiển thị từ thị trường mục tiêu là dấu hiệu hreflang đang chạy. Số liệu minh hoạ.

Tiêu chí đo được là URL Google chọn trùng URL của chính bản đó, lượt hiển thị của /en/ đến từ quốc gia mục tiêu nhiều hơn Việt Nam.

8. 7 lỗi hreflang thường gặp và cách sửa

Đối chiếu website với 7 lỗi này trước khi kết luận hreflang không có tác dụng.

Google tự liệt kê thiếu liên kết trả về và sai mã là lỗi thường gặp. Canonical trỏ khác bản và tự chuyển hướng theo ngôn ngữ là 2 lỗi ít được nhắc.

7 lỗi xếp theo thứ tự nên kiểm, ví dụ là minh hoạ.

Danh sách 7 lỗi hreflang thường gặp đánh số, mỗi lỗi kèm ví dụ mã sai
7 lỗi nên kiểm theo thứ tự từ trên xuống.
Lỗi Ví dụ Hậu quả Cách sửa
Thiếu liên kết trả về /vi/ không trỏ lại /en/ Google bỏ qua cặp thẻ Thêm dòng trỏ ngược
Thiếu dòng tự tham chiếu /vi/ chỉ khai báo /en/ Bộ thẻ thiếu Liệt kê cả chính nó
Sai mã en-UK, be, english Dòng đó vô tác dụng Dùng en-GB, nl-BE, en
URL tương đối href="/en/" URL không hợp lệ Ghi đủ https:// và tên miền
Trỏ tới URL 301, noindex /en/sofa/ đã 301 Tín hiệu mâu thuẫn Đổi sang URL trả 200
Dấu nháy cong hreflang=”en” Giá trị sai Gõ lại dấu nháy thẳng
Khai báo cho bản chỉ dịch menu /en/ giữ nội dung tiếng Việt Khách không đọc được Dịch xong mới khai báo

8.1. Canonical và hreflang trỏ khác nhau

Bản tiếng Anh có canonical về bản tiếng Việt thì Google có thể chỉ giữ bản tiếng Việt. Google dặn chọn trang canonical cùng ngôn ngữ, hoặc ngôn ngữ thay thế gần nhất.

Hai khối mã head của bản tiếng Anh, khối sai có canonical trỏ về bản tiếng Việt, khối đúng tự canonical về chính nó
Mỗi phiên bản tự canonical về chính nó và cùng nằm trong bộ hreflang.

Cách sửa là mỗi bản tự canonical về chính nó. Tiêu chí đo được là bộ lọc Non-Canonical Return Links của Screaming Frog có 0 URL.

8.2. Tự chuyển hướng người dùng theo ngôn ngữ hoặc IP

Google khuyên tránh tự chuyển hướng khách từ bản ngôn ngữ này sang bản khác, vì người dùng và công cụ tìm kiếm có thể không xem được mọi bản. Googlebot thường thu thập từ Mỹ, nên có thể không thấy bản tiếng Việt.

Đầu trang noithatabc.example có thanh chọn ngôn ngữ Tiếng Việt và English, không tự chuyển hướng
Thanh chọn ngôn ngữ để khách tự đổi, Googlebot vẫn thấy đủ các bản.

Nên đặt thanh chọn ngôn ngữ ở đầu trang. Tiêu chí đo được là mở URL bản tiếng Anh từ trình duyệt tiếng Việt vẫn ở lại bản tiếng Anh.

9. Câu hỏi thường gặp về thẻ hreflang

Câu trả lời ngắn cho 5 thắc mắc hay gặp khi làm hreflang.

Hreflang không giúp tăng hạng và không thay được canonical.

Tóm tắt 5 câu hỏi thường gặp về thẻ hreflang và câu trả lời ngắn
5 câu hỏi hay gặp về hreflang và câu trả lời ngắn.

9.1. Thẻ hreflang có giúp tăng thứ hạng không?

Không. Không tài liệu nào của Google nói hreflang là tín hiệu xếp hạng. Nó đưa đúng bản tới đúng người, nên lượt nhấp của từng thị trường có thể tốt hơn.

9.2. Một trang dùng được bao nhiêu thẻ hreflang?

Bao nhiêu phiên bản thì bấy nhiêu dòng, cộng 1 dòng x-default nếu dùng, nên trang có 5 bản sẽ mang 6 dòng. Website có nhiều bản nên khai báo trong sitemap XML để mã trang gọn hơn.

9.3. Không dùng hreflang thì có sao không?

Website một ngôn ngữ thì không sao. Website nhiều ngôn ngữ thiếu hreflang thì Google vẫn đoán theo nội dung, nhưng dễ đưa nhầm bản, nhất là en-US và en-GB.

9.4. Hreflang khác thẻ canonical thế nào?

Canonical chọn một URL chuẩn trong nhóm trang trùng, còn hreflang nối các bản ngôn ngữ, quốc gia của một trang. Xem thêm cách đặt canonical đúng cho từng loại trang.

9.5. Website đa ngôn ngữ nên dùng thư mục con hay subdomain?

Thư mục con dễ thiết lập và ít bảo trì nhất. Google so sánh 4 cách tổ chức cấu trúc URL như sau:

Cách Ưu điểm Nhược điểm
Tên miền quốc gia (.de) Nhắm quốc gia rõ nhất Tốn chi phí, chỉ 1 quốc gia
Subdomain (de.noithatabc.example) Dễ thiết lập, tách máy chủ được Khó nhận ra thị trường
Thư mục con (/de/) Dễ thiết lập, ít bảo trì Một máy chủ, khó tách
Tham số URL (?loc=de) Không có Google không khuyến nghị

Đọc thêm subdomain là gì và cách chọn tên miền.

Nguồn tham khảo

  • Google Search Central: Tell Google about localized versions of your page (cập nhật 21/09/2026)
  • Google Search Central: Managing multi-regional and multilingual sites (cập nhật 10/12/2025)
  • Google Search Central: How to specify a canonical URL with rel="canonical" and other methods (cập nhật 10/07/2026)
  • Search Console Help: The International Targeting report is deprecated (answer 12474899)
  • Search Console Help: Công cụ kiểm tra URL (answer 9012289)
  • Screaming Frog: SEO Spider User Guide, mục Tabs, Hreflang
  • Polylang: Hreflang tag attributes and Polylang, everything you need to know
  • WPML: Adding hreflang to WordPress
Đánh giá 5 sao
ZaloChat Zalo Chat Messenger 0332.870.123