ブログを開設して2週間で26本の記事を公開しました。
ところが、Google検索にはほとんど記事が出てきません。
「まだ公開してから時間が経っていないからだろう」 「記事の内容がGoogleに評価されていないのかもしれない」
最初はそう考えていました。
しかし、原因を調べてみると、記事の内容とはまったく関係のないところに問題がありました。
サイトマップに記載されているURLが、実際のサイトのURLではなかったのです。
この記事では、実際に当社のサイトで発生したこの不具合について、何が起きていたのか、どうやって原因を特定したのか、そしてどのように修正したのかを紹介します。
まず、サイトマップとは何か
サイトマップ(sitemap.xml)は、Webサイトに存在するページのURLを検索エンジンに伝えるためのファイルです。
例えば、次のような情報が記載されています。
<url>
<loc>https://example.com/blog/article-1</loc>
<lastmod>2026-08-20</lastmod>
</url>
この中の <loc> が、検索エンジンに伝えるページのURLです。
GoogleはサイトマップをURLの発見に利用します。
ただし、サイトマップにURLを記載したからといって、そのページが必ずGoogle検索に登録されるわけではありません。
クロールやインデックス登録には、ページの品質や重複、Google側の判断など、さまざまな要素が関係します。
そのため、検索に出てこない場合は「記事の内容」だけでなく、「そもそもGoogleが正しいURLを発見できる状態になっているか」も確認する必要があります。
サイト全体をどう設計するかは、サイト設計とSEO・AEO|検索とAIの両方に見つけてもらう構造の作り方でまとめています。
当社で起きていた問題
そこでサイトマップの中身を確認してみました。
すると、次のようなURLが出力されていました。
<loc>http://default/tech/xserver-drupal11</loc>
<loc>http://default/guide/what-cms</loc>
<loc>http://default/note/x-web-site</loc>
http://default という、見覚えのないURLになっています。
本来であれば、当社のドメインを使って次のようになっている必要があります。
<loc>https://kinfuu.co.jp/blog/tech/xserver-drupal11</loc>
つまり、サイトマップそのものは正常に生成されていましたが、中に記載されているURLが間違っていたのです。
これでは、サイトマップを見た検索エンジンに正しいページのURLを伝えることができません。
なぜ存在しないURLが生成されていたのか
原因は、サイトマップを生成する処理が動く環境にありました。
3-1. ブラウザからアクセスするとき
普通にブラウザからWebサイトへアクセスすると、サーバーには「どのドメインへアクセスされたのか」という情報が伝わります。
そのため、プログラム側で現在のサイトURLを取得することができます。
3-2. コマンドラインから実行するとき
一方、サイトマップの生成処理は、ブラウザを介さずサーバー上のコマンドラインや定期実行処理から動かしていました。
この場合、ブラウザからのアクセスとは違い、Webリクエストに含まれるドメイン情報を利用できません。
その結果、サイトURLを正しく取得できず、既定値として設定されていた http://default がURLとして使われていました。
サイトマップは毎回きちんと生成されていたのに、生成された内容が間違っていた。
今回の問題は、まさにこれでした。
なぜ発見するのが遅れたのか
この不具合が厄介だったのは、Webサイト自体は普通に表示されていたことです。
- ブラウザで記事を開くと正常に表示される
- サイト内リンクも正常に動く
- 管理画面にもエラーが表示されない
- サイトマップ自体も正常に生成されている
壊れていたのは、普段ほとんど人が直接見ることのない「サイトマップの中身」でした。
そのため、
「新しいブログだから、Googleに登録されるまで時間がかかっているのだろう」
と考えてしまったわけです。
どうやって原因を見つけたのか
特別なツールを使ったわけではありません。
サイトマップそのものを開いて、中身を確認しました。
例えば、
https://あなたのドメイン/sitemap.xml
にアクセスします。
そこで <loc> に記載されているURLを確認します。
自分のサイトのドメインになっているか。
存在するページのURLになっているか。
意図しないURLが混ざっていないか。
まずはここを見るだけでも、今回のような問題は発見できます。
Search Consoleでも確認する
Google Search Consoleを利用している場合は、サイトマップの登録状況も確認できます。
ただし、Search Consoleにサイトマップを登録しているからといって、サイトマップの内容まで正しいとは限りません。
今回のように、サイトマップそのものは存在していても、記載されているURLが間違っているケースがあります。
そのため、Search Consoleの画面だけで判断せず、実際の sitemap.xml も確認することが重要です。
どのように修正したのか
原因が分かれば、対処自体はシンプルでした。
サイトマップを生成する処理に、「このサイトのURLはこれです」と明示的に設定しました。
ただし、ここでも一つ問題がありました。
設定ファイルを変更しただけでは、サイトマップ生成時に正しいURLが使われませんでした。
サイトマップを生成する処理が、設定ファイルとは別に実行時の情報を参照していたためです。
そこで、サイトマップを生成するコマンド側にもURLを指定しました。
さらに、今後同じ問題が発生しないよう、既定の設定としてURLを保存しました。
これによって、手動で毎回URLを指定しなくても正しいサイトマップが生成される状態にしました。
もう1つの問題も見つかった
サイトマップを調査している途中で、別の問題も見つかりました。
トップページに表示している最新記事のリンクのうち、最新の1記事だけが、
/blog/node/27
という内部的なURLになっていました。
本来は、
/blog/note/static-html-cms
という、内容に対応したURLになるはずでした。
原因は処理の順番だった
記事を保存すると、内部では複数の処理が実行されます。
- 記事のURLを生成する
- トップページ用の記事一覧を生成する
今回は、この順番が正しくありませんでした。
URLを生成する前にトップページの記事一覧を書き出してしまったため、URLがまだ存在せず、内部的なアドレスがそのまま使われていました。
そこで、処理の順番を見直しました。
さらに、毎日の定期処理でも記事一覧を再生成するようにしました。
保存時に何らかの理由で取りこぼしたとしても、定期処理によって自動的に修正される仕組みです。
今回のトラブルから分かったこと
9-1. 人間が見て正常でも、検索エンジン向けの情報が壊れていることがある
Webサイトをブラウザで開いて問題がないからといって、サイト全体が正常とは限りません。
サイトマップ、構造化データ、canonical URLなど、検索エンジンが利用する情報は別に確認する必要があります。
9-2. 「Googleに載るまで時間がかかる」で終わらせない
新しいサイトや記事がGoogle検索に登録されるまでには時間がかかることがあります。
しかし、いつまでも登録されない場合は、技術的な問題がないか確認するべきです。
「記事の質が低いのかもしれない」と考える前に、
- サイトマップは正しいか
- ページは正常にアクセスできるか
- robots.txtでブロックしていないか
- noindexになっていないか
- canonicalは正しいか
といった基本的な部分を確認します。
9-3. 自動化した仕組みほど、出力結果を確認する
今回のサイトマップは、自動で毎日生成されていました。
しかし、
「自動で生成されている」ことと「正しいものが生成されている」ことは別です。
自動化は便利ですが、出力された結果を定期的に確認する仕組みも必要です。
自動化した仕組みが静かに壊れる例は、静的サイトとCMSを併用すると起きる「共通パーツのズレ」|二重管理をやめる方法にも書いています。
「記事が検索に出ない」とき、まず確認したい3つ
同じような状況になった場合は、まず次の3つを確認してみてください。
- サイトマップを直接開く
https://あなたのドメイン/sitemap.xmlにアクセスし、URLが正しいか確認する。 - 公開記事のURLと照らし合わせる
実際に存在する記事のURLがサイトマップに含まれているか確認する。 - Search Consoleを確認する
インデックス登録状況やサイトマップの読み取り状況を確認する。
ここで問題がなければ、次にページそのものの品質や検索意図など、SEO面の確認へ進みます。
原因を一つずつ切り分けた別の事例は、iPhoneでGoogleChromeアップデート後に不具合|スクロール位置がずれる原因と対処法にあります。
まとめ
今回のトラブルは、ブログ記事そのものに問題があったわけではありませんでした。
サイトマップを生成するプログラムが、自分自身の正しいURLを認識できていなかった。
その結果、26本の記事について、サイトマップから正しいURLを伝えられていない状態になっていました。
さらに調査したことで、トップページの記事一覧にもURL生成のタイミングによる別の不具合が見つかりました。
Webサイトでは、人間が見る画面だけを確認していても、すべての問題を発見できません。
特に検索エンジンやAIが利用する情報は、実際に出力されているデータを確認することが重要です。
「記事を書いているのにGoogle検索に出てこない」 「サイトマップは登録しているのに、インデックスされない」 「自分のサイトに技術的な問題がないか調べたい」
そんなときは、記事の内容を改善する前に、まずGoogleに正しい情報を渡せる状態になっているかを確認してみてください。
金風株式会社では、Webサイトの制作だけでなく、公開後の技術的な調査や運用改善にも対応しています。