どのように へ Audit Hreflang at Scale
暫定日本語訳:repeatable, ツール-driven プロセス 向けに auditing hreflang 全体で large サイト — pulling すべての annotation から all three implementation 方法, reading cluster graphs と reciprocal matrices, と prioritizing fixes by damage, ない frequency.
言語
このページには証拠シグナルが1件あります
- 関連するライブツールreturntag - hreflang checker
暫定日本語訳: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 — Auditing hreflang “at scale” means 確認 あなた whole サイト’s 暫定日本語案: hreflang as one connected network instead of looking at ページ one at time. 暫定日本語案: trick is その hreflang 機能 in matched pairs — if ページ points へ ページ B, B has 暫定日本語案: へ point back へ, または Google throws whole pair out. single-ページ 確認 できる 暫定日本語案: 決して catch 不足している return link, so あなた need crawler その reads すべての ページ と 暫定日本語案: maps who points へ whom. Fix 不足している return links 最初; 不足している x-デフォルト 暫定日本語案: その すべての ツール complains について できる wait.
なぜ “one page at a time” doesn’t 機能
暫定日本語案: If あなた view-ソース on あなた German ページ と see tidy block of hreflang tags, it 暫定日本語案: looks fine. ただし hreflang だけ 機能 if ページ it references point back. あなた 暫定日本語案: German ページ できる be perfect と still be broken, because English ページ it names 暫定日本語案: forgot へ name it in return. あなた できる’t see その から German ページ alone — あなた’d 暫定日本語案: have へ open English ページ too, と French ページ, と すべての other version, と 暫定日本語案: cross-確認 them all by hand. On ten-ページ サイト, fine. On ten-thousand-ページ サイト, 暫定日本語案: impossible.
暫定日本語案: その’s whole 理由 “auditing hreflang at scale” is its own skill: あなた stop 暫定日本語案: 確認 tags と start 確認 relationships. ツール crawls すべての ページ, records 暫定日本語案: すべての hreflang annotation, と then asks だけ question その matters — does すべての 暫定日本語案: ページ in この group point へ すべての other ページ, both directions?
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何 あなた actually need
暫定日本語案: Three things:
- 暫定日本語案: ** crawler.** Google gives あなた no hreflang validator, と 古い 検索 Console 暫定日本語案: レポート その 使用 へ flag some of この was 削除 back in 2022. So あなた lean on 暫定日本語案: third-party crawlers — Ahrefs サイト Audit または 暫定日本語案: Screaming Frog — へ pull everything 暫定日本語案: へ one place. 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
- 暫定日本語案: ** reciprocal 確認.** Both ツール do 同じ core thing: それら 構築 map of 暫定日本語案: who-points-へ-whom と flag one-way links. それらの one-way links are あなた 暫定日本語案: “missing return tags,” と それら’re errors その actually matter.
- 暫定日本語案: ** priority order.** あなた する find hundreds of 問題. Fix 不足している return 暫定日本語案: links 最初 (それら break pairs), then 誤った 国/言語 codes, と leave 暫定日本語案: 不足している x-デフォルト 向けに 最後 — it’s 大半の 一般的な complaint ただし least harmful.
one thing へ remember
暫定日本語案: 大半の サイト その 使用 hreflang have errors. いつ I studied 暫定日本語案: 374 756 domains 向けに Brighton SEO in 2023, 暫定日本語案: 超えて 67% of ones using hreflang had at least one error. So don’t panic いつ 暫定日本語案: あなた 最初 クロール lights up red — その’s normal. skill isn’t getting へ zero 暫定日本語案: errors; it’s knowing which of them actually cost あなた トラフィック と fixing それらの 最初.
暫定日本語案: 向けに broader international audit — URL structure, geo-リダイレクト, コンテンツ quality, 暫定日本語案: 国 パフォーマンス — see International SEO Audit. 暫定日本語案: 向けに 何 hreflang even is と どのように へ implement it, start とともに Hreflang. 暫定日本語案: Want full at-scale methodology — reciprocal-tag matrix, cluster-graph 暫定日本語案: walkthrough, Screaming Frog filters? Switch へ Advanced tab.
Validate hreflang fixes
Reciprocal cluster retest
暫定日本語案: テスト へ run: Re-クロール すべての changed cluster と compare actual self と alternate edges とともに expected locale matrix. Expected result: すべての member references itself と all intended alternates, と すべての edge has return edge. Failure interpretation: fix changed one template または ページ なしで updating whole cluster. 監視 window: Immediately 後に deployment と 後に next generation cycle. Rollback trigger: changed cluster still contains asymmetric priority-locale pairs.
Target integrity
暫定日本語案: テスト へ run: リクエスト すべての changed hreflang destination なしで following リダイレクト と collect status, robots directives, と canonical. Expected result: Targets return direct 200 レスポンス, remain indexable, と canonicalize as intended. Failure interpretation: locale map points へ obsolete, リダイレクト, blocked, または consolidated URLs. 監視 window: Release verification と next full クロール. Rollback trigger: Any high-value cluster targets errors または unexpected non-canonical URLs.
Delivery-方法 consistency
暫定日本語案: テスト へ run: Compare annotations found in HTML, HTTP headers, と XML sitemaps 向けに changed URLs. Expected result: だけ intended 方法 is present, または all generated 方法 declare 同じ cluster. Failure interpretation: Multiple systems own hreflang と have drifted. 監視 window: 後に deployment と 後に next sitemap refresh. Rollback trigger: Contradictory 方法 remain on production URLs.
Code と scope validation
暫定日本語案: テスト へ run: Validate すべての changed value against supported 言語 と 地域 codes と approved locale inventory. Expected result: 各 value begins とともに 有効 言語 と adds だけ intentional 有効 地域. Failure interpretation: 国 was 使用 as 言語, unsupported market leaked in, または casing/format generation is 誤った. 監視 window: In CI または predeployment QA と again in production クロール. Rollback trigger: 無効 codes affect generated template または multiple clusters.
暫定日本語案: TL;DR — scaled hreflang audit is graph validation, ない tag validation. 暫定日本語案: 手順 1: pull すべての annotation から all three legal ロケーション (HTML head, HTTP 暫定日本語案:
Linkheaders, 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 versionscore 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 理由:
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暫定日本語案: “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
hreflangannotations, those annotations may be ignored or not interpreted correctly.”
暫定日本語案: 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- 暫定日本語案: HTML
<link>tags in<head>— 一般的な ケース. - 暫定日本語案: HTTP
Link:レスポンス headers — 使用 向けに non-HTML files like PDFs. - 暫定日本語案:
xhtml:linkentries 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:
- 暫定日本語案: ** レポート is gone.** GSC International Targeting レポート — which 使用 へ flag 暫定日本語案: some hreflang 問題 — was deprecated と 削除 (announced August 2022; 削除 暫定日本語案: 後に September 22, 2022). Nothing replaced it directly.
- 暫定日本語案: 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 isen-GBいつ 暫定日本語案: is reallyen-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 URLs と Incorrect 言語 & 地域 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 methods4. 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.
| Tier | Error pattern | なぜ here |
|---|---|---|
| 1 — fix 最初 | 不足している return tags; inconsistent return-link codes | Breaks entire pair’s signal per Google’s docs. Highest damage. |
| 2 — fix next | 誤った codes その Google doesn’t silently fix (jp→ja); non-canonical / broken targets | Breaks individual relationships; some are silently handled, some aren’t — triage accordingly. |
| 3 — batch | Mixed absolute/relative URLs, 不足している self-reference | Real 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).
AI要約
暫定日本語案: condensed take on Advanced version:
- 暫定日本語案: It’s graph 問題, ない tag 問題. あなた 確認 whether すべての ページ in cluster 暫定日本語案: points back へ すべての other ページ — ない whether one ページ has tag. Per Google: 暫定日本語案: “If page X links to page Y, page Y must link back to page X,” または annotations “may be ignored.” One 不足している return link できる invalidate whole cluster.
- 暫定日本語案: 手順 1 — pull everything. Hreflang lives in three places (HTML head, HTTP
Link暫定日本語案: headers, XML sitemap); crawler 必要がある read all three. 設定 ccTLD/subdomain siblings 暫定日本語案: (Screaming Frog: Config > CDNs; Ahrefs: project scope) または cross-domain links go 暫定日本語案: unvalidated. GSC できる’t do この — International Targeting レポート was 削除 Sept 暫定日本語案: 22, 2022, と even 前に その it だけ reported canonical member of cluster. - 暫定日本語案: 手順 2 — reciprocal-tag matrix. すべての URL × すべての URL in cluster; asymmetric 暫定日本語案: cells = 不足している return tags. Read focused cluster visually in returntag’s graph 暫定日本語案: と matrix, または 機能 サイト-wide 通じて Ahrefs サイト Audit と Screaming Frog.
- 暫定日本語案: 手順 3 — four error patterns: 不足している return tags; 誤った codes (Google silently fixes
暫定日本語案: reserved ones like
UK→ignored, ない others likejp向けにja); non-canonical targets 暫定日本語案: (hreflang follows インデックス登録 URL); mixed absolute/relative URLs ( template bug at 暫定日本語案: scale). - 暫定日本語案: 手順 4 — prioritize by damage, ない frequency. Return tags 最初 (break whole 暫定日本語案: pair), then codes/broken targets, then x-デフォルト 最後 — 大半の 一般的な (56,3% in my 暫定日本語案: 374 756-domain study; 47,95% in SALT.agency’s) ただし least harmful と “not required.”
- 暫定日本語案: 手順 5 — re-verify against インデックス登録 URL とともに URL Inspection 後に fix pass; 暫定日本語案: クロール validates tags, ない インデックス登録-status drift.
- 暫定日本語案: Scale context: 超えて 67% of hreflang-using domains have at least one error (my 暫定日本語案: Brighton SEO 2023 study of 374 756 domains). Bing is one-line caveat — 確認 暫定日本語案: コンテンツ-言語, ない hreflang.
公式ドキュメント
暫定日本語案: 主要-ソース references 向けに hreflang audit.
暫定日本語案: Google
- 暫定日本語案: Tell Google について localized versions of あなた ページ — hreflang reference: reciprocal return-tag requirement, fully-qualified-URL rule, reserved-code handling, と three equivalent implementation 方法 (HTML link tags, HTTP
Linkheaders, XML sitemap). - 暫定日本語案: International Targeting レポート is deprecated — 検索 Console 役立つ — 削除 レポート その 使用 へ flag some hreflang 問題 (削除 後に September 22, 2022).
- 暫定日本語案: Managing Multi-Regional と Multilingual サイト — URL-structure context 向けに なぜ multi-プロパティ setups generate 大半の hreflang errors.
- 暫定日本語案: どのように へ specify canonical URL とともに rel=canonical と other 方法 — 同じ-言語 canonical-preference guidance behind 手順 3’s non-canonical hreflang 確認.
暫定日本語案: Bing / Microsoft
- 暫定日本語案: Bing Webmaster ツール 役立つ — Bing has no hreflang validation workflow; it weights コンテンツ-言語 header instead と 削除 Geo Targeting in 2020.
出典からの引用
暫定日本語案: On—record statements その anchor audit methodology.
暫定日本語案: Google — reciprocal requirement ( backbone of whole audit)
- 暫定日本語案: “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
hreflangannotations, those annotations may be ignored or not interpreted correctly.” 暫定日本語案: — Google 検索 Central docs. 暫定日本語案: Jump へ quote
暫定日本語案: Google — fully-qualified URLs (root cause of mixed absolute/relative pattern)
- 暫定日本語案: “Alternate URLs must be fully-qualified, including the transport method (http/https), so:
https://example.com/foo, not//example.com/fooor/foo.” 暫定日本語案: — Google 検索 Central docs. 暫定日本語案: Jump へ quote
暫定日本語案: Google — reserved codes are silently dropped, ない ページ-breaking
- 暫定日本語案: “If you use codes that are listed as reserved for something else, Google Search ignores that part of the annotation (for example, using
EU,UN, orUKinhreflangannotations doesn’t have an effect on Google Search).” 暫定日本語案: — Google 検索 Central docs. 暫定日本語案: Jump へ quote
暫定日本語案: Patrick Stox — なぜ pairs are load-bearing (から 374 756-domain study)
-
暫定日本語案: “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.” 暫定日本語案: — 超えて 67% of Domains Using Hreflang Have 問題, Ahrefs
-
暫定日本語案: “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.” 暫定日本語案: — 超えて 67% of Domains Using Hreflang Have 問題, Ahrefs
暫定日本語案: Gary Illyes, Google — なぜ GSC できる’t audit hreflang, と なぜ there’s no validator
- 暫定日本語案: On 検索 Off Record, Illyes explained その 検索 Console だけ レポート canonicals, so 向けに many hreflang clusters どこ alternates aren’t canonical あなた’re effectively blind へ non-canonical members — Google puts them in duplicate cluster なしで storing alternate details. He また said Google has 決して 提供 hreflang validator (それら had underused レポート と 削除 it) と 現在 points 人々 へ external ツール. Paraphrased から transcript — verify wording against episode ページ 前に quoting verbatim.
暫定日本語案: Note: Google docs quotes above were verified verbatim against live ページ. 検索 Off Record statements are paraphrased から episode transcript (ない reproduced verbatim) と Libsyn listing date 表示される inconsistent とともに episode’s own references — confirm both wording と date against live ソース 前に treating as final.
Which finding do I fix 最初
暫定日本語案: あなた’ve run クロール と あなた’re staring at wall of red. Walk 各 finding 通じて この:
-
暫定日本語案: Is return link 不足している または code-inconsistent (asymmetric cell)? 暫定日本語案: → Yes → Tier 1. Fix 現在. この breaks whole pair per Google’s docs. Everything 暫定日本語案: else waits behind この. 暫定日本語案: → No → continue.
-
暫定日本語案: Does hreflang point へ non-200, リダイレクト, noindexed, または non-canonical URL? 暫定日本語案: → Yes → Tier 2. Fix next. target できる’t carry annotation. 向けに non-canonical 暫定日本語案: specifically, confirm against インデックス登録 URL (URL Inspection), ない just canonical 暫定日本語案: tag. 暫定日本語案: → No → continue.
-
暫定日本語案: Is 言語/地域 code 誤った? 暫定日本語案: → Is it reserved code Google silently ignores (
UK,EU,UN)? 暫定日本語案: → Yes → low urgency. Google drops just その part; fix 向けに correctness, ない as 暫定日本語案: emergency. 暫定日本語案: → Is it genuinely 誤った code その breaks match (jp向けにja,jstypo, 暫定日本語案: three-lettergbr)? 暫定日本語案: → Yes → Tier 2. Fix next. この breaks relationship. -
暫定日本語案: Is it mixed absolute/relative URL (
//example.com/…または/…)? 暫定日本語案: → Yes → Tier 3, ただし 確認 template. Almost 常に サイト-wide templating bug — 暫定日本語案: one instance means thousands. Fix at template, batch rest. -
暫定日本語案: Is it 不足している self-reference または 不足している x-デフォルト? 暫定日本語案: → Yes → Tier 4. 最後. Real hygiene, ない cluster-breaking. x-デフォルト is “recommended, not required”; self-reference is copy/paste convenience. Do これらの in final sweep.
暫定日本語案: ** rule underneath tree:** sort by damage, ない by どのように many rows ツール returned. 暫定日本語案: 大半の 一般的な error (x-デフォルト) is least damaging.
SOP: recurring hreflang audit
暫定日本語案: Hreflang breaks silently すべての time developers ship template change, so run この on 暫定日本語案: schedule (monthly 向けに active international サイト, または 後に any release その touches 暫定日本語案: localized templates).
暫定日本語案: Prep
- 暫定日本語案: Confirm crawler scope covers すべての プロパティ in hreflang network — all ccTLDs, 暫定日本語案: subdomains, subfolders. In Screaming Frog, 追加 siblings 下で Config > CDNs; in 暫定日本語案: Ahrefs サイト Audit, confirm それら’re in project scope.
- 暫定日本語案: Confirm crawler reads all three annotation ロケーション (HTML head, HTTP
Link暫定日本語案: headers, XML sitemap). Verify by 確認 ページ あなた know 使用 sitemap-based hreflang.
暫定日本語案: クロール 3. 暫定日本語案: Enable hreflang extraction (Screaming Frog: Configuration > Spider > クロール 暫定日本語案: Hreflang). Run クロール. 4. 暫定日本語案: Run post-クロール analysis (Screaming Frog: クロール Analysis) so return-link filters 暫定日本語案: populate. In Ahrefs, let サイト Audit finish と open hreflang 問題 設定.
暫定日本語案: Triage (in この order) 5. 暫定日本語案: Tier 1 — 不足している Return Links + Inconsistent Return-Link Codes. エクスポート これらの 最初. 暫定日本語案: Open worst-hit clusters in returntag’s graph/matrix へ explain broken edges; 暫定日本語案: retain crawler エクスポート as サイト-wide ソース of coverage. 6. 暫定日本語案: Tier 2 — Non-canonical / broken / noindexed targets, と genuinely 誤った codes. 7. 暫定日本語案: Tier 3 — Mixed absolute/relative URLs (fix at template), 不足している self-reference. 8. 暫定日本語案: Tier 4 — 不足している x-デフォルト. 最後.
暫定日本語案: Segment 9. 暫定日本語案: Group すべての finding by プロパティ/domain, ない just by error type — errors cluster どこ 暫定日本語案: URL patterns vary 全体で プロパティ. この tells あなた which team’s template へ fix.
暫定日本語案: Verify 10. 暫定日本語案: 後に fixes ship, re-クロール. Then spot-確認 money ページ per market とともに URL Inspection 暫定日本語案: へ confirm hreflang points へ インデックス登録 URL, ない canonicalized-away one. 11. 暫定日本語案: Record error counts by tier 各 cycle so あなた できる see drift 超えて time.
Hreflang audit myths と mistakes
暫定日本語案: Concrete misconceptions その lead 人々 へ audit 誤った things — 各 とともに なぜ it’s 暫定日本語案: 誤った と 何 へ do instead.
暫定日本語案: 1. “Broken hreflang gets my site penalized, so any error is urgent.”
- 暫定日本語案: なぜ 誤った: Google ignores broken または asymmetric hreflang; it doesn’t penalize 向けに it. 暫定日本語案: Gary Illyes has said directly その incorrect hreflang implementation won’t hurt サイト 暫定日本語案: — Google simply ignores it (reported by 検索エンジン Roundtable 暫定日本語案: と corroborated by 検索エンジン Journal). 暫定日本語案: cost is lost opportunity (誤った-言語 ページ surfacing, market cannibalization), 暫定日本語案: ない ランキング penalty.
- 暫定日本語案: Do instead: Triage by lost opportunity per cluster (トラフィック, revenue), ない by fear of 暫定日本語案: penalty その doesn’t exist.
暫定日本語案: 2. “Missing x-default is the most common error, so fix it first.”
- 暫定日本語案: なぜ 誤った: Frequency と severity are 異なる axes. x-デフォルト is single 大半の 暫定日本語案: 一般的な finding (56,3% in my study; 47,95% in SALT.agency’s) ただし it’s “recommended, not required” と functions as UX fallback, ない cluster-critical signal.
- 暫定日本語案: Do instead: Put x-デフォルト 最後. Fix 不足している return tags 最初 — それら break entire 暫定日本語案: pairs.
暫定日本語案: 3. “Self-referencing tags are mandatory, flag every missing one as critical.”
- 暫定日本語案: なぜ 誤った: Even Illyes, who 機能 on Google’s hreflang implementation, said on record 暫定日本語案: he isn’t sure なぜ self-reference is 必要 と believes clusters する 機能 なしで it — 暫定日本語案: it’s mainly copy/paste convenience.
- 暫定日本語案: Do instead: Fix self-reference in final hygiene sweep (tier 3–4), ない ahead of 暫定日本語案: return-tag と code errors.
暫定日本語案: 4. “The html lang attribute is a language signal Google checks, so audit it alongside
hreflang.”
- 暫定日本語案: なぜ 誤った: Asked directly on 検索 Off Record whether Google cares について HTML
暫定日本語案:
langattribute, Illyes said no — it’s 多くの場合 baked へ CMS templates by デフォルト と 暫定日本語案: therefore untrustworthy, so Google detects 言語 から visible コンテンツ instead. - 暫定日本語案: Do instead: 保つ
html lang正しい 向けに accessibility と other engines, ただし don’t let 暫定日本語案: hreflang-vs-langmismatch outrank actual return-tag error in あなた triage.
暫定日本語案: 5. “GSC’s report is gone, so without a paid crawler I can’t audit hreflang at all.”
- 暫定日本語案: なぜ 誤った: 手動 view-ソース spot-確認 plus 無料/freemium validators (Aleyda Solis’ 暫定日本語案: ツール, Bill Hunt’s checker, Merkle’s ツール — all named by Illyes as ツール he’s found 暫定日本語案: reliable, though Google’s own ドキュメント is clear it doesn’t maintain または 確認 暫定日本語案: third-party hreflang ツール) 機能 fine 向けに small サイト. It’s scale その 必要とする 暫定日本語案: crawler, ない absence of GSC.
- 暫定日本語案: Do instead: Match ツール へ size. Spot-確認 small サイト 手動; reserve 暫定日本語案: crawler 向けに サイト どこ hand-確認 clusters is genuinely impossible.
暫定日本語案: 6. “My hreflang export is clean, so hreflang is fine.”
- 暫定日本語案: なぜ 誤った: clean tag エクスポート doesn’t mean targets are インデックス登録. Hreflang follows 暫定日本語案: インデックス登録 URL, ない canonical — tag pointing at canonicalized-away または noindexed 暫定日本語案: URL still breaks even though tag “looks” 有効.
- 暫定日本語案: Do instead: Cross-reference against インデックス登録 status (URL Inspection) 向けに あなた top 暫定日本語案: clusters 後に tag-level pass.
前に / 後に: reading four patterns
暫定日本語案: Concrete, minimal 例 of 各 error pattern と its fix. (Illustrative markup.)
暫定日本語案: 1. 不足している return tag ( pair-breaker)
暫定日本語案: 前に — US ページ points へ UK ページ, ただし UK ページ 決して points back:
<!-- https://example.com/us/ (present) -->
<link rel="alternate" hreflang="en-US" href="https://example.com/us/" />
<link rel="alternate" hreflang="en-GB" href="https://example.com/uk/" />
<!-- https://example.com/uk/ (BROKEN — no link back to /us/) -->
<link rel="alternate" hreflang="en-GB" href="https://example.com/uk/" />暫定日本語案: 後に — UK ページ names US ページ in return, so pair is symmetric:
<!-- https://example.com/uk/ (fixed) -->
<link rel="alternate" hreflang="en-US" href="https://example.com/us/" />
<link rel="alternate" hreflang="en-GB" href="https://example.com/uk/" />暫定日本語案: 2. 誤った 言語/地域 code
暫定日本語案: 前に — jp is 国 code, ない 言語 code 向けに Japanese; en-UK isn’t 有効:
<link rel="alternate" hreflang="jp" href="https://example.com/jp/" />
<link rel="alternate" hreflang="en-UK" href="https://example.com/uk/" />暫定日本語案: 後に — ISO 639-1 言語 (ja) と ISO 3166-1 alpha-2 地域 (GB, ない UK):
<link rel="alternate" hreflang="ja" href="https://example.com/jp/" />
<link rel="alternate" hreflang="en-GB" href="https://example.com/uk/" />暫定日本語案: 3. Mixed absolute/relative URLs ( template bug at scale)
暫定日本語案: 前に — protocol-relative と root-relative URLs; Google 必要とする fully-qualified:
<link rel="alternate" hreflang="fr-FR" href="//example.com/fr/" />
<link rel="alternate" hreflang="de-DE" href="/de/" />暫定日本語案: 後に — fully-qualified, including transport 方法:
<link rel="alternate" hreflang="fr-FR" href="https://example.com/fr/" />
<link rel="alternate" hreflang="de-DE" href="https://example.com/de/" />暫定日本語案: 4. Non-canonical target (looks 有効, still breaks)
暫定日本語案: 前に — hreflang points at URL その’s canonicalized away から インデックス登録 version:
<!-- hreflang points here… -->
<link rel="alternate" hreflang="es-ES" href="https://example.com/es/producto?ref=nav" />
<!-- …but /es/producto?ref=nav has: <link rel="canonical" href="https://example.com/es/producto"> -->暫定日本語案: 後に — hreflang points at canonical/インデックス登録 URL, so signal chain holds:
<link rel="alternate" hreflang="es-ES" href="https://example.com/es/producto" />暫定日本語案: catch とともに #4: あなた できる’t see it から tag alone. Confirm インデックス登録 URL とともに URL 暫定日本語案: Inspection 前に あなた trust その この one’s fixed.
Pulling と 確認 hreflang yourself
暫定日本語案: 向けに spot-checks, ad-hoc extraction, と validating fix 前に next full クロール. 暫定日本語案: crawler is still あなた ソース of truth at scale — これらの are 向けに in-間に.
Chrome DevTools Console — dump すべての hreflang on 現在の ページ
暫定日本語案: Paste へ Console on any ページ へ list its annotations と flag protocol-relative または 暫定日本語案: root-relative URLs:
[...document.querySelectorAll('link[rel="alternate"][hreflang]')]
.map(l => {
const href = l.getAttribute('href');
const bad = /^\/\//.test(href) || /^\/(?!\/)/.test(href);
return `${l.hreflang}\t${href}${bad ? '\t⚠ not fully-qualified' : ''}`;
})
.join('\n') || 'No HTML hreflang tags on this page (check headers / sitemap).';暫定日本語案: If it prints “No HTML hreflang tags,” ページ 可能性がある deliver hreflang via HTTP header または 暫定日本語案: sitemap — Console だけ sees DOM, so 確認 それらの separately.
Bookmarklet — one-クリック reciprocity spot-確認 全体で cluster
暫定日本語案: Fetches すべての alternate 現在の ページ names と レポート which ones fail へ link back 暫定日本語案: (同じ-origin だけ, due へ ブラウザー CORS — cross-ccTLD pairs need crawler):
javascript:(async()=>{const base=location.href.split('#')[0];const alts=[...document.querySelectorAll('link[rel="alternate"][hreflang]')].map(l=>({lang:l.hreflang,href:l.href})).filter(a=>a.lang!=='x-default');const out=[];for(const a of alts){try{const html=await(await fetch(a.href)).text();const back=/hreflang=["'][^"']*["']\s+href=["']([^"']+)["']/gi;let m,found=false;while((m=back.exec(html))){if(m[1].split('#')[0].replace(/\/$/,'')===base.replace(/\/$/,'')){found=true;break;}}out.push(`${found?'✓':'✗ MISSING RETURN'} ${a.lang} ${a.href}`);}catch(e){out.push(`? ${a.lang} ${a.href} (fetch blocked — cross-origin)`);}}alert(out.join('\n'));})();grep / regex — extract hreflang から saved sitemap または HTML dump
暫定日本語案: Pull すべての annotation out of downloaded XML sitemap または クロール HTML エクスポート:
# From an XML sitemap using xhtml:link hreflang
grep -oE 'hreflang="[^"]+"[^>]*href="[^"]+"' sitemap.xml
# From a directory of saved HTML pages — list hreflang value + href per file
grep -rhoE '<link[^>]*hreflang="[^"]+"[^>]*>' ./pages/ \
| grep -oE 'hreflang="[^"]+"|href="[^"]+"'Python — 構築 reciprocity matrix から Screaming Frog エクスポート
暫定日本語案: Turn Screaming Frog hreflang_all.csv-style エクスポート (columns: ソース URL, hreflang value,
暫定日本語案: target URL) へ 設定 of one-way (不足している-return) pairs:
import csv
from collections import defaultdict
links = defaultdict(set) # source -> set of targets it points to
with open("hreflang_export.csv", newline="", encoding="utf-8") as f:
for row in csv.DictReader(f):
src, tgt = row["Address"].strip(), row["Occurrence URL"].strip()
if src and tgt and src != tgt:
links[src].add(tgt)
missing = [(a, b) for a, targets in links.items()
for b in targets
if a not in links.get(b, set())]
print(f"{len(missing)} one-way (missing-return) pairs:")
for a, b in missing[:50]:
print(f" {a} -> {b} (no return link)")暫定日本語案: Adjust column names へ match あなた エクスポート. output is exactly asymmetric cells of 暫定日本語案: reciprocal-tag matrix — tier-1 fixes.
ツール 向けに scaled hreflang audit
- 暫定日本語案: returntag (主要 向けに graph/matrix spot-checks). My 無料 ツール turns ページ または sitemap cluster へ graph と reciprocal matrix, then names 不足している return relationships と their fixes. ページ URL mode checks ページ cluster; Sitemap mode validates だけ 何 sitemap declares. 使用 it へ investigate と communicate specific cluster, ない as substitute 向けに whole-サイト クロール.
- 暫定日本語案: Ahrefs サイト Audit (at scale). Extracts hreflang から HTML, headers, と 暫定日本語案: sitemaps, runs reciprocal checks, と renders 各 cluster as network graph — 暫定日本語案: URL Details > Hreflangs tab, broken edges in red. fastest way へ see which 暫定日本語案: relationship in cluster is broken, と easiest へ 表示 stakeholder. 使用 暫定日本語案: ページ Explorer へ 暫定日本語案: filter ページ by hreflang 問題 type 前に drilling へ individual graphs.
- 暫定日本語案: Screaming Frog SEO Spider. Enable Configuration > Spider > クロール Hreflang; 暫定日本語案: 追加 sibling ccTLDs 下で Config > CDNs 向けに cross-domain validation; run クロール 暫定日本語案: Analysis へ populate return-link filters (不足している Return Links, Inconsistent 言語 暫定日本語案: & 地域 Return Links, Non-Canonical Return Links, Noindex Return Links, Non-200 暫定日本語案: Hreflang URLs, Unlinked Hreflang URLs). エクスポート via レポート > Hreflang. Their 暫定日本語案: hreflang tutorial 暫定日本語案: is definitive config reference.
- 暫定日本語案: Google 検索 Console — URL Inspection. ない 向けに bulk auditing ( International 暫定日本語案: Targeting レポート is gone, と GSC だけ ever reported canonical member of cluster), ただし 暫定日本語案: essential 向けに 手順 5: confirming あなた hreflang points at インデックス登録 URL 後に fix 暫定日本語案: pass.
- 暫定日本語案: 無料/freemium validators 向けに small サイト と spot-checks — Aleyda Solis’ hreflang tag 暫定日本語案: generator/tester, Bill Hunt’s hreflang checker, と Merkle’s hreflang ツール (named by 暫定日本語案: Google’s Gary Illyes as ツール he knows 機能 well — though Google’s own ドキュメント is 暫定日本語案: explicit その it doesn’t maintain または 確認 third-party hreflang ツール). 使用 これらの いつ 暫定日本語案: hand-確認 is still feasible; reserve crawler 向けに true scale, と treat any ツール’s 暫定日本語案: verdict as diagnostic, ない 公式.
- 暫定日本語案: Bing Webmaster ツール — no hreflang validation; audit コンテンツ-言語 separately 向けに 暫定日本語案: Bing markets.
時間を使う価値のあるリソース
暫定日本語案: My related writing
- 暫定日本語案: 超えて 67% of Domains Using Hreflang Have 問題 (Study of 374 756 Domains) — my Brighton SEO 2023 study, largest hreflang study へ date と spine of この whole methodology; error distribution と return-tag/x-デフォルト figures come から here.
- 暫定日本語案: Hreflang: Easy Guide 向けに Beginners — Ahrefs implementation guide, 向けに fundamentals この 記事 assumes あなた already know.
- 暫定日本語案: Beginner’s Guide へ Technical SEO — どこ international signals sit in wider technical picture.
暫定日本語案: My speaking
- 暫定日本語案: Hreflang Study と Interesting 問題 — Brighton SEO 2023 (Speaker Deck) — slides behind study.
- 暫定日本語案: 大半の 一般的な hreflang 問題 全体で 374 756 domains — Brighton SEO, Sept 2023 (YouTube) — talk itself.
- 暫定日本語案: International SEO: Weird Technical Parts — Pubcon Vegas 2019 (SlideShare) — どこ I 作る “hreflang follows the indexed version, not the canonical” point その drives 手順 3 と 手順 5.
暫定日本語案: から around industry
- 暫定日本語案: Tell Google について localized versions of あなた ページ — Google’s canonical hreflang reference (reciprocity, fully-qualified URLs, reserved codes).
- 暫定日本語案: 検索 Off Record — “How serving works, hreflang, and more!” — Google’s 検索 Relations team (Illyes, Splitt, Sassman) on なぜ GSC だけ レポート canonicals, なぜ there’s no validator, と なぜ big multi-プロパティ サイト generate 大半の errors.
- 暫定日本語案: どのように へ Audit & テスト Hreflang (Screaming Frog) — definitive filter-by-filter config walkthrough.
- 暫定日本語案: Study: 31% of international Webサイト contain hreflang errors (検索エンジン Land) — Dan Taylor / SALT.agency’s independent 18 786-domain study, useful cross-確認 on my larger one.
- 暫定日本語案: Google Says それら する Ignore Incorrect hreflang Implementation (検索エンジン Roundtable) — “ignored, not penalized” point その reorders あなた triage away から panic.
- 暫定日本語案: Google Insights: できる Incorrect Hreflang Tags Hurt SEO? (検索エンジン Journal) — corroborates 同じ finding.
テスト yourself: Auditing hreflang at scale
暫定日本語案: Five quick questions on at-scale methodology. Pick answer 向けに 各, then 確認.
変更履歴
2026年7月25日に更新。
編集概要と記録された変更の詳細。変更の詳細
-
変更の詳細な注記は現在英語でのみ提供されています。
完全な比較は利用できません — この改訂の以前のスナップショットがアーカイブされていません。
2026年7月18日に更新。
編集概要と記録された変更の詳細。変更の詳細
-
変更の詳細な注記は現在英語でのみ提供されています。
-
変更の詳細な注記は現在英語でのみ提供されています。
-
変更の詳細な注記は現在英語でのみ提供されています。
-
変更の詳細な注記は現在英語でのみ提供されています。
-
変更の詳細な注記は現在英語でのみ提供されています。
完全な比較は利用できません — この改訂の以前のスナップショットがアーカイブされていません。