Domain 168 / 225
PWA は Web アプリでも SEO を維持できる、ただしレンダリングに注意
PWA SEO の要点
PWA はネイティブアプリ風のユーザー体験を Web で実現する技術。manifest.json でインストール可能化、Service Worker でオフライン対応。SSR / SSG と組み合わせれば SEO も維持できる。CSR ベースだと Googlebot のインデックス遅延リスク
なぜこれを学ぶか
PWA を採用する場合、SEO とのトレードオフがある。 Service Worker のキャッシュ戦略 / レンダリング方式の選択を間違えるとインデックスされない。
PWA / SPA を採用するすべての担当者で重要。
学ばないと起きること
| よくある事故 | 被害 |
|---|---|
| CSR ベース PWA | Googlebot 失敗リスク |
| Service Worker のキャッシュで古い HTML | インデックス更新遅延 |
| manifest.json なし | PWA 認識されず |
学ぶメリット
- PWA + SEO 両立
- インストール可能化
- 商談で「PWA SEO」を即答
仕組み
PWA の構成要素
| 要素 | 役割 |
|---|---|
| manifest.json | アプリメタデータ(名前 / アイコン / theme_color) |
| Service Worker | オフライン対応 / キャッシュ |
| HTTPS | 必須 |
| レスポンシブ | モバイル対応 |
| インストール プロンプト | ブラウザがインストール案内 |
manifest.json の例
{
"name": "spotyou",
"short_name": "spotyou",
"start_url": "/",
"display": "standalone",
"background_color": "#ffffff",
"theme_color": "#000000",
"icons": [
{"src": "/icon-192.png", "sizes": "192x192", "type": "image/png"},
{"src": "/icon-512.png", "sizes": "512x512", "type": "image/png"}
]
}
HTML でリンク:
<link rel="manifest" href="/manifest.json">
Service Worker の SEO 影響
| 戦略 | SEO 影響 |
|---|---|
| Cache First | 古い HTML 配信リスク |
| Network First | 通常 Web と同じ |
| Stale While Revalidate | 速度 + 最新性両立 |
| ナビゲーション フォールバック | オフラインでもページ表示 |
Network First または SWR が SEO 安全。
キー概念
レンダリング戦略の選択
| 戦略 | PWA + SEO |
|---|---|
| SSG | 最高(事前生成 + Service Worker) |
| SSR | 良(リクエスト毎 + キャッシュ) |
| ISR | 良 |
| CSR | リスクあり(Googlebot 失敗可能性) |
PWA を採用するなら SSR / SSG ベース推奨。
Googlebot の PWA クロール
公式: Googlebot は:
- manifest.json を認識
- Service Worker は実行しない
- 通常の HTML / JS としてクロール
Service Worker のキャッシュで提供される独自 HTML を見ない。 レンダリング後 HTML が SEO 評価対象。
app 構造化データ
PWA を WebApplication で構造化:
{
"@type": "WebApplication",
"name": "spotyou",
"applicationCategory": "BusinessApplication",
"operatingSystem": "Web Browser"
}
よくある誤解
| よくある誤解 | 実際のところ | 出典 |
|---|---|---|
| PWA は SEO に不利 | SSR / SSG ベースなら問題なし | PWA / Service Worker と SEO |
| Service Worker で Google にも対応 | Googlebot は Service Worker 実行しない | 同上 |
実務での適用
PWA + SEO 実装の標準構成
- Next.js / Nuxt で SSR / SSG ベース
- manifest.json 配置
- Service Worker は Network First or SWR
- オフライン用 fallback ページ
- WebApplication 構造化データ
Service Worker 安全パターン
// Network First(SEO 安全)
self.addEventListener('fetch', event => {
event.respondWith(
fetch(event.request)
.catch(() => caches.match(event.request))
);
});
トラブル別の対処
| 症状 | 確認すべきこと |
|---|---|
| PWA インストール案内が出ない | manifest / Service Worker / HTTPS |
| インデックス遅延 | レンダリング戦略 / Service Worker キャッシュ |
公式ソース
自己テスト
Q1. PWA の構成要素は?
manifest.json / Service Worker / HTTPS / レスポンシブ
Q2. PWA + SEO で推奨されるレンダリング戦略は?
SSR / SSG ベース。CSR は Googlebot 失敗リスク
Q3. Googlebot は Service Worker を実行するか?
実行しない。レンダリング後 HTML を直接クロール
これらの内容を採点付きで挑戦したい場合は、本ドメインのプロ試験で 5 問形式で確認できる。