Hướng dẫn về Hreflang

Điều gì hreflang là, đó three ways để implement điều này, đó reciprocal và self-referential rules, hợp lệ language/region codes, và cách audit clusters tại quy mô.

Xuất bản lần đầu: 25 thg 6, 2026 · Cập nhật lần cuối: 8 thg 8, 2026 · Advanced
Ngôn ngữ
1 tín hiệu bằng chứng trên trang này

Hreflang tells các công cụ tìm kiếm mà language/region version of một trang để cho thấy mà người dùng. Bạn declare điều này một of three ways — HTML head tags, HTTP các header, hoặc XML sitemap — dùng ISO 639-1 language + ISO 3166-1 alpha-2 region codes. Điều này chỉ hoạt động as một reciprocal cluster: mỗi trang phải link để itself và để all của nó alternates, và nếu bất kỳ trả về link là bị thiếu, Google bỏ qua đó pair. đây là một hint, không một directive — sai hreflang là đã bỏ qua, không penalized. đây là cũng fragile: trong my nghiên cứu of 374 756 hreflang-dùng domains, over 67% đã có ít nhất một vấn đề. Bing barely dùng điều này (nội dung-language là đó stronger tín hiệu ở đó). Này hub giải thích đó toàn bộ điều và points bạn để đó deep dives.

Tóm tắt — Hreflang là reciprocal cluster tín hiệu: mỗi trang lists itself và all alternates, và bị thiếu trả về tag voids pair. Declare nó một way chỉ — HTML head, HTTP Link các header (PDFs), hoặc XML sitemap (best tại quy mô). Codes là ISO 639-1 language + ISO 3166-1 alpha-2 region; en-UK là sai, nó en-GB. nó hint, không directive (Mueller) — sai hreflang là đã bỏ qua, không penalized, và Google có thể override nó cho giống nhau-language consolidation hoặc lập chỉ mục reasons. nó breaks constantly: trong my Ahrefs nghiên cứu của 374 756 domains, over 67% có ít nhất một vấn đề. Bing xử lý nó as far weaker tín hiệu hơn content-language. Audit clusters visually thay vì trong spreadsheets.

Hreflang là cluster, không tag

Hreflang sits between one piece of content and the right version showing up for each market's search. Nguồn: /international-seo/hreflang/

© Patrick Stox LLC · CC BY 4.0 ·

A hreflang cluster is a bidirectional graph — one missing return link breaks just that pair. Nguồn: /international-seo/hreflang/

© Patrick Stox LLC · CC BY 4.0 ·

Đó mental model đó các cách sửa hầu hết hreflang confusion: điều này không một theo-trang tag, đây là một bidirectional graph. Google own requirement là blunt — “Each language version must list itself as well as all other language versions,” (bản dịch) «Mỗi language version phải list itself cũng như all other language versions,» và “if two pages don’t both point to each other, the tags will be ignored.” (bản dịch) «nếu hai các trang không cả hai trỏ đến mỗi other, đó tags sẽ là đã bỏ qua.» So nếu trang X points để Y nhưng Y không point lại để X, đó edge là silently dropped. Một bị thiếu trả về tag có thể nguyên nhân đó affected các chú thích để là đã bỏ qua hoặc interpreted incorrectly — nhưng Google says điều này có thể vẫn xử lý đó pairs đó correctly reciprocal, so một hỏng mối quan hệ không nhất thiết take xuống mỗi chú thích trong một lớn hơn cluster.

Evidence for this claim Each hreflang set should include the page itself, use fully qualified URLs, and include return links; without reciprocity, the affected annotations may be ignored or misinterpreted. Scope: Google Search hreflang guidelines; the documentation does not say one missing return link invalidates every annotation in a cluster. Confidence: high · Verified: Google: Localized versions guidelines

Hai non-negotiables flow từ đó:

  • Reciprocity. Mỗi reference phải được đã trả về. Này là nơi implementations break tại quy mô — đó moment một template, một CMS trường, hoặc một region các trang fall out of sync, trả về links go bị thiếu.
  • Self-reference. Mỗi trang lists itself. Mueller calls điều này “optional—but good practice” (bản dịch) «tùy chọn—nhưng good practice»; trong thực tế, một self-referential set là đó sạch nhất way để giữ clusters consistent và là flagged as an vấn đề khi bị thiếu.

