International SEO

hreflang annotation

Cách triển khai hreflang qua thẻ <link> trong <head>, HTTP header hoặc sitemap.

4 lượt xem Cập nhật: 29/05/2026

hreflang annotation là gì?

hreflang annotation là cách đánh dấu cho công cụ tìm kiếm biết phiên bản ngôn ngữ và khu vực địa lý của một trang web. Nó dùng thuộc tính hreflang trong thẻ <link>, tiêu đề HTTP hoặc file sitemap để chỉ rõ: "Trang này dành cho người nói tiếng Việt tại Việt Nam", "phiên bản tiếng Anh tại Mỹ", hay "tiếng Tây Ban Nha tại Mexico".

Giá trị hreflang gồm hai phần: mã ngôn ngữ (theo chuẩn ISO 639-1) và mã quốc gia (theo chuẩn ISO 3166-1 alpha-2), phân cách bằng dấu gạch ngang. Ví dụ: vi-VN, en-US, es-MX. Nếu chỉ phân biệt theo ngôn ngữ (không theo khu vực), dùng riêng mã ngôn ngữ: en, vi, fr.

Tại sao quan trọng trong SEO?

Khi một trang có nhiều phiên bản ngôn ngữ hoặc khu vực, công cụ tìm kiếm như Google dễ nhầm lẫn phiên bản nào phù hợp với người dùng. Nếu không có hreflang, Google có thể:

  • Hiển thị trang tiếng Anh cho người tìm kiếm ở Hà Nội,
  • Đưa trang tiếng Việt cho người ở Berlin,
  • Hạn chế xếp hạng do trùng lặp nội dung (duplicate content) giữa các phiên bản.

Hreflang giúp Google hiểu mối quan hệ giữa các phiên bản — không phải để cạnh tranh lẫn nhau, mà để phục vụ đúng đối tượng. Kết quả: tăng tỷ lệ nhấp (CTR), giảm thoát (bounce rate), cải thiện trải nghiệm người dùng và hỗ trợ xếp hạng đúng khu vực.

Cách hoạt động

Hreflang là tín hiệu gợi ý (hint), không phải lệnh bắt buộc. Google dùng nó cùng các yếu tố khác (địa chỉ IP, cài đặt trình duyệt, lịch sử tìm kiếm) để chọn phiên bản hiển thị trong kết quả tìm kiếm.

Mỗi phiên bản phải khai báo đầy đủ tất cả các phiên bản liên quan — bao gồm cả chính nó. Ví dụ: nếu bạn có 3 phiên bản (vi-VN, en-US, en-GB), mỗi trang phải chứa 3 thẻ hreflang, trong đó có một thẻ trỏ về chính nó.

Google yêu cầu tính tương hỗ (bidirectional): nếu trang A khai báo trang B là phiên bản tiếng Anh tại Mỹ, thì trang B cũng phải khai báo lại trang A là phiên bản tiếng Việt tại Việt Nam.

Hướng dẫn thực hiện

Có ba cách triển khai hreflang, đều được Google hỗ trợ đầy đủ:

1. Qua thẻ <link> trong <head>

Cách phổ biến nhất. Đặt trong phần <head> của mỗi trang:

<link rel="alternate" hreflang="vi-VN" href="https://example.com/vi/" />
<link rel="alternate" hreflang="en-US" href="https://example.com/en-us/" />
<link rel="alternate" hreflang="x-default" href="https://example.com/" />

Lưu ý: x-default dùng cho người dùng không khớp bất kỳ phiên bản nào — thường là trang chọn ngôn ngữ hoặc trang chủ đa ngôn ngữ.

2. Qua HTTP header

Dành cho nội dung không phải HTML (PDF, tài liệu tải về) hoặc khi không thể chỉnh sửa phần <head>. Thêm vào header phản hồi:

Link: <https://example.com/vi/>; rel="alternate" hreflang="vi-VN",
      <https://example.com/en-us/>; rel="alternate" hreflang="en-US",
      <https://example.com/>; rel="alternate" hreflang="x-default"

Mỗi giá trị Link phải nằm trên một dòng, dùng dấu phẩy để phân tách.

3. Qua sitemap

Thêm vào file sitemap XML dưới dạng phần mở rộng hreflang. Mỗi URL cần khai báo đầy đủ các phiên bản:

<url>
  <loc>https://example.com/vi/</loc>
  <alternates>
    <alternate hreflang="vi-VN" href="https://example.com/vi/" />
    <alternate hreflang="en-US" href="https://example.com/en-us/" />
    <alternate hreflang="x-default" href="https://example.com/" />
  </alternates>
</url>

Chỉ hỗ trợ trong sitemap chuẩn (không phải sitemap index). Cần khai báo namespace: xmlns:xhtml="http://www.w3.org/1999/xhtml".

Lỗi thường gặp

Lỗi Hệ quả Cách khắc phục
Thiếu hreflang tự tham chiếu Google bỏ qua toàn bộ nhóm hreflang Mỗi trang phải có thẻ hreflang trỏ về chính nó
Không tương hỗ (một chiều) Hreflang bị coi là không hợp lệ Kiểm tra cặp đôi: A → B thì B → A
Dùng mã ngôn ngữ sai (ví dụ: vn thay vì vi) Google bỏ qua thẻ Dùng danh sách chính thức từ Google
URL hreflang trả mã trạng thái 404 hoặc chuyển hướng Hreflang không được xử lý Đảm bảo tất cả URL đều trả mã 200 và không redirect

Ví dụ thực tế

Một trang bán hàng điện máy có 3 phiên bản:

  • Việt Nam: https://dienmayabc.com/vi/vi-VN
  • Mỹ: https://dienmayabc.com/en-us/en-US
  • Úc: https://dienmayabc.com/en-au/en-AU

Mỗi trang <head> chứa:

<link rel="alternate" hreflang="vi-VN" href="https://dienmayabc.com/vi/" />
<link rel="alternate" hreflang="en-US" href="https://dienmayabc.com/en-us/" />
<link rel="alternate" hreflang="en-AU" href="https://dienmayabc.com/en-au/" />
<link rel="alternate" hreflang="x-default" href="https://dienmayabc.com/" />

Trang chủ https://dienmayabc.com/ được dùng làm x-default — nơi người dùng chọn ngôn ngữ nếu không khớp tự động.

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

Hreflang có ảnh hưởng đến thứ hạng trực tiếp không?

Không. Hreflang không nâng thứ hạng, mà giúp Google chọn đúng phiên bản để hiển thị. Thứ hạng vẫn phụ thuộc vào chất lượng nội dung, backlink, tốc độ, UX… của từng phiên bản riêng lẻ.

Có cần dùng hreflang nếu chỉ có một ngôn ngữ nhưng nhiều quốc gia?

Có — nếu nội dung khác nhau theo khu vực (giá tiền, đơn vị đo, luật pháp, vận chuyển). Ví dụ: trang tiếng Anh tại Canada và Anh có thể khác nhau về thuế VAT hay kích thước sản phẩm. Lúc này dùng en-CAen-GB là cần thiết.

Có thể dùng hreflang cho trang AMP không?

Có thể, nhưng phải đảm bảo phiên bản AMP và non-AMP có hreflang tương ứng đầy đủ. Tuy nhiên, AMP đã ngừng hỗ trợ chính thức từ tháng 6/2021 — nên việc này chỉ áp dụng cho các dự án còn duy trì AMP. Đối với website mới, không khuyến khích dùng AMP.