International SEO

hreflang validation

Quy trình kiểm tra tính đúng đắn của các thẻ hreflang (đủ cặp, không vòng lặp, không mâu thuẫn).

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

hreflang validation là gì?

hreflang validation là quy trình kiểm tra tính chính xác và nhất quán của các thẻ hreflang trên website đa ngôn ngữ hoặc đa khu vực. Mục tiêu là đảm bảo mỗi trang có đủ cặp liên kết ngược (bi-directional), không tạo vòng lặp, không mâu thuẫn về ngôn ngữ/khu vực, và tuân thủ đúng định dạng chuẩn do Google quy định.

Tại sao quan trọng trong SEO?

Khi website phục vụ người dùng ở nhiều quốc gia hoặc nói nhiều thứ tiếng, Google dùng thẻ hreflang để hiểu mối quan hệ giữa các phiên bản ngôn ngữ — ví dụ: trang tiếng Việt cho Việt Nam (vi-vn), tiếng Anh cho Mỹ (en-us), hay tiếng Anh chung toàn cầu (en). Nếu hreflang bị sai, Google có thể:

  • Hiển thị phiên bản sai cho người dùng (ví dụ: người Việt thấy trang tiếng Anh)
  • Bỏ qua toàn bộ nhóm hreflang và coi các trang là nội dung trùng lặp
  • Giảm khả năng xếp hạng của tất cả phiên bản liên quan
  • Gây nhầm lẫn cho công cụ lập chỉ mục, dẫn đến crawl budget bị lãng phí

Google khẳng định rõ: hreflang không phải yếu tố xếp hạng, nhưng là yếu tố định hướng hiển thị — và việc validation thất bại trực tiếp làm suy giảm trải nghiệm người dùng và hiệu quả phân phối nội dung quốc tế.

Cách hoạt động

Thẻ hreflang hoạt động theo nguyên tắc cặp đôi hai chiều: nếu trang A khai báo phiên bản tiếng Đức tại Đức (de-de) là hreflang="de-de", thì trang tiếng Đức đó cũng phải trỏ ngược lại trang A với hreflang="x-default" hoặc mã tương ứng. Google kiểm tra toàn bộ chuỗi liên kết này khi lập chỉ mục — không chỉ từng thẻ riêng lẻ.

Một tập hợp hreflang hợp lệ phải thỏa mãn đồng thời ba điều kiện:

  1. Đầy đủ: Mỗi phiên bản ngôn ngữ/khu vực trong nhóm đều xuất hiện ít nhất một lần trong thẻ hreflang của các trang liên quan.
  2. Đối xứng: Nếu trang A trỏ tới trang B với hreflang="en-gb", thì trang B phải trỏ ngược lại trang A với hreflang phù hợp (thường là en-us, x-default hoặc mã của trang A).
  3. Không mâu thuẫn: Không có hai thẻ hreflang trên cùng một trang trỏ tới cùng một URL với hai mã khác nhau; không có URL nào xuất hiện hai lần trong cùng một nhóm.

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

Validation hreflang gồm 4 bước chính, có thể thực hiện thủ công hoặc tự động:

  1. Thu thập toàn bộ URL có hreflang: Dùng công cụ như Screaming Frog, Sitebulb hoặc script Python + BeautifulSoup để crawl và xuất danh sách các thẻ link rel="alternate" hreflang kèm URL đích.
  2. Phân nhóm theo tập hreflang: Gom các URL có chung tập hợp hreflang (ví dụ: nhóm gồm vi-vn, en-us, x-default).
  3. Kiểm tra tính đối xứng: Với mỗi URL trong nhóm, xác minh rằng tất cả các giá trị hreflang đều tồn tại và trỏ đúng — đặc biệt chú ý tới x-default (phải xuất hiện duy nhất một lần trong nhóm và trỏ tới trang mặc định).
  4. Xuất báo cáo lỗi: Ghi nhận các trường hợp thiếu cặp, vòng lặp (A → B → A nhưng thiếu C), hoặc mâu thuẫn mã (ví dụ: cùng URL được gán vừa en vừa en-us).

Công cụ hỗ trợ phổ biến:

  • Google Search Console: Báo lỗi “Hreflang conflict” hoặc “Hreflang return tag missing” trong phần International Targeting.
  • hreflang.ninja: Kiểm tra nhanh từng URL, hiển thị trực quan sơ đồ liên kết.
  • Ahrefs Site Audit: Phát hiện lỗi hreflang trong báo cáo kỹ thuật (tùy gói).

Lỗi thường gặp

Lỗi Dấu hiệu Cách khắc phục
Thiếu cặp liên kết ngược Trang A trỏ tới B với hreflang="fr-fr", nhưng B không trỏ ngược lại A Thêm thẻ <link rel="alternate" hreflang="vi-vn" href="https://example.com/vi/"> vào trang B
Vòng lặp hreflang Nhóm 3 trang A→B→C→A nhưng thiếu liên kết từ C về A Kiểm tra toàn bộ nhóm, bổ sung đầy đủ liên kết hai chiều cho mọi cặp
Mã hreflang sai định dạng Dùng vn, english, hoặc en_US thay vì vi-vn, en, en-us Chuẩn hóa theo chuẩn BCP 47: ngôn ngữ viết thường, khu vực viết hoa, ngăn cách bằng dấu gạch ngang
URL không tồn tại (404) Thẻ hreflang trỏ tới đường dẫn trả mã trạng thái 404 hoặc redirect vòng Thay URL bằng đường dẫn hợp lệ, hoặc xóa thẻ nếu phiên bản đã ngừng hoạt động

Ví dụ thực tế

Một trang thương mại điện tử có 3 phiên bản:

  • https://shop.com/vi/ — tiếng Việt cho Việt Nam (vi-vn)
  • https://shop.com/en/ — tiếng Anh chung (en)
  • https://shop.com/th/ — tiếng Thái cho Thái Lan (th-th)

Trên trang /vi/, thẻ hreflang đúng phải là:

<link rel="alternate" hreflang="vi-vn" href="https://shop.com/vi/">
<link rel="alternate" hreflang="en" href="https://shop.com/en/">
<link rel="alternate" hreflang="th-th" href="https://shop.com/th/">

Tương tự, trang /en/ phải chứa cả ba thẻ trên — trỏ ngược lại /vi/, /th/ và chính nó với hreflang="en". Nếu thiếu một trong số này, hreflang validation sẽ thất bại.

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

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 bạn có các phiên bản địa phương (ví dụ: en-us, en-gb, en-au) với nội dung, giá cả, đơn vị đo lường khác nhau, hreflang giúp Google phân biệt và hiển thị đúng. Nếu nội dung giống nhau hoàn toàn, nên dùng hreflang="x-default" kết hợp với geo-targeting trong Search Console.

Có thể dùng hreflang cùng canonical không?

Có, và nên làm. Thẻ canonical chỉ định phiên bản gốc để tránh trùng lặp nội dung, còn hreflang chỉ định phiên bản ngôn ngữ/khu vực. Hai thẻ độc lập, không xung đột — miễn là canonical không trỏ ra ngoài nhóm hreflang.

hreflang có cần áp dụng cho tất cả trang hay chỉ trang chủ?

Cần áp dụng cho từng trang tương đương — ví dụ: trang sản phẩm tiếng Việt phải có hreflang trỏ tới phiên bản tiếng Anh và tiếng Thái của cùng sản phẩm đó. Việc chỉ đặt hreflang ở trang chủ là không đủ và có thể gây mâu thuẫn.