GoogleやYahooのような検索エンジンで我々のようなブログが出てくるのは、クローラーというbotにサイトを見つけてもらい、各検索エンジンが持つインデックスに登録してもらっているおかげなわけですが、突然Googleの検索結果から僕のブログが消えました。ひえっ
収益が出ているブログでは無いので、PVが減っても正直そこまで痛手でも無いのですが、検索結果に出てこず誰にも見られないブログとか何の意味があんねん!って話なので解決の糸口を探してみました。
目次
発端
備忘録的にブログを書いてると、自分で見返したくなるときがあります。
今週の月曜日にふと外で自分のブログを調べると、
個別の記事はヒットするけどトップページが出てこない事に気がつきました。
GoogleSearchConsoleを使ってサイトの状況を見てみると・・・
「URLがGoogleに登録されていません」
どうやら1月29日を最後にGoogleが僕のブログを見失ったようでした。
クロールされなくなると・・・
クローラーが来なくなって1週間ほどでGoogleからインデックスが消えていきます。
気付くのが結構遅かったので、2週間ほどで1/3のインデックス登録を失いました。
インデックスされていないページ一覧も出てきますが、そこにトップページのURLが!
おめー!一番大事な所だろ!なに休んでんだよ!!
当然、未登録のインデックスがドッと増えます。
インデックスの再登録を狙う
クローラーが回ってこない事にはインデックスに登録してもらえないので
あれこれと処置を考えます。
サーバー、ネットワーク、SEOだの詳しくないですが
調べられる範囲でいろいろと、やったことを纏めておきます。
Search Consoleからインデックス登録をリクエストする
結論から・・・ダメでした。
開設したり、更新したばかりのサイト、ブログはクローラーに見つけられるまでに
時間がかかるため、手動でリクエストすることで早めに登録することができるようですが
僕のブログは以前は登録されていたのでそれは無いはず・・・
こんなエラーが出て失敗してしまいました。
失敗ですが、Googleさんからヒントがもらえました・・・
どうやらrobots.txtがクローラーから見えていないらしい。
robots.txtテスターを使う
Googleの提供しているrobots.txtテスターを使って、robots.txtの状態を確認します。
開いてすぐにrobots.txt取得エラーで弾かれました。
robots.txtについて全くの無知だったので、
無いのか!?作ればいいんだな!!と、調べて出てきた良さげな記述をコピペさせて頂いてディレクトリに設置しました。
そしたら、robots.txtテスターからリクエストを手動で送信します。
送信できませんでした。しばらくしてからもう一度お試しください。
というエラーになりました。
SearchConsoleのリクエストとrobots.txtテスターのリクエストを
半日ごとに再挑戦しても結局通ることはありませんでした。
WordPressの設定を見直す
WordPressの設定でインデックスを禁止する項目があるため確認しておきます。
設定<表示設定の項目を開いて、「検索エンジンがサイトをインデックスしないようにする」を確認します。
チェックが入っていない状態が正解です。
入っていたら外しておきましょう。
チェックが入っていると、サイトのソースにnoindexタグとnofollowタグが仕込まれます。
これをクローラーが検知すると、そのページのインデックスを中止する仕組みです。
チェックが入っていないと「max-image-preview:large」タグが入ります。
GoogleDiscover等にサムネイルが表示される場合に大きく表示されるようになるみたいです。
自分の場合は外れていたので、これでもありませんでした。
モバイルフレンドリーテストをやってみる
最初にやったSearchConsoleのユーザーエージェントがスマートフォン用 Googlebotとなっていたため、Googleが提供するモバイル系のテストをやってみました。
なんとなく予想は付いてましたが、案の定失敗でした。
モバイル向けのクローラーを送ってくるテストなので当然といえば当然・・・
PageSpeedInsightsをやってみる
モバイルフレンドリーテストがダメだったので
もう少し広い目で見てみます。
PageSpeedInsightsでサイト全体の評価をしてみます。
インデックスだけで無く、ページの存在を否定されてしまいました。
当然ブラウザ上ではサイトの表示はできるので問題は無いはず・・・
自宅のパソコンでも携帯のLTE回線でも(会社のPCでも)問題なく表示されるので、
自分のネット環境が悪いわけでも無さそうでした。
WordPress(サイト、ブログ)の故障を疑ってみる
アップデートの失敗やプラグインの干渉によって
サイトが壊れてしまった可能性を加味して真っ新な状態にしてみます。
エックスサーバーのファイルマネージャにアクセスして、
public_htmlフォルダ内(ドメインのルートディレクトリ)に
バックアップ用のフォルダを作って全部のファイルを移動します。
index.php(or index.html)が無いと404になってしまうので
エックスサーバーを借りたときに入っていたindex.htmlを引っ張ってきました。
(独自ドメインを取ってれば、xsrv.jpドメインのpublic_htmlの中に残ってるかも?)
全く何も無い状態にして、SearchConsoleやrobots.txtテスターからリクエストを送ってみました。
適切に記載されたrobots.txtがあるorファイルが存在しない(404)が正解の状態らしいので
index.htmlしか無いこの状態なら・・・!!
・・・結果、ダメ!
まさかの、真っ新な状態でもクローラーがサイトを見つけてくれませんでした。
これはサーバーのせいか・・・?
アクセス制限を疑ってみる
GoogleBot(いわゆるクローラー)は基本的に海外IPでアクセスしてくるらしく
海外IPを弾く設定にしていると、ダメな場合があるとのことでした。
ということで、サーバー側のセキュリティ設定を確認します。
エックスサーバーのサーバーパネルからWordPressの設定を探します。
そこから、セキュリティ設定を開いてください。
国外IPアクセス制限が全てONになっていました。
結論を言うと、関係ありませんでした!
全てOFFにして、リクエストを送信しても弾かれてしまったので元に(全てONに)戻しました。
アクセス制限を疑ってみる その2
WordPressのセキュリティ設定は関係無かったので、サーバー(サイト)全体のアクセス制限を疑ってみます。
サーバーディレクトリのルートに設置された「.htaccess」の中を確認しました。
サーバーパネルの.htaccess編集もしくは、ファイルマネージャから直接編集します。
WordPressに関する記述しかされてなく、アクセス制限は掛けていませんでした。
放置する(結局これ)
YahooやBingではトップページまでしっかりとインデックスされていたため
恐らくGoogleが持っているこのサイトの情報が壊れてしまったのだと予想・・・
PageSpeedInsightsの結果からサイトそのものが認識されていないっぽいので打つ手がありません。
Google検索セントラルコミュニティで聞き込みもしてみましたが、明確な原因は判明せず・・・
謎のエラーでインデックスが消えた人のフォーラムを見ていると
「2ヶ月後に勝手に復活しました!」とか書いてあったので時間の流れに身を任せることにしました。
自力での解決を諦めた翌日の昼・・・
な、何事も無く登録されてる・・・!!
結局、アレコレ色々とやってみましたが、原因不明のまま解決してしまいました。
原因の考察
今回のインデックスから外れた要因は恐らくWordPressのディレクトリを移動したためと思われます。
ブログURLは http://temrer.com ですが、
サーバーのディレクトリ構成は temrer.com/wordpress/index.php でした。
ドメインにアクセスすると、wordpress内のindex.phpにリダイレクトしてサイトを表示させる仕組みです。
リダイレクトしないとURLがhttp://temrer.com/wordpressになってしまい、格好が悪くなります。
リダイレクトさせることでURLがスマートになったのでこのままでも良かったのですが
画像単体で開いたときに、画像の保存ディレクトリがそのまま表示されるため
画像のURLが http://temrer.com/wordpress/media/画像.jpg って感じになります。
(初期設定ではmediaでは無くwp-content/uploadsになります)
画像を開いたときに格好が悪いので、ドメインルートにmediaフォルダを作成して
temrer.com/wordpress/index.php (temrer.comにリダイレクト)
temrer.com/media/(自動生成される年月のフォルダ)/画像.jpg
の構成にしました。
しばらくはこれで良かったのですが、
Xserverの仕様(?)によって自ディレクトリよりも上位のディレクトリには干渉(フォルダ作成等が)できないようで、年月フォルダが自動生成できない=画像アップロードが不能になってしまいました。
と、いうことでリダイレクトを解除してwordpressのシステムファイルを丸ごとドメインルートに移動しました。
これによって
temrer.com/index.php
temrer.com/media/(自動生成される年月のフォルダ)/画像.jpg
となりました。リダイレクトも無いのでシンプルな構成ですね。
サイトアドレスに変更は無いので問題ないと思っていたのですが・・・
移動した時期と近い気がするので推測の域を出ませんが、可能性は高い気がします。
クローラー「お、temrer.com(/index.php)ってサイトあるやん」
temrer.com「実はtemrer.com/wordpress/index.phpやで(リダイレクト)」
クローラー「ほな、temrer.com=temrer.com/wordpress/index.phpでキャッシュ残しとくな!」
~後日~
クローラー「temrer.com/wordpress/index.php無くなっとるわ!エラーやで。」
~さらに後日~
クローラー「今持ってるキャッシュ古くなったし、新しく取得し直すわー」
temrer.com「temrer.com(/index.php)やで」
クローラー「おk!!登録しなおすわ!」
うーん、ありそう。
ひとまず解決してよかったです。