# SaaSサイトのテクニカルSEOチェックリスト

<https://www.fixreports.com/ja/blog/technical-seo-checklist-saas>

更新日：2026-10-26

SaaS企業のテクニカルSEOで重要なのは、主に「切り分け」と「レンダリング」です。切り分けが必要なのは、1つのドメインに、上位表示させたいマーケティングサイト、上位表示させたいドキュメント、そして検索にはまったく表示させるべきでないアプリケーションが同居していることが多いからです。レンダリングが重要なのは、SaaSのサイトはJavaScriptのアプリとして作られていることが多く、GoogleはJavaScriptをレンダリングするものの、ほとんどのAIクローラーを含む他の多くのクローラーはレンダリングしないからです。このチェックリストでは、この2つに加えて、canonical、サイトマップ、構造化データ、表示速度、AI検索エンジンがページにたどり着く仕組みといった基本事項を取り上げます。

**要点**

- Googleは、JavaScriptのページのクロール、レンダリング、インデックス登録を別々の段階で行っており、すべてのボットがJavaScriptを実行できるわけではないため、サーバーサイドレンダリングやプリレンダリングは「今でも優れた方法」だとしています（[Google検索セントラル](https://developers.google.com/search/docs/crawling-indexing/javascript/javascript-seo-basics)）。
- 2024年12月の分析では、GPTBot、ClaudeBot、PerplexityBotを含む主要なAIクローラーのいずれも、JavaScriptをレンダリングしていませんでした（[Vercel](https://vercel.com/blog/the-rise-of-the-ai-crawler)）。
- Googleは、AIによる概要（AI Overviews）とAIモードには追加の技術的要件はなく、特別なschema.orgのマークアップやAI向けのテキストファイルも必要ないとしています（[Google検索セントラル](https://developers.google.com/search/docs/appearance/ai-features)）。
- OpenAIは、ChatGPT searchにはOAI-SearchBotを、モデルのトレーニングにはGPTBotを使っています。GPTBotをブロックしても、サイトがChatGPT searchから除外されることはありません（[OpenAI](https://developers.openai.com/api/docs/bots)）。
- Google-Extendedは、GoogleがコンテンツをGeminiのトレーニングに使えるかどうかを制御するもので、Google検索への掲載には影響しません（[Google検索セントラル](https://developers.google.com/search/docs/crawling-indexing/google-common-crawlers)）。

## アプリケーションは検索結果に表示されるべきですか？

いいえ。ログインが必要なアプリケーションのページには、検索ユーザーにとって役立つものがなく、Googlebotはログインもしません。リスクはむしろ逆方向にあります。共有リンク、空の状態の画面、パスワードの再設定ページ、ステージング環境など、アプリケーションの公開URLがインデックスに登録され、マーケティングページと競合してしまうことがあります。

- アプリケーションは`app.example.com`のような専用のホストで提供し、そこからのすべてのレスポンスで`X-Robots-Tag: noindex`を送信します。
- ステージング環境やプレビュー環境は、認証によって検索から除外します。robotsのルールより確実です。
- robots.txtでGoogleからページを削除しようとしないでください。ブロックされたURLでも、ほかの場所からリンクされていれば検索結果に表示されることがあり、Googleはクロールを許可されていないページのnoindexを確認できません（[Google検索セントラル](https://developers.google.com/search/docs/crawling-indexing/block-indexing)）。
- ログインページやサインアップページは、名前で検索されることがよくあります（「製品名 ログイン」など）。インデックス可能にしておけば既存の顧客が見つけやすくなりますが、マーケティング向けの重いコンテンツを載せるべきではありません。

当社の[robots.txtチェッカー](/ja/robots-txt-checker)では、各クローラーが取得できる内容を確認でき、[メタタグチェッカー](/ja/meta-tag-checker)では、ページのrobotsメタタグとX-Robots-Tagヘッダーを確認できます。

## 検索エンジンやAIクローラーは、マーケティングページを読み取れますか？

JavaScriptが実行される前に、クローラーが何を受け取っているかを確認してください。料金ページのHTMLレスポンスに価格も見出しもなく、scriptタグしかない場合、JavaScriptを実行しないクローラーには空のページに見えます。

- **Google**は最新のChromiumでJavaScriptをレンダリングしますが、レンダリングはクロールのあとに順番待ちで行われます。Googleは、サーバーサイドレンダリングやプリレンダリングを推奨しています（[Google検索セントラル](https://developers.google.com/search/docs/crawling-indexing/javascript/javascript-seo-basics)）。
- **AIクローラー**：Vercelが自社ネットワークを分析したところ、OpenAI、Anthropic、Perplexity、Metaのクローラーは、JavaScriptファイルを取得してはいたものの実行していませんでした。一方、Googleのインフラを使うGeminiとApplebotは、ページをレンダリングしていました（[Vercel](https://vercel.com/blog/the-rise-of-the-ai-crawler)）。
- チャットアプリやソーシャルネットワークの**リンクプレビュー**は、たいていサーバーから返されるHTMLしか読み取らないため、タイトル、ディスクリプション、Open Graphのタグはその中に含める必要があります。

現実的な解決策は、マーケティングページ、ドキュメント、ブログをサーバー上またはビルド時にレンダリングし（Next.js、Nuxt、Astroなどのフレームワークが対応しています）、クライアントサイドレンダリングはログイン後のアプリケーションだけに使うことです。手軽なテストとしては、URLに対して`curl`を実行するか、検証ツールのDOMではなくページのソースを表示して、テキストが含まれているかを確認します。

## マーケティングサイトはどのような構成にすべきですか？

SaaSの購入検討者は、ページに対応づけられる明確な意図を持って検索します。次のそれぞれに、わかりやすいタイトルと独自のcanonical URLを持つ、インデックス可能な専用ページを用意する価値があります。

- **製品ページと機能ページ**：主要な機能ごとに1ページ。
- **ユースケースのページと業種別のページ**：「代理店向けの請求書作成ソフト」のような検索に対応します。
- **連携のページ**：連携先ごとに1ページ。「[自社製品] + [利用中のツール]」で検索されるからです。
- **料金**：プランと価格をHTMLに含め、レンダリング後にAPIから読み込まないようにします。
- **比較ページと代替製品のページ**：公正に書きます。競合他社の価格や機能は変わるため、日付を記載し、最新の状態に保ちます。
- **導入事例**：許可を得たうえで、実在の、出典を明示できる詳細を載せます。

内容の薄いバリエーションは避けてください。言葉を入れ替えただけのほとんど同じ「[機能] for [業種]」のページを何十も作ることは、Googleのスパムポリシーで「大量生成されたコンテンツの不正使用」と呼ばれているものにあたります（[Google検索セントラル](https://developers.google.com/search/docs/essentials/spam-policies)）。

## ドキュメント、ヘルプセンター、更新履歴はどう扱えばよいですか？

ドキュメントは、マーケティングサイトよりも多くの検索トラフィックをもたらすことがよくあります。人は物事のやり方を検索するからです。

- 顧客固有の情報を含まない限り、ドキュメントは公開し、インデックス可能にします。
- バージョン管理されたドキュメントでは、古いバージョンのcanonicalを同じページの最新バージョンに向けるか、古いバージョンをnoindexにして、検索結果に最新の手順が表示されるようにします。
- 各ドキュメントのページには、社内の機能名ではなく、利用者がそのタスクを表現する言い方に合わせたわかりやすいタイトルとH1を付けます（「請求書をCSVにエクスポートする」など）。
- 更新履歴の各項目は、日付の入った変わらないURLに置きます。
- ドキュメントをXMLサイトマップに含めるか、ドキュメント専用のサイトマップを作成してrobots.txtに記載します。

ヘルプセンターがサブドメイン上のサードパーティのプラットフォームで運用されている場合は、Search Consoleで所有権が確認されていること、そしてそのページからメインサイトにリンクが張られていることを確認してください。

## SaaSサイトでよくあるcanonical、hreflang、リダイレクトの問題は何ですか？

- **パラメータ**：UTMタグ、紹介コード、A/Bテストのパラメータは、重複したURLを生みます。各ページは、パラメータのない自身のURLをcanonicalとして宣言すべきです（[Google検索セントラル](https://developers.google.com/search/docs/crawling-indexing/consolidate-duplicate-urls)）。
- **末尾のスラッシュと大文字・小文字**：どちらかの形式に統一し、もう一方は301でリダイレクトします。
- **ローカライズされたページ**：マーケティングサイトを翻訳している場合は、自己参照とx-defaultを含めて、hreflangで各言語版を関連付けます（[Google検索セントラル](https://developers.google.com/search/docs/specialty/international/localized-versions)）。
- **ブランド変更とドメイン移転**：古いURLを新しいURLに1対1で対応させて301リダイレクトします。すべてをトップページにリダイレクトすると、古いページの価値が失われます。

[SEOチェックツール](/ja/website-seo-checker)では、サイトの主要ページのタイトル、H1、canonical、robotsのルールをテストし、リンク切れの内部リンクを見つけます。

## SaaSサイトに合う構造化データは何ですか？

- トップページの**Organization**：名前、URL、ロゴ、公式プロフィールへの`sameAs`リンクを含めます。
- トップページの**WebSite**：`name`と`url`を含めます。Googleは、検索結果に表示するサイト名を選ぶのにこれを使います（[Google検索セントラル](https://developers.google.com/search/docs/appearance/site-names)）。
- **SoftwareApplication**：Googleのソフトウェアアプリのリッチリザルトには、価格に加えて、集計評価またはレビューのいずれかが必要です（[Google検索セントラル](https://developers.google.com/search/docs/appearance/structured-data/software-app)）。評価は、本物でページに表示されているものだけを追加してください。評価がなくてもマークアップで製品を説明することはできますが、リッチリザルトは得られません。
- ドキュメントとブログのページの**BreadcrumbList**。
- ブログ記事の**Article**：著者と日付を含めます。

FAQのマークアップで掲載枠が広がることは期待しないでください。Googleは2026年5月7日にFAQのリッチリザルトの表示を終了しました（[Google検索セントラル](https://developers.google.com/search/updates)）。[構造化データチェッカー](/ja/structured-data-checker)では、ページ上のすべての項目と、それぞれにGoogleが必須とするプロパティを一覧表示します。

## SaaSのマーケティングページがCore Web Vitalsで不合格になるのはなぜですか？

SaaSのマーケティングサイトは、アクセス解析、タグマネージャー、チャットウィジェット、A/Bテスト、セッション録画、広告ピクセルなど、多くのサードパーティのスクリプトを読み込みがちです。これらはメインコンテンツの表示を遅らせ、メインスレッドを占有し続けるため、LCPの遅さやINPの悪化として表れます。

- すべてのサードパーティのスクリプトを見直し、誰も使っていないものは削除します。
- チャットウィジェットは操作されたときに読み込み、実行が終わるまでページを隠すA/Bテストのスクリプトは避けます。
- メインビジュアルや製品のスクリーンショットは、表示サイズに合わせてWebPまたはAVIFで配信し、最初の1枚は遅延読み込みしないようにします。
- インタラクティブな料金計算ツールやデモがあるページでは、INPに注意します。

GoogleはランキングシステムでCore Web Vitalsを使っていますが、優先されるのは関連性です（[Google検索セントラル](https://developers.google.com/search/docs/appearance/core-web-vitals)）。[サイト表示速度テスト](/ja/website-speed-test)では、通信速度を制限したスマートフォンとしてページを測定し、Googleが実ユーザーのデータを持っている場合はそれも表示します。

## AI検索エンジンは、SaaSのコンテンツをどのように見つけて引用しますか？

AI検索のための特別な技術的手法はありません。また、よく見かける助言の中には、これらのシステムを運営する企業が裏付けていないものもあります。

- **GoogleのAIによる概要とAIモード**は、インデックスに登録され、スニペットを表示できる状態にあるページを使います。Googleは、追加の要件はなく、特別なスキーマもAI向けのテキストファイルも必要ないとしています（[Google検索セントラル](https://developers.google.com/search/docs/appearance/ai-features)）。
- **ChatGPT search**はOAI-SearchBotを利用しています。ChatGPTの回答に表示されたいなら、robots.txtでOAI-SearchBotをブロックしないでください。GPTBotをブロックしても、トレーニングへの利用を拒否するだけです（[OpenAI](https://developers.openai.com/api/docs/bots)）。
- **Geminiのトレーニング**はGoogle-Extendedトークンで制御され、Google検索には影響しません（[Google検索セントラル](https://developers.google.com/search/docs/crawling-indexing/google-common-crawlers)）。
- **llms.txt**は、サイトの概要をMarkdownで記述するというコミュニティの提案です。Googleはこうしたファイルは必要ないとしており、他のAIサービスは利用しているかどうかを明らかにしていません。公開するコストは小さいものの、クロール可能なページの代わりにはなりません。

どのシステムにも役立つことは同じです。サーバーでレンダリングされたページ、購入検討者の疑問に答える明確な見出し、価格や制限などの具体的な事実をテキストで記載すること、そして互いに矛盾しないページです。

## よくある質問

### ドキュメントはサブドメインとサブフォルダのどちらに置くべきですか？

どちらでも上位表示は可能です。それより重要なのは、ドキュメントがクロール可能で、メインサイトからリンクされ、サイトマップに含まれ、Search Consoleで所有権が確認されていることです。

### GoogleはJavaScriptアプリ内のコンテンツをインデックスに登録しますか？

GoogleはJavaScriptをレンダリングできますが、それは別の段階で行われ、他のクローラーはレンダリングしないことも多くあります。見つけてもらいたいページは、サーバー上またはビルド時にコンテンツをレンダリングしてください。

### AIクローラーはブロックすべきですか？

それはビジネス上の判断です。GPTBotやGoogle-Extendedのようなトレーニング用のクローラーをブロックすれば、検索から除外されることなく、コンテンツをモデルのトレーニングに使われないようにできます。OAI-SearchBotのような検索用のクローラーをブロックすると、そのサービスの回答から除外されます。現在のルールで何が許可されているかは、robots.txtチェッカーで確認できます。

### SoftwareApplicationのマークアップは必要ですか？

必須ではありません。検索エンジンに製品を説明するものです。ソフトウェアアプリのリッチリザルトには、さらに、ページに表示された本物の評価やレビューが必要です。

### SaaSサイトで最も多いテクニカルSEOの間違いは何ですか？

最も大きな損害をもたらすのは2つです。コンテンツをJavaScriptだけでレンダリングしているマーケティングページと、インデックス登録できる状態のまま放置されたステージング環境やアプリのURLです。

## 出典

- Google検索セントラル：[JavaScript SEOの基本を理解する](https://developers.google.com/search/docs/crawling-indexing/javascript/javascript-seo-basics)
- Google検索セントラル：[AI機能とウェブサイト](https://developers.google.com/search/docs/appearance/ai-features)
- Google検索セントラル：[Googleの一般的なクローラー（Google-Extended）](https://developers.google.com/search/docs/crawling-indexing/google-common-crawlers)
- Google検索セントラル：[noindexを使用して検索インデックス登録をブロックする](https://developers.google.com/search/docs/crawling-indexing/block-indexing)
- Google検索セントラル：[canonical URLを指定する方法](https://developers.google.com/search/docs/crawling-indexing/consolidate-duplicate-urls)
- Google検索セントラル：[ページのローカライズ版](https://developers.google.com/search/docs/specialty/international/localized-versions)
- Google検索セントラル：[Google検索のサイト名](https://developers.google.com/search/docs/appearance/site-names)
- Google検索セントラル：[ソフトウェアアプリの構造化データ](https://developers.google.com/search/docs/appearance/structured-data/software-app)
- Google検索セントラル：[Core Web VitalsとGoogle検索の検索結果について](https://developers.google.com/search/docs/appearance/core-web-vitals)
- OpenAI：[OpenAIのクローラーの概要](https://developers.openai.com/api/docs/bots)
- Vercel：[The rise of the AI crawler](https://vercel.com/blog/the-rise-of-the-ai-crawler)
