どのように へ Audit Hreflang at Scale

暫定日本語訳:repeatable, ツール-driven プロセス 向けに auditing hreflang 全体で large サイト — pulling すべての annotation から all three implementation 方法, reading cluster graphs と reciprocal matrices, と prioritizing fixes by damage, ない frequency.

初回公開:2026年7月2日 · 最終更新:2026年8月4日 · Advanced
言語
このページには証拠シグナルが1件あります

暫定日本語訳:Auditing hreflang at scale is graph-validation 問題, ない tag-validation 問題: あなた 確認 whether すべての ページ in cluster points back へ すべての other ページ, ない whether one ページ has tag. Pull すべての annotation から all three implementation ロケーション (HTML head, HTTP headers, XML sitemap) とともに crawler — Google gives あなた no validator と GSC's International Targeting レポート was 削除 Sept 22, 2022 — then 構築 reciprocal-tag matrix. Spot-確認 cluster visually とともに my 無料 returntag graph と matrix, または 使用 Ahrefs サイト Audit と Screaming Frog 向けに full-サイト coverage. Triage by damage: 不足している return tags 最初 (それら break whole pair), then 誤った 言語/地域 codes と non-canonical targets, then 不足している x-デフォルト 最後 (大半の 一般的な at 56,3%, least harmful). In my Brighton SEO 2023 study of 374 756 domains, 超えて 67% using hreflang had at least one error.

暫定日本語案: TL;DR — scaled hreflang audit is graph validation, ない tag validation. 暫定日本語案: 手順 1: pull すべての annotation から all three legal ロケーション (HTML head, HTTP 暫定日本語案: Link headers, XML sitemap) とともに crawler 設定 向けに あなた ccTLD/subdomain 暫定日本語案: setup — GSC できる’t do この (International Targeting 削除 Sept 22, 2022, と even 暫定日本語案: 前に その it だけ reported canonical member of cluster). 手順 2: 構築 暫定日本語案: reciprocal-tag matrix — すべての URL in cluster × すべての other, does →B exist, 暫定日本語案: does B→. Read it in my returntag cluster graph/matrix 向けに focused 確認, または 暫定日本語案: 使用 Ahrefs と Screaming Frog 向けに サイト-wide クロール. 手順 3: classify へ four patterns — 不足している return 暫定日本語案: tags, 誤った codes, non-canonical targets, mixed absolute/relative URLs. 手順 4: 暫定日本語案: prioritize by damage, ない frequency — return tags 最初 (それら break whole 暫定日本語案: pair), then codes, then x-デフォルト 最後 (大半の 一般的な at 56,3%, least harmful). 手順 暫定日本語案: 5: re-verify against インデックス登録 URL, ない declared canonical.

暫定日本語案: この 記事 is hreflang-specific companion へ my broader 暫定日本語案: International SEO Audit, which 暫定日本語案: treats hreflang as one of six audit areas. Here I’m going one level deeper on 暫定日本語案: hreflang-だけ methodology at scale. 向けに fundamentals — 何 hreflang is, three 暫定日本語案: ways へ implement it, reciprocal rule — see Hreflang 暫定日本語案: hub と, 向けに fallback tag, x-デフォルト.

Evidence for this claim A complete audit needs to inspect HTML, HTTP Link headers, and XML sitemaps because Google supports hreflang in all three locations. Scope: Google Search-supported hreflang delivery methods. Confidence: high · Verified: Google: Localized versions

core reframe: この is graph 問題

暫定日本語案: Here’s mental shift その 作る scaled auditing tractable. あなた are ない 暫定日本語案: 確認 “does this page have a hreflang tag.” あなた’re 確認 “does every page in this page’s cluster point back to it, and does every URL in the cluster resolve to a 200, canonical, indexable page.”

暫定日本語案: Google’s own ドキュメント is 理由:

暫定日本語案: “If page X links to page Y, page Y must link back to page X. If this is not the case for all pages that use hreflang annotations, those annotations may be ignored or not interpreted correctly.”

Evidence for this claim A hreflang audit must verify return links because Google says non-reciprocal annotations may be ignored or interpreted incorrectly. Scope: Google Search hreflang reciprocity guidance; impact is stated as possible, not guaranteed cluster-wide invalidation. Confidence: high · Verified: Google: Hreflang guidelines

暫定日本語案: Read その carefully. One 不足している return link できる cause affected annotations へ 暫定日本語案: be ignored または interpreted incorrectly. その’s なぜ 暫定日本語案: single-ページ view is structurally incapable of auditing hreflang: failure lives 暫定日本語案: in relationship 間に ページ, ない on any one ページ. あなた need クロール その 暫定日本語案: records すべての cluster member と cross-references them.

暫定日本語案: Scope matters here too: ignored annotations are ones in broken pair, 暫定日本語案: ない 自動 すべての relationship in larger cluster. five-ページ cluster とともに 暫定日本語案: one 不足している return typically 保持 processing its other 完全な pairs normally — 暫定日本語案: その’s exactly 何 my returntag screenshot below 表示: nine reciprocal pairs intact, 暫定日本語案: one 不足している return flagged. Don’t assume one broken edge nukes whole cluster; go 暫定日本語案: 確認 すべての pair, because ツール has へ 確認 すべての pair へ tell あなた その.

暫定日本語案: と it gets harder as サイト grows — which is exactly Google’s own explanation 向けに 暫定日本語案: なぜ big サイト are ones とともに errors. On 検索 Off Record, 暫定日本語案: Gary Illyes described errors as emerging いつ サイト has many プロパティ, 各 暫定日本語案: とともに its own URL structure — as soon as あなた have へ vary pattern 全体で 暫定日本語案: プロパティ, その’s どこ errors come in, とともに Lizzi Sassman adding その it’s 暫定日本語案: harder へ sync them up いつ あなた’re localizing URLs と then making typos. その’s 暫定日本語案: signature of enterprise setup: multiple ccTLDs, 各 on slightly 異なる 暫定日本語案: publishing convention. So good audit segments findings by プロパティ/domain group, 暫定日本語案: because その’s どこ errors actually cluster operationally.

手順 1 — Pull すべての hreflang annotation サイト-wide

three places hreflang lives

暫定日本語案: Google accepts hreflang in three equivalent ロケーション, と あなた 必要がある 確認 all 暫定日本語案: three:

Evidence for this claim A complete audit needs to inspect HTML, HTTP Link headers, and XML sitemaps because Google supports hreflang in all three locations. Scope: Google Search-supported hreflang delivery methods. Confidence: high · Verified: Google: Localized versions
  1. 暫定日本語案: HTML <link> tags in <head> — 一般的な ケース.
  2. 暫定日本語案: HTTP Link: レスポンス headers — 使用 向けに non-HTML files like PDFs.
  3. 暫定日本語案: xhtml:link entries in XML sitemap — 一般的な at scale because it centralizes 暫定日本語案: annotations in one file instead of templating them onto すべての ページ.

暫定日本語案: crawler その だけ reads HTML head する silently miss header- または 暫定日本語案: sitemap-declared alternates. It won’t flag them as broken — it just won’t see them, 暫定日本語案: which is worse, because あなた’ll think ページ has no hreflang いつ it actually has 暫定日本語案: full 設定 delivered via sitemap. 設定 クロール へ read all three 前に あなた 暫定日本語案: trust single number.

Configuring crawler 向けに あなた structure

  • 暫定日本語案: Screaming Frog: enable Configuration > Spider > クロール Hreflang (この 暫定日本語案: また picks up sitemap と header hreflang いつ あなた point it at them). 向けに 暫定日本語案: ccTLDs/subdomains その reference 各 other, 追加 sibling domains 下で 暫定日本語案: Config > CDNs — otherwise cross-domain hreflang links are simply ない 暫定日本語案: validated, ない flagged as broken. この is single 大半の 一般的な blind spot at 暫定日本語案: scale, because enterprise サイト are ones 大半の likely へ 使用 ccTLDs, と ccTLDs 暫定日本語案: are exactly 何 needs この extra 手順.
  • 暫定日本語案: Ahrefs サイト Audit: 作る sure sibling domains are inside project scope 暫定日本語案: 向けに 同じ 理由. Then 使用 ページ Explorer 暫定日本語案: へ filter ページ by hreflang 問題 type at scale 前に あなた drill へ individual 暫定日本語案: cluster graphs.

