Ahrefs内部SEO監査での403Forbiddenはファイアウォール設定が原因(ホワイトリストIP)

最新の更新日
Mar 18, 2022 1:16 PM
Target Keywords
vol.

総合的なSEO診断ツール「Ahrefs」のサイト内部監査(Site Audit)を実行した際、いくつかのページでエラーが発生。403Forbiddenのエラーが表示され、どうやらクローラーによるクロールがブロックされているよう。

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

image

下画像のように、AhrefsのSite Audit(サイト内部監査)で、403 Forbiddenステータスとして検出され、アクセス不可な状態として判断されました。

image

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

また、本来は数百ページが存在するところ、Ahrefs Site AuditによりAhrefsのクローラーが辿れたのはわずか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のセキュリティプラグイン(BBQ Pro)によるIPブロック」が原因でした。

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

そこで以下、

  • CloudflareファイアウォールにAhrefsクローラーのIPアドレスをホワイトリスト登録する方法
  • WordPressセキュリティプラグイン(BBQ Pro, Wordfence)にAhrefsクローラーのIPをホワイトリスト登録する方法

をご紹介します。

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"(有料版)を導入しています。

今回、Ahrefsがクロールできなかった原因はBBQ ProがAhrefsクローラーをブロックしていたためでした。

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

WordPressのセキュリティプラグイン(BBQ Pro)においてホワイトリストIPを登録する方法は下記。

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

image

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

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

コンマ区切り処理めんどくさい…! という人のために下に貼っておきます。(文頭矢印をクリックでリストを開く)

BBQPro, Wordfenceにホワイトリスト登録するahrefsクローラーのコンマ区切り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のクローラーについてファイアウォールを通してあげることで、無事にAhrefs Site Audit(サイト内部監査)でクローラーが辿れるようになりました。

image

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

無事に解決。Ahrefs内部SEO監査での403Forbiddenエラーが出たときは、各レイヤーのファイアウォール設定を見直して、Ahrefsクローラーが通れるようにしてあげましょう。

Category: