本文へスキップ

Next.js のページが Google に登録されないのはなぜか

Next.js のサイトは、ステージングから残った noindex、ルート レイアウトの 1 つの canonical タグ、ストリーミング中の 404、古い URL のサイトマップでページを失いがちです。上から順に確認しましょう。

プラットフォーム:Next.js

著者: Bruno Amorim · ·

他の言語で読む: English · Português (Brasil) · Español · Deutsch · Français · Italiano · Polski · 한국어

サイトが Google に出ない原因

  1. サイトが新しい。Google によると、クロールには数日から数週間かかることがあります。Google で site: に続けてドメインを検索します(例: site:example.com)。何も出なければ、Google はまだページを持っていない可能性が高いです。ページごとの正確な答えは、Search Console の URL 検査ツールでわかります。
  2. ドメインがプレビュー ビルドを配信している。Vercel はプレビュー環境に X-Robots-Tag: noindex を付けます。ドメインがそれを指しているか、そのヘッダーを next.config にコピーしていると、Google は全ページを外します。ページに curl -I を実行し、X-Robots-Tag を探します。
  3. メタデータが noindex を付けている。metadata や generateMetadata に、ステージングから残った robots: { index: false } がないか探します。ストリーミング開始後の notFound() も noindex を付けます。
  4. robots.ts がサイトをブロックしている。app/robots.ts が /robots.txt を作ります。ステージングから残った disallow: '/' は全ページをブロックします。
  5. サイトマップがない、または Search Console にない。app/sitemap.ts を追加するまで、Next.js にサイトマップはありません。200 を返す URL だけを、サイトのスラッシュの形で載せ、Search Console で /sitemap.xml を送信します。
  6. 内容がブラウザだけで読み込まれる、または全ページが 1 つの canonical タグを共有している。本文はサーバーで取得し、最初の HTML に入れます。各ページのメタデータで alternates.canonical を設定します。ルート レイアウトだけで設定した canonical は下の全ページに効き、全ページがトップページを指してしまいます。
  7. リンクが本物のリンクではない。ナビゲーションには <Link href> を使います。Google がたどるのは <a href> のリンクで、router.push() を呼ぶクリック処理ではありません。

一部のページだけがないとき: Next.js で多い 3 つの理由

  • ソフト 404: notFound() を呼ばずに「見つかりません」と表示する [slug] のような動的ルートは、ステータス 200 を返します。ストリーミング開始後の notFound() も同じです。<Suspense> や loading.tsx の外で、ストリーミング前に notFound() を呼ぶか、Proxy でスラッグを確認します。
  • コンテンツのない状態でページがインデックスに登録されています: ブラウザで内容を読み込むページは、Google に最初、空のページか読み込み中の表示を見せます。Server Components、静的ページ、サーバー側レンダリングで、本文をサーバーで作ります。
  • ページにリダイレクトがあります: Proxy(ミドルウェア)や trailingSlash の設定が、サイトマップと違う URL へ訪問者を送ります。末尾のスラッシュもドメインも、サイトが実際に使う URL でサイトマップに載せます。

サイトマップの場所

App Router では、app/sitemap.ts が /sitemap.xml を、app/robots.ts が /robots.txt を作ります。どちらも、追加するまでありません。

Bing にも変更を伝えたいなら、Next.js の IndexNow を見てください。

CrawlCoach でわかること

Next.js のサイトで Google が外したページは、CrawlCoach の無料レポートで確認できます。サイトマップから最大 500 ページを調べ、ソフト 404 などの理由ごとに直し方を示します。

よくある質問

Next.js の 404 ページがステータス 200 を返すのはなぜですか?

notFound() が動く前にページのストリーミングが始まり、200 がすでに送られたためです。Next.js はその場合 noindex を付けます。確認を <Suspense> や loading.tsx より前か、Proxy に移すと、本物の 404 を返せます。

Google はクライアント側でレンダリングする Next.js のページを読めますか?

Google は JavaScript を実行できますが、実行は後回しで、頻度も下がります。サーバーで作ったページのほうが、早く、確実に Google に載ります。

sitemap.ts と robots.ts は両方必要ですか?

必要です。robots.ts にサイトマップの URL を書き、sitemap.ts には 200 を返す URL だけを載せます。

出典

2026年10月8日 に確認しました。Search Console とヘルプの内容は Google が随時変更します。画面の表示が違う場合は、出典をご確認ください。

Google に載っていないページを確認しましょう

Google アカウントでログインするだけです。CrawlCoach が最大 500 ページを無料でチェックし、問題ごとに直し方を示します。

無料レポートを受け取る

500 ページまで無料です。クレジットカードは不要です。Search Console で使っている Google アカウントでログインしてください。

CrawlCoach のアプリとレポートは英語で表示されます。

他のプラットフォーム

その他のガイド(英語)