本記事について
当サイトを閲覧いただきありがとうございます。 本記事はシリーズ『生成AI時代のアーキテクチャ超入門』の「フロントエンドアーキテクチャ」カテゴリ第8弾として、SEO(検索エンジン最適化)について解説する記事です。
レンダリング方式・URL設計・メタデータ戦略はアーキテクチャ選定段階で決まってしまい、後から付け足せない領域です。本記事ではレンダリング方式とSEOの関係・メタタグ・OG画像・構造化データ(JSON-LD)・sitemap・URL設計・i18n・Core Web Vitalsまで、初期設計で組み込むための指針を示します。
このカテゴリの他の記事
この記事の守備範囲
フロント関連のセキュリティは別記事に分離したため、本記事は純粋にSEOに絞ります。旧版で同居していたフロント固有の脆弱性・CSP・サプライチェーンは、それぞれの担当記事へ移しました。
| 論点 | 担当記事 |
|---|---|
| 本記事 | レンダリングとSEO / メタタグ / OG / 構造化データ / sitemap / URL / i18n / Core Web Vitals |
| フロント固有のXSS / CSRF / CSP | 30/07 認証認可 |
| ネットワーク層の防御(HSTS・WAF) | 50/04 ネットワークセキュリティ |
| 依存関係・サプライチェーン監視 | 50/07 脆弱性診断 |
本記事の問いは「検索とユーザー体験で勝つフロントエンドアーキテクチャ」守りの話は別記事に分けています。
フロントにおけるSEO
Googleのアルゴリズムは年々ユーザー体験の良いサイトを優遇する方向へ進化しています。遅い・モバイル非対応・アクセシビリティ配慮不足のサイトは、コンテンツが良くても上位に出ません。SEOはコンテンツ・パフォーマンス・アクセシビリティ・構造化データの総合戦で、広告に頼らない集客の根幹になります。
SEOは後から付け足せない。アーキテクチャ選定の時点で決まります。
SEOとレンダリングの関係
レンダリング方式の選択は、SEOに直撃します。HTMLの状態で内容が読めるかどうかで、検索エンジンのクローラー理解度が決まります。
flowchart LR
BOT([Google Bot])
SSG[SSG<br/>静的HTML]
SSR[SSR<br/>サーバ生成HTML]
DYN[Dynamic<br/>Rendering]
CSR[CSR<br/>空HTML+JS]
BOT -->|即読める ◎| SSG
BOT -->|即読める ◎| SSR
BOT -->|Bot向けのみSSR ○| DYN
BOT -->|JS実行後 △<br/>数日〜数週間遅延| CSR
classDef bot fill:#fef3c7,stroke:#d97706;
classDef good fill:#dcfce7,stroke:#16a34a;
classDef mid fill:#dbeafe,stroke:#2563eb;
classDef bad fill:#fee2e2,stroke:#dc2626;
class BOT bot;
class SSG,SSR good;
class DYN mid;
class CSR bad;
| 方式 | SEO | 理由 |
|---|---|---|
| SSR / SSG | ◎ | 検索エンジンがHTMLを直接読める |
| CSR | △ | JS実行が必要・解釈はされるが遅延 |
| Dynamic Rendering | ◯ | Bot向けだけSSRする折衷案 |
CSRでもGoogleクローラーはJS実行後のHTMLを読むので、技術的には認識されます。ただし実行タイミングが数日〜数週間遅れるため、鮮度が効くサイトでは大きな不利です。SEOを本気で狙うならSSG / SSRが原則、という結論になります。
SEO必須ならSSGかSSR。CSRで戦うのは分が悪いです。
メタタグの基本
<head> 内のメタタグは、検索エンジンにページ情報を伝える最初の一歩です。どれだけ高性能なFWを使っていても、ここが雑だとSEOは始まりません。
<head>
<title>記事タイトル | サイト名</title>
<meta name="description" content="ページの要約120字以内">
<link rel="canonical" href="https://example.com/post/1">
<meta name="robots" content="index, follow">
</head>
設計原則は以下の通りです。
- title と description はページ毎にユニーク(全ページ同じは致命的)
- canonical で重複URLを一本化(末尾スラッシュあり/なし問題など)
- robots で index / noindex を明示
Next.jsの metadata API、Astroの <SEO> コンポーネントなど、メタタグをコンポーネントで一貫管理する仕組みがFW標準で揃っています。使わない手はありません。
Open Graph / Twitter Cards
Open Graph(OG、SNSシェア時のプレビュー制御規格)と Twitter Cards は、SNSシェア時のプレビュー画像・タイトル・説明文を制御するメタタグです。SNS流入が多いサイトでは、OGの良し悪しでクリック率が数倍動きます。
<meta property="og:title" content="記事タイトル">
<meta property="og:description" content="要約">
<meta property="og:image" content="https://example.com/og.png">
<meta property="og:type" content="article">
<meta name="twitter:card" content="summary_large_image">
画像サイズは1200 × 630pxが鉄板。主要SNSでほぼ同じサイズが適切に表示されます。毎回手動で作るのは非現実的なので、「タイトルからOG画像を自動生成」する仕組み(Next.jsのImageResponse、Vercel OG Image、CDN変換API)を組み込むと運用が一気に楽になります。
OG画像は自動生成。手動制作はボトルネック化してSNS流入の機会損失になります。
構造化データ(JSON-LD)
構造化データは、Googleが検索結果にリッチスニペット(星評価・価格・FAQ・イベント情報)を出すために必要なメタ情報です。<script type="application/ld+json"> に schema.org の語彙で書きます。
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Article",
"headline": "記事タイトル",
"author": { "@type": "Person", "name": "著者" },
"datePublished": "2026-04-18"
}
</script>
代表例は Article / Product / FAQ / BreadcrumbList / Organization / Recipe。これらを入れると検索結果で視覚的に目立ち、CTRが一段上がります。
sitemap.xml と robots.txt
sitemap.xml と robots.txt は、検索エンジンに「どのページを読んでほしいか・読まないでほしいか」を伝えるファイルです。どちらもサイトルートに配置します。
| ファイル | 役割 |
|---|---|
| sitemap.xml | 全URL一覧・検索エンジンへのクロールヒント |
| robots.txt | クロール可否の指示・クロールの対象除外 |
# robots.txt
User-agent: *
Allow: /
Disallow: /admin/
Sitemap: https://example.com/sitemap.xml
Next.jsやAstroには自動生成プラグインがあります。手書きすると初回しか合わず、すぐ実態と乖離するので、プラグイン自動化が必須。手動運用は確実に破綻します。
sitemap/robotsはフレームワークの自動生成に任せる。手書きは地雷です。
URL設計
URLはSEO・UXの両面で重要です。人間が読んで意味が分かるURLが原則で、検索エンジンはURLに含まれる単語もランキング要素として利用しています。
✅ /blog/how-to-use-astro
✅ /products/thinkpad-x1-carbon
❌ /blog.php?id=42
❌ /products?itemId=sku123&var=x
設計原則は以下の通りです。
- 意味のある単語を含める(URLから内容が推測できる)
- 小文字・ハイフン区切り(アンダースコアよりハイフン)
- 日本語URLはエンコードされても許容だが、英数字が望ましい
- 階層は2〜3段まで(深すぎるとSEOもUXも不利)
URLは一度公開すると変更が難しい要素です。初期設計で時間をかける価値があります。やむを得ず変える時は301リダイレクトで旧URLから誘導します。
国際化(i18n)とSEO
多言語サイトでは、言語ごとのURL構成と hreflang の設計がSEOの成否を決めます。誤ると Google に同一コンテンツの重複と認識されてランキングが落ちます。
| 手法 | 例 | 特徴 |
|---|---|---|
| サブディレクトリ | /en/about /ja/about | 1ドメインで管理しやすい |
| サブドメイン | en.example.com / ja.example.com | 言語ごとに独立管理 |
| 別ドメイン | example.com / example.jp | 国別・ブランド別に分離 |
hreflang で言語ごとの対応関係を明示します。これがないと「同じ内容が複数ページにある」と誤認されます。
<link rel="alternate" hreflang="en" href="https://example.com/en">
<link rel="alternate" hreflang="ja" href="https://example.com/ja">
本プロジェクト(senkohome.com)はサブドメイン方式(senkohome.com / en.senkohome.com)を採用しています。
Core Web Vitals
Core Web Vitals はGoogleが定めた体感速度の3指標で、検索順位に直接影響します。計測ツール(PageSpeed Insights / Lighthouse / Search Console)で定期確認する運用が必要です。
| 指標 | 意味 | 目標 |
|---|---|---|
| LCP(Largest Contentful Paint) | 最大コンテンツ描画までの時間 | < 2.5秒 |
| INP(Interaction to Next Paint) | インタラクション応答性 | < 200ms |
| CLS(Cumulative Layout Shift) | レイアウトのずれ | < 0.1 |
改善策は、画像最適化(WebP/AVIF)、フォント最適化(preload / subset)、JSバンドル削減(コード分割・不要依存削除)、画像サイズ属性指定でCLS防止。1回やって終わりではなく継続監視する運用が前提です。
Google Search Consoleで実測データが拾えます。定期チェックを運用に組み込みます。
筆者メモ — 「titleが全ページ同じ」だけで沈んだ事例
ある小規模メディアでは、200記事以上の <title> がサイト名のみで統一されていた、という話が語られています。Search Consoleで確認するとインデックスされているのは10数記事だけ。記事ごとの識別情報がなく、Googleから重複ページ扱いされていたわけです。
各記事に固有のtitle / descriptionを入れ直し、canonicalの設定を整えたところ、数ヶ月で検索流入が10倍以上に伸びたと言います。逆に言えば、それまで「基礎の基礎を落としているだけで9割以上の流入機会を失っていた」ということです。
筆者も個人ブログで似たミスをしたことがあり、Astroの <SEO> コンポーネントでページごとの固有メタデータを入れ始めた翌月から、明らかにクリック率が変わった経験があります。SEOはどちらも「見えないところで評価されている」領域。手を抜いた分だけ、静かに損失が積み上がります。数値で追えば、曖昧な議論が消えて改善サイクルが回ります。
SEOは「雰囲気」で戦わない。計測と固有メタデータが9割です。
SEOの数値Gate
※ 2026年4月時点の業界相場値です。テクノロジー・人材市場の変化で陳腐化するため、定期的にアップデートが必要です。
SEOは測定可能。数値で追うことで、曖昧な議論が消えます。以下が業界標準の目標値です。
| 指標 | 推奨値 | 確認ツール |
|---|---|---|
| Lighthouse Performance | 90点以上 | Lighthouse / PageSpeed Insights |
| Lighthouse SEO | 90点以上 | Lighthouse |
| Lighthouse Accessibility | 90点以上 | Lighthouse / axe-core |
| LCP | < 2.5秒 | PageSpeed Insights |
| INP | < 200ms | Search Console |
| CLS | < 0.1 | PageSpeed Insights |
| 画像alt属性 | 100% 設定 | axe-core |
| 構造化データエラー | 0件 | Google Rich Results Test |
| title / descriptionのユニーク率 | 100% | Search Console カバレッジ |
| canonicalタグ設定率 | 100% | Search Console |
「Lighthouse で SEO 90点を下回るページが残っている状態」は、基礎の抜け漏れがある証拠です。ページごとに固有のtitle / description / canonicalが揃っているか、週次でSearch Consoleを眺める運用で担保します。
Lighthouse / Search Console で毎週計測。数値で追うのが現代の運用です。
SEOの鬼門・禁じ手
SEOで事故る典型を整理します。どれも検索流入激減の原因です。
| 禁じ手 | なぜダメか |
|---|---|
| 全ページ同じtitle / description | Google が「重複」と判定しインデックス大幅減。記事ごとに固有必須 |
| canonicalタグ未設定 | 末尾スラッシュあり/なしで別ページ扱い、SEO評価が分散 |
| CSRのみでSEO必須サイトを構築 | GoogleクローラーのJS実行が数日〜数週間遅延 |
sitemap.xml を手書き | 実態と乖離。フレームワークの自動生成必須 |
| OG画像を毎回手動制作 | ボトルネック化。自動生成(Vercel OG Image等)へ |
| 構造化データなし | リッチスニペット機会損失。Article / FAQ / BreadcrumbListは最低ライン |
alt 属性を空のまま公開 | アクセシビリティ違反 + SEO減点。画像は全て意味あるaltを |
URLにクエリパラメータで可変(?id=42) | 人間可読でなくSEO評価も下がる。パスベースに設計 |
| i18nでhreflang未設定 | 重複コンテンツ扱い。言語ごとの対応を明示 |
| 301リダイレクトなしでURL変更 | SEO評価がリセット。変更時は必ず301で旧URLを誘導 |
「コンテンツが良くても設定が甘いと検索に届きません」逆に、E-E-A-T(専門性・経験・権威性・信頼性)が強いサイトは、AI量産コンテンツが溢れる時代にこそ相対的な価値が上がります。
SEOは基礎の抜け漏れで9割沈む。テクニックより固有メタデータと計測です。
AI時代の視点
AI駆動開発が前提になると、SEOはAIに漏れなく指示できる機械可読な設定と人間にしか書けないコンテンツに二分されます。メタデータ・構造化データ・sitemapは規約化された領域でAIが正確に生成できる一方、コンテンツ品質・独自性・E-E-A-T(専門性・経験・権威性・信頼性)はAI時代にかえって重要になります。AI量産コンテンツが検索結果を埋め尽くす中、人間ならではの一次情報が相対的に価値を増します。
| AI時代に有利 | AI時代に不利 |
|---|---|
| Next.js metadata API / Astro SEO(規約化) | 手書きmetaタグの散在 |
| 構造化データ(JSON-LD)の自動生成 | 構造化データなし |
| 一次情報・独自体験に基づくコンテンツ | AI生成のみの量産記事 |
| Search Consoleの実測ループ | 勘と雰囲気でのSEO判断 |
GoogleがAI量産コンテンツを評価しない方向性を明確化しているため、「AIを書き手の支援ツールとして使い、最終判断と一次情報は人間」が入れるのが検索流入を守るコツです。メタデータや構造化データの機械的な部分はAIに任せ、チェックはLighthouseとSearch Consoleで自動化します。
AI時代のSEOは「機械可読設定はAIに、独自性は人間に」です。
よくある勘違い
- CSRでもGoogleがJSを読むからSEOは問題ない → 技術的には読まれますが、実行タイミングが数日〜数週間遅れます。鮮度が効くサイトでは致命的な不利です。SEO狙いならSSG / SSRが原則
- title / descriptionは後から書けばいい → 全ページ同じタイトルのまま放置した結果、インデックスが激減する事例が多発しています。記事ごとの識別情報は初期から固有にします
- AIで記事を量産すれば検索流入が伸びる → GoogleはAI量産コンテンツを評価しない方針を明確にしています。一次情報・独自体験・E-E-A-Tが無いと、逆にランキングが落ちます
- 構造化データは大手メディアだけの話 → BreadcrumbList / Article / FAQ は中小サイトでも効きます。リッチスニペットで視認性が上がりCTRが動きます
決めるべきこと — あなたのプロジェクトでの答えは?
以下の項目について、あなたのプロジェクトの答えを1〜2文で言語化してみてください。曖昧なまま着手すると、必ず後から「なぜそう決めたんだっけ」が問われます。
- レンダリング方式(SEO観点)
- メタデータ標準(title/description/OG)
- sitemap / robotsの生成方法(自動プラグイン)
- 構造化データの採用範囲
- URL設計規約
- i18n方式(サブディレクトリ / サブドメイン / 別ドメイン)
- Core Web Vitalsの計測ループ(週次 Lighthouse)
フロントのセキュリティ設定(CSP・依存監視など)は前回記事「認証認可」とセキュリティ章を参照してください。
最終的な判断の仕方
SEOの核心は後から付け足せない領域であり、アーキテクチャ選定の時点で組み込むことです。SSR/SSGかCSRかという選択でSEOの上限が決まり、メタデータ・構造化データ・URL設計の初期品質で検索流入の地力が決まります。「動き始めてから直す」のは極めてコストが高く、初期設計の段階でフレームワーク標準機能に寄せて自動化してしまうのが合理的な判断です。
決定的な軸は機械可読な設定はAIに任せ、独自性と最終判断は人間が握ることです。メタデータ・構造化データ・sitemapは規約化された領域でAIが正確に生成できる一方、E-E-A-Tや一次情報はAI量産コンテンツが溢れる中で相対的に価値が上がります。LighthouseとSearch Consoleで毎週数値を取り、曖昧な議論をしない運用が現代の前提です。
選定の優先順位
- SSG / SSRを基本 — SEOを本気で狙うならCSRは不利。レンダリング方式で上限が決まる
- メタデータ・構造化データはフレームワーク標準 — Next.js metadata API / Astro SEOで規約化
- Core Web Vitalsを週次計測 — Lighthouse / Search Consoleで数値を追う
- 一次情報とE-E-A-Tを人間が担保 — AI量産に依存しない
「SEOはアーキテクチャで決まる」後から足すとコストが跳ね上がる領域は、初期に自動化で押さえます。
まとめ
本記事はSEOについて、レンダリング方式・メタタグ・OG画像自動生成・構造化データ・sitemap・URL設計・i18n・Core Web Vitalsまで含めて解説しました。如何だったでしょうか。
SEOは初期設計でほぼ決まる。SSG/SSRを基本に、フレームワーク標準で機械的な部分を自動化し、独自性は人間が担保する。これが2026年のフロントSEO設計の現実解です。
次回からは新しいカテゴリ(データアーキテクチャ)の解説に入ります。
シリーズ目次に戻る → 『生成AI時代のアーキテクチャ超入門』の歩き方
それでは次の記事も閲覧いただけると幸いです。
📚 シリーズ:生成AI時代のアーキテクチャ超入門(38/89)