meta要素robotsは、検索エンジンのクローラー(スパイダー)の制御を行うタグです。

GoogleやBingなどの一般的な検索エンジンのクローラーはmeta要素robotsの指示に従って行動してくれます。

検索エンジンにインデックスしてもらいたいページや、辿ってほしくないページを指定することができます。

robots.txtでもクローラーの制御は可能ですが、robots.txtは「辿るな」という指示ができるだけなのに対して、robots metaタグでは「この先の辿ってもいいけどこのページはインデックスしないでね」といった細かい設定ができます。

今まではとりあえずたくさんのページをインデックスさせておくというのが検索エンジンを使った集客の常套手段でしたが、パンダ・アップデートが導入されてからは、低品質なコンテンツをインデックスさせる事がサイト全体の評価を大きく下げる要因となりました。
(パンダアップデート導入される前からも低品質なコンテンツをたくさんインデックスさせるのは良くない行為でしたが、パンダアップデート以降、低品質なコンテンツをインデックスさせる影響が顕著にSERPsに出るようになりました。)

今回の記事ではrobots metaタグの使い方と解説、どのようなシーンで使えば良いのか解説していきます。

robots metaタグ

robots metaタグの使い方

robots metaタグはページのヘッドセクションに記述します。

複数の属性を指定する場合 ,(カンマ)で区切ります。

記述例

<meta name=”robots” content=”noindex,nofollow” />

name属性は何に対してという意味です。
今回はrobotsとなっているので検索エンジン(クローラーやインデクサー)に対しての命令するよという意味になります。

content属性は指示の内容になります。
今回の例ではnoindex,nofollowになっていますので、「検索エンジンに登録しないでください。リンク先を辿らないでください」という命令になります。

つまり、「検索エンジンさんにお願い。このページは登録しないでね。それとこの先のリンク見に行かないでね」となるわけです。

name属性で指定できる対象

  • robots:クローラー全般
  • googlebot:Google
  • bingbot:Bing
  • yetibot:NAVER
  • slurp:YAHOO
  • baiduspider:百度

他にも指定できる対象はありますが、一例をあげてみました。

<meta name=”robots” content=”hoge”>ですと、クローラー全般への指示になりますが、<meta name=”googlebot” content=”hoge”>ですと、Googleにのみの命令になります。

ただ、検索エンジンにあわせてインデックスさせたり、させなかったりを考えていくメリットもあまり浮かびませんので、クローラーに指示を出す時はrobotsと指定するのが良いでしょう。

現在の日本の検索エンジンの主流はGoogleですので、それ以外の検索エンジンのことはあまり意識しなくていいでしょう。

なお、Yahoo検索もエンジン部分はGoogleを採用していますので、特にYahooに向けて何か意識する必要はありません。

content属性に記述できる指示

  • index:インデックスしてください
  • follow:リンク先を辿ってください
  • noindex:インデックスしないでください
  • nofollow:リンク先を辿らないでください
  • none:noindex,nofollowと同じ意味
  • noarchive:検索結果にキャッシュへのリンクを出さないでください
  • noodp:スニペットにDMOZの紹介文を引用しないでください
  • noydir:スニペットにヤフーディレクトリの紹介文を引用しないでください
  • unavailable_after: 24-Dec-2012 12:34:56 JST:2012年12月24日の日本時間12時34分56秒以降は検索結果から外してください(これは例です。好きな日時や時間に書き換えてください)

例:<meta name=”robots” content=”noindex,follow”>

上記の例ですと、「インデックスはしないでください。ただしリンク先は辿って下さい」という意味になります。

<meta name=”robots” content=”noindex”>でも記述的な意味は同じなのですが、何かの間違いでクローリングされない可能性がありますので、念の為にfollowを付けておくといいでしょう。

こんなシーンで使いたい

noindex,nofollow及びnone

検索エンジンを完全に拒否する命令文になります。

インデックスをされることはありませんし、そこからリンクを辿ることも行いません。

当然、ページランクは生み出されませんし、リンクを張られてページランクが流れてきていたとしても、その先のリンクにページランクは流しません。

公開前のサイトに指定することが多いと思われます。

ただし、検索エンジンにインデックスされないだけで、URLを知っているひとはアクセスできますので、関係者以外のアクセスを認めないサイトを作りたい場合は、Basic認証等を利用したパスワード認証や、.htaccessを使ったIPアドレスによるアクセス制限を行いましょう。

noindex,follow

noindex,nofollowは検索エンジンに載せたくないサイトで全体的に使うことが多いです。

一部のページのみを検索から除外する場合、noindex,followを使うことが基本形となります。

インデックスはされませんが、クローラーはそのリンク先を辿っていけるのでクローラービリティには影響を与えません。

ページランクの受け渡すこともできます。

ユーザーにとっては必要だが、検索エンジンに評価されない内容の薄いページ

ユーザービリティを考慮すると残しておいたほうが良いと考えられるが、インデックスさせる必要はないページ。

例えばメールフォームをインデックスしても、検索ユーザーの役には立たないと考えられますのでnoindex,followにしておくといいでしょう。

CMSが自動で生成してしまう重複ページ

WordPressなどのCMSが自動で生成してしまうページネーションやアーカイブページ、タグページ、検索結果などをnoindex,followにすることにより、無駄なページや重複ページがインデックスされることを防ぎます。

特にCMSでたくさんのタグをつけた場合に発生する全く同じ内容のページや、1記事しか用意されていないタグページが複数存在して重複することがあります。

スパムを行う目的で作っている重複コンテンツではないにせよ、検索エンジンに無駄なページをインデックスさせてしまうことはよろしくありません。

index.nofollow

そのページの内容はインデックスするが、リンク先は辿らないような指定になります。

悪徳業者のウェブサイトや、スパムサイトのリンクを集め、ユーザーに注意を促すようなページを作る場合には使えるかもしれません。

ですが、内部リンクに関してもnofollowになってしまいますので、出来るならrobots metaタグのindex,nofollowではなく、リンク1本1本にrel=”nofollow”属性をつける方がいいでしょう。

noarchive

検索結果にキャッシュへのリンクを表示しなくなります。

昔はひどい環境のサーバーも多く、素早く表示出来る検索エンジンの用意したキャッシュページをよく利用したものですが、現在はほとんどキャッシュページを見る機会もなくなってきています。

古い情報のキャッシュが残っていても大したメリットもありませんので、noarchiveを指定してキャッシュページへのリンクを非表示にするのも悪くない方法です。

unavailable_after

期間限定ページに使用します。

3日間限定のバーゲンセール等のページに使うといいでしょう。

検索経由で発見したが、アクセスした時には既にセール期間が終わっていたらユーザーはガッカリしてしまいますが、unavailable_afterを使い、期間が過ぎると検索結果から除外できるようにするのも良いでしょう。

注意点

質の低いと思われるページにnoindexを付けるのは最終手段

質の低いページをどんどんインデックスさせていくと、せっかく良いコンテンツを公開されても、質の低いページが良いページの足を引っ張ることになります。

そこで、質が低いページにnoindex,followをつけるのですが、これを使うシーンは最終手段だと思って下さい。

noindexを指示しているということは、そのページが検索エンジン上に存在しなくなるということです。

自動で生成されてしまう重複ページ等の場合はnoindexをつけることになりますが、通常のコンテンツならnoindex,followで検索エンジン上から葬り去るよりも、コンテンツの内容を増やしていって品質を上げる方が、より良い選択となります。

robots.txtとの併用に注意

robots.txtでブロックしたページはクローラーがアクセス出来ない為にインデックスされませんが、SERPsに「この結果の説明は、このサイトの robots.txt により表示されません」という文言とともにURLが表示されることがあります。

SERPsに絶対に表示させたくない場合には、クローラーのアクセスを許可した状態で<meta name=”robots” content=”noindex” />を使います。

robots.txtで登録したくないページのクロールを禁じていると、クローラーはそのページにアクセスすることができませんので<meta name=”robots” content=”noindex” />タグを取得する事ができません。

  • noindex:検索結果に表示されない
  • robots.txtでブロック:クローラーはそのページにアクセス出来ないので内容をインデックスはできないが、そこに何かあることをSERPsで検索者に提示する事がある。
  • robots.txtでブロック+noindex:クローラーはそのページにアクセス出来ないのでrobots metaタグを読むことはできない。なので内容をインデックスは出来ないがそこに何かあることをSERPsで検索者に提示することがある。

少々ややこしく、頭がこんがらがってしまうかもしれませんが、この違いは理解しておきましょう。

  • クローラーに「ここはアクセスするな」と指定するのがrobots.txt
  • インデクサーに「ここはインデックスするな」と指定するのが<meta name=”robots” content=”noindex” />です。

検索エンジンはクローラーが情報を集め、インデクサーにその情報を渡します。

インデクサーはその情報を検索エンジンのデータベースに登録します。

noindexがついていると、その時点で、登録を行わない(検索結果に表示しない)という処理を行います。

この流れを理解すれば、robots.txtを使うべきなのか、robots metaタグを使うのべきなのかの判断ができるでしょう。

詳しい解説はSEOとその周辺の検索エンジンの基本的な仕組みを理解するという記事で解説されています。

関連記事

METAタグ(keywords description)の使い方
Fetch as Googleでインデックス登録させたいURLを送信する方法
titleタグの使い方 – わかりやすいページタイトルを設定しよう
rel=”nofollow” 属性の解説とその使い方
正しいSEOとは
ウェブマスターツールの登録と導入方法
Google Analyticsを設置して詳しいアクセス解析を行おう
リーズナブルサーファーモデルを意識してリンクをコントロールしよう
不自然なリンクを無効化させるリンクの否認ツールが導入されました
SEOを意識したリンクの張り方