開発者のためのSEO:クローラーが読めるHTMLの配信、正しいHTTPステータスコード、必須のheadタグ、Core Web Vitalsの達成、AIからの可視性までを解説します。

要点
開発者にとってのSEOとは、重要なページをすべてクローラーがアクセスでき、レンダリングでき、曖昧さなく理解できる状態にすることです。主要なコンテンツは初期HTMLで配信し(サーバーサイドレンダリングまたは静的生成)、正直なHTTPステータスコードを返し、title、meta description、canonical、robots指定をサーバーのレスポンスに含め、本物の<a href>要素でリンクし、Core Web Vitalsのしきい値を満たし、JSON-LDの構造化データを追加します。AIクローラーの多くはJavaScriptを実行しないため、ハイドレーション後にしか現れないコンテンツはChatGPT、Claude、Perplexityからは見えません。
さらに詳しく知るには、こちらに質問
クイック診断
SEOはあなたに向いている?どう始めるべき?
4つの簡単な質問で、Googleから集客できるかがわかります。
あなたへのおすすめ
Sorank があなたに合ったソリューションです
あなたの商品が検索されていて、数か月待てる方へ。Sorankは適切な検索語を見つけ、記事を書いて公開し、リンクも獲得します。
Sorankはあなたの回答にぴったりです
ご自身のサイトで3日間お試しいただくか、まず無料の診断で現状をご確認ください。
3日間無料、いつでも解約できます。90日間返金保証。
開発者のためのSEOは、検索最適化のうちコードの中にある部分です。テンプレート、ルーティング、レンダリング、ヘッダー、パフォーマンスがそれにあたります。キーワード選定や執筆はマーケティングが担いますが、誤ったステータスコード、クライアントだけでレンダリングされるルート、消し忘れたnoindexひとつで、その努力は一度のデプロイで消えてしまいます。GoogleのJavaScript SEOの基本は、クロール、レンダリング、インデックス登録の3段階を説明しており、各段階には開発者にしか直せない不具合があります。このガイドでは、それらを壊れやすい順に取り上げます。
| 領域 | 開発者の責任 | 問題が起きたときの典型的な症状 |
|---|---|---|
| レンダリング | 主要コンテンツとリンクがサーバーのHTMLにある | ページが空または不完全な状態でインデックスされる |
| ステータスコード | 200、301、404、410、5xxを正しく返す | ソフト404、エラーページのインデックス、削除済みページが順位に残る |
| headタグ | 一意のtitle、description、canonical、robots、hreflang | 重複、誤ったURLの上位表示、インデックスから漏れるページ |
| クロール制御 | robots.txt、XMLサイトマップ、内部リンク、パラメータ | 重要なページが発見されない、絞り込みページでクロールが浪費される |
| パフォーマンス | 実際のモバイルユーザーでのCore Web Vitals | ページエクスペリエンスの低下、コンバージョンの減少 |
| 構造化データ | 表示内容と一致する有効なJSON-LD | リッチリザルトが出ない、エンティティが曖昧になる |
| AIからのアクセス | AIのユーザーエージェントを許可、JavaScriptなしで読めるコンテンツ | ChatGPTやPerplexityの回答にブランドが出てこない |
GooglebotはJavaScriptをレンダリングしますが、それは遅れる可能性のある第2段階で行われます。Google自身もサーバーサイドレンダリングやプリレンダリングは今でも優れた方法だと書いており、ユーザーにもクローラーにも速く、すべてのボットがJavaScriptを実行するわけではないことを理由に挙げています。この最後の点は、今かつてないほど重要です。2024年12月のVercelの分析The rise of the AI crawlerは、主要なAIクローラーはいずれも現時点でJavaScriptをレンダリングしていないと結論づけ、GPTBot、OAI-SearchBot、ChatGPT-User、ClaudeBot、PerplexityBotなどを挙げています。Googleの基盤を使うGeminiは例外です。
| レンダリング方式 | クローラーが受け取るもの | SEOとの相性 |
|---|---|---|
| クライアントサイドレンダリング(CSR) | ほぼ空のHTMLの殻、JavaScript実行後にコンテンツ | 弱い:Googleには遅れ、ほとんどのAIクローラーには見えない |
| サーバーサイドレンダリング(SSR) | リクエストごとに完全なHTML | 動的ページに強い |
| 静的生成(SSG) | デプロイ時に生成される完全なHTML | 更新頻度の低いコンテンツに最適 |
| インクリメンタル再生成(ISR) | 定期的またはオンデマンドで更新される静的HTML | 大規模なカタログやブログに強い |
どのフレームワークでも守るべきルールが二つあります。リンクはhref属性を持つ<a>要素にすること。Googleはこの形式のリンクしか発見できないとしているため、クリックハンドラ付きのボタンやフラグメントベースのルートは行き止まりになります。そして、各ルートには#を含まない独自のURLを持たせ、そのURLで直接コンテンツを返すことです。JavaScript SEO、シングルページアプリケーションのSEO、Next.jsのSEOの各ガイドで、フレームワークごとの詳細を解説しています。
ステータスコードはクローラーへの指示です。GoogleのHTTPステータスコードとネットワークエラーに関するドキュメントは、各グループの扱いを説明しています。
サーバーが実際に何を返しているかはHTTPヘッダーチェッカーで確認し、リダイレクトチェーンは1回に収めましょう。移行時のパターンはSEOのリダイレクトの記事で解説しています。
インデックス対象のページには、一意のtitleとdescription、自己参照のcanonical、そして多言語サイトではhreflangの指定が必要です。これらはサーバーのレスポンスに含めます。
<title>Running shoes for flat feet | Example</title>
<meta name="description" content="Tested picks, sizes and prices.">
<link rel="canonical" href="https://example.com/running-shoes-flat-feet">
<link rel="alternate" hreflang="fr" href="https://example.com/fr/chaussures-pieds-plats">
<meta name="robots" content="index, follow">canonicalタグは、上位表示させたいURLを、サイトで使っているプロトコル、ホスト、末尾スラッシュの規則と完全に一致させて指定する必要があります。
注意
noindexをJavaScriptで外すことに頼ってはいけません。Googleはnoindexタグを見つけるとレンダリングを省略する場合があるとしており、HTMLにnoindexを含めて配信し、クライアント側で外すページはインデックス外のままになる可能性があります。
検索エンジンはURLをインデックスするため、URL設計はSEO上の判断です。小文字でハイフン区切りの読みやすいパスを使い、末尾スラッシュの規則を一つに決めてもう一方はリダイレクトし、一つのコンテンツには一つのURLを保ちます。絞り込み、並べ替え、計測用パラメータはコンテンツを増やさずにURLだけを増やします。それらのcanonicalはクリーンなURLに向け、クロールさせたくないパラメータの組み合わせにはリンクしないようにしましょう。
内部リンクは発見と重要度の両方を伝えます。ナビゲーション、パンくずリスト、関連コンテンツのブロックはサーバーでレンダリングし、ページ分割された一覧には各ページへの通常のリンクを設け、背後にページ分割URLのない無限スクロールは避けましょう。サイト内検索やJavaScriptの絞り込みでしかたどり着けない商品や記事は、クローラーにとっては孤立ページです。
robots.txtが制御するのはクロールであり、インデックス登録ではありません。ブロックしたURLでも、他のページからリンクされていれば検索結果に表示されることがあります。ページをインデックスから外したい場合は、クロールを許可したうえでnoindexを返します。XMLサイトマップはルートやデータベースから生成し、200を返す正規URLだけを載せ、lastmodはコンテンツが実際に変わったときだけ更新しましょう。リリースのたびにrobots.txtチェッカーでルールを確認し、「Disallow: /」を含むステージング用のrobots.txtを本番にデプロイすることは絶対に避けてください。
GoogleはCore Web Vitalsをページエクスペリエンスのシグナルの一部として使っています。web.devによると、モバイルとデスクトップそれぞれで、実際のページ読み込みの75パーセンタイルが次のしきい値を満たせば「良好」です。
| 指標 | 測定対象 | 良好のしきい値 | 開発側でよく行う改善 |
|---|---|---|---|
| LCP(Largest Contentful Paint) | 読み込み | 2.5秒以下 | メイン画像のプリロード、ファーストビューのサーバーレンダリング、CDNの利用 |
| INP(Interaction to Next Paint) | 応答性 | 200ミリ秒以下 | 長いタスクの分割、サードパーティスクリプトの遅延、ハイドレーション負荷の軽減 |
| CLS(Cumulative Layout Shift) | 視覚的な安定性 | 0.1以下 | メディアに幅と高さを指定、広告や埋め込み用のスペースを確保 |
INPは2024年にFirst Input Delayに代わる安定版のCore Web Vitalとなりました。評価はフィールドデータ(Search Console、Chrome UX Report)で行い、デバッグはラボツールで行いましょう。Core Web Vitalsの用語集ページでツールを紹介しています。
scriptタグ内のJSON-LDをサーバーでレンダリングし、ページに表示されている内容を記述します。
<script type="application/ld+json">
{"@context": "https://schema.org", "@type": "Article",
"headline": "Running shoes for flat feet",
"datePublished": "2026-10-01",
"author": {"@type": "Person", "name": "Jane Doe"}}
</script>ページと同じデータから生成して両者がずれないようにし、CIで検証し、タグマネージャー経由での挿入は避けましょう。schemaジェネレーターを使えば、よく使う型のひな形が得られます。
ヒント
パイプラインにSEOチェックを組み込みましょう。インデックス対象のテンプレートにtitleやcanonicalがない場合、未知のslugに対してルートが200を返す場合、本番のrobots.txtに「Disallow: /」が含まれる場合はビルドを失敗させます。こうした後退はデプロイ前なら安く見つかりますが、デプロイ後は高くつきます。
AIでの可視性はアクセスから始まります。どのAIユーザーエージェント(GPTBot、OAI-SearchBot、ClaudeBot、PerplexityBotなど)を許可するかを決め、robots.txtに明示的なルールを書きましょう。AIクローラー向けrobots.txtのガイドでは、学習用ボットと検索用ボットの違いを説明しています。次に、本文、価格、仕様、よくある質問が初期HTMLにあることを確認し、画像内の文字ではなく意味のある見出しや表を使い、すばやく取得できる軽さを保ちます。llms.txtファイルでAIツール向けに主要ページを要約することもできますが、主要なアシスタントでこれを利用していると公表したものはまだないため、任意の対応と考えてください。
Sorankは私たちの製品で、autopilotで動くSEO・GEOソフトウェアです。開発者が接するのは主に連携機能で、インストールページにあるとおり、WordPress、Shopify、Webflow、Wixに、あるいはwebhookで任意の独自スタックに記事を公開します。SEO Chatはあなたのサイトに関する質問に対話形式で答え、AIでの言及トラッキングはChatGPT、Claude、Geminiがあなたのブランドに言及しているかを毎週確認します。

まとめると、サーバーから完全なHTML、正直なステータスコード、正しいタグを配信し、そのうえで実際のユーザーでパフォーマンスを測ることです。これはGooglebotにも、JavaScriptを実行しないAIクローラーにも効きます。よく作られたサイトを上位表示されるコンテンツで満たしたい場合は、Sorankのプランをご覧ください。月額$49から、3日間の無料トライアル付きです。
JavaScriptをレンダリングするGoogleにとっては必ずしも不利ではありませんが、遅れとリスクが加わり、AIクローラーの多くはJavaScriptをまったく実行しません。上位表示や引用が必要なページは、サーバーサイドレンダリング、静的生成、プリレンダリングで主要コンテンツとリンクを初期HTMLに含め、クライアントサイドレンダリングはインタラクティブな部分に限定しましょう。
どちらもページがもう存在しないことをGoogleに伝え、いずれの場合もGoogleは時間とともにそのURLを使わなくなります。410は意図的で恒久的な削除を示すため、意図して削除したコンテンツに410を好むチームもあります。最も大切なのは、エラーメッセージ付きの200を返さないことです。それはソフト404の原因になります。
Core Web Vitalsはページエクスペリエンスのシグナルの一部で、Googleは多くの要因の一つと説明しており、関連性やコンテンツの質のほうが重視されます。主に似たページ同士の差をつける要素であり、コンバージョンへの影響は大きいため、しきい値を満たす価値は十分にあります。
先行導入企業のご紹介