Absolute, fully-qualified các URL là bắt buộc cũng — https://example.com/foo, không bao giờ //example.com/foo hoặc /foo.

Three các phương thức — và trade-offs

Google xử lý HTML tags, HTTP các header, và XML sitemaps as tương đương — có không Tìm kiếm benefit để implementing nhiều hơn một. Pick một phương thức theo trang web dựa trên Điều gì của bạn stack có thể maintain reliably; mixing them invites conflicts.

  • HTML <head> tags. Simplest, phần lớn visible. Downside: on trang web với dozens của locales, mỗi trang carries lớn block của <link> tags, thêm markup weight, và bất kỳ trang trong <body> (từ malformed HTML hoặc JS injection) là không hợp lệ — hreflang chỉ được tính trong <head> của trang as Google renders/parses nó.
  • HTTP Link các header. chỉ option cho non-HTML các tài nguyên như PDFs. được gửi trong phản hồi, so họ không bloat document.
  • XML sitemaps. right call tại quy mô. các chú thích trực tiếp centrally (xhtml:link children dưới mỗi <url>, với xmlns:xhtml="http://www.w3.org/1999/xhtml" namespace), so Bạn có thể regenerate toàn bộ cluster từ database không có redeploying các trang. có không “nhanh hơn” phương thức — cả hai HTML và sitemaps là resolved tại crawl time — nhưng sitemaps là far easier để QA vì Bạn có thể validate đểàn bộ graph trong một file thay vì của crawling mỗi trang.
Evidence for this claim Google accepts hreflang in HTML, HTTP headers, or XML sitemaps and says the methods are equivalent from its perspective. Scope: Google Search hreflang implementation methods. Confidence: high · Verified: Google: Localized versions

Reciprocal linking tại quy mô — nơi nó breaks

Trong 5-locale trang web, đó 5×5 matrix của references theo trang đặt, regenerated mỗi time bạn thêm hoặc xóa locale, khắc phục slug, hoặc migrate URL. thất bại modes là dễ dự đoán:

  • Inconsistent URL formats. Trailing-slash so với. không, http so với. https, www so với. apex, hoặc uppercase so với. lowercase paths — bất kỳ mismatch giữa URL trong hreflang và URL Google thực ra indexes breaks trả về-link match.
  • Pointing tại được chuyển hướng hoặc hỏng các URL. locale URL thay đổi, chuyển hướng goes trong, nhưng hreflang vẫn points tại old URL. cluster hiện tại references 301 hoặc 404.
  • Code drift. jp thay vì ja cho Japanese, three-letter codes nơi hai-letter là bắt buộc, en-UK thay vì en-GB. Không hợp lệ codes là đã bỏ qua.

Worked deployment ví dụ: trả về tag points để yesterday URL

Suppose UK sản phẩm trang moved từ /gb/shoes/ để /uk/shoes/. US trang là không regenerated, so nó vẫn publishes:

<link rel="alternate" hreflang="en-US" href="https://shop.example/us/shoes/" />
<link rel="alternate" hreflang="en-GB" href="https://shop.example/gb/shoes/" />

old UK URL các chuyển hướng để /uk/shoes/, trong khi new UK trang links lại để US trang từ của nó cuối canonical URL. đó leaves hai distinct các vấn đề: US chú thích targets chuyển hướng, và cuối UK URL không phải giống nhau URL US trang declared. khắc phục generator so cả hai các trang publish hoàn tất đặt sử dụng cuối, indexable các URL:

<link rel="alternate" hreflang="en-US" href="https://shop.example/us/shoes/" />
<link rel="alternate" hreflang="en-GB" href="https://shop.example/uk/shoes/" />

Validate cả hai directions sau khi deployment; kiểm tra chỉ US nguồn tag sẽ miss trả về-tag thất bại. Đây là illustrative .example cluster.

lesson từ my conference talks holds: automate hreflang generation từ single nguồn của truth. Hand-maintained hreflang tại quy mô là bảo đảm của trả về-tag rot.

Canonicalization conflicts

Hreflang phụ thuộc vào Điều gì được lập chỉ mục, không on Điều gì canonicalized — nhưng hai interact, và getting nó sai breaks clusters:

  • Self-referencing canonicals là đó safe default. Mỗi language version nên canonicalize để itself. Nếu của bạn Spanish trang canonicalizes để đó English trang, bạn là telling Google đó Spanish URL không đó một để chỉ mục — và hreflang pointing tại một non-canonical URL là một of đó hơn phổ biến các lỗi.
  • Đó giống nhau-language, multi-country trường hợp biên. Khi bạn có, chẳng hạn, en-usen-gb các trang đó là near-giống hệt, Google có thể consolidate them và chỉ mục một — nhưng điều này có thể vẫn đổi đó displayed URL trong đó SERP để đó correct country version qua đó hreflang links. So một “canonicalized-away” (bản dịch) «canonicalized-away» URL có thể vẫn surface cho đó right người dùng. đó là một feature, không một bug, nhưng điều này surprises mọi người auditing chỉ mục coverage.
  • noindex và robots.txt. MỘT trang blocked từ lập chỉ mục không thể participate trong một cluster — của nó hreflang không thể là acted on, và pointing để một noindexed/blocked URL breaks đó trả về link. không block hoặc noindex language variants bạn muốn phân phối.

nó hint, không directive

Này là đó cách diễn đạt để internalize. Trong Có thể 2025 on Bluesky, John Mueller responded để một case of fr-be các trang cho thấy lên trong fr kết quả despite correct hreflang: “hreflang doesn’t guarantee indexing, so it can also just be that not all variations are indexed,” (bản dịch) «hreflang không bảo đảm lập chỉ mục, so điều này có thể cũng chỉ là đó không all variations là được lập chỉ mục,» và “I suspect this is a ‘same language’ case where our systems just try to simplify things for sites.” (bản dịch) «I suspect này là một ‘giống nhau language’ case nơi của chúng ta các hệ thống chỉ try để simplify điều cho các trang.» Google reserves đó right để override hreflang cho giống nhau-language consolidation, lập chỉ mục gaps, hoặc của nó own canonical choices.

Google canonicalization hướng dẫn là flip side của đó: nó khuyến nghị chọn canonical trong giống nhau language as trang (hoặc best khả dụng substitute), và nó nói nó prefers các URL đó là part của hoàn tất reciprocal hreflang cluster over nếu không-similar các URL sitting bên ngoài nó. đó preference, không promise — là trong correctly-được xây dựng cluster improves của bạn odds của right URL getting được chọn, nhưng nó không bảo đảm lập chỉ mục hoặc mà URL hiển thị.

Đó practical consequence: sai hreflang là đã bỏ qua, không penalized. Nếu của bạn cluster là hỏng, Google falls lại để của nó own language/region detection. Đó cost là opportunity (đó sai URL cho thấy cho some người dùng), không một xếp hạng hit. So “my hreflang is wrong” (bản dịch) «my hreflang là sai» là rarely an emergency — nhưng đây là cũng rarely đang làm bất cứ điều gì hữu ích.

Bing và khác engines sử dụng khác stack

Hreflang là một Google (và Yandex) tín hiệu. Bing tín hiệu stack là completely khác nhau. Fabrice Canel, Principal Program Manager on Microsoft Bing, có đã nói plainly đó “hreflang is indeed a far weaker signal than content-language at Bing.” (bản dịch) «hreflang là indeed một far weaker tín hiệu hơn nội dung-language tại Bing.» Bing leans on đó content-language HTTP header / meta tag, đó <html lang=""> thuộc tính, inbound links, khách truy cập geography, và máy chủ/ccTLD location, và Canel có advised so với “duplicating URLs just to have them tagged with these language-markets” (bản dịch) «duplicating URLs chỉ để có them tagged với những language-markets» trong hầu hết trường hợp. Baidu không hỗ trợ hreflang tại all (điều này keys off hosting location, Chinese domain registration, ICP licensing, và nội dung-language). So một robust international setup pairs hreflang cho Google với một correct content-language / html lang cho mọi người khác.

lỗi rate là story

Over 67% of domains using hreflang have at least one issue — missing x-default is the top offender. Nguồn: Data: Ahrefs

Khi I ran largest hreflang nghiên cứu để date tại Ahrefs374 756 domains, nearly 10× lớn hơn bất kỳ prior nghiên cứuover 67% của domains sử dụng hreflang có tại least một vấn đề. distribution:

Vấn đề% của domains
Bị thiếu x-default56,3%
Bị thiếu self-referencing tags18,0%
Referencing hỏng/được chuyển hướng các trang16,9%
Bị thiếu reciprocal tags15,3%
Pointing để non-canonical các URL8,0%
không đúng language/country codes4,6%
Inconsistent language các thuộc tính3,2%
Multiple các trang cho giống nhau language2,5%
giống nhau trang cho multiple languages2,5%

My nghiên cứu summary vẫn stands: hreflang là phức tạp và hard để nhận right, và nó có thể break trong lot của khác ways.

Auditing tại quy mô — visualize cluster, không đọc spreadsheet

See của bạn own cluster với returntag:

  1. Paste một trang URL, sitemap URL, hoặc list của trang các URL vào tool.
  2. Nhấp Validate cluster.
  3. đọc GRAPH view — hỏng hoặc bị thiếu trả về links stand out by severity color — hoặc chuyển để MATRIX cho hàng-by-hàng view, và export khắc phục-list CSV nếu bạn cần hand nó để ai đó khác.

reason hreflang các lỗi hide là đó trả về-tag vấn đề là mối quan hệ giữa các trang, và relationships là nearly không thể để đọc trên các hàng của spreadsheet. Ahrefs trang web Audit là đầu tiên tool để render hreflang cluster as graph — open bất kỳ trang URL details và Hreflangs tab draws toàn bộ cluster as network, với hỏng các trang và bị thiếu/không đúng links highlighted trong red. Bạn có thể see tại glance mà trả về tag là bị thiếu hoặc mà link là đã thêm by mistake — và nó far easier để hiển thị stakeholder hơn CSV. trang web Audit cũng chạy underlying kiểm tra (không hợp lệ chú thích, bị thiếu self-reference, nhiều hơn một trang theo language, hreflang/html lang mismatch, bị thiếu reciprocal tag, non-canonical đích, hỏng đích) đó map trực tiếp để nghiên cứu lỗi list.

Beyond đó:

  • GSC URL Inspection xác nhận cách một single URL đã là được crawl và được lập chỉ mục. Note đó old International Targeting báo cáo đã là deprecated on September 22, 2022 — Google đã nói điều này “had little value for the ecosystem.” (bản dịch) «đã có little giá trị cho đó ecosystem.» Hreflang tags themselves vẫn hoạt động; chỉ đó báo cáo là đã biến mất.
  • Manual SERP kiểm thử với đó &hl= (host language) và &gl= (geolocation) parameters on một Google tìm kiếm URL cho phép bạn preview điều gì một được cho locale kết quả trông giống.

Hreflang là cũng kỹ thuật-SEO audit concern

mặc dù hreflang home là SEO quốc tế, nó hiển thị lên trong nearly mỗi kỹ thuật SEO audit của multi-language hoặc multi-region trang web — nó sits right alongside canonicalization, lập chỉ mục, và crawl-accessibility kiểm tra, và nó một của items phần lớn có khả năng để là silently hỏng. nếu bạn’re đang chạy kỹ thuật audit và trang web có nhiều hơn một locale, hreflang cluster belongs on checklist.

nơi để go tiếp theo

điều này hub là map cho hreflang sub-cluster. đầu tiên deep dive:

  • x-default — fallback giá trị cho người dùng whose locale matches none của bạn rõ ràng tags ( country selector hoặc global homepage). nó không bắt buộc, nhưng nó là single phần lớn phổ biến omission trong my nghiên cứu (56,3% của các trang). dedicated subtopic covers Khi nào nên dùng nó, Khi để skip nó, và Cách nó interacts với rest của cluster.

cho rộng hơn strategy điều này implements, see SEO quốc tế pillar — hreflang là kỹ thuật layer của international strategy; nó không replace genuine localization (local intent, local nội dung, local authority).

Add an expert note

Pin an expert quote

New person? Create their unclaimed profile at /admin/experts/ → Pin a quote first.