なぜ GSC できる’t do この 向けに あなた

暫定日本語案: Two 理由, と second is one 大半の 人々 miss:

  1. 暫定日本語案: ** レポート is gone.** GSC International Targeting レポート — which 使用 へ flag 暫定日本語案: some hreflang 問題 — was deprecated と 削除 (announced August 2022; 削除 暫定日本語案: 後に September 22, 2022). Nothing replaced it directly.
  2. 暫定日本語案: Even いつ it existed, it だけ ever showed canonical. On 検索 Off 暫定日本語案: Record, Illyes explained その 検索 Console だけ レポート on canonicals — 向けに 大半の 暫定日本語案: similar-言語 hreflang clusters, alternates aren’t canonical, so あなた were 暫定日本語案: effectively blind へ 何 was happening on non-canonical members of cluster, 暫定日本語案: because Google 店舗 them in duplicate cluster なしで 保持 alternate 暫定日本語案: details. その’s structural 理由 GSC was 決して 完全な hreflang audit ツール, 暫定日本語案: ない just “the report got removed.” It’s direct justification 向けに going 暫定日本語案: crawler-最初.

暫定日本語案: Google また just doesn’t ship validator. On 同じ podcast, Illyes said Google 暫定日本語案: has 決して 提供 hreflang validator — それら had some underused レポート と then 暫定日本語案: 削除 it — と 現在 points 人々 へ external ツール like Aleyda Solis’ ツール, Bill 暫定日本語案: Hunt’s hreflang checker, と Merkle’s ツール. Take その as permission へ lean on 暫定日本語案: third-party crawlers 向けに job GSC できる’t do — ただし ない as endorsement. Google’s 暫定日本語案: own ドキュメント is explicit その it doesn’t maintain または 確認 third-party hreflang 暫定日本語案: debugging ツール, so treat any ツール’s output, mine 含む, as diagnostic evidence 暫定日本語案: あなた still have へ 理由 について, ない 公式 verdict. いつ finding actually 暫定日本語案: matters, confirm it against raw artifact — HTTP レスポンス, sitemap XML, 暫定日本語案: または rendered HTML — rather than stopping at ツール’s parsed summary.

手順 2 — 構築 reciprocal-tag matrix

Normalize 何 あなた pulled

暫定日本語案: 前に あなた 構築 matrix, get everything へ one consistent shape. 向けに すべての 暫定日本語案: declared hreflang relationship, record ソース URL, target URL, locale 暫定日本語案: value, ソース 方法 (HTML head, HTTP header, または sitemap), と — critically — 暫定日本語案: target’s status code, リダイレクト chain, indexability, canonical target, と 暫定日本語案: whether クロール saw it in raw HTML または rendered DOM. 異なる crawlers エクスポート 暫定日本語案: この differently; normalizing it へ directed URL-へ-URL edges とともに その context 暫定日本語案: attached is 何 作る matrix, と すべての classification in 手順 3, reliable 暫定日本語案: instead of pile of disconnected rows.

何 matrix represents

暫定日本語案: Conceptually, 向けに 各 cluster あなた 構築 table どこ rows と columns are すべての 暫定日本語案: URL in その cluster, と 各 cell answers yes/no question: does hreflang link 暫定日本語案: exist から row URL へ column URL? 正しい cluster is symmetric — if 暫定日本語案: →B is present, B→ is present. すべての asymmetric cell ( link その exists in one 暫定日本語案: direction だけ) is 不足している return tag.

暫定日本語案: あなた don’t literally hand-構築 この spreadsheet at scale — ツール 構築 it 向けに あなた. 暫定日本語案: ただし holding matrix in あなた head is 何 lets あなた read ツール output correctly. 暫定日本語案: My returntag ツール draws matrix as graph と また exposes underlying cells; 暫定日本語案: Screaming Frog’s “Missing Return Links” filter pulls asymmetric cells へ list, 暫定日本語案: と Ahrefs サイト Audit 提供 another at-scale cluster view. 同じ relationship 確認, 暫定日本語案: 異なる presentations と クロール scopes.

Reading it as graph: my returntag cluster validator

暫定日本語案: 向けに focused cluster 確認, my 無料 returntag ツール renders declared locale 暫定日本語案: relationships as graph と reciprocal matrix. すべての locale is node, すべての 暫定日本語案: declared hreflang annotation is edge, と 問題 list identifies exact URL 暫定日本語案: その fails へ link back. screenshot below is sitemap-だけ run: it reads 何 暫定日本語案: sitemap declares と deliberately does ない fetch ページ head tags または HTTP Link headers. 暫定日本語案: 使用 ページ URL mode いつ あなた need full three-ソース picture 向けに ページ’s cluster.

暫定日本語案: どのように へ read it:

  • 暫定日本語案: ** clean cluster** is fully-connected mesh — すべての node linked へ すべての other 暫定日本語案: node, both directions.
  • 暫定日本語案: ** one-way edge** is あなた asymmetric cell: ページ X points へ Y ただし Y doesn’t point 暫定日本語案: back. その’s return-tag error, seen instead of read.
  • 暫定日本語案: ** orphaned node** — URL その 表示される in cluster ただし doesn’t link back へ 暫定日本語案: it — is unlinked hreflang URL.

暫定日本語案: practical win is triage speed と stakeholder communication: instead of handing 暫定日本語案: developer abstract spreadsheet row, あなた 表示 one-way relationship と exact 暫定日本語案: 不足している return-tag error together. 向けに hundreds または thousands of clusters, 保つ Ahrefs 暫定日本語案: サイト Audit または Screaming Frog in workflow 向けに 完全な クロール coverage; returntag is 暫定日本語案: fast way へ inspect と explain specific cluster.

Reading it as spreadsheet: Screaming Frog filters

暫定日本語案: If あなた’re in Screaming Frog, matrix surfaces as 設定 of filters (後に あなた run 暫定日本語案: クロール Analysis post-クロール へ populate return-link データ). 機能 them in roughly 暫定日本語案: この order, because it maps へ priority order in 手順 4:

  • 暫定日本語案: 不足している Return Links — asymmetric cells; あなた highest-priority findings.
  • 暫定日本語案: Inconsistent 言語 & 地域 Return Links — return link exists ただし とともに 暫定日本語案: 異なる code than outbound one ( says B is fr-FR, B says is en-GB いつ 暫定日本語案: is really en-US) — subtler pair-breaker.
  • 暫定日本語案: Non-Canonical Return Links — return link points at URL その’s canonicalized 暫定日本語案: elsewhere, so signal chain breaks even though tag exists.
  • 暫定日本語案: Noindex Return Links — return target is noindexed, so it できる’t carry 暫定日本語案: annotation.
  • 暫定日本語案: Non-200 Hreflang URLs — target is リダイレクト または error ページ.
  • 暫定日本語案: Unlinked Hreflang URLsIncorrect 言語 & 地域 Codes — orphaned 暫定日本語案: nodes と code-validation errors.

暫定日本語案: エクスポート whole 設定 via レポート > Hreflang. (向けに full filter-by-filter 暫定日本語案: walkthrough at summary level, Screaming Frog hreflang tutorial 暫定日本語案: is excellent — I’m ない going へ re-type their config 手順 here.)

手順 3 — Classify 何 あなた find へ four error patterns

暫定日本語案: あなた クロール output する be noisy. Sort すべての finding へ one of four buckets — これらの 暫定日本語案: are patterns その repeat 全体で 374 756-domain study. 暫定日本語案: (I’m pulling だけ two figures その anchor priority argument; full nine-type 暫定日本語案: error table is already in International SEO Audit 暫定日本語案: 記事 — no point re-pasting it.)

1. 不足している return tags — pair-breaker

暫定日本語案: asymmetric cells から あなた matrix. 15,3% of hreflang-using domains have これらの. 暫定日本語案: As I put it in study writeup: “As I mentioned, hreflang tags work in pairs. If both pages don’t reference each other, they can’t establish the connection and swap properly in the search results.” この is category その invalidates whole 暫定日本語案: pair’s signal per Google’s docs, which is なぜ it’s 最初 in priority order — even 暫定日本語案: though it’s ない 大半の 一般的な error.

2. 誤った 言語/地域 codes — quietly-forgiving one

暫定日本語案: 使用 ISO 639-1 向けに 言語 と ISO 3166-1 alpha-2 向けに 地域. classic breakers: 暫定日本語案: jp instead of ja 向けに Japanese, typo js 向けに ja, three-letter codes like 暫定日本語案: gbr instead of gb, la (Laos) misused 向けに “Latin America.”

暫定日本語案: One more distinction worth 構築 へ あなた audit: BCP 47 ( underlying 暫定日本語案: 言語-tag spec) permits much broader 設定 of values than Google’s hreflang 暫定日本語案: implementation actually acts on — script subtags と other BCP 47-legal constructs 暫定日本語案: その Google’s own hreflang ドキュメント doesn’t confirm as recognized values. 暫定日本語案: code できる be perfectly well-formed BCP 47 と still ない be something Google’s 暫定日本語案: hreflang guidance documents as supported. Validate against Google’s documented 暫定日本語案: 言語/地域/x-default rules specifically, ない generic BCP 47 well-formedness 暫定日本語案: — syntactically 有効 tag できる still be functionally invisible へ Google.

暫定日本語案: ただし here’s nuance その cuts against naive prioritization: Google silently corrects 暫定日本語案: some of これらの と ない others. Its ドキュメント states その if あなた 使用 codes reserved 暫定日本語案: 向けに something else, “Google Search ignores that part of the annotation (for example, using EU, UN, or UK in hreflang annotations doesn’t have an effect on Google Search).” So UK is effectively dropped (あなた want GB), ただし it doesn’t nuke rest 暫定日本語案: of annotation — whereas code その’s simply 誤った (jp 向けに ja) does break その 暫定日本語案: pair. audit needs へ distinguish “technically wrong but Google handles it” から 暫定日本語案: “wrong and actually breaks the pair,” because それら don’t get 同じ urgency.

3. Non-canonical URLs in hreflang — invisible one

暫定日本語案: この is pattern その looks fine in tag エクスポート と breaks anyway. key distinction 暫定日本語案: I drew at Pubcon 2019: 暫定日本語案: hreflang is について インデックス登録 version, ない canonical. If あなた hreflang points 暫定日本語案: へ URL その’s canonicalized away から 何’s actually インデックス登録, signal chain breaks 暫定日本語案: even though tag itself is “valid.” この だけ surfaces いつ あなた cross-reference 暫定日本語案: クロール エクスポート against インデックス登録 status — 大半の hreflang tutorials skip it because それら treat 暫定日本語案: hreflang as isolated tag 確認 instead of part of インデックス登録 pipeline. (More on 暫定日本語案: verifying この in 手順 5.)

暫定日本語案: There’s 同じ-言語 alignment 確認 worth adding here too. いつ several 暫定日本語案: near-duplicate URLs できる plausibly serve as canonical 向けに locale, Google’s own 暫定日本語案: canonicalization guidance favors 同じ-言語 (または best-substitute) URL, と gives 暫定日本語案: some preference へ ページ その’s part of 完全な reciprocal hreflang cluster 超えて 暫定日本語案: one その isn’t. その’s 理由 へ 保つ hreflang targets pointed at 同じ-言語 暫定日本語案: canonical candidates rather than letting them drift onto 異なる-言語 暫定日本語案: duplicate. None of この is something crawler または checker できる prove outright, though 暫定日本語案: — it できる 表示 あなた 設定 signals (canonical tags, hreflang edges, cluster 暫定日本語案: membership), ない Google’s actual final selection. Treat クロール output as diagnostic 暫定日本語案: evidence, ない confirmation.

Evidence for this claim Audit canonical targets for same-language or best-substitute alignment and compare reciprocal hreflang-cluster membership, because Google documents a cluster preference among otherwise similar URLs. Scope: localized HTML pages, HTTP headers, XML sitemaps and search systems as applicable Confidence: high · Verified: How to specify a canonical URL with rel=canonical and other methods

4. Mixed absolute/relative URLs — templating bug

暫定日本語案: Google is explicit: “Alternate URLs must be fully-qualified, including the transport method (http/https), so: https://example.com/foo, not //example.com/foo or /foo.” At scale この is almost 決して one-off typo — it’s templating bug その hits 暫定日本語案: thousands of URLs at once because hreflang block is generated から partial URL 暫定日本語案: pattern. その’s なぜ crawlers flag it as systemic 問題: find one, と あなた’ve usually 暫定日本語案: found whole template’s worth.

手順 4 — Prioritize: return tags 最初, codes next, x-デフォルト 最後

暫定日本語案: single 大半の 重要 idea in この whole 記事: error severity is ない 暫定日本語案: proportional へ error frequency. Sort あなた findings by damage, ない by どのように many rows 暫定日本語案: ツール returned.

TierError patternなぜ here
1 — fix 最初不足している return tags; inconsistent return-link codesBreaks entire pair’s signal per Google’s docs. Highest damage.
2 — fix next誤った codes その Google doesn’t silently fix (jpja); non-canonical / broken targetsBreaks individual relationships; some are silently handled, some aren’t — triage accordingly.
3 — batchMixed absolute/relative URLs, 不足している self-referenceReal hygiene 問題, usually template-wide, ただし ない 常に cluster-breaking.
4 — 最後不足している x-デフォルト大半の 一般的な, least damaging.

暫定日本語案: なぜ x-デフォルト goes 最後 despite being everywhere: it’s single 大半の 一般的な finding in 暫定日本語案: すべての study — 56,3% in my 374 756-domain study, と 47,95% in 暫定日本語案: Dan Taylor’s independent 18 786-domain SALT.agency study 暫定日本語案: (two studies, very 異なる scales, 同じ headline: 大半の サイト are 不足している it). ただし as I 暫定日本語案: wrote in study: “Setting an x-default is not required. But it is recommended if you need a fallback page for users whose language settings don’t match any of your localized versions.” Google’s own team treats it as UX fallback, ない インデックス登録-critical signal 暫定日本語案: — on 検索 Off Record, Illyes described x-デフォルト as annotating fallback ページ 向けに 暫定日本語案: いつ there’s no matching 言語 向けに ユーザー, と noted it できる even be another 言語 暫定日本語案: ページ rather than dedicated selector. Fix it, ただし fix it 後に things その 暫定日本語案: actually break clusters.

暫定日本語案: Self-reference sits in tier 3 向けに 同じ 理由: even Illyes, who 機能 on Google’s 暫定日本語案: hreflang implementation, said on record he doesn’t fully remember なぜ self-reference is 暫定日本語案: 必要 と is fairly sure clusters する 機能 なしで it — he framed it mainly as making 暫定日本語案: clusters easier へ 設定 up because あなた できる copy/paste 同じ block everywhere. It’s 暫定日本語案: implementation hygiene, ない functional requirement.

暫定日本語案: 向けに broader impact × effort matrix その spans all six international audit areas (ない 暫定日本語案: just hreflang), 使用 Frameworks lens in International SEO Audit 暫定日本語案: rather than rebuilding it here.

手順 5 — Re-verify against インデックス登録 URL, ない クロール

暫定日本語案: あなた クロール validates tags. It doesn’t validate その URL tag points へ is 暫定日本語案: one Google actually インデックス登録. Because hreflang follows インデックス登録 version (手順 3, 暫定日本語案: pattern 3), tag その points at URL その’s been canonicalized away — または その リダイレクト, 暫定日本語案: または is noindexed downstream — still breaks signal even 後に あなた bulk fix pass 暫定日本語案: レポート “clean.”

暫定日本語案: So 後に fixes ship, spot-確認 highest-value clusters とともに URL Inspection in 暫定日本語案: 検索 Console: confirm URL Google レポート as インデックス登録 is 同じ URL あなた hreflang 暫定日本語案: references. この is 手順 その catches canonical-chain drift, which is invisible in 暫定日本語案: plain hreflang-tag エクスポート. あなた don’t do it 向けに すべての URL — あなた do it 向けに あなた money ページ 暫定日本語案: in 各 market, 後に クロール says あなた’re done.

one-line note on Bing

暫定日本語案: Don’t expect Bing Webmaster ツール へ validate any of この. Bing treats hreflang as much 暫定日本語案: weaker signal than Google does と 削除 its Geo Targeting feature back in 2020 — it 暫定日本語案: leans on コンテンツ-言語 header instead. hreflang-at-scale audit is 暫定日本語案: fundamentally Google-facing exercise; 確認 コンテンツ-言語 向けに Bing separately (covered 暫定日本語案: in International SEO Audit).

Add an expert note

Pin an expert quote

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