robots.txtの作成と記述方法 使い方と注意点

2017年9月22日

robots.txtとはロボット型検索エンジンのクローラーの巡回を指示するファイルです。クローラーが原因でサーバーに負荷がかかっている場合、robots.txtを使用して不要なコンテンツへのアクセスを制限し、サーバー負荷軽減と巡回効率化を行う事ができます。
通常は、robots.txtというファイルを作成し、クローラーを制御する記述を含めてウェブサイトのトップディレクトリの直下にftpでアップロードします。





robots.txtはどのような場合に必要か?

全てのページを検索結果に表示させたい場合には、特に設定する必要はありません。
ウェブサイトの規模が大きく、クローラーがサーバーのパフォーマンスに大きく影響している場合には、robots.txtでクロールを制御します。それとともにクロール効率化の為にXMLサイトマップrssフィードを設定しておくと良いでしょう。


robots.txtはクロールをコントロールする目的のみに使用します。検索結果に表示させない目的では使用する事ができません。
その場合はnoindexベーシック認証を使用しましょう。




クロールを制限するページ

例えば、以下の用途が考えられます。

CMSを使用している場合はCMSのログインページ

検索エンジンに巡回させる意味がありませんので、ブロックしても良いでしょう。


会員向けのコンテンツ

一般的にはベーシック認証などを使用して第三者のアクセス自体を制限します。


ショッピングカート内の決済プロセス

ECサイトの場合は、一般的には商品ページから購入ボタンをクリックすると決済画面に遷移します。(この決済画面のURLは訪問者ごとに異なり、動的に生成されると思います。)


カート内のページのように動的に生成されるURLは検索ユーザーにとっては価値の無いページです。
規模が大きなサイトになるとクローラーの巡回効率が落ち、サーバーへの負荷も高くなっていく場合があります。


クローラーは毎日あなたのウェブサイトの全ページを巡回しているわけではなく、サイトの規模や更新頻度などの要素に応じてクロールの際にダウンロードするサイズを割り当てています。
上記のような不要なページにクローラーが巡回する事でサーバーへの負荷が増す為、このような場合においてrobots.txtを使用すると良いでしょう。




robots.txtの記述方法

User-agent: *
Disallow: /wp-admin/
Sitemap: http://www.example.com/sitemap.xml


WordPressの場合は、上記のように設定されている事が多いと思います。
これは、全てのクローラーに対して、/wp-admin/へのアクセスをブロックする為の記述です。


User-agent

User-agentは、ユーザーエージェントと読みます。
ここに対象の検索エンジンのクローラーを指定します。


各検索エンジンクローラーのユーザーエージェントは、以下のページから確認できます。
http://www.robotstxt.org/db.html


Disallow

Disallowは、指定したURLへの巡回をブロックします。

ウェブサイト公開前であれば、「/」スラッシュでウェブサイト全体の巡回をブロックします。
特定のディレクトリ内を全てブロックする場合は、「/sample/」のように記述します。(/sample/ディレクトリ内を全てブロックする記述です。)
「/privacy.php」のように特定のページ単位でも指定ができます。


他にもAllowという記述をする事もあります。これは、Disallowでブロックされたディレクトリ内の特定の子ディレクトリのURLのクロールのみを許可する場合に記述します。


Sitemap:

XMLサイトマップの場所をクローラーに伝えます。
Search ConsoleでXMLサイトマップを登録していれば不要かもしれません。


より詳しい記述方法は、「robots.txt ファイルを作成する」をご確認ください。




robots.txtの形式、アップロード場所

robots.txtというファイル名で保存し、ウェブサイトのディレクトリトップ(第一階層)にアップロードします。
サブドメインでもトップディレクトリにアップロードすれば認識されるようです。
但し、サブディレクトリにアップロードしても検出されないようです。


ファイル形式

Robots.txt の仕様については、”

予期されるファイル形式は、UTF-8 でエンコードされた書式なしテキストです。このファイルは、CR、CR/LF、または LF で区切られたレコード(行)で構成されます。
“とされていますのでご注意ください。


ファイルサイズの上限

500KBまでのサイズ制限があります。

Robots.txt の仕様 – ファイル形式」参照


最後にrobots.txtのエラーが無いか確認

Search Consoleのrobots.txtテスターでエラーが無いか確認しましょう。
Search Consoleの左側メニュー内の「クロール」→「robots.txtテスター」をクリックしてアップロード済みのrobots.txtをチェックします。




robots.txtの注意点

robots.txtの仕様ではいくつか注意点があります。

robots.txtの強制力

robots.txtはGoogleなどの主要な検索エンジンは記述通り指示に従うようですが、中には無視するクローラーもあるようです。このようなケースを防ぐには、ベーシック認証を設定した方がよいかもしれません。


外部参照リンクから巡回されたページはブロックされない可能性も

クローラーが他のウェブサイトからの参照リンクを辿ってrobots.txtでブロックされているあなたのページに巡回してしまった場合は、インデックスされてしまう可能性はあるようです。ベーシック認証や、noindexメタタグなどを使用してブロックしておくと良いでしょう。


noindexとrobots.txtでよくある誤った設定

上記のケースとは逆に、既存のインデックスされているページを検索エンジンに表示させないようにメタでnoindexを設定し、robots.txtでそのページへのクロールもブロックしてしまうと、いつまでたっても検索結果に表示されたままになってしまうようです。



robots.txtの設定とnoindexの設定はクローラーを制御するという意味では似たような部分がありますが、正しく理解した上で使用しなければなりません。


robots.txtの設定ミスは致命的

誤ってウェブサイト全体をブロックしてしまうと、検索結果上で多くのページが表示されなくなります。
誤った記述が無いか確認し、robots.txtテスターでのチェックも必ず行いましょう。


リアルタイムでは処理されない

robots.txtを設定したからといってリアルタイムで検索結果に表示されなくなるわけではありません。クローラーがrobots.txtを見て、処理をした後に反映されます。
robots.txtでブロックしたページを検索結果に表示させる際も同様の処理になるでしょうから処理完了までの時間はまちまちです。(クローラーの巡回頻度によります。)


cssやjavascriptなどもブロックするべき?

クローラーの巡回効率ばかり気にしてしまうと、不要だと思うものを全てブロックしてしまいたくなりますが、cssやjavascriptはブロックしないように注意しましょう。
2014年5月23日にGoogleのJavaScriptの処理能力が向上した事をウェブマスター向け公式ブログで発言しています

※Official Google Webmaster Central Blog参照
Understanding web pages better


ウェブページを更に理解できるようになった

1998年にサービスを開始した際には、ほとんどJavaScriptやCSSについては問題とはなっていなかった。
それ程多くは使用されてなく、JavaScriptに関してはページの要素をピカピカさせるぐらいだった。


その時と比較すると大きく変わりました。ウェブはリッチでダイナミックで、JavaScriptを多く使用した優れたウェブサイトが登場しました。
今日、このようなよりリッチになったウェブサイトをレンダリングする能力について触れたいと思います。つまり、Googleは外部リソースや、JavaScriptの実行、CSSの適応を含めてコンテンツを現代のウェブブラウザのように見ていてるという意味です。


もともとGoogleは、HTTP body内のテキストコンテンツのみを見ていて、一般的なブラウザがJavaScriptを実行して、表示されている様には、解釈できていませんでした。


JavaScriptによってレンダリングされる評価すべきコンテンツページが出てくるようになった時には、まだGoogleはその中身を検索者に知らせる事ができず、検索者やウェブマスターにとって残念な結果となっていました。


この問題を解決する為に、GoogleはJavaScriptを実行してページを理解する事に挑戦する事を決めました。現在のウェブのスケールでこの取り組みを行う事は非常に難しい事ですが、それを行う価値があると考え決定しました。ある期間でGoogleは段階的に改良してきており、過去数ヶ月間、Googleのインデックスシステムは通常のブラウザがJavaScriptをオンにしている状態と同様に実際のウェブページをレンダリングしています。


まだレンダリングは完全ではありませんので、ウェブサイトによってはマイナスのインパクトが発生するかもしれません。
ここでは発生する可能性のある問題と、それを回避する方法を記載します。


  • 参照ファイルとしているJavaScriptやCSSをrobots.txtでブロックしていると、Googlebotはそれらを見る事ができず、平均的なユーザーのようにインデックスシステムはそのページを見る事ができません。
    この場合は、Googlebotがそれらを閲覧できるようにする事で、インデックスされやすくなります。
    これは特にモバイルウェブサイトで重要で、CSSやJavaScriptのような外部リソースは、Googleのアルゴリズムにそのページがモバイル用に最適化されている事を理解させる手助けとなります。

  • ウェブサーバーがクローラーのリクエスト量を処理できない場合も、Googleがレンダリングする能力にマイナスのインパクトを引き起こすかもしれません。Googleによるページのレンダリングを可能にするには、サーバーがクロールリクエストを処理できるか確認します。

  • ウェブサイトをデグレードさせる事は一つの解決になります。こうする事で、もしJavaScriptと互換性の無いブラウザであっても、訪問者はコンテンツを見る事ができます。また、JavaScriptを実行できない検索エンジンや、JavaScriptをオフにしている訪問者にとっても有効な方法です。

  • 複雑で不可解なJavaScriptは、完全かつ正確にページをレンダリングする事ができません。
    ページからコンテンツを取り除くようなJavaScriptはコンテンツをインデックスする妨げとなります。

Java Scritpについては以前にmatt cutts氏の方でも補足していましたのでご紹介します。


GooglebotはJavaScriptの内容をある程度まで理解できるようになっています。JavaScript内のURLも参照し、巡回する事ができます。
クローラーによるサイトへの負荷やクロールの効率性を考えるとすれば、全てのJavaScriptのクロールを許可しない設定にするべきなのでしょうか?
Matt Cutts氏が回答しています。



JavaScriptはブロックしない方が良い

個々のJavaScriptファイルに対してクロールを許可しない設定は状況に応じて使っていけばよいのですが、全てのJavaSciprtに対してクロールを許可しない設定を行う事はおすすめしません。


一般的には、GoogleはJavaSciprtの内容を取得して、処理、実行し中身について、他にどのようなリンクがあるかなどを判別するのに役立ちます。こうする事で、Googleはサイトの深く多くのページを理解する事ができます。


ですので、JavaScriptも、CSSもブロックしない方が良いでしょう。また、個別にブロックする際、Googleは属性を見ますので、nofollow属性を個別のURLごとに設定する事ができます。


重複コンテンツに対してはrobots.txtは使用しない

robots.txtを重複コンテンツ対策で設置する事はGoogleのJohn Mueller氏もすすめていません。
Googleは重複コンテンツによる分散したコンテンツの評価を一つにまとめる仕組みがあります。
robots.txtを使用してブロックしてしまうと、ブロックされた重複コンテンツの評価を捨ててしまう事にもなるので、逆に評価が薄まってしまうかもしれません。
robots.txtを使用するのではなく、301リダイレクトやcanonical属性を使用するという方法が正しい対処方法となります。

重複コンテンツについては、以下のページをご参照ください。
重複コンテンツはSEOにマイナスになる?



robots.txtはクローラーが巡回する事で重大なサーバーリソースに関する技術的な問題が発生した場合には設置をおすすめする、と発言しています。



このエントリーをはてなブックマークに追加


野澤洋介

この記事を書いた人

アレグロマーケティング代表取締役 野澤洋介

SEOは考え方はシンプルですが、いざ実践するとなかなか思うようにいきません。
当ブログでは、読者の方に成功も失敗も合わせて情報を共有し、同じような悩みを解決できればという思いで運営しています。


著書:「最強の効果を生みだす 新しいSEOの教科書」(技術評論社)

follow us in feedly


関連記事


SEO管理ツール Spresseo(エスプレッセオ)

コンテンツが増えてきたらランキングの管理をツールで効率化しましょう。
ページごとの内部最適化や、キーワードの順位取得や競合比較、獲得した被リンクのレポートを自動化できます。



▲ ページトップ ▲
自動XMLサイトマップ管理ツールトライアル版配布中