Ahrefs内部SEO監査での403Forbiddenはファイアウォール設定でクローラーがブロックされている(ホワイトリストIP)

Last Edited Time
Nov 27, 2021 6:13 AM
Category
SEO
Not yet (Unpublish)
Podcast
Super Published
image

総合的なSEO診断ツール「Ahrefs」のサイト内部監査(Site Audit)を実行した際、いくつかのページでエラーが発生。

Ahrefs以外にも、サイト内部監査に特化したSEOツールには SitebulbScreaming Frog などがありますね。

AhrefsのSite Audit(サイト内部監査)で、1つのページが403 Forbiddenステータスとして検出され、アクセス不可な状態として判断されました。

image

該当のページはCloudFlareのPage Rules機能でリダイレクトを設定したページであり、ブラウザから閲覧したところ問題なくリダイレクトされ、無事にリダイレクト先のページが閲覧できています。

また、本来は数百ページが存在するところ、Ahrefs Site Auditで辿れたのはわずか6ページのみ。

image

このことから、何らかの要因によってAhrefsのクローラーが該当ページへのアクセスを拒否されたと考えられました。

クローラーがきちんと動作するようにされなければ、せっかくのヘルススコア診断や内部サイトSEO診断も精度が下がってしまいます。

そこで以下、Ahrefsクローラーによる403 Forbiddenエラーを解消させるための原因調査結果と403エラー解消方法をお伝えします。

Ahrefsで403 Forbiddenが発生する要因

ここで、AhrefsのヘルプページでAhrefsにおける403 Forbiddenの取り扱いをみてみましょう。

The 403 (Forbidden) HTTP status code indicates that our crawler was not allowed to access the linked URL. Your server could have started to block requests from our crawler at some point of a crawl. This might happen due to a server or firewall configuration. You can whitelist our IP addresses and run a new crawl. This can also happen when your page has outgoing external links, and the external server blocks our crawler.

何らかの事情でAhrefsのクローラがページへのアクセスを拒否されたことから、403エラーとなっているようです。

This means that your site is most probably returning different content for our user-agent. In this case, you should check that you do not have a system/plugin blocking bots; and if you do, to whitelist our user-agent on that system.

ここから、Ahrefsクローラーがブロックされている要因として

  • サーバー側ファイアウォール設定
  • ソフトウェア側でのファイアウォール設定(WordPressであればセキュリティプラグイン等)
  • BASIC認証などによるアクセス制限

など、各レイヤーにおけるファイアウォールやアクセス制限でAhrefsのクローラーがブロックされている可能性が浮かび上がります。

ただ、今回は「リダイレクト設定をかけているURLのみエラー」となっていたため、サーバー側でのリダイレクト設定による影響の可能性がありました。

実際、「CloudflareのPage RuleによるCDNリダイレクトと、.htaccess設定によるサーバー側リダイレクトによってトップページに二重のリダイレクト設定がされていたので .htaccess設定によるリダイレクトを削除。

最終的な原因は、「WordPressのセキュリティプラグインによるIPブロック」が原因でした。

調査の途中経過において、CloudFlareファイアウォール設定によって403エラーが引き起こされている可能性があったため、AhrefsクローラーのIPアドレスをホワイトリストに登録する方法を調べました。

そこで以下、AhrefsクローラーのIPアドレスをCloudflareファイアウォールのホワイトリストに登録する方法をご紹介します。

AhrefsクローラーのIPアドレス範囲を確認

CloudFlareホワイトリストに登録する必要があるAhrefsクローラーのIPアドレスの範囲。 下記ページで確認することができます。

CloudFlareでAhrefsクローラーのIPアドレスをホワイトリスト一括登録

あとは、CloudFlareのIPリスト機能を利用して、AhrefsクローラーのIPアドレスをホワイトリストに一括登録します。

DNSサーバーのキャッシュ更新を待って再度Ahrefsでクロール

Cloudflareにホワイトリストを登録できたら、各所のDNSサーバーのキャッシュが更新されるのを待ちましょう。

CloudFlareファイアウォールが原因なら、再度AhrefsのAudit(サイト内部監査)のクロールを実行させると、無事にすべてのページをAhrefsクローラーでクロールさせることができるはずです。

手動で新規にクロールさせるには、Site Audit > 該当ドメイン > 画面右上の”New Crawl” で新しくクロールさせ直してサイト内部SEO監査を実行することができます。

WordPressのセキュリティプラグインにAhrefsのIPをホワイトリスト登録

WordPressセキュリティプラグイン"BBQ Pro"がAhrefsクローラーをファイアウォールでブロックしていた

私はWordPressのセキュリティプラグインとして、ファイアウォール機能をもつ"BBQ Pro"(有料版)を導入しています。

今回はこのBBQ ProがAhrefsクローラーをブロックしていたことが原因のようでした。

BBQ ProにホワイトリストIPを設定する方法

BBQ ProにおいてホワイトリストIPを登録する方法は下記。

BBQ Pro > Settings から、画面最下部の"Whitelist IPs"へ AhrefsクローラーのIPアドレス範囲をすべて登録。

image

設定は各IPアドレスごとにコンマで区切る必要があります。エディタ等で正規表現を用いて文末に, を追加して登録しましょう。

画像のように、改行があってもきちんとそれぞれホワイトリストIPとして認識してくれました。

WordfenceにもホワイトリストIPを登録

同様に、インストールしていた軽量総合セキュリティプラグイン"Wordfence"にもAhrefsクローラーのIPをホワイトリストに登録します。

Wordfence > Firewall > All Firewall Options > Advanced Firewall Options内 Allowlisted IP addresses that bypass all rules に記載します。

Wordfenceではコンマ区切りまたは各行区切りでOKのようなので、What is the list of your IP ranges? | Help Center - Ahrefs に記載されているAhrefsのIPアドレスをコピーしてそのままペースト。

各レイヤーのファイアウォールにAhrefsクローラーIPをホワイトリスト登録したことで、サイト内部監査がエラーなく実行されるように

以上のように、CloudFlareおよびWordPressにおけるファイアウォール設定にてそれぞれAhrefsクローラーIPをホワイトリスト登録して通してあげることで、無事にAhrefs Site Audit(サイト内部監査)でクローラーが辿れるようになりました。

image

冒頭画像の6ページのみのクロールではなく、無事に650ページほどクロール出来ていることが分かります。