googleにインデックスされないと?
サイトを探す時に使うのが検索サイトであり、今ではほとんどの方がgoogleを使っていると思います。そのgoogleさんはどうやって検索サイトを作っているのか、詳しくは私も知りませんが(笑)、簡単に言うとクローラーと呼ばれる自動でリンクをたどってサイトの情報を収集するプログラムを使って、世界中のサイトの情報を集めて、検索された言葉に対して検索したユーザが求めていそうなサイトランキングを独自のアルゴリズムで瞬時に作ってユーザに表示させているようです。
検索された時、1ページ目の一番最初に表示されたほうが見られやすく、商品であれば買われやすくなりますので、サイトを作っている人はほとんどの方がそこを目指してサイトを作ることになります。
趣味で作っているだけだから、検索上位がいいけどあらゆる手段で必死に求めているわけではないという方もいますし、仕事でやっているから上位表示されなければ意味がない、お金を払ってでも上位表示させたい(詳しく知りませんが、検索して広告と上位に表示されているのはおそらくgoogleさんにお金を払ってのせてもらっているのだと思います。)とモチベーションは様々ですが、インターネットに公開している以上、基本的には多数の人に見てもらいたいという思いがあると思います。基本的には上位表示することに越したことはないです。
私は完全に趣味でやっているだけなので、何がなんでも上位表示させたいわけではないですが、やはり上位表示のほうが嬉しいです(笑)
ただ実際にメジャーな言葉で上位表示させるのはなかなか難しいです。このサイトも200記事以上ありますが、上位表示されるのはおそらく手作りカレンダーについての記事くらいです(笑)
それでも検索サイトに一応認識されているから、毎日数人の方には見てもらえているようだし、コロナ前まで活動していたカメラサークルでも数人集まることが出来ました。(現在、コロナの影響でカメラサークルは活動していません)
上位表示されなくてもサイトを作っている以上、googleさんには認識してもらいたいです。認識されなければ別のサイトに貼ってあるリンクをクリックするか、直接アドレスを入力してもらわないとそのサイトにはたどり着けません。googleさんが認識していないサイトを通常自分以外が見つけられるはずもなく、リンクを貼ってもらうことも、アドレスを直接入力されることもないので、誰にも気づかれないと言うことになってしまいます。流石にそれは寂しいです。
サイトマップを送るとエラー
先日、私は別のサイトを作ったのですが、サーチコンソールからサイトマップが送れないという状況に陥りました。今までいくつかサイトを立ち上げたことがあり、同じことをやったつもりですが何故かうまく認識してくれませんでした。
実際にブログタイトルや記事タイトルで検索してみても全く表示されません。上位表示どころか、googleさんに全く認識されていない状況です。
状況
- サブディレクトリにワードプレスをインストールしている
- 一つのレンタルサーバで独自ドメイン2つで2つのサイトを作っている
- サイトマップはプラグインのXML sitemapsを使って作成
- サイトマップには問題なくアクセスできる
- robots.txtは自分では作成していない
- レンタルサーバのファイルマネージャで中を調べてもrobots.txtは見つからない
- レンタルサーバの海外IPからのアクセス制限のフィルタはオフにしている
- サーチコンソールからサイトマップを送るとステータスが「認識できません」になる
- サーチコンソールからサイト内の記事でURL検査をしてみても「該当なし」「URLがgoogleに登録されていません」となる
- サーチコンソールからインデックスリクエストしても「一般的なHTTPエラー」となりうまくいかない
ネットでの似たような情報
サイトマップの破損などサイトマップの不備、アドレスの間違い
調べてみると似たような情報はたくさん出てきます。サイトマップが破損してたり、存在しなかったりでアクセスできなければ認識できないよという情報があります。私の場合問題なくサイトマップにはアクセスできるので問題なかったです。サイトマップのアドレスの間違いもなかったです。
プラグインの不具合、設定
ワードプレスでは便利なプラグインが数多く揃っていますが、その反面プラグインによるトラブルもよく聞きます。そのため私はあまりプラグインを入れないことにしています。サイトマップにはXML sitemapsを使っていますが、他にそれほど使っていませんでしたが、全部停止したり、XML sitemapsを一度アンインストールしてからインストールし直したのですが、改善しませんでした。
XML sitemapsを使用している場合、設定で「MTHL形式のサイトマップを含める」のチェックを外すというのもありますがこれは始めから外していました。
レンタルサーバの海外IPアクセス制限のフィルタオフ
レンタルサーバの設定で海外IPをフィルタにかけるものがあるのですが、これは私のレンタルサーバでもオンになっていて最初「原因はこれか!」と思ったのですが、オフにしても改善されなかったです(笑)考えてみたら同じレンタルサーバを使っているもう一つのサイトでは問題なく、インデックスされていますので私の場合これが原因ではないです。
ワードプレスの表示設定の「インデックスさせない」にチェックされている
ワードプレスの表示設定のところに「検索エンジンにインデックスさせないようにする」というわかりやすくインデックスさせない設定項目があります。これも見た時に「ああ、そうだ。たしかサイト立ち上げたばかりはまだ記事作らないから、下手に評価されるのも嫌だからチェックして、そのまま外すの忘れてたのか」と思ったのですが、見てみるとちゃんとチェック外れていました。
robots.txt
調べてみて多く出てきた情報はrobots.txtでした。robots.txtはクローラーを制限するテキストファイルでサーバに設置することでクローラーの動きを制限できます。
robots.txtでクローラーをブロックしているという情報を多く見つけたのですが、私はそんなファイル作った覚えないしなと最初思っていました。レンタルサーバのファイルマネージャでサーバ内のファイルを検索しても出てこないから違うかと思って他の情報を探しました。
なかなか解決策が見つからないまま、ネットサーフィンし続けるとどうやらrobots.txtはワードプレスが自動作成していることに気づきました。サーバの中にrobots.txtというファイルがなくてもワードプレスが自動作成しているようです。
でもrobots.txtでブロックした場合はサーチコンソールでそのような表示になっているサイトがあり、自分の場合はrobots.txtでブロックしたという表示はないから関係ないかなと思いましたが、自分で改めてrobots.txt設置を試してみようと思いました。
ところが「robots.txtはサブディレクトリには設置できない」という情報だけ目についてしまい、また私の無知からの勘違いで、じゃあサブディレクトリにインストールしているワードプレスでは無理、関係ないと思い込んでしまい、解決案が無くなりまたネットに迷い込みました(笑)
いろいろ調べていくうちにサーチコンソールのrobots.txtテスターというのを見つけました。新しくなったサーチコンソールでは見つけにくいですが、左側のメニュバーから「以前のツールとレポート」→「詳細」→「robots.txtテスター」でたどり着けます。
これを使ってみると自分のこのサイトは表示されるのに、インデックスされてない問題のサイトは「読み込み時にエラーが出て、正しくrobots.txtが読み込まれるまでクロールされない」というような表示が出ました。(正確な文面は忘れました(笑))
やっぱりrobots.txtが原因なのかと思いましたが、サブディレクトリにインストールされているし、もう一つのサイトもあるし、どうすればいいのだろうと思いましたが、特に難しいことはなかったです。
設置できるのは上層のディレクトリですが、その下のディレクトリにも問題なく有効になるようだし、今回はクロールを細かく制限したいわけではなく、何故かエラーの出ているrobots.txtを問題なくクロールしていいですよと修正したいだけなので、他のサイトへの影響もおそらくない(詳しくはわかりませんが(笑))と思います。
ワードプレスで自動作成されるrobots.txtもサーバ内に自分で設置したrobots.txtがある場合は、自分設置のrobots.txtが優先されるようです。
今回の解決策
ワードプレスがインストールされている上のディレクトリにrobots.txtを設置することで解決しました。robots.txtの内容は以下のとおりです。
User-agent: * Disallow: /wp-admin/ Allow: /wp-admin/admin-ajax.php
たったこれだけで済んだし、この情報はすぐに見つかる情報なのですが、自分の状況が紹介されている状況と微妙に違ったことと、私がワードプレスやサーバ、ネット関係に無知過ぎて、勝手な思い込みで除外してしまっていました。もっと早く気づけばよかったのですが、解決してよかったです。
こうなった原因は?
自分でrobots.txtを設置したことなかったし、robots.txtはワードプレスの自動生成なのに何でこうなったのか、確かな原因はわからないです(笑)あくまで私の勝手な予想ですが、サブディレクトリにインストールしていることと、サイト開設時にワードプレスの表示設定の「インデックスされないようにする」にチェックしたことが関係しているように思います。
「インデックスさせないようにする」にチェックしたことで、ワードプレスがクローラーをブロックするようなrobots.txtを生成したけど、サブディレクトリにあったからうまくいかずにエラーが出たか、もしくは「インデックスさせないようにする」のチェックを外した時にエラーが出てしまい、サブディレクトリであったためうまく更新されなかった、読み込めなかったといった感じなのかなと思いました。
robots.txtでちゃんとブロックされていれば、もう少しわかりやすかったのかもしれませんが、robots.txtで読み込みエラーが出て、ちゃんとrobots.txtを読み込むまでクロールしないという形でブロックされてしまっていたのでわかりづらかったです。
まとめ
- ちゃんとした理由がないなら安易にワードプレスの表示設定「インデックスさせないようにする」はチェックしないほうが無難
- robots.txtはクローラーを制限できる
- robots.txtはワードプレスで自動生成される
- robots.txtはワードプレスの上層ディレクトリにだけ設置できるが、効果はサブディレクトリも有効
- googleクローラーはrobots.txt読み込みに失敗すると、ちゃんとrobots.txtを読込できるまでクロールしない。
- アドレス/robots.txtをアドレスバーに入力すればrobots.txtを確認できる。ワードプレスの自動生成のrobots.txtもこの方法で内容を確認できる。
表示は問題なく出来るのに、サイトがインデックスされない、サイトマップすら受け付けないなどといった似たような状況の方控えめに参考にしていただけたらと思います。私も手探りで、本当にすべて問題なく解決しているのかどうかも怪しいので、解決しなかったり、問題が悪化しても責任は取れませんので、自己責任でお願いします。