GoogleSearchConsoleのクロールエラーで苦戦した話

WordPress

WordPressを導入したての時にサーチコンソール関連で引っ掛かる方も多いかと思います。

私もクロールエラーによりどのページもインデックスされずさんざん悩まされました。

自分の思うように運営するのって山のように問題や課題があって難しい・・・

とは言え私の場合エラーの原因は難しい話ではなかったので忘れないうちに記しておこうかと

特にWordPressをしている方ならかならずぶち当たるであろう、『SEO対策』という単語

Google検索で調べものをしている時に「このサイトやブログよく一番上にきてるな」と思いませんか?

検索画面上位に表示されるには「良質な記事を書き続ける」と言われますよね。良質という判断にはオリジナリティや集客具合などの色々な要素が絡みますが、でもそれ以前にページがインデックスされていない状態だとお話にならないわけです。

クロールとは

Webの分野では、ソフトウェアが自動的にインターネットを巡回し、様々なWebサイトからWebページの内容を収集・保存していく処理をクロールという。このような作業を行うソフトウェアを「クローラ」(crawler)、「ロボット」(robot)あるいは「ボット」(bot)、「スパイダー」(spider)などと呼ぶ。

クローラはあるWebページをダウンロードして内容を解析し、別のページへのハイパーリンクを発見すると、そのページを取り寄せて内容を解析する。この手順を繰り返し、インターネット上で公開されているサイトやページを次々に発見して文書や画像などのファイルを収集していく。

クロールは様々な目的で行われるが、検索エンジンがWeb上の情報を収集して検索可能にするために行うものが最も有名である。検索エンジン運営者は大量のコンピュータと回線を用いて世界中のWebサイトを日々クロールしており、集めた情報を一定の手順に従って解析・加工して索引付け(インデクシング)を行い、一般の利用者が任意の単語やフレーズで全文検索できるようにしている。

(IT用語辞典引用)

とあるように、巡回しサイトの情報収集をする役目を担っているロボットです。

つまり、自分の作ったサイトを巡回してもらえないと情報収集ができず検索エンジンにも載せられませんよね。まずは認識してもらわないといけないわけです。

Googleアナリティクスを見て人が全く来ないという方はまずはサーチコンソールでURLがインデックスされているか確認してみる必要があります。

私はかなりの期間クロールエラーに気付かず過ごしていました。くやしい。

クロールエラーの種類

クロールエラーにもさまざまな原因があります。クロールエラーの詳細でエラーコードが確認できますのでまずは確認しましょう。

 

403

サーバによるアクセス拒否

404

ページが見つかりません。コンテンツの移動や削除を行ったページなどをクロールした際に出るようですが修正されるので大抵は気にしなくても良い、とのこと

送信したURLに対し出た404は修正するなどの対処が必要

詳しくはこちら

ソフト404

404と同じくページが見つからない状態ではあるものの、404として返さず200 OKとして返してしまうものを指します。

つまり404として返すとそのページは無いものとして扱いますが、ソフト404は「そのページ表示されませんけどステータスは正常ですから!(200)」と返してしまうわけです。

エラーとして返されないと検索結果に出てきてしまったりします。

大抵はhtaccessやApacheの記述ミスや自動プログラムによるものが多いようです。

これについては検索順位には影響は無いようですが気持ちのいいものではないので確認・修正はしといた方がいいのではないかな

410

存在しないページ。コンテンツの完全削除により404の代わりに返されるコードのようです。

もし別の場所に移転を行っている場合は301リダイレクトを返す必要があります。

5xx

500番台エラーはサーバーエラーのようです。Googlebotに検知されているページがおかしい可能性があります。

たとえば下書きやプレビューページなどをリンクしてしまっていたり、送信URLとして送ってしまった場合やサイトマップに載ってしまい検知してしまっている場合などに出す信号のようです。エラーの起きたURLやページの状態を確認しましょう。

該当ページに問題がなければ200を返すよう設定する必要があるようです。

私のパターンは403

私のブログで起きていたエラーは403。アクセス拒否でした。

ページだけだと思ってたらサイトマップも拒否されてる・・・

アクセス拒否にも

・.htaccessでブロックしている

・サーバー設定でブロックしている

などのパターンが代表的なのかなと思います。

私は情けないことに両方のパターンでした・・・。

サーバーが外国IPをブロックしているのと.htaccessの方でも制限がかかっておりました。

 

まずはサーバー設定確認をしてみる

私はさくらレンタルサーバを使っていますが、サーバがデフォルトで外国IPアドレスを弾く設定になっており、許可する必要がありました。

外国からのスパムを防ぐ良心からかと思いますがWordPressを扱いながらもGoogleを拒否しているというのもおかしな話です。

さくらレンタルサーバを使っている方でアクセス拒否が出てる場合はこの設定をいじらねば解決しません。

他社サーバでも同様の設定がされているところもあるみたいなので、ご自身のサーバ設定をまずは見直すと良いと思います。

ちなみに私はこの設定だけでは直りませんでした。

原因は.htaccess?

サーバー設定で許可を出してもサーチコンソールが変わらず403を吐き続けるので.htaccessを見たのですがGooglebotを拒否する記述が見つからなくて行き詰まりました。

困って色々調べてみたけれど.htaccessかサーバ設定を確認しろとばかり出てくる・・・

中にはrobots.txtの記述がおかしいのではと出てきて自分のrobots.txtを確認してみても特に問題なし

robots.txtとは?

 

簡単に言うと巡回不要なディレクトリに配置することで、Googlebotなどのクローラーが余計な場所を巡回しないようにブロックしたり、sitemap.xmlのURLを指定して誘導することによりスムーズなクロールを促すために作るテキストファイルです。配置ディレクトリを間違うと必要な場所までブロックしてしまう場合があるようです。

.htaccessは2つ存在した

これはさくらレンタルサーバだけなのかよくわかりませんが結論から言えば.htaccessが2つありました。

ドメイン直下のルートディレクトリとWordPressディレクトリです。

私は2つあると思わずWordPressディレクトリの方を見ていたんですね。

悪さしていたのはルートディレクトリの.htaccessで、しっかりロボットブロックの記述がありました。

さくらレンタルサーバの.htaccess

画像のshutoutの他にもIP指定で拒否している記述もあったので削除

YahooやMSNも拒否していたのでそちらも一応削除

するとサーチコンソールで問題なくインデックスされるようになりました。

まとめ

403は必ずアクセス拒否であることを念頭に置いて原因を探すことが大事です。

●拒否コードが記述されているかサーバの設定で拒否されている

私のように単純な見落としやファイルの配置場所の把握ができていなかったケースもあるというわけですね。

私の場合なんとなく.htaccessはひとつしか存在しないと思い込んでいました。

初心者丸出しで恥ずかしい限りではありますが初心者だからこそこういう単純な見落としでエラーで引っ掛かり検索するものなのでね!!

同じように403で困っている方がいれば参考になれば良いなと思います。

タイトルとURLをコピーしました