Googleにインデックスされなくて焦った経験ありますよね。
私自身もSEOの仕事をはじめて間もないころは、なぜインデックスされないのか原因が分からず手探り状態でした。
そこで今回は、私が出くわしたインデックスされない原因をまとめて紹介します。
Googleにインデックスされない8つの原因
1.ペナルティを受けている
ペナルティ(特に手動対策)を受けている場合にサイト全体(もしくは一部のページ)のインデックスを削除される為です。
サーチコンソール(旧ウェブマスターツール)の手動対策の項目に通知が無いか確認してみましょう。
手動対策が来ていたら解除する必要があります。
具体的な解除方法は以下のページを参照して下さい。
参考ページ:
2.robots.txtの設定
robots.txtは、検索エンジンのクローラーを制御するファイルになります。
サイトがインデックスしていない場合は、このファイルがサイト全体や一部のページをブロックしていないかを確認します。
よくある事例として、サイト制作時にクローラーが来ないように以下の記述をします。
User-agent: *
Disallow: /
これを外さずにサイトを公開してしまう場合があります。これではサイト全体がクローラーに巡回されないためインデックスされません。
必ずサイトの公開時にはrobots.txtファイルを確認し、以下のように/を削除します。
User-agent: *
Disallow:
3.meta robotsタグ
meta robotsタグは、robots.txt同様クローラーの制御を行います(実際の効果は異ります)。
特に、以下のようにnoindexと記述すると「このページは検索結果に表示しない」という命令になります。
よって、このタグを設置したページは検索結果に表示されないことになります。
<meta name="robots" content="noindex">
よくある事例では、WordPressを公開した時に『検索エンジンがインデックスしないようにする』にチェックが入っている場合です。
この場合、サイト全体がインデックスされません。必ず、サイト公開時にはチェックを外すようにしましょう。
4.canonicalタグ
canonicalタグ(URL正規化タグ)は、重複URLを解消する為のタグです。
例えば、以下の様なURLの場合、両方同じページを表示しますが、検索エンジンはそれぞれ別々のURLだと認識します。
http://example.com/
http://www.example.com/
これを同じページだと検索エンジンに伝える為にcanonicalタグを利用します。
例えば、http://example.com/のURLに統一したいと思えば、以下のタグを<head>タグ内に設置します。
すると検索結果上にはhttp://example.com/だけが表示されるようになります。
<link rel="canonical" href="http://example.com/">
よくある事例では、新たにページB(http://example.com/bbb/)を追加する為にページA(http://example.com/aaa/)のソースコードをコピペします。
そのソースには、ページAのカノニカルタグが入っています。するとページBには以下のcanonicalタグが入ることになります。
<link rel="canonical" href="http://example.com/aaa/">
この状態でサーバーにアップしてしまうとページAにURLが統一されてしまい、ページBは検索結果に表示されなくなります。
5.新規ドメイン
新規ドメインは、購入したばかりの状態であり、そもそもクローラーが巡回してきていないためインデックスしにくい状態にあります。
時間の経過により解消されます。
更に早めたい場合は、後述するFetch as Googleやsitemapの送信をおすすめします。
6.中古ドメイン
中古ドメインは、購入後全くインデックスしない場合があります。
原因として、以前の運営者がGoogleガイドライン違反していた為です。
『1.ペナルティを受けている』の項目でも記載しましたが、サーチコンソールの手動対策の項目に通知が無いか確認します。
尚、一般の運営者には、中古ドメインは関係無いと考えている方もいるかもしれません。
しかしながら、新規ドメインとして取ったドメインでも中古ドメインだったということが一定の確立で存在します。
中古ドメインにあたらない為にはSEO対策に役立つツール・Firefoxアドオンまとめ25選で紹介したWaybackというツールを利用し、予め検討しているドメインに運営履歴がついていないかどうかを確認しましょう。
7.x-robots-tag
x-robots-tagは、PDFファイルなど通常meta robotsタグを設置出来ないようなファイルのクローラー制御を行うために利用します。
x-robots-tagが用いられる頻度はかなり低いですが、念の為に確認しておいたほうが良いでしょう。
.htaccessファイルに『Header set X-Robots-Tag』と記載されていないか確認します。
尚、x-robots-tagの詳細については.htaccessの作成・設定まとめでもふれていますので、参考に。
8.サイトのエラー(500エラー)
サイトのエラーによりインデックスされない場合もあります。
私が見た事例では、サイトの見た目上は異常が見られないものの、多くのページがインデックスしていませんでした。
そこで、サーチコンソールを見てみると500エラーが多数発生しており(通常の500 Internal Server Errorと表示されサイト自体表示されません)、これが原因で正常なインデックスが行われていませんでした。
以下その際にFetch as Googleをした画像になります。
今回の事例の場合、使用していたCMS(EC-CUBE)のプラグインが原因となっていました。
このプラグインを削除し、代替のプラグインを入れることで解消されました。
紹介した事例は稀なものですが、これまで挙げてきたインデックスしない原因に当てはまらない場合には、サーチコンソールなどで必ずステータスコードを確認することをおすすめします。
補足:新規ページがなかなかインデックスしない場合
ここでは、特に原因は無いが新規ページがなかなかインデックスしてくれない場合の解消方法について紹介します。
Fetch as Googleの利用
サーチコンソールのFetch as Googleを行うことでクローラーを能動的に呼びこむことが可能です。
サーチコンソールが登録出来ない場合
サーチコンソールの認証が何かしらの原因で出来ず、Fetch as Googleが利用出来ない場合は、『URLをGoogle のインデックスに追加』※を利用します。
Fetch as Googleと同様にクローラーを呼びこむことが可能です。
※2018年に提供が終了しています。
sitemapの送信
xml版のsitemapをサーチコンソールに登録して、送信することで効率良くクローラーが回るようになります。
その結果インデックスの促進に繋がります。
更新頻度を上げる
更新頻度を上げることにより頻繁にクローラーが巡回するようになりますので、適度な更新がインデックスの促進に繋がります。
まとめ
インデックスしない原因が様々あることが分かりました。
ちょっとしたケアレスミスでサイトがインデックスしないことがありますので、一つ一つ原因を探っていくことが重要です。