Google Search Console 404エラーの原因:Nuxt SSGのcrawlLinksで発見されないページ
結論
2026-02-03に確認予定: Googleが404ページを自動削除するまで2〜4週間かかるため、4週間後(2026-02-03)にSearch Consoleを再確認する。この記事の
updatedAtを確認予定日に設定し、カレンダー表示で見逃さないようにしている。
Nuxt SSGのcrawlLinks: true設定では、どこからもリンクされていないページはプリレンダリングされない。
Google Search Consoleで報告される404エラーは、以下のいずれかが原因:
- 以前公開していたページを削除した(サイトマップが古いまま)
- コンテンツは存在するが、SSGビルドで発見されていない(リンクがない)
- URL構造を変更した(リダイレクト未設定)
推奨対処法
| 状況 | 対処法 | 理由 |
|---|---|---|
| 意図的に削除した | 放置 | Googleは404を認識し、数週間で自動削除 |
| コンテンツはあるが未公開 | リンクを追加してSSGで発見されるようにする | SEO的にもったいない |
| URL構造変更 | 301リダイレクト設定 | SEO評価を引き継げる |
ほとんどの場合「放置」で問題ない。 Googleは404ページを自動的にインデックスから削除する。急ぐ場合はSearch Consoleから「削除リクエスト」を送信できる。
問題の発見
Google Search Consoleの「ページのインデックス登録」で、39ページが「見つかりませんでした(404)」と報告されていた。

報告されていたURL例:
https://log.eurekapu.com/docs/en/build-with-claude/context-windowshttps://log.eurekapu.com/2025-12-02/koyfin-scraper-spechttps://log.eurekapu.com/2025-12-13/ffmpeg-wasm-issuehttps://log.eurekapu.com/2025-12-10/financial-chart-requirements
調査の経緯
1. ローカルファイルの確認
まずローカルにコンテンツファイルが存在するか確認した。
# 結果:ファイルは存在する
apps/web/content/2025-12/2025-12-02/koyfin-scraper-spec.md
apps/web/content/2025-12/2025-12-13/ffmpeg-wasm-issue.md
apps/web/content/2025-12/2025-12-10/financial-chart-requirements.md
ファイルは存在するが、本番サイトでは404になる。
2. frontmatterのpath確認
各ファイルのfrontmatterを確認:
# koyfin-scraper-spec.md
---
path: "/koyfin-scraper-spec"
title: "Koyfin データ自動取得ツール仕様書"
publishedAt: "2025-12-02"
---
pathフィールドで/koyfin-scraper-specが指定されているので、このURLでアクセスできるはず。
3. サイトマップの確認
# サイトマップに含まれているか確認
# 結果:koyfin-scraper-spec、ffmpeg-wasm-issue、financial-chart-requirementsは含まれていない
# context-windowsはサイトマップに含まれているが、実際にアクセスすると404
サイトマップ自体も実態と乖離していることが判明した。
4. distディレクトリの確認
ビルド成果物を確認:
ls dist/
# 2025-12/ # 存在する
# koyfin-scraper-spec/ # 存在しない!
dist/2025-12/2025-12-02/には画像ファイルのみがコピーされ、HTMLは生成されていなかった。
5. nuxt.config.tsのプリレンダリング設定
// nuxt.config.ts
nitro: {
prerender: {
crawlLinks: true,
routes: ['/blog', '/'], // ここから開始
}
}
crawlLinks: trueの動作:
/と/blogからクロール開始- ページ内のリンクをたどって他のページを発見
- 発見されたページのみプリレンダリング
つまり、どこからもリンクされていないページは発見されず、ビルドされない。
根本原因
content/2025-12/2025-12-02/koyfin-scraper-spec.md
↓
frontmatter: path: "/koyfin-scraper-spec"
↓
期待されるURL: /koyfin-scraper-spec
↓
しかし、どのページからもリンクされていない
↓
crawlLinksで発見されない
↓
プリレンダリングされない
↓
本番で404
対処法の詳細
1. 放置(推奨)
何もしなくても、Googleは404ページを認識し、通常2〜4週間でインデックスから自動削除する。
メリット:
- 作業不要
- 自然な動作
デメリット:
- Search Consoleに404が表示され続ける(気になる人は気になる)
2. リンクを追加
コンテンツを公開したい場合は、どこかのページからリンクする。
<!-- 例:ブログ一覧ページに追加 -->
<NuxtLink to="/koyfin-scraper-spec">Koyfin データ自動取得ツール仕様書</NuxtLink>
これにより、次回ビルド時にcrawlLinksで発見され、プリレンダリングされる。
3. 明示的にルートを追加
特定のページを強制的にプリレンダリングする場合:
// nuxt.config.ts
nitro: {
prerender: {
routes: ['/blog', '/', '/koyfin-scraper-spec'], // 明示的に追加
}
}
4. 301リダイレクト設定
URL構造が変更された場合(例:/2025-12-02/xxx → /xxx):
# _redirects (Cloudflare Pages)
/2025-12-02/koyfin-scraper-spec /koyfin-scraper-spec 301
5. Search Consoleから削除リクエスト
急いでインデックスから削除したい場合:
- Search Console → 削除 → 新しいリクエスト
- URLを入力して送信
まとめ
- Nuxt SSGの
crawlLinksは便利だが、リンクされていないページは発見されない - frontmatterの
pathはURLを決めるが、ビルドされるかは別問題 - Google Search Consoleの404は、ほとんどの場合放置で問題ない
- コンテンツを公開したい場合は、明示的にリンクを追加するか、
prerender.routesに追加する