Ahrefs内部SEO監査での403Forbiddenはファイアウォール設定が原因(ホワイトリストIP) の記事で書いたように、AhrefsクローラーがCloudFlareファイアウォールに引っかかり、サイト監査で予期せぬ403 Forbiddenエラーとして警告されてしまう、という状態に陥っていました。
本記事ではCloudFlareのIPリスト機能を利用し、AhrefsクローラーのIPアドレスを一括でホワイトリスト登録する方法をご紹介します。
- CloudFlareでAhrefsクローラーのIPアドレスをホワイトリスト個別登録
- IPリスト機能を使ってCloudFlareホワイトリストにIPを一括登録
- 作成したIPリストをホワイトリストとして適用させる
- Ahrefs IPアドレスのホワイトリスト登録が面倒なら、Known Botsを一括で許可するという手も
- WordPressの場合はファイアウォールプラグインにもホワイトリスト登録をしておくなど、ソフトウェアレイヤーにも必要な設定を実施
CloudFlareでAhrefsクローラーのIPアドレスをホワイトリスト個別登録
まず、一括登録のためのIPリストを使わない、個別登録の方法からおさらい。
CloudFlareのファイアウォールルールを変更し、ファイアウォールの通過を許可するIPアドレスを指定します。
How to whitelist Ahrefs IPs in Cloudflare? | Help Center - Ahrefs
CloudFlare公式ヘルプ: Configuring IP Access Rules – Cloudflare Help Center
CloudFlareコミュニティ回答: Cloudflare blocking Ahrefs bots/IPs from crawling my site for a site audit? - General - Cloudflare Community
Firewall > Tools の画面からIPアドレスを指定してホワイトリスト登録することができます。
Cloudflareホワイトリストに登録すべきahrefsのIPアドレスは下記から確認。
What is the list of your IP ranges? | Help Center - Ahrefs
リンク先のNote:にもあるとおり、Cloudflareは /26 rangeでのIP登録を受け付けていません。 そのため、51.222.253.0/26 のIP登録については個別に1つずつ、51.222.253.0 〜 51.222.253.63 までの番号を登録する必要があります。
実際、Pv4の範囲内の/16または/24で終わるIPアドレスの値は通常のとおり登録できますが、/26の形で登録しようとすると、下記のエラーメッセージが表示されます。
Only an IPv4 range (CIDR) value of /16 or /24 is allowed for IP Access Rules
しかし、CloudFlareクローラーが利用するIPアドレスは数が多い(サブネットマスクの範囲で指定できない個別IPが多い)ので、下記のように1つ1つ入力していくと大変時間がかかってしまいます…!
参考: IPアドレスの範囲の指定~「/」記号とサブネットマスクの理解
そこで、以下で説明するようにIPリスト機能を使ってCloudflareにホワイトリストIPを一括登録していくと便利です。
IPリスト機能を使ってCloudFlareホワイトリストにIPを一括登録
Introducing IP Lists によると、IPリスト機能を利用すれば合計1,000までのIPアドレスのリストを作成し、一括ホワイトリスト登録できるとのこと。
リスト機能はドメインごとの設定画面ではなく、自身のアカウントページで設定することとなります。
(旧ダッシュボードの場合)右上のプロフィールアイコン > Account Home > Configurations > Lists
(新ダッシュボードの場合)画面左側メニュー: アカウントの管理 > 構成 > リスト
Create New List (新規リストを作成) をクリックします。
任意の名称をつけてリストの空箱を新規作成。
次画面の Add items to list (項目をリストに追加)で What is the list of your IP ranges? | Help Center - Ahrefs に列挙されているIPアドレスリストをコピーして、作成するリストの中身とします。
ただし、前述のとおり最初の51.222.253.0/26 は/26で終わるため登録できません。個別に1つずつ、51.222.253.0 〜 51.222.253.63 までの番号を登録します。
また、” We also use the individual IPs in the code block below.” にある部分のIPも登録します。
この入力フォームを見たときは、わざわざCSVを作成してアップロードしなければならないのか…と思ったのですが
IP Addressの空白欄に入力カーソルを置いてコピーしたIPアドレス列挙列をペーストしたところ…
このように一括でペーストされました!!!神です。
Add to listをクリックしてリストの作成を完了させます。
実に169項目のリストとなりました。
作成したIPリストをホワイトリストとして適用させる
参考: Use lists in expressions · Cloudflare Firewall Rules docs
リスト作成が完了したら、作成したIPリストを適用させる工程が必要です。 適用させたいドメインにホワイトリストとしてリストを登録させていきます。
アカウントページから離れ、ルール適用させたいドメインを選択。 アカウントページ > Webサイト > ドメイン選択)
Firewall > Firewall Rules > Create Firewall Rules
ファイアウォール名を任意のもので作成。下記のようにそれぞれ設定してホワイトリストとしてIPリストを登録します。
- Field: IP Source Address (送信元のIPアドレス)
- Operator: is in list (リストに含まれる)
- Value: 作成したリスト名称
- Then....(以下を実行) : Allow (許可)
内容を確認したらDeployで有効化。
下記のように登録されていたら、作成したIPリストがホワイトリストとして機能しているはずです。
これで完了です!
なお、ホワイトリストが実際に適用された状態でアクセスするには、各所のDNSサーバーのキャッシュが更新されることを待つ必要があります。
Whitelist Crawler AHREFS not working AT ALL - Security - Cloudflare Community
Ahrefs IPアドレスのホワイトリスト登録が面倒なら、Known Botsを一括で許可するという手も
あまり推奨はしませんが、既知のbot群(Known Bots)を一律にアクセス許可させる方法もあります。
CloudFlareでは、ahrefs, apple, baido, google, yahoo, yandexなどのbotがが Known Botsとしてあらかじめ登録されています。
Frequently asked questions (FAQ) · Cloudflare Firewall Rules docs
Known Botsを一律にアクセス許可する方法は下記。
ドメイン設定で Firewall > Firewall Rules > Create a Firewall Rule
Known Botsをすべてアクセス許可にする
WordPressの場合はファイアウォールプラグインにもホワイトリスト登録をしておくなど、ソフトウェアレイヤーにも必要な設定を実施
Cloudflareにおいては上記でホワイトリスト登録が完了です。
しかし、WordPressなどのソフトウェアにおいてはセキュリティプラグインが存在し、そのファイアウォール設定によってアクセスが弾かれている場合もあります。
Cloudflareのファイアウォール設定を確認したら、ソフトウェア・サーバーなど他のレイヤーにおいても設定を確認しておきましょう。
WordPressのセキュリティ・ファイアウォールプラグインである”Wordfence”および”BBQ Pro”のホワイトリスト設定については Ahrefs内部SEO監査での403Forbiddenはファイアウォール設定が原因(ホワイトリストIP) の記事に設定方法を記述しています。