robots.txt作成ガイド、特定のリンクのクロールを禁止

robots.txtとは何か

robots.txtは、ウェブサイト上で検索エンジンのクローラーがクロールする際のルールを通知するために使用されるものです。クローラーに、ウェブサイトのどのURLやどの部分がクロール可能で、どの部分がクロール制限であるかを通知します。

基本的には、robots.txtはウェブサイトのルートディレクトリに配置する必要があります。例えば、https://jikensitu.com/robots.txt のようなパスになります。また、その名前はsitemapとは異なり、自由に変更することはできません。配置場所や名前を変更した場合、その機能を正しく使用することはできません。

robots.txtの作成方法

robots.txtにはいくつかの要素を記述することができます。よく見られるのは「User-agent」「allow」「Disallow」「sitemap」「Crawl-delay」です。以下、それぞれの機能について説明します。

robots.txtでよく見られる5つの指令

「User-agent」:次のルールがどのクローラーに適用されるかを宣言します。この宣言を利用して、異なるクローラーに対して特定のリンクを許可/不許可することができます。例えば、Googleニュースのクローラーに対して特定のルールを適用する場合、次のように記述します。->User-agent: Googlebot News

「allow」:先ほど指定したクローラーがクロールを許可されるリンクを宣言します。記述する際は「パス」の形式で記述する必要があります。クローラーに特定のリンクのクロールを許可する場合、次のように記述します。->allow: /seo-knowledge

「Disallow」:先ほど指定したクローラーがクロールを禁止されるリンクを宣言します。記述する際は「パス」の形式で記述する必要があります。クローラーに特定のリンクのクロールを禁止する場合、次のように記述します。->disallow: /seo-knowledge

「sitemap」:クローラーにウェブサイトのsitemapの位置を通知します。一部のウェブサイトでは、sitemapの名前が一般的なものとは異なるため、sitemapのURLをここに記述すると、クローラーがすばやく見つけることができます。具体的な記述例は次の通りです。->sitemap: https://jikensitu.com/sitemap_index.xml

「Crawl-delay」:クローラーがページをクロールした後に一時停止する時間を遅延させることができます。この機能は、サーバーが短時間で大量のページをクローラーがクロールすることに対応できない場合に、クローラーのクロール量を効果的に減らし、サーバーの負担を軽減することができます。3秒間一時停止する場合、具体的な記述例は次の通りです。->crawl-delay: 3

robots.txtの記述例

User-agent: *
Disallow: /private
Disallow: /login
User-agent: googlebot-news
Disallow: *
allow: /news
allow: /promotion
crawl-delay: 0.2
user-agent: Bingbot
Disallow: /*?query=
sitemap: https://test.com/sitemap_index.xml
sitemap: https://test.com/sitemap_news.xml

まず、robots.txtのルールは上から下に読み込まれることを理解する必要があります。したがって、各クロールルールは”user-agent”で分割され、ルール演算式に基づいて読み込まれます。上記の例から、以下の規則を読み取ることができます。

●すべてのクローラーは、/privateおよび/loginを含むリンクをクロールすることは禁止されています。
●”googlebot-news”クローラーは、/newsおよび/promotionリンク以外のすべてのリンクをクロールすることは禁止されています。
●”googlebot-news”クローラーだけがページをクロールする際に0.2秒遅延する必要があります。
●そのウェブサイトのsitemapはhttps://test.com/sitemap_index.xmlおよびhttps://test.com/sitemap_news.xmlにあります。
●”Bingbot”クローラーは、queryパラメータを含むURLをクロールすることは禁止されています。

Googleクローラーの名前

クローラールールを作成する際には、相手のクローラーの名前が何であるかを事前に知る必要があります。以下に、一般的な検索エンジンのクローラーやSEOソフトウェアのクローラーの名前をいくつか紹介します。

Google:https://developers.google.com/search/docs/crawling-indexing/overview-google-crawlers
Bing:https://www.bing.com/webmasters/help/which-crawlers-does-bing-use-8c184ec0
ahrefs:https://ahrefs.com/robot
SEMrush:https://www.semrush.com/bot/
openai:https://platform.openai.com/docs/gptbot

robots.txt使用場合

プライベートメッセージを含むページのクロールを禁止する

ほとんどのプライベートメッセージを含むページ(例えば、会員情報ページなど)は、ログインが必要であり、クローラーが到達することはほとんどありません。しかし、データのプライバシーを保護するために、多くの電子商取引プラットフォームは、ログインページ、ショッピングカート、会員情報ページなどのクロールをクローラーに禁止しています。

パラメータによる重複ページの減少

ウェブサイトの進化に伴い、多くの機能は現在の検索エンジンにとっては古いものと見なされることがあります。特に、ウェブサイトがパラメータURLを使用している場合、設定の問題によりウェブサイトが大量の重複ページを生成する可能性があります。Google Search Consoleのインデックス警告を処理する必要があるか?8つの一般的なレポート何がCanonicalか?重複ページの問題と解決策について説明していますが、パラメータによる重複ページはまだウェブサイトのクロール予算を消費します。したがって、robots.txtを使用してクローラーが特定のパラメータのページをクロールすることを禁止することは、重複ページの解決策の一つとなります。ただし、使用する前にそのパラメータの機能を詳細に確認する必要があります。重要なページのクロールを禁止したり、コンテンツリンクの効果を減らしたりすることがないように注意が必要です。

短時間でのクローラーによる大量データのクロールを減らす

一部のウェブサイトでは、ユーザー数が特に多いわけではなく、ピーク時でもないにもかかわらず、サーバーの過負荷が頻繁に発生することがあります。これは、クローラーが短時間でウェブサイトの多くのデータをクロールするため、サーバーが過負荷になる可能性があるからです。ホスト側でどのソースのクローラーがクロールしているかを確認できる場合、disallowやcrawl-delayなどの指令を使用して、クローラーが一度に大量のデータをクロールすることを制限することができます。

特定のクローラーによるウェブサイトデータのクロールを防ぐ

以前、あるクライアントから要求がありました。彼は、ahrefs、SEMrushなどのSEOツールが彼のデータをクロールすることを望んでいませんでした。これにより、競合他社がウェブサイトの状況を知ることを防ぐことができます。また、過去には、自社のデータがchatGPTに使用されるのを避けるために、openAIが自分たちのウェブサイトのデータをクロールできないようにする方法を考える人もいました。上記の状況に対処するためには、user-agentを使用して特定のクローラーを指定し、その後disallowルールを使用してそのクローラーがすべてのURLをクロールすることを禁止することができます。

しかし、robots.txtのルールはあくまで”通知”の役割に過ぎません。コンテンツの無断使用を行うクローラーに対しては、robots.txtはあまり効果的ではないかもしれません。そのようなクローラーを防ぐためには、さらに多くの保護措置を制限する必要があります。

これだけ読んだら、あなたはrobots.txtの設定についてある程度理解したと思います。私の記事が気に入ったり、またはこれからもSEOに関する最新情報を知りたいと思ったら、私のウェブサイトをフォローしてください。私は知識を皆さんと共有するために努力していきます:) 

Last Updated on 2月 23, 2024 by 己見室

Comments

No comments yet. Why don’t you start the discussion?

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です