SEOツールのボットをrobots.txtでクロール制御したり.htaccessでアクセス拒否する方法

自分のサイトや他人のサイトを分析するためにSEOツールを使っている人もいると思いますが、できるだけ自サイトの情報を抜かれないようにするために、SEOツールのクローラー(ロボット)をアクセス拒否したり、クロール制御するのがおすすめです。

ただし、SEOツールのクローラーをアクセス拒否しても外部から得られるような情報は第三者が見られます。見られなくなるのはサイト内部の情報です。

検索キーワードや順位、被リンク情報などはサイトの外部から取得される情報なので、自サイト側でSEOツールのクローラーを拒否しても第三者が見られます。

それなら拒否しても意味がないと感じるかもしれませんが、SEOツールのアクセスにメリットはないので、拒否しても問題ありません。SEOツールのサイト内部情報を利用してサイトを修正しているような人は、クロール制御することで情報が得られなくなるので注意です。

サブサイトから自演リンクしている人は、そのリンク元サイトでクローラーを拒否することで、メインサイトの被リンク情報から消すことができます。ビッグワードで上位表示してるのに大して被リンクがないと感じるときは、消されていることが多いです。

目次

robots.txtでクロール制御

最もお手軽なのは、robots.txtでクロール制御する方法です。ドメイントップに設置しているrobots.txtに追記します。

robots.txtを間違えて書いて、Googleボットをクロール拒否してしまうと大問題になるので注意しましょう。

robots.txtはドメインの最上位ディレクトリに設置しているもののみが有効です。

下層ディレクトリにWordPressを設置する場合でも、そのWordPressにrobots.txtを設置する必要はありません。

トップのrobots.txtに下層サイトのディレクトリを指定する形で書きます。(Google による robots.txt の指定の解釈

当サイトのrobots.txtは以下のようになっています。

User-agent: AhrefsBot
Disallow: /

User-agent: AhrefsSiteAudit
Disallow: /

User-agent: MJ12bot
Disallow: /

User-agent: SemrushBot
Disallow: /

User-agent: BLEXBot
Disallow: /

User-agent: DotBot
Disallow: /

User-agent: Barkrowler
Disallow: /

User-agent: ICC-Crawler
Disallow: /

User-agent: DataForSeoBot
Disallow: /

User-agent: Cincraw
Disallow: /

Ahrefsは2つのクローラーがあります。AhrefsSiteAuditは、Site Auditツール用のクローラーです。Site Auditで情報を抜かれたくないときは2つとも指定しましょう。

これだけで一般的なクローラーは拒否できますが、お行儀の悪いクローラーはrobots.txtを見ずにクロールを開始するため情報が抜かれます。

確実にクローラーからのアクセスを弾きたいときは.htaccessでアクセス拒否するのがよいでしょう。

AI用クローラーを拒否

SEOツールではありませんが、ChatGPTやGemini(Bard)、Vertex AI generative APIなどのAI用のクローラーを拒否したい場合は以下を追記します。

User-agent: GPTBot
Disallow: /

Use-Agent: Google-Extended
Disallow: /

Google-Extendedはユーザーエージェントではありませんが、Googleが提供するAIはGoogle-Extendedでクロール制御できます。AIは日々進化していますが、Google-Extendedで拒否しておけば、現行モデルだけではなく将来リリースされるモデルにも適用されるようです。

.htaccessでアクセス拒否

クローラーを.htaccessでアクセス拒否するときは、ユーザーエージェントを指定するのが一般的です。

利用しているサーバー(Apache)によって正しい書き方が変わるので注意してください。

当サイトはエックスサーバーを使っています。設定が完了したらエラーログを確認して、エラーが発生していないか見てみましょう。

# block bot
SetEnvIf User-Agent "AhrefsBot" denybot
SetEnvIf User-Agent "AhrefsSiteAudit" denybot
SetEnvIf User-Agent "MJ12bot" denybot
SetEnvIf User-Agent "SemrushBot" denybot
SetEnvIf User-Agent "BLEXBot" denybot
SetEnvIf User-Agent "DotBot" denybot
SetEnvIf User-Agent "Barkrowler" denybot
SetEnvIf User-Agent "ICC-Crawler" denybot
SetEnvIf User-Agent "DataForSeoBot" denybot
SetEnvIf User-Agent "Cincraw" denybot
deny from env=denybot
<Files robots.txt>
	Allow from all
</Files>

SEOツールのユーザーエージェントを指定してアクセス拒否しています。.htaccessで403 forbiddenを返して、robots.txtだけを閲覧させる場合です。

403を返すだけでも問題ありませんが、それだとアクセス解析にアクセス情報が上がってこないので、アクセスがあったことを確認しつつ転送量が発生しない状態にしています。

エックスサーバーのアクセス解析でロボット・スパイダー別のアクセスレポートを見るとこのようになっています。DotBotのアクセス数が異様に多いですね。

他にもクローラーはたくさんあるので、自分のサイトのアクセス解析やアクセスログを見ながら追加してみてください。下記の参考サイトでもたくさんのクローラーが紹介されています。

ユーザーエージェントを偽装するクローラーもあるようで、IPアドレスを特定して拒否する方法もありますが、そこまでやる必要はないと思います。

クローラーに関わらず、転送量が多いIPアドレスは情報を抜いている可能性があるので、IPアドレスで拒否してもよいでしょう。ただし、必要なIPアドレスを拒否しないように注意してください。

deny from ドメイン名
deny from IPアドレス

ドメイン名やIPアドレスを指定して拒否する場合はこのように書きます。

この記事を書いた人

竹内潤平のアバター 竹内潤平 代表取締役社長

Webマーケター/ファイナンシャルプランナー。埼玉県飯能市出身、1978年12月25日生。趣味は登山。Webライター歴23年。
SEO、HTML、CSS、WordPressが得意です。複数のサイトを自分自身で運営・管理しています。当サイトも私がテーマカスタマイズや記事の作成をしています。
個人で自動車ローンや住宅ローンを利用したことがあり、起業してからは法人で銀行融資や日本政策金融公庫の一般貸付、マル経融資でお金を借りた経験があります。
株式投資歴は20年以上で、現在は個別株投資やベンチャー投資をしつつ、NISAつみたて投資枠でオルカン、S&P500、日経225に投資しています。
FP技能士、宅地建物取引士、日商簿記検定、証券外務員の資格を保有。

運営者情報

会社名 株式会社アルビノ
代表者 代表取締役社長 竹内潤平
住所 〒160-0023
東京都新宿区西新宿3-3-13 西新宿水間ビル6階
電話番号 03-6914-6178
全社テレワーク中のため、お電話を頂いても対応できない状況となっています。
お問合せ メールフォーム
設立 2014年10月20日
資本金 1000万円
事業内容 Webマーケティング支援
メディア運営
ライフプランコンサルティング
法人番号 7011101071501
本社所在地 〒176-0012
東京都練馬区豊玉北4-4-5
インボイス登録番号 T7011101071501
目次