【Googleサチコ】大量のアクセス禁止(403)はクローラーのIPアドレス制限かも?
この記事では、WordPressブログと連携させているGoogleサーチコンソールで特定のタイミング以降、大量の「アクセス禁止(403)が原因でブロックされました」になって記事がインデックスされなくなった原因と対処法について書きます。
もしかしたらGoogleクローラーのIPアドレスをブラックリストに登録しちゃってるんじゃない?っていう内容です。
僕はレンタルサーバー「ConoHa WING」とWordPressを使って「ナポリタン寿司のPC日記」ブログを運営しています。当サイトは検索順位などを見るために「Googleサーチコンソール」と連携させています。
僕がとある作業をしたところ、翌日から「Googleサーチコンソール」上で大量の「アクセス禁止(403)が原因でブロックされました」エラーが検出されました。
気づいてから数週間放置(様子見)していましたが、日に日に未インデックスの記事が増えていきました。
実際、URL検査しても「インデックス登録リクエストに失敗しました」とエラーが表示されます。
詳細を見ると「URLはGoogleに登録できません」で「アクセス禁止(403)が原因でブロックされました」でした。
僕の場合は自分がやった作業が明白でそれが原因だろうなとすぐに気づきましたが、人によっては知らず知らずのうちにやっちゃってたって場合や何かやったんだろうけど思い出せない…みたいな方もいるかもと思ったので記事にします。
もちろん人によって原因は様々だと思うので本記事の対処法が当てはまらない方もいると思います。僕の場合は当サイトを攻撃してきていた大量のIPアドレスをまとめてアクセス制限のブラックリストに登録したからでした。
【原因】GoogleクローラーのIPアドレスをブロックしている
2024年12月31日にセキュリティ設定を見直していたところ、「ConoHa WING」のWAF履歴や「SiteGuard WP Plugin」プラグインのログイン履歴に大量の攻撃痕跡があることに気づきました。
「これはまずい」ということで改めてセキュリティ設定を見直し、さらにこれまで大量に攻撃を試みていたIPアドレスを全部書き出して一括で「ConoHa WING」のIPアクセス制限(ブラックリスト)に登録しました。
「新しいIPアドレスからの攻撃は阻止できないけど、ひとまずこれまで攻撃してきたIPアドレスは再攻撃できないようにブロックできたぞ」と安心していたところで、今回の「アクセス禁止(403)が原因でブロックされました」エラーが発生しました。
僕は「直近でやった作業はなんだっけ…。あ、IPアドレスのアクセス制限だ。ってことはここに何か原因があるな」とすぐに気づきました。
調べてみるとGoogleの検索結果に登録するためインターネット上をあちこち回っているクローラーのIPアドレスをうっかりアクセス制限に登録していたのが原因でした。
アクセス禁止(403)が原因でブロックされました
HTTP 403 は、ユーザー エージェントが認証情報を提供したものの、アクセス権が付与されなかったことを意味します。しかし、Googlebot は認証情報を提供しないため、サーバーは間違ってこのエラーを返しています。このページはインデックスに登録されません。Googlebot がこのページをインデックスに登録するようにするには、ログインしていないユーザーを承認するか、Googlebot のリクエストを認証なしで明示的に許可する必要があります(ただし、Googlebot からのアクセスであることを確認する必要があります)。
ページ インデックス登録レポート – Search Console ヘルプ
僕はこれまでGoogleのクローラーは特別な力でIPアドレスなんかなく自由に駆け回っているのかと思っていました。クローラーも僕たちと同じでIPアドレスがあるんですね。
クローラーのミスなのかアクセスログを残す側(僕の場合「ConoHa」や「SiteGuard WP Plugin」)のミスなのか分かりませんが、クローラーを攻撃と誤検知してログに記録してしまったせいで、僕がそれらを「悪意ある攻撃だ!」と勘違いしてまとめてIPアドレスのアクセス制限(ブラックリスト)に登録しちゃった…ってのが今回の流れです。
この時点で「いや、僕はそんなアクセス制限なんて絶対にやってない!」って方は本記事の対象外です。別の原因があると思います。逆に「うわっ、僕もそれやった記憶がある…」って心当たりある方は見る価値があるかもです。
【対処法】GoogleクローラーのIPアドレスを見つけて解除してあげる
GoogleのクローラーのIPアドレスをブロックしてしまっているのが原因なので、元通り解除してあげることで問題が解決します。
ただし、Googleのクローラーは「これだ!」という一つのIPアドレスではなく複数のIPアドレスになっているので、自分がブロックしたIPアドレスの中で果たしてどれがGoogleのクローラーなのか調べるのが結構大変です。
大変…というかほぼ手探りになります。試しで解除してみて、アクセス禁止(403)が解除されてインデックスされるようになったかどうかを検証する長いスパンでの作業になります。1日そこらで問題解決するわけではないです。
公式サイトからGoogleクローラーのIPアドレスを調べる
以下のGoogle検索セントラル(Googleの公式SEO関連情報ポータル)が参考になります。Googleクローラーで使われるIPアドレスが網羅されています。
上記サイトで紹介されているリンクは以下のとおりです。4ページあります。
- https://developers.google.com/search/apis/ipranges/user-triggered-fetchers.json
- https://developers.google.com/search/apis/ipranges/special-crawlers.json
- https://developers.google.com/search/apis/ipranges/googlebot.json
- https://www.gstatic.com/ipranges/goog.json
それぞれ開くとGoogleのクローラーが使うIPアドレスがずらっと一覧で表示されます。
この一覧と自分がブロックしたIPアドレスの一覧を見比べてそれっぽいのがあったらアクセス制限から外す…という作業になります。
Google検索セントラルには「コマンドラインツールを使用します。ほとんどの場合この方法で十分です」と記載されていましたが、僕みたいな初心者は「コマンドラインツールって何?どっから利用できるの?hostコマンドを使用してリバースDNSルックアップを実行…?マジで何いってるの?」状態でした。
Google のクローラーであることを確認するには、次の 2 つの方法があります。
手動: 1 回限りのルックアップでは、コマンドライン ツールを使用します。ほとんどの場合、この方法で十分です。
Googlebot(Google クローラー)の確認方法 | Google 検索セントラル | ドキュメント | Google for Developers
自動: 大規模なルックアップでは、自動ソリューションを使用して、公開されている Googlebot の IP アドレスのリストとクローラーの IP アドレスを照合します。
コマンドライン ツールを使用する
Googlebot(Google クローラー)の確認方法 | Google 検索セントラル | ドキュメント | Google for Developers
1.ログにアクセスが記録されている IP アドレスについて、host コマンドを使用してリバース DNS ルックアップを実施します。
2.ドメイン名が googlebot.com、google.com、googleusercontent.com のいずれかであることを確認します。
3.ステップ 1 で取得したドメイン名で host コマンドを使用して、取得したドメイン名について DNS フォワード ルックアップを実施します。
4.これがログにアクセスが記録されていた元の IP アドレスと同じかどうかを確認します。
Windows11のコマンドプロンプト的な感じでささっとコマンド実行して結果に「Googleのクローラーです!」って表示されるタイプだと楽だと思うんですけどね…。
恐らくそのことを言っているんでしょうが、「ConoHa」とか「WordPress」におけるコマンドラインツールがどれなのかどうやって起動させるのか一切分かりません。
しょーがないので片っ端からCtrl+Fのページ内検索で調べていく手法です。
66から始まるのはGoogleクローラーの可能性がある
僕の環境で調べたところ僕は「66.249.79.〇」系をブロックしちゃっていたことが判明しました。「66.249.79.〇」系はGoogleクローラーでよく使われているIPアドレスです。
しょーがないじゃん…。ConoHaのWAF履歴に攻撃したと表示されていたんだから…。
もし同じように「66.249.79.〇」系をIPアクセス制限していた場合は解除してあげましょう。
ChatGPTに聞いて調べる
「ChatGPT」に聞いてみるのも一つの手かなと思います。
自分がブロックしたIPアドレスをコピペして「上記のIPアドレスの中からGoogleクローラーらしきIPアドレスを抽出してください」的な感じで質問します。
Google検索セントラルにも記載されていた内容と同じで「66.249.79.〇」系がGoogleクローラーっぽいと判断してくれました。というか多分Google検索セントラルから情報を取得していると思います。
「ChatGPT」の良さは自分がブロックしたIPアドレスを全部まとめて放り込んで質問したら、その中からGoogleクローラーらしきIPアドレスを抽出してくれる点かなと思います。
検索するより自由度が高く応用が効きやすいです。
僕の場合「66.249.79.4」というIPアドレスから攻撃された痕跡が残っていたのでIPアクセス制限に登録していました。
このIPアドレスは「Google検索セントラル」ページのIPアドレス一覧には掲載されていませんでしたが、「ChatGPT」に聞いたらGoogleクローラーの可能性が高いと判断してくれました。
「Google検索セントラル」だけだと「掲載されていないってことはやっぱり違うのかな。」ってなるかもですが、「ChatGPT」と合わせて活用することでより特定しやすくなると思います。
IPアドレス検索サービスを活用する
インターネット上にはいくつかIPアドレスを検索して逆引きでどういったものなのか教えてくれるサービスがあります。
- Web Spam Database and IP Blacklist Check(個人的に使いやすかった)
- WHOIS Search, Domain Name, Website, and IP Tools – Who.is
- IPアドレスから住所検索:国、地域の特定 | ラッコツールズ🔧
- IPひろば:メイン
- What Is My IP Address – See Your Public Address – IPv4 & IPv6
- Check IP Address Reputation | IP Reputation Lookup History | IP Reputation API
- Scamalytics(個人的に使いやすかった)
- WHOER IP Lookup – Check IP Location, DNS & Privacy
- サイバー脅威検索エンジン | Criminal IP(クリミナルアイピー)
- IPアドレス検索ツール | IPアドレス (日本語) 🔍
- IP Reputation/Blacklist Check, Online IP Reputation Lookup | APIVoid
英語だったり検出できる情報に差があったりサービスによって異なるので色々試すのがいいかなと思います。サービスによってもスパム(脅威)かそうじゃないか判定が異なることがあるので一つじゃなくて複数サービスで調べるのがおすすめです。
上記のようなサイトにアクセスして、サイト内の入力フォームにIPアドレスを入力します。
検索結果にあるホスト名、ネット名(NetName)、組織名(Org name)、DNS名(DNS name)あたりが「googlebot」、「google-proxy」、「google.com」、「googleusercontent」とかだったらGoogleのクローラーの可能性が高いです。
<!--IPアドレス検索ツールで調べてホスト名、ネット名(NetName)、組織名(Org name)、DNS名(DNS name)あたりが以下だった場合はGoogleクローラーの可能性がある-->
googlebot
google-proxy
google.com
googleusercontent
調べたIPアドレスをアクセス制限(ブラックリスト)に登録していた場合は解除してあげます。
ほぼ確定でGoogleクローラーのIPアドレスかどうか調べられる反面、一つずつ入力しないといけない手間と無料版だと大体制限がある点がデメリットです。まぁでも確実です。
個人的には「CleanTalk」や、アカウント作成が必要ですが登録することで1ヶ月50件まで調べられる「Scamalytics」あたりが見やすかったです。いくつか使いやすいサービスを見つけて無料版を乗りこなすと結構な数調べられると思います。
サーバーのエラーログから調べる
僕が使っている「ConoHa WING」での解説です。
「ConoHa WING」のコントロールパネル(管理画面)にアクセスします。上部の「WING」→左側サイドバーの「サイト管理」→「アクセス解析」→「ログ」を選択します。
「エラーログ」を選択します。ログを有効にしている場合はずらっと痕跡が表示されます。アクセスしようとして失敗しているIPアドレスなどを確認できます。
以下のような構成になっています。
<!--サンプル-->
[Tue Jan 28 13:32:41] [authz_core:error] [pid 〇〇] [client 〇〇] AH01630: client denied by server configuration: https://www.naporitansushi.com
<!--それぞれの意味-->
[アクセスされた日時] [エラーかどうか] [プロセス番号 [アクセスしてきたIPアドレス] Apacheのエラーコード:エラー内容と対象ページ
重要なのは「client 〇〇」の部分です。「〇〇」の部分にIPアドレスが記載されています。
「AH01630」はApacheのエラーコードで「client denied by server configuration」となっていた場合、十中八九IPアドレス制限が原因だと思います。
「クライアントがサーバーの設定により拒否された」という意味で、特定のIPアドレスやディレクトリへのアクセス制限している場合に発生します。そういった内容が何行にも記載されています。
この中で幅広いページ(記事だけでなく画像とかまで)にアクセスを試みようとしている同じIPアドレスがいくつかありました。その一つがまさに「Google検索セントラル」や「ChatGPT」に教えてもらった「66.249.79.〇」系でした。
つまり「Googleクローラーが僕のサイトや画像をインデックスするためにアクセスしたんだけどブロックされちゃっている」ってことなので、IPアドレス部分をコピーしてIPアクセス制限ページのブラックリストを開いてCtrl+Fでどうなのか調べます。
ポイントですが、エラーログ内のIPアドレスはポート番号まで記載されていることがあります。「66.249.79.〇:0」って感じで「:
」記号があります。
「ConoHa」のIPアクセス制限ページはIPアドレスのみで記述しているのでポート番号部分は含めずにコピーします。ページ内検索したIPアドレスが見事ブラックリスト内でヒットしたら削除して保存します。
もちろん悪意ある攻撃者のIPアドレスの可能性もあるので作業は慎重です。
ConoHaのリストから探すのが大変な場合
僕の場合、「ConoHa WING」に登録したブラックリストが多すぎて、そこからGoogleクローラーのIPアドレスを探して削除するのが大変でした。
ページ内検索(Ctrl+F)を使っても結局ちまちま作業には変わらないので大変です。
その場合一旦全部コピー(Ctrl+A→Ctrl+C)して、Excelやスプレッドシートなどの並び替え機能が実装されているエディターに貼り付けると作業がはかどります。
並び替えることでGoogleクローラーの可能性がある「66」から始まるIPアドレスがかたまって表示されるので一気に削除できます。削除した後再び全選択→コピーでブラックリストに登録します。
【解決したか確認】サチコでインデックス申請
クローラーが正常に巡回していって徐々に「アクセス禁止(403)が原因でブロックされました」の検出数が減っていけばOKです。1日2日の話ではなく長い目で検証する必要があります。
すぐに確認できる方法としては「URLがGoogleに登録されていません」になっている記事のインデックス申請です。
クローラー(のIPアドレス)をブロックしていた場合は「インデックス登録リクエストに失敗しました」エラーが出ますが、解除した後は「インデックス登録をリクエスト済み」になります。
インデックスされるかどうかはおいといて申請は成功したということは、クローラーがブロックされずにアクセス可能と判断したってことです。
IPアドレスのメモ
あくまで僕個人が判断したメモです。
僕がクローラーだと判断したIPアドレス
全てIPアドレス検索サービス(「IPアドレスから住所検索:国、地域の特定 | ラッコツールズ🔧」など)で調べて「googlebot」という結果がでたIPアドレスです。これらはアクセス制限を解除しました。
<!--Googleクローラーだと個人的に判断したIPアドレス-->
66.249.66.164
66.249.70.6
66.249.71.5
66.249.73.226
66.249.79.4
66.249.79.66
66.249.79.67
66.249.79.68
35.187.221.32
35.200.28.168
35.243.103.26
<!--ConoHa関連だと個人的に判断したIPアドレス-->
118.27.122.87
<!--Microsoft関連のクローラーだと個人的に判断したIPアドレス-->
52.167.144.187
52.185.154.105
52.187.42.241
52.187.74.132
40.65.153.122
上記の中で怪しいのは「35.〇〇〇」です。IPアドレスの脅威度・スパム度を調べるツールを使ったところ、脅威度がかなり高くパッと見は迷うことなくブロック対象だったんですが、ホスト名や所有者がGoogleだったので念のため解除しています。
もう少し様子見して明らかに攻撃・スパムっぽい挙動をしたらブロックしたいと思います。
上記以外にもいくつか日本からのアクセスで誤検知っぽいのがあったので解除しました。
Googleクローラーだけでなく、ChatGPTのクローラーなどもあるようです。各サービス(検索エンジン)ごとのクローラーのIPアドレスを把握しておく必要がありますね。
「52」から始まるIPアドレスもいくつか攻撃履歴に残っていたので登録していたんですが、調べてみると名前が「Microsoft Corporation」とか「msnbot-〇〇〇.search.msn.com」とかで恐らくMicrosoft Bing関連のクローラーだと思われます。
Microsoftは僕が調べた限りクローラーのIPアドレスを公開していなかったので実際は分かりませんが、念のため解除しておきました。
逆にブロック継続したIPアドレス
以下の特徴に当てはまるIPアドレスたちは継続してブロックしました。
IPアドレス | 国 |
---|---|
87で始まる系 | ブルガリア |
95で始まる系 | フランス |
193.37.32.〇〇 | シンガポール |
116.206.〇〇 | バングラデシュ |
「ConoHa WING」にあるWAF履歴の情報だけでなく、外部のチェックツールも使うことでより「あ、案の定スパムなんだな」と理解が深まりました。
判断迷っている系
amazonaws.com
一つずつIPアドレスを調べていると、52、54、15、13.208.〇〇で始まるものでホスト名が「〇〇amazonaws.com
」ってのがちょこちょこありました。
ぱっと見はAmazon関連で必要なやつかな?と思ったんですが、どうにもスパムうんぬんの内容がヒットしました。
- 迷惑なアクセス(その2) amazonaws.comの正体:ホームページ余話 – 倉金家ホームページ
- Amazonaws.com からの執拗なスパムアクセスの起源検出とそのアクセスを止めた方法を公開します! | Webテク倉庫
一方でRSS取得に必要なやつっていう記事もありました。
サービス自体はまともなんだけどスパムや攻撃利用の温床になってるとかそういう系なんですかね?分かりません。
vultrusercontent.com
IPアドレスの特徴はなかったんですが、いくつか「〇〇vultrusercontent.com
」ってホスト名や所有者名のIPアドレスがありました。いいのか悪いのか分かりません。少なくとも「ConoHa」のWAF履歴には攻撃してきたという記録が残っています。
判断の基準・コツ
僕の肌感覚だと「SiteGuard WP Plugin」のほうは正確で、「ConoHa WING」のWAF履歴は結構誤検知のIPアドレスも表示されている印象です。
ここでいう「SiteGuard WP Plugin」の正確とは、リストに載っているIPアドレスをツールで調べた時、ほぼスパムとか脅威度が高いと表示されて間違いがないという意味です。
一方で「ConoHa WING」のWAF履歴はそうじゃない通常のIPアドレスらしきものも結構な確率で混ざっていました。
僕は「ConoHa WING」のWAF履歴を見て、「攻撃内容が意図しないファイルの公開の可能性?、SQLインジェクションからの防御?、WordPressローカルファイルインクルードの可能性?、攻撃ツールやワームからのリクエストの可能性?よく分からないけど絶対悪意ありそう」で検証せずに迷わずブラックリストに登録しちゃっていました。
IPアドレスを調べるサービスを使ってみてみると、どう見てもただの日本国内にいる一個人って感じで当然脅威度やスパム度も検出されないIPアドレスが結構ありました。
傾向としてはWAFの履歴に1回や2回程度しか記録されていないIPアドレスは誤検知の可能性が高いと思います。一方で毎秒同じIPアドレスから色々な攻撃内容で記録されていた場合は実際調べると案の定って場合が多かったです。
1回2回しか記録されていない場合でも注意すべきIPアドレスがあります。末尾の数字が違うだけで最初のほうは全部同じパターンです。
本記事を書くにあたって今一度自分がブロックしていたIPアドレスをIPアドレス、国、ホスト名の項目でスプレッドシートにまとめてみましたが、最初は全部同じ数字で末尾の数字だけ異なる同じ国からの攻撃がありました。
実際一つずつ調べてもどれも脅威度は高いという結果だったのでブロック継続しました。
感想
以上、WordPressブログと連携させているGoogleサーチコンソールで特定のタイミング以降、大量の「アクセス禁止(403)が原因でブロックされました」になって記事がインデックスされなくなった原因と対処法でした。
基本的には「SiteGuard WP Plugin」のログイン履歴にのっている明らかに悪質と分かるIPアドレスだけアクセス制限して、それ以外は何もしないのがいいかなと思います。
どうしてもって場合は適宜ツールを使うなりGoogleクローラーじゃないか確かめたりして判断するといいかなと思います。
知識がない素人(僕)が軽率な判断でIPアドレスのアクセス制限に登録してしまうと、それこそ知らぬうちにGoogleクローラーを登録しちゃっててインデックスがバンバン解除されて検索結果に乗らなくなる…という事態になります。
ブログってそれなりのセキュリティ対策の知識やネットリテラシーが必要なのに、参入障壁は僕みたいなITド素人でも簡単に始められるくらい低いの罠ですよね。