HTML SEO:検索エンジンに伝わるマークアップの設計
HTMLの構造と要素がSEOに与える影響を解説。Googleの解析とレンダリング、重要なタグ、不正なhead要素によるメタデータ欠落、妥当性とセマンティックHTMLの考え方を整理します。
HTML SEOとは、検索エンジンがページをクロール、解析、レンダリング、理解できるようにマークアップを設計することです。Googleは不完全なHTMLにも寛容で、生のHTMLを解析した後、ヘッドレスChromiumでレンダリングしたDOMをインデックスします。title、見出し、href、img alt、og:titleなどは検索表示やURL発見に直接使われます。特に注意すべきなのは、head内の不正要素より後をGoogleが無視し、title、canonical、hreflangが失われる障害です。HTMLの妥当性自体やセマンティックHTML自体は直接のランキング要因ではありません。検証スコアではなく、解析上の実害を防ぐことを目的にしてください。
要点 — HTML SEOとは、検索エンジンがページを発見し、読み取り、理解できるようにHTMLを書くことです。Googleは不完全なマークアップにも寛容で、実際に”the web in general is not valid HTML” (翻訳) 「ウェブ全体として見れば、HTMLは妥当ではない」と説明しています。検証ツールで満点を取る必要はありませんが、タイトル、見出し、リンク、代替テキスト、
この主張の根拠 Google reliably crawls links when they are HTML a elements with resolvable href attributes. 対象範囲: Googlebot link discovery requirements. 信頼度: 高 · 検証日: Google Search Central: Crawlable links この主張の根拠 Google processes only supported elements in the document head and may ignore elements appearing after an invalid head element. 対象範囲: Google's parsing of metadata in the HTML head. 信頼度: 高 · 検証日: Google Search Central: Valid page metadata<head>内の重要なタグが存在し、壊れていないことは必要です。
HTML SEOとは
すべてのウェブページはHTMLで作られています。HTMLのタグは、見出し、リンク、画像、段落などの役割を示します。HTML SEOとは、検索エンジンがページをクロールし、読み取り、内容を理解できるようにマークアップを書くことです。
今のSEOはコンテンツとリンクだけだと思いがちですが、検索エンジンは今も生のHTMLを読み、タイトル、たどるべきリンク、画像の内容、正規URLなどの基本情報を判断します。HTMLを誤ると、気づかないうちにそれらをGoogleから隠してしまいます。
本当に重要な要素
SEO上の役割の大部分は、少数のHTML要素が担います。
<title>—<head>内に置くページタイトルです。Googleは主見出しなどと合わせ、検索結果のクリック可能なタイトルを作る材料にします。- 見出し(
<h1>〜<h6>) — コンテンツの構造を示します。 - リンク(
<a href="…">) — 検索エンジンが別ページを発見する手段です。ボットが確実にたどるには、本物の<a href>である必要があります。 - 画像の代替テキスト(
<img alt="…">) — 検索エンジンとスクリーンリーダーに画像の内容を伝えます。 <head>内のタグ — canonical、meta robots、hreflangはここに置きます。
朗報:Googleは不完全なHTMLにも寛容
上位表示のために、HTMLが検証ツールを完全に通過する必要はありません。GoogleのSEOスターターガイド は、ウェブ全体として妥当なHTMLではないと説明しています。Googleのシステムは、多少壊れたタグをブラウザーが補正するのと同じように、現実の不完全なマークアップを扱えるよう作られています。
覚えておきたい一つの失敗
HTMLが静かにSEOを損なう代表例は、**壊れた<head>**です。<img>や<iframe>など本来置けない要素を<head>内に入れると、Googleはその後の<head>要素を読まなくなり、title、canonical、hreflangが見えなくなることがあります。これはペナルティではなく、誤りより後のタグが単に認識されないという問題です。
GoogleがHTMLをどう解析・レンダリングするのか、セマンティックHTMLが順位に役立つのか、Bingの読み方はどう異なるのかを詳しく知りたい場合は、上級者向けタブに切り替えてください。
要点 — HTML SEOとは、検索エンジンがページをクロール、レンダリング、解析、理解できるようにマークアップを構造化することです。Googleは*“the web in general is not valid HTML, so Google Search can rarely depend on semantic meanings hidden in the HTML specification.”* (翻訳) 「ウェブ全体としてHTMLは妥当ではないため、Google検索がHTML仕様に隠れた意味に依存できることはほとんどない」と述べています。GoogleはHTML lexerで正規化し、生のHTMLからリンクとコンテンツを解析した後、ヘッドレスChromium(Web Rendering Service)でレンダリングし、生成DOMをインデックスします。
この主張の根拠 Google reliably crawls links when they are HTML a elements with resolvable href attributes. 対象範囲: Googlebot link discovery requirements. 信頼度: 高 · 検証日: Google Search Central: Crawlable links この主張の根拠 Google processes only supported elements in the document head and may ignore elements appearing after an invalid head element. 対象範囲: Google's parsing of metadata in the HTML head. 信頼度: 高 · 検証日: Google Search Central: Valid page metadata<title>、見出し、og:titleは検索結果のタイトルリンクに直接使われます。見落とされやすい重大な障害は、<head>内の不正要素より後をGoogleが無視し、<title>、canonical、hreflangが失われることです。妥当なHTML自体はランキング要因ではありません。セマンティックHTMLはMuellerの言う*“helps us to better understand pages”* (翻訳) 「ページをよりよく理解する助けになる」ものですが、品質シグナルではありません。検証ツールの満点ではなく、検証で見つかる実害を防ぎましょう。
HTML SEOの実像
HTML SEOは、検索エンジンによるクロール、解析、レンダリング、理解に影響するHTML要素と構造上の選択全般を扱います。コンテンツやリンクの議論より一段下にある基盤であり、Googleがタイトル、リンク、canonicalをそもそも認識できるかを左右します。
HTML SEOはセマンティックHTMLと重なりますが、同じものではありません。セマンティックHTMLは、意味上の区別がない<div>を何にでも使うのではなく、<article>、<nav>、<main>、<section>などを構造上の意味に応じて選ぶ、より狭い実践です。要素ごとの詳細はこのハブ配下の解説に譲り、ここではマークアップと検索処理の全体像を扱います。
GoogleがHTMLを解析・レンダリングする仕組み
一般的な「SEO向けHTMLタグ」チェックリストでは省かれがちですが、タグの推奨事項がなぜ機能するのかを理解するうえで重要な部分です。
GoogleはHTMLを2段階で読みます。GoogleのJavaScript SEOの基本 によれば、まず*“crawling a URL and parsing the HTML response works well for classical websites or server-side rendered pages where the HTML in the HTTP response contains all content,”* (翻訳) 「HTTPレスポンスのHTMLに全コンテンツが含まれる従来型サイトやサーバーサイドレンダリングページでは、URLのクロールとHTMLレスポンスの解析がうまく機能する」とされ、“Googlebot then parses the response for other URLs in the href attribute of HTML links and adds the URLs to the crawl queue.” (翻訳) 「GooglebotはHTMLリンクのhref属性から別URLを解析し、クロールキューに追加する」と説明されています。次に、“Googlebot queues all pages with a 200 HTTP status code for rendering… Once Google’s resources allow, a headless Chromium renders the page and executes the JavaScript,” (翻訳) 「GooglebotはHTTPステータス200の全ページをレンダリング待ちにし、リソースが許すとヘッドレスChromiumがページをレンダリングしてJavaScriptを実行する」、その後*“Googlebot parses the rendered HTML for links again”* (翻訳) 「レンダリング済みHTMLからリンクを再解析する」、さらに*“Google also uses the rendered HTML to index the page.”* (翻訳) 「レンダリング済みHTMLをページのインデックスにも使う」とされています。
つまり、リンク発見と初期コンテンツのために生のHTMLを先に解析し、その後ヘッドレスChromium、すなわちWeb Rendering ServiceがJavaScriptを実行して生成したDOMを解析します。最終的なインデックスはレンダリング済みHTMLから作られます。実務上は、クライアント側JavaScriptの実行後にしか現れないコンテンツより、初期サーバーレスポンスに含まれるコンテンツのほうが速く確実に認識されます。
HTML lexer:不完全なマークアップに耐えられる理由
その前段で、GoogleはHTMLを正規化します。Gary IllyesはSearch Off the Record で、“we push all the HTML through an HTML lexer… we normalize the HTML,” (翻訳) 「すべてのHTMLをHTML lexerに通して正規化する」と説明しました。見出しタグも*“normalized through rendering,”* (翻訳) 「レンダリングを通じて正規化」され、Googleは*“understand the styling that was applied on the h tags, so we can determine the relative importance.”* (翻訳) 「hタグに適用されたスタイルを理解し、相対的な重要度を判断」しようとします。これらはGoogleの一次書き起こしではなく、ポッドキャストを書き起こしたフォーラム投稿に基づくため、報告された発言として扱ってください。
これは私が検索の仕組み で説明する、HTML lexer → 正規化 → DOMツリー+CSSOM → レンダーツリー → インデックスというモデルと同じです。Googleが完璧なHTMLを必要としないのは、ソースを文字列として厳密に読むのではなく、まず正規化されたツリーへ解析し、ブラウザーのように壊れた部分を補正するからです。ここから、このテーマで最も安心できる引用につながります。
“The web in general is not valid HTML” (翻訳) 「ウェブ全体としてHTMLは妥当ではない」
GoogleのSEOスターターガイド は、文字どおり「注力すべきではないこと」の節で、次のように明言しています。
“The web in general is not valid HTML, so Google Search can rarely depend on semantic meanings hidden in the HTML specification.” (翻訳) 「ウェブ全体としてHTMLは妥当ではないため、Google検索がHTML仕様に隠れた意味に依存できることはほとんどありません。」
同じガイドは、見出しを厳密な意味順に並べることは*“fantastic for screen readers, but from Google Search perspective, it doesn’t matter if you’re using them out of order,”* (翻訳) 「スクリーンリーダーには非常に有用だが、Google検索の観点では順不同でも問題ない」とし、“no magical, ideal amount of headings a given page should have. However, if you think it’s too much, then it probably is.” (翻訳) 「見出し数に魔法のような理想値はない。ただし多すぎると感じるなら、おそらく多すぎる」とも述べています。
これは、W3C検証ツールを完全に緑にすることへ執着しなくてよいという意味です。妥当性そのものはランキング要因ではありません。壊れたマークアップを問題にすべき理由は、一部の不正な構造が解析を壊し、コンテンツを隠すという、より限定的で具体的なものです。
Googleが直接読むHTML要素
一部の要素は漠然とした理解のためだけでなく、検索結果に表示する内容の直接の入力としてGoogleが明示しています。タイトルリンクのドキュメント によれば、Googleは*“content in <title> elements, main visual title shown on the page, heading elements, such as <h1> elements, content in og:title meta tags,”* (翻訳) 「<title>要素の内容、ページ上の主な視覚タイトル、<h1>などの見出し要素、og:titleメタタグの内容」や、目立つスタイルのテキストからタイトルリンクを決めます。
正しく実装したい要素と、各要素の詳細な解説先は次のとおりです。このハブでは重複して説明せず、適切な記事へ案内します。
<title>— タイトルリンクの主要な入力です。書き方とテストはtitle tag を参照してください。<head>のメタデータ — canonical、meta robots、hreflangです。Googleによれば<head>は*“the primary element for specifying metadata about a page.”* (翻訳) 「ページのメタデータを指定する主要要素」です。詳細はcanonical tag とmeta robots を参照してください。- 見出し(
<h1>〜<h6>) — 構造を示し、レンダリング時に正規化されます。Googleは適用されたCSSも考慮します。詳細はheader tags を参照し、順序を過度に最適化しないでください。 - リンク(
<a href>) — URL発見の仕組みです。hrefのない<div>のクリック処理では、GooglebotがURLをキューへ入れない可能性があります。 <img alt>— 画像理解とアクセシビリティに使われます。詳細はalt text を参照してください。og:titleと目立つスタイルのテキスト — タイトルリンクの追加入力です。
すべてを静かに壊す一つの誤り:不正な<head>
これはGoogleの公式資料にあるHTML SEOの不具合の中でも、最も具体的で見落とされやすいものです。Google検索向けの有効なページメタデータ には次のようにあります。
“If you use an invalid element in the
<head>element, Google ignores any elements that appear after the invalid element.” (翻訳) 「<head>要素内で無効な要素を使うと、Googleはその無効な要素より後に現れる要素をすべて無視します。」
<head>に置ける子要素は、title、meta、link、script、style、base、noscript、templateという短い許可リストです。余分な<img>、<iframe>、閉じ忘れたタグ、あるいはそれらを挿入する<script>があると、ブラウザーはその位置で<head>を終え、後続要素を<body>へ移します。問題要素より後の<title>、rel=canonical、hreflangはGoogleに認識されない可能性があります。Googleの表現では、“using valid HTML for page metadata ensures that Google can use the metadata as documented.” (翻訳) 「ページメタデータに有効なHTMLを使うことで、Googleがドキュメントどおりにメタデータを利用できるようになる」ということです。
「妥当なHTML」を気にすべき理由は、検証スコアではなく、このような実害です。ソースを表示して重要タグが<head>内にあることを確認し、検証ツールも使い、GSCのURL検査でGoogleが取得したレンダリング済みHTMLを調べてください。
head内の不正な画像要素より前に置かれたtitleとmeta descriptionは通常どおり読めます。不正要素は解析境界を作り、その後のcanonical、robots、hreflangメタデータは無視されるかbodyへ移される可能性があります。完璧な検証スコアを追うのではなく、ソースとレンダリング済みHTMLを確認して実際の影響を検証してください。
© Patrick Stox LLC · CC BY 4.0 ·
HTMLとセマンティックHTML:理解には役立つがランキングシグナルではない
このハブが解決したい論点は、<div>ばかりではなく<article>、<nav>、<header>、<section>といった意味のある要素を使うと順位が上がるのか、というものです。
最も明確なのはJohn Muellerの回答です。セマンティックタグの階層は品質シグナルであるはずだとするSEO担当者に、彼は次のように答えました。
“I don’t see it as a quality signal, but it definitely helps us to better understand pages, so that we can show them better for the appropriate queries in search.” (翻訳) 「品質シグナルだとは考えていませんが、ページをよりよく理解し、検索で適切なクエリによりよく表示する助けになることは確かです。」
この一文に要点があります。セマンティックHTMLは直接のランキング・品質シグナルではありませんが、理解を助けます。理解が深まれば、Googleがページを適切なクエリに結び付けるうえで間接的に役立ち得ます。Martin Splittも、正しく使ったセマンティック要素はページ理解に有利だと述べています。Splittの「SEO上の利点」という表現はウェビナー記事の要約であり、確認済みの逐語引用ではないため引用符を付けていません。 一方、見出し構造については、“it does not make a difference if you have an H1 and then H2, H2, H2… fundamentally, it doesn’t make that much of a difference.” (翻訳) 「H1の後にH2、H2、H2と続いても違いはなく、根本的にはそれほど大きな差にならない」と明言しています。
現代でよくある問題はdiv soupです。React、Vue、Tailwindのコンポーネントライブラリは、何にでも<div>を出力しがちです。ランキングペナルティではありませんが、Googleの理解とアクセシビリティの双方を助ける<nav>や<main>などの構造的な目印が失われます。適切な要素を選ぶコストはほぼありません。要素別の詳説は、このサブクラスターのsemantic HTML に譲ります。ここでの結論は、理解には役立つが、魔法のランキング倍率ではないということです。
妥当なHTMLはSEOに重要か
短く言えば、直接のランキング要因としては重要ではありません。GoogleはW3C妥当性をランキング要因と明示しておらず、“the web in general is not valid HTML.” (翻訳) 「ウェブ全体としてHTMLは妥当ではない」と述べています。考え方を変えましょう。妥当性が目的なのではなく、妥当性検証で見つかる障害を避けることが目的です。 検証エラーを直すべきなのは、訪問者やクローラーが受け取るコンテンツ、メタデータ、リンク、アクセシビリティ、レンダリングを実際に変える場合です。canonicalを追い出す不正な<head>、本文を隠す閉じ忘れタグ、hreflangを<body>へ移す要素は現実の間接的SEO問題であり、まさに検証ツールが見つけるものです。100%の緑のチェックではなく結果を追ってください。
BingによるHTMLの読み方の違い
BingはGoogleより構造HTMLを文字どおりに捉えます。見出しタグについて長く使われてきた説明は、“the <h1>, <h2>, and deeper tags… are regarded by the bot as more like XML than HTML in that they describe the data they contain” (翻訳) 「h1、h2、さらに下位のタグは、含むデータを説明するという点でHTMLよりXMLに近いものとしてボットに扱われる」というものです。視覚スタイルではなく、内容の記述子です。Bingのウェブマスターガイドライン も、見出しを構造シグナルとして*“<H1>–<H6> Header tags — Define the structure of your page and helps Bing understand the content of each paragraph.”* (翻訳) 「H1〜H6見出しタグはページ構造を定義し、Bingが各段落の内容を理解する助けになる」と明記しています。両方ともサイト内のheader-tags調査で確認済みの引用を再利用しています。BingのページはJavaScriptで描画され自動再確認しにくいため、最終扱いの前にスポットチェックしてください。
両方の検索エンジンを対象にするサイトにとって違いは小さいものの実在します。GoogleはレンダーツリーやCSSの文脈をより考慮し、Bingは生の構造タグをデータの記述子としてより重視します。明確で意味のある構造は、どちらにも有効です。
HTML SEOでよくある誤り
- 不正な
<head>— 無効な要素より後のタグがすべて失われます。 - クライアント側JSだけでレンダリングするコンテンツ — サーバー側の代替がなければ、第2段階で遅れて、またはまったくインデックスされません。
- 意味上の目印がないdiv soup — ペナルティはありませんが、構造シグナルとアクセシビリティが失われます。
<a href>ではない「リンク」 —<div>のクリック処理はGooglebotがURLとしてキューへ入れられないことがあります。- 複数または矛盾する
<head>ディレクティブ — canonicalが2つある、canonicalとmeta robotsが矛盾する、といった状態です。 - 構造ではなく見た目の大きさで選んだ見出し — Googleはレンダリング済みスタイルも考慮するため、不一致が構造を曖昧にします。
このハブの位置付け
これはHTML SEOサブクラスターのハブです。特定要素を徹底解説するのではなく、全体をカバーして適切な記事へ案内します。配下のsemantic HTML は<article>、<section>、<nav>、<header>、<main>、<aside>を要素別に扱います。HTML lang属性 は<html lang="en">が宣言する内容、hreflangとの違い、Googleが言語判定に使わずBingは小さなシグナルとして扱う理由を詳説します。タイトルはtitle tag 、見出しはheader tags 、画像はalt text 、<head>ディレクティブはcanonical tag とmeta robots 、レンダリングはJavaScript SEO を参照してください。まずここで考え方をつかみ、詳細へ進みましょう。
AIによる要約
上級者向けの内容を短くまとめると、次のとおりです。
- HTML SEOは、検索エンジンがページをクロール、レンダリング、解析、理解できるようにマークアップを構造化することです。 コンテンツとリンクの下にある基盤です。
- Googleは不完全なHTMLにも寛容です。 “the web in general is not valid HTML, so Google Search can rarely depend on semantic meanings hidden in the HTML specification.” (翻訳) 「ウェブ全体としてHTMLは妥当ではないため、Google検索がHTML仕様に隠れた意味に依存できることはほとんどない」。妥当性自体はランキング要因ではありません。
- 解析は2段階です。 生のHTMLでリンクと初期コンテンツを確認した後、ヘッドレスChromium(Web Rendering Service)がJSを実行し、Googleはレンダリング済みDOMをインデックスします。サーバーで描画したコンテンツのほうが早く認識されます。
- HTML lexerが最初にすべてを正規化します。 Illyesの説明と、Patrickが教えるlexer → 正規化 → DOM/CSSOM → レンダーツリー → インデックスというモデルです。これが不完全なマークアップに耐えられる理由です。
- 直接読まれる要素があります。
<title>、見出し・<h1>、og:titleは検索結果のタイトルリンクの入力で、<a href>はURL発見、<img alt>は画像理解に使われます。 - 重大な障害は
<head>内の不正要素です。 Googleはその後をすべて無視し、title、canonical、hreflangを失うことがあります。 - セマンティックHTMLについてMuellerは、 “I don’t see it as a quality signal, but it definitely helps us to better understand pages.” (翻訳) 「品質シグナルだとは考えないが、ページをよりよく理解する助けにはなる」と述べています。div soupはペナルティではありませんが構造シグナルを失います。
- Bingは見出しタグを*“more like XML than HTML”* (翻訳) 「HTMLよりXMLに近いもの」、つまりデータの記述子として扱います。
- 目的を捉え直しましょう。 妥当性が目的ではなく、妥当性検証で見つかる解析障害を避けることが目的です。要素別の詳細はsemantic-htmlの解説へ進んでください。
公式ドキュメント
検索エンジンが公開する一次資料です。
- SEOスターターガイド — “the web in general is not valid HTML” (翻訳) 「ウェブ全体としてHTMLは妥当ではない」という説明、見出し順、マークアップへの注力度。
- Google検索向けの有効なページメタデータ —
<head>の許可リストと、不正要素より後を切り捨てる規則。 - JavaScript SEOの基本を理解する — クロール → レンダリング → インデックスの2段階処理とWeb Rendering Service。
- Google検索のタイトルリンクに影響を与える — 検索結果タイトルを作るためにGoogleが読むtitle、
<h1>、og:titleなど。 - クロールとインデックス登録 — robots、canonicalization、メタデータをまとめる上位ハブ。
Bing / Microsoft
- Bingウェブマスターガイドライン — Bingが段落ごとの構造シグナルとして読むH1〜H6。
- SEO向けコンテンツ設計(SEM 101) — 見出しタグを”more like XML than HTML” (翻訳) 「HTMLよりXMLに近い」とするBingの説明。
さらに聴く
- ブラウザーが実際にHTMLを解析する仕組み(SEOへの意味) — Search Off the Record(2026年2月)。SplittとIllyesが、HTML仕様が寛容な理由と、解析がhreflang・canonicalの配置へ与える影響を説明します。
情報源からの引用
GoogleとBingによる公の発言です。利用できる場合、各リンクは引用箇所へ直接移動します。
Google — ウェブは妥当なHTMLではない
- “The web in general is not valid HTML, so Google Search can rarely depend on semantic meanings hidden in the HTML specification.” (翻訳) 「ウェブ全体としてHTMLは妥当ではないため、Google検索がHTML仕様に隠れた意味に依存できることはほとんどありません。」 — Google SEO Starter Guide。 引用箇所へ
- “Having your headings in semantic order is fantastic for screen readers, but from Google Search perspective, it doesn’t matter if you’re using them out of order.” (翻訳) 「見出しを意味上の順序に並べることはスクリーンリーダーには非常に有用ですが、Google検索の観点では順不同でも問題ありません。」 — Google SEO Starter Guide。
Google — <head>とメタデータ
- “If you use an invalid element in the
<head>element, Google ignores any elements that appear after the invalid element.” (翻訳) 「<head>要素内で無効な要素を使うと、Googleはその無効な要素より後に現れる要素をすべて無視します。」 — Googleの「有効なページメタデータ」。 - “Using valid HTML for page metadata ensures that Google can use the metadata as documented.” (翻訳) 「ページメタデータに有効なHTMLを使うことで、Googleがドキュメントどおりにメタデータを利用できるようになります。」 — Googleの「有効なページメタデータ」。
Google — HTMLの解析とレンダリング
- “Googlebot then parses the response for other URLs in the
hrefattribute of HTML links and adds the URLs to the crawl queue.” (翻訳) 「GooglebotはHTMLリンクのhref属性から別URLを解析し、クロールキューに追加します。」 — Understand JavaScript SEO Basics。 - “Googlebot queues all pages with a
200HTTP status code for rendering… Once Google’s resources allow, a headless Chromium renders the page and executes the JavaScript.” (翻訳) 「GooglebotはHTTPステータス200の全ページをレンダリング待ちにし、リソースが許すとヘッドレスChromiumがページをレンダリングしてJavaScriptを実行します。」 — Understand JavaScript SEO Basics。 - “Google also uses the rendered HTML to index the page.” (翻訳) 「Googleはレンダリング済みHTMLをページのインデックスにも使います。」 — Understand JavaScript SEO Basics。
Google — 検索結果に使う要素
- Googleは、“content in
<title>elements… heading elements, such as<h1>elements… content inog:titlemeta tags,” (翻訳) 「<title>要素の内容、<h1>などの見出し要素、og:titleメタタグの内容」や、目立つスタイルのテキストからタイトルリンクを作ります。 引用箇所へ
John Mueller(Google)— セマンティックHTMLは品質シグナルではない
- “I don’t see it as a quality signal, but it definitely helps us to better understand pages, so that we can show them better for the appropriate queries in search.” (翻訳) 「品質シグナルだとは考えていませんが、ページをよりよく理解し、検索で適切なクエリによりよく表示する助けになることは確かです。」 解説を読む Muellerの元の投稿は現在アクセスできないため、Search Engine Roundtableによる転載に基づきます。最終的な逐語引用として扱う前に、ブラウザーで正確な文言を確認してください。
Gary Illyes(Google)— HTML lexer(Search Off the Recordの書き起こしスレッドによる報告)
- “we push all the HTML through an HTML lexer… we normalize the HTML,” (翻訳) 「すべてのHTMLをHTML lexerに通して正規化する」。見出しタグも*“normalized through rendering,”* (翻訳) 「レンダリングを通じて正規化」され、Googleは*“understand the styling that was applied on the h tags, so we can determine the relative importance.”* (翻訳) 「hタグに適用されたスタイルを理解し、相対的な重要度を判断」しようとします。 解説を読む
Bing / Microsoft — データの記述子としての見出し
- “The
<h1>,<h2>, and deeper tags… are regarded by the bot as more like XML than HTML in that they describe the data they contain.” (翻訳) 「h1、h2、さらに下位のタグは、含むデータを説明するという点でHTMLよりXMLに近いものとしてボットに扱われます。」 — Bing Webmaster Blog、“Architecting Content for SEO.” (翻訳) 「SEO向けコンテンツ設計」。 - “
<H1>–<H6>Header tags — Define the structure of your page and helps Bing understand the content of each paragraph.” (翻訳) 「H1〜H6見出しタグはページ構造を定義し、Bingが各段落の内容を理解する助けになります。」 — Bing Webmaster Guidelines。
HTML SEOチェックリスト
検索エンジンが重要なマークアップを読めるか、短時間で確認します。
- すべての重要ページに
<title>と主要な<head>タグ(canonical、meta robots、hreflang)があり、<body>へ押し出されず**<head>内**にある。 -
<head>の子要素が有効なもの(title、meta、link、script、style、base、noscript、template)だけで、余分な<img>・<iframe>やスクリプト挿入要素が途中で打ち切っていない。 - 内部ナビゲーションに
<div>のクリック処理ではなく、本物の<a href>リンクを使っている。 - 画像に意味のある
altテキストがある。 - 主要コンテンツがクライアント側JavaScriptだけで生成されず、初期サーバーレスポンスに含まれる。
- 見出しが見た目の大きさではなく構造を表し、CSSで
<div>を見出しらしく偽装していない。 - 適切な場所で
<nav>、<main>、<article>、<header>などのセマンティック要素を使い、区別のない<div>の壁になっていない。 - 競合する
<head>ディレクティブがそれぞれ一つだけで、canonicalとmeta robotsが矛盾しない。 - GSCのURL検査でレンダリング済みHTMLを確認し、期待するタグがレンダリング後も存在する。
- 満点を狙うためではなく、解析上の障害を見つけるために検証ツールを使った。
広範なHTML SEO監査の進め方
このハブは案内役です。監査では文書全体の証拠をここで記録し、各指摘を修正方法を担当する記事へ渡します。タイトル、見出し、canonical、画像、セマンティック要素の規則をこのチェックリストで重複して論じません。
- レスポンスステータスとコンテンツタイプ。 ほかを読む前に、URLがHTMLコンテンツタイプと
200を返すことを確認します。リダイレクトや非HTMLレスポンスなら、以降の確認は意味を失います。 - 初期HTMLレスポンス(ソース表示)。 生のHTTPレスポンスに何が含まれるか確認します。Googleの最初のクロール段階は、ここからリンクとコンテンツを解析します。
- レンダリング済みDOM(GSC URL検査またはヘッドレスブラウザー)。 JavaScript実行後に存在するものを確認します。実際にインデックスされるのはこちらです。手順2と同じだと決めつけず比較してください。
<head>の内容。 有効な子要素だけがあり、ソースとレンダリング済み出力の両方でtitle、canonical、robots、hreflangが不審な要素より前にあることを確認します。指摘はtitle tag 、canonical tag 、meta robots へ振り分けます。- 主要コンテンツとクロール可能なリンク。 読者が見る本文と
<a href>リンクが、手順2と3の両方に存在することを確認します。リンクの指摘はinternal links へ振り分けます。 - パーサーとコンソールのエラー。 レンダリング中のブラウザーコンソールエラーを記録します。
<head>を静かに壊す、またはコンテンツを隠すJavaScriptを突き止める手掛かりになります。 - 各不具合を担当記事へ渡し、ここでは直さない。 alt属性の欠落はalt text 、構造的な目印の不足はsemantic HTML 、見出し順の疑問はheader tags へ渡します。このハブの役割は「何が問題で、どこで直すか」を示すところまでです。
基本となる考え方
1. Lexer → 正規化 → DOM/CSSOM → レンダーツリー → インデックス。 Googleは完璧なタグを探して生のソースを読むのではありません。すべてをHTML lexerに通して正規化し、DOMとCSSOMを構築し、レンダーツリーを作ってそれをインデックスします。だから不完全なHTMLに耐えられ、実際にレンダリングされる内容が重要になります。
2. 生のHTMLとレンダリング済みHTMLの2段階。 第1段階ではHTTPレスポンスからリンクとコンテンツを高速に解析します。第2段階ではヘッドレスChromiumで描画し、DOMを再解析してインデックスします。欠けたコンテンツについて、生のHTMLにあるのか、JS実行後だけにあるのかを問いましょう。前者のほうが安全です。
3. 目的は妥当性ではなく、障害を防ぐこと。
“The web in general is not valid HTML.” (翻訳) 「ウェブ全体としてHTMLは妥当ではない」。検証ツールを緑にすることを追わず、不正な<head>、本文を隠す閉じ忘れタグ、canonicalを追い出す要素など、解析を壊す具体的な不正を追ってください。妥当性はそれらを見つける手段であり、目的ではありません。
4. 理解の補助とランキングシグナルを分ける。 セマンティックHTMLはMuellerによれば”helps us to better understand pages” (翻訳) 「ページをよりよく理解する助けになる」一方、“isn’t a quality signal” (翻訳) 「品質シグナルではない」ものです。この2点を分ければ議論は整理できます。適切な要素を使うのは、順位上昇を買うためではなく、理解とアクセシビリティを助けるためです。
5. <head>は壊れやすいので守る。
<head>内に不正な要素が一つあるだけで、その後のタグがすべて失われます。短い許可リスト以外を混ぜないことが、最も効果の高いHTML衛生ルールです。
HTML SEO早見表
重要な要素とその理由
| 要素 | Googleでの用途 |
|---|---|
<title> | タイトルリンクの主要入力、ページメタデータ |
<h1>〜<h6> | 構造。レンダリング時に正規化され、スタイルも考慮される |
<a href> | URL発見。キューへ入れるには本物のhrefが必要 |
<img alt> | 画像理解とアクセシビリティ |
og:title(meta) | タイトルリンクの追加入力 |
rel=canonical / meta robots / hreflang | <head>ディレクティブ。<head>が壊れると隠れる |
有効な<head>子要素(許可リスト)
title、meta、link、script、style、base、noscript、templateです。それ以外の要素は<head>を途中で終わらせ、Googleは後続タグをすべて無視します。
早わかり
- “The web in general is not valid HTML” (翻訳) 「ウェブ全体としてHTMLは妥当ではない」。妥当性はランキング要因ではありません。
- Googleの解析は、生のHTML → ヘッドレスChromiumによるレンダリング済みDOMという2段階で、レンダリング済みHTMLがインデックスされます。
- セマンティックHTMLは*“not a quality signal”* (翻訳) 「品質シグナルではない」が、“helps us to better understand pages” (翻訳) 「ページをよりよく理解する助けになる」とMuellerは説明しています。
- Bingは見出しタグを*“more like XML than HTML”* (翻訳) 「HTMLよりXMLに近い」内容の記述子として扱います。
<head>内の不正要素が一つあると、Googleはその後をすべて無視します。
明示しておきたいHTML SEOの誤り
ここでは前述の回避可能なHTMLの誤りを、問題となる理由と代替策の組み合わせで整理します。説明だけで終わらせず、実行できる修正にします。
不正な<head>
問題となる理由: <head>内の不正要素、たとえば余分な<img>や<iframe>、閉じ忘れたタグ、それらを挿入する<script>があると、Googleはその後の要素をすべて無視します。<title>、rel=canonical、hreflangが後方にあれば、Googleから静かに見えなくなります。
修正: <head>には有効な子要素(title、meta、link、script、style、base、noscript、template)だけを置きます。title、canonical、robotsなど最重要タグは、スクリプト生成要素より前方に置いてください。
クライアント側JavaScriptだけでレンダリングするコンテンツ
問題となる理由: Googleはまず生のHTMLレスポンスを解析し、次の段階でヘッドレスChromiumがJavaScriptを実行してからインデックスします。クライアント側JSの実行後にだけ現れるコンテンツは第2段階で遅れて認識され、確実にインデックスされない場合があります。
修正: 本文や主要リンクなど重要なコンテンツは、クライアント側レンダリングだけに依存せず、初期サーバーレスポンスに含めます。
本物の<a href>ではない「リンク」
問題となる理由: JavaScriptで移動する<div>や<span>のクリック処理は、Googlebotのクロールキューにとって本物のリンクではありません。URL発見はhref属性に基づくため、その操作だけで到達できるページはキューへ入らない可能性があります。
修正: クロール可能にすべきものには実際の<a href="…">を使います。UX用のクリック処理を併用しても構いません。
複数または矛盾する<head>ディレクティブ
問題となる理由: canonicalが2つある、またはcanonicalとmeta robotsが矛盾すると、どのURLが正規で、ページをインデックスすべきかについてGoogleへ相反する情報を送ります。Googleが独自に解決するため、意図どおりにならない可能性があります。
修正: 各ページにcanonicalタグを一つだけ出力し、同じページのrobots metaタグと矛盾しないようにします。
構造ではなく見た目の大きさで選んだ見出し
問題となる理由: Googleは見出しタグをレンダリング時に正規化し、適用されたCSSスタイルも相対的な重要度の判断に使います。小さく見えるよう装飾した<h2>や、見出しに見せた<div>は、構造を明確にするどころか曖昧にします。
修正: コンテンツのアウトライン上の位置で見出しレベルを選びます。CSSは見出しかどうかを偽装するためではなく、見た目を整えるためだけに使ってください。
意味上の目印がないdiv soup
問題となる理由: すべての要素を意味上の区別がない<div>にしてしまうことは、React、Vue、Tailwindのコンポーネントライブラリでよく起きます。ランキングペナルティには直結しませんが、Googleによる内容の理解とアクセシビリティの双方を助ける<nav>、<main>、<article>などの構造的な目印が失われます。
修正: 内容の役割に合うセマンティック要素を選びます。ナビゲーションには<nav>、主要コンテンツには<main>、独立した記事には<article>を使います。追加コストはなく、理解の助けになります。
よくある問題
前述のHTMLの誤りに結び付く、読者から見える3つの症状を、観察できる現象、原因、修正方法の順に示します。
症状:Googleから見えるHTMLにtitleまたはcanonicalがない
- 原因:
<head>内の早い位置にある不正要素、たとえば余分な<img>、<iframe>、それらを挿入する<script>が、その位置で<head>を打ち切ります。後方の<title>やcanonicalはGoogleに認識されません。 - 修正: ページのソースを表示し、重要タグが実際に
<head>内かつ不審な要素より前にあることを確認します。不正要素を削除または移動して、再確認してください。
症状:コンテンツのインデックスが遅い、またはまったくインデックスされない
- 原因: コンテンツがクライアント側JavaScript実行後にしか存在しません。Googleは生のHTMLレスポンスを先に高速解析し、その後ヘッドレスChromiumでJSを実行する遅い第2段階へページを回します。第2段階だけに依存する内容は、初期レスポンスにある内容より遅く、不確実に認識されます。
- 修正: コンテンツがクライアント描画DOMだけでなく、サーバー描画HTMLにもあるか確認します。なければ初期レスポンスへ移すか、サーバー描画の代替を追加してください。
症状:UIからリンクされている内部ページがクロールされない
- 原因: その「リンク」が本物の
<a href="…">ではなく、<div>や<span>のクリック処理です。Googlebotはhref属性からURLを発見するため、クリック専用ナビゲーションはキューへ入らないことがあります。 - 修正: クリック処理を対象URLへの本物の
<a href>に置き換えます。視覚的な操作のためのJavaScript処理は併用できます。
不正な<head>の修正が本当に効いたと証明する
以下のテストは、<head>を途中で打ち切る不正要素を見つけて修正した後に行います。消えていたtitle、canonical、hreflangが、Google自身が見る版にも戻ったことを確認します。
テスト1 — 生のHTMLにタグが存在する
- 実行するテスト — レンダリング済みDOMではなくページのソースを表示し、
<title>、rel=canonical、すべてのhreflang用<link>が<head>内かつほかの要素より前にあることを確認します。 - 期待する結果 — 重要タグがすべて存在し、ソース順で以前の不正要素より前にあります。
- 失敗時の解釈 — ソース表示でもタグがなければ、
<head>のより前方に別の不正要素が残っている可能性があります。一つの修正ですべて解決したと思わず、2つ目の原因を探してください。 - 監視期間 — 即時。配信している内容の静的確認です。
- ロールバック条件 — 修正後も3種類のタグのどれかがソース表示にない場合。Googleへの反映を待たず、修正未完了として扱います。
テスト2 — Googleのレンダリング済みHTMLと一致する
- 実行するテスト — Google Search ConsoleのURL検査でURLを調べ、Googleが実際に取得したレンダリング済みHTMLを表示します。
- 期待する結果 — title、canonical、hreflangがレンダリング済みHTMLにあり、現在のソース表示と一致します。
- 失敗時の解釈 — ソースにはあるのにGSCのレンダリング済みHTMLにない場合、修正後にまだ再クロールされていないか、スクリプト挿入要素が生レスポンスではなくレンダリング中に干渉している可能性があります。
- 監視期間 — 通常の再クロール頻度に応じて数日から2週間程度。必要ならインデックス登録をリクエストして早めます。
- ロールバック条件 — 完全な再クロール周期の後もGSCのレンダリング済みHTMLからタグが消えたままの場合。同じ修正を繰り返さず、別の不正要素を探します。
例
この記事で中心的に扱った障害に基づく、具体的な修正前後の2例です。
canonicalを失わせる不正な<head>
修正前 — 有効な<head>子要素ではない<iframe>がtitleとcanonicalの間にあります。
<head>
<title>Widget Pricing | Acme</title>
<iframe src="/ads/banner.html"></iframe>
<!-- Google ignores everything from here on — the canonical below is never seen -->
<link rel="canonical" href="https://acme.com/widgets/pricing" />
<meta name="robots" content="index, follow" />
</head>修正後 — 不正要素を<head>から完全に取り除きます。ページで表示する必要があるなら<body>に置けます。
<head>
<title>Widget Pricing | Acme</title>
<link rel="canonical" href="https://acme.com/widgets/pricing" />
<meta name="robots" content="index, follow" />
</head>
<body>
<iframe src="/ads/banner.html"></iframe>
<!-- rest of the page -->
</body>変更点は<iframe>の配置だけです。<head>の外へ移すことで、Googleがcanonicalとrobotsタグを再び認識できるようになります。
本物のリンクではない「リンク」
修正前 — <div>のクリック処理で利用者は移動できますが、Googlebotが発見できるhrefがありません。
<div onclick="location.href='/pricing'">See pricing</div>修正後 — 本物の<a href>で同じ移動を実現し、クロール可能にします。
<a href="/pricing">See pricing</a>利用者がクリックしたときの見た目の結果は同じです。違いは、href属性に基づくGooglebotのクロールキュー処理が、クロール対象URLとして/pricingを発見できるかどうかです。
時間をかける価値のある資料
私の関連記事
- テクニカルSEO初心者ガイド — HTMLとマークアップをテクニカルSEO全体の中に位置付けます。
- JavaScript SEOの問題とベストプラクティス — HTMLのレンダリング面を詳しく扱います。
- 100万以上のドメインから調べた最も一般的なテクニカルSEO問題 — 私の大規模監査調査です。HTMLページサイズは性能上の警告として扱いますが、HTML妥当性の一次統計は含みません。
私の講演
- 検索の仕組み (SlideShare)— HTML lexer → 正規化 → DOM/CSSOM → レンダーツリー → インデックスという流れを説明します。私が常に添える注意書き、“This is my understanding of systems… not going to be 100% complete or accurate.” (翻訳) 「これはシステムについての私の理解であり、100%完全または正確とは限りません」が当てはまります。
公式資料
業界の資料
- セマンティックHTMLはGoogle検索の品質シグナルではない (Search Engine Roundtable)— Muellerの”not a quality signal” (翻訳) 「品質シグナルではない」という発言の解説。
- GoogleのMartin SplittへのQ&A:セマンティックHTML、検索、Google Search Console (Search Engine Journal)— セマンティック要素と見出し構造についてのSplittの説明。
- HTMLタグガイド:基本とベストプラクティス (Search Engine Land)— このハブが要約する要素をタグ別に説明する資料。
- W3C検証ツールガイド (Search Engine Journal)— 検証とSEOの関係を、直接のランキング要因ではなく間接的な利点として整理。
- r/TechSEO — マークアップ、レンダリング、クロールのデバッグを扱うコミュニティ。
ポッドキャスト
- Search Off the Record(Googleの検索担当チーム)— “How Browsers Really Parse HTML (and What That Means for SEO)” (翻訳) 「ブラウザーが実際にHTMLを解析する仕組み(SEOへの意味)」。Martin SplittとGary Illyesが、HTML仕様が寛容に設計された理由、セマンティックHTMLと厳密な妥当性が検索に重要か、
<head>内の<script>が<iframe>を挿入し、hreflangの<link>をGoogleが正しく無視する<body>へ押し出した事例を説明します。このテーマを深掘りするなら最良の回です。 聴く
理解度チェック:HTML SEO
検索エンジンがマークアップをどう読むかについての5問です。各問の答えを選び、結果を確認してください。
変更履歴
2026年8月23日に更新。
編集概要と記録された変更の詳細。変更の詳細
-
変更の詳細な注記は現在英語でのみ提供されています。
-
変更の詳細な注記は現在英語でのみ提供されています。
完全な比較は利用できません — この改訂の以前のスナップショットがアーカイブされていません。
2026年8月23日に更新。
編集概要と記録された変更の詳細。変更の詳細
-
変更の詳細な注記は現在英語でのみ提供されています。
完全な比較は利用できません — この改訂の以前のスナップショットがアーカイブされていません。
2026年8月23日に更新。
編集概要と記録された変更の詳細。変更の詳細
-
変更の詳細な注記は現在英語でのみ提供されています。
完全な比較は利用できません — この改訂の以前のスナップショットがアーカイブされていません。
2026年8月23日に更新。
編集概要と記録された変更の詳細。変更の詳細
-
変更の詳細な注記は現在英語でのみ提供されています。
完全な比較は利用できません — この改訂の以前のスナップショットがアーカイブされていません。
2026年7月20日に更新。
編集概要と記録された変更の詳細。変更の詳細
-
変更の詳細な注記は現在英語でのみ提供されています。
完全な比較は利用できません — この改訂の以前のスナップショットがアーカイブされていません。
2026年7月18日に更新。
編集概要と記録された変更の詳細。変更の詳細
-
変更の詳細な注記は現在英語でのみ提供されています。
-
変更の詳細な注記は現在英語でのみ提供されています。
-
変更の詳細な注記は現在英語でのみ提供されています。
完全な比較は利用できません — この改訂の以前のスナップショットがアーカイブされていません。