meta robotsタグを設定する前に知っておきたい知識
meta robotsタグとは、検索エンジンのクローラーにウェブサイトの情報を伝えるためのメタタグの一種です。正確に記述・設定することで、クローラーの動作を制御します。
よってウェブサイトにmeta robotsタグを設定するときは、誤用しないよう注意しなくてはなりません。
meta robotsタグについて詳しく解説する前に、ここでは最低限知っておきたい基礎知識を紹介します。
robot.txtのブロックと併用しない
meta robotsタグと混同されやすいのが、robot.txtです。ウェブサイトにメタタグを記述するときは、robot.txtによるブロックとmeta robotsタグによる制御を併用しないよう、注意してください。
ひとつのウェブサイトで、robot.txtによるブロックとmeta robotsタグによる制御を併用した場合、思うような効果は得られません。robot.txtの記述が、クローラーによるウェブページのクロール自体をブロックしてしまうためです。
ウェブページに設定したmeta robotsタグは、クローラーに存在や記述内容が認識されてはじめて効果が期待できます。しかし、クロールをブロックするrobot.txtと併用すると、記述内容が認識されず、意味を成さなくなります。
robot.txtでブロックするとクロール自体を拒否することとなるため、meta robotsタグが記述されたウェブページをアップロードしても、クローラーに認識されません。
ただしrobot.txtが絶対的な効果をもつわけではないため、設定していたはずのウェブページが検索結果に表示される場合も見受けられます。
拒否しない場合は記述しなくて良い
コンテンツのインデックスなどクローラーの動作を拒否しない場合は、meta robotsタグを記述する必要はありません。
meta robotsタグは記述内容によって、検索エンジンのクローラーに、ウェブページのどこまでクロールやインデックスを許すのか制御するものです。
たとえば特定の記述をすれば、文章のインデックスを許可しつつ、画像のインデックスを拒否することができます。
一方、ウェブページへのアクセスや内容のインデックス、検索結果への表示など、何も拒否することがない場合はmeta robotsタグの記述は不要です。クローラーのすべての動作を許可するmeta robotsタグもありますが、記述しなくとも問題ありません。
同一項目の複数指定は1つにまとめられる
クローラーにウェブページの「インデックス」「キャッシュ」「リンクの巡回」を制限したい場合など、複数指定を反映させるときは、まとめて設定することができます。
たとえば上記3つの行動を拒否したい場合、noindex(インデックス拒否)、noarchive(キャッシュ拒否)、 nofollow(リンクの巡回拒否) を同一項目にまとめて記述できます。設定方法は各指示をカンマでつなげ、ひとつのmeta robotsタグとして1行に記述するのみです。
競合する指示を並べて記述した場合は、制限が強いほうが優先される点に注意しましょう。indexとnoindexの両方が記述されているウェブページでは、デフォルト(あえて記述しなくとも反映される初期設定)であるindexよりも、noindexのほうが優先されます。
meta name robotsの種類と使い方
meta robotsタグの指示を記述するときは、に意図する制御に適した単語を加えます。meta name robotsでどのような指示ができるのか、ここからは種類と使い方について解説します。
noindexの意味と記述方法
noindexとは、検索エンジンがウェブページをインデックスすることを拒否するためのタグです。
インデックスを許可したデフォルトの状態では、ユーザーがキーワード検索を行ったとき、ウェブサイトが検索結果に表示されることがあります。
あらかじめnoindexでインデックスを拒否しておくことで、検索結果に表示されなくなります。ただし表示はしないものの、Googleのデータベースにウェブページの情報自体は保存されている状態です。
<meta name=”robots” content=”noindex” />
noindexを設定するときは、上記のとおり記述します。
記述位置は、<head>と</head>の間であれば厳密な決まりはありません。noindex以外のmeta robotsタグも、同じく<head>と</head>の間に記述しましょう。
<meta name=”robots” content=”noindex” />
上記のように”robots”部分を書き換えると、特定の検索エンジン(GoogleやYahoo!など)のみインデックスを拒否することもできます。
indexifembeddedの意味と記述方法
indexifembeddedとは、2022年にGoogleが導入した新しいタグです。noindexを記述しているコンテンツが、検索エンジンにインデックスされるタイミングや条件を制御できます。
iframesなどのHTMLタグで他のウェブページに埋め込まれたコンテンツは、検索エンジンにインデックスされることがあります。しかし他のウェブページに埋め込まれることを許可していても、検索結果に表示されるのは困るというコンテンツもあるはずです。
通常は検索エンジンへのインデックスを避けるために、noindexのmeta robotsを利用しますが、設定してしまうと他のウェブページへの埋め込み自体ができなくなります。解決策として、特定の条件下でのみウェブサイトの表示を可能にするタグが必要です。
indexifembeddedは、noindexと併用することで、「ウェブページ単独では検索結果に表示させないが、他のウェブページに埋め込まれた場合はコンテンツの一部として表示・インデックスさせる」と条件を限定できます。
<meta name=”googlebot” content=”noindex” />
<meta name=”googlebot” content=”indexifembedded” />
indexifembeddedを設定するときは、上記のとおりnoindexと併用しましょう。ひとつのタグにまとめて、”noindex,indexifembedded”と記述することもできます。
nofollowの意味と記述方法
nofollowは、クローラーがウェブサイトに貼ったリンク先を辿って情報収集することを拒否するものです。
クローラーはウェブサイトを正確に把握・評価するために、ハイパーリンクを辿って情報収集します。
あらかじめnofollowを記述しておくと、ウェブサイトの評価対象にコンテンツ内のリンクを含めないよう指示できます。
<meta name=”robots” content=”nofollow” />
ユーザーが検索結果からキャッシュページにアクセスすることがないよう、上記のとおりnoarchiveを記述しましょう。
検索エンジンは、ウェブサイトをクロールした当時の情報を元にキャッシュページを作成しているため、リアルタイムで更新情報がキャッシュページに反映されるわけではありません。
ネットショップで商品価格が変更されたときや、イベント情報が更新されたとき、古い情報をユーザーが見てしまうとトラブルになります。
nosnippetの意味と記述方法
nosnippetは、検索結果にテキストスニペットや動画プレビューを表示させないためのタグです。テキストスニペットはmeta descriptionとも呼ばれる、100〜120文字程度で作成されたコンテンツ概要です。
テキストスニペットは自身でオリジナルのものを作成・設定できますが、何の対処もしていない場合、Googleが記事内から自動生成することがあります。
<meta name=”robots” content=”nosnippet” />
テキストスニペットや動画プレビューの表示を無効化したい場合は、上記のとおり記述します。テキストスニペットは表示されなくなり、動画プレビューは静止画が代替表示されるようになります。
notranslateの意味と記述方法
notranslateとは、検索クエリ(キーワード)とウェブページの言語が異なる場合、自動翻訳されたタイトルやテキストスニペットが検索結果に表示されることを防ぐものです。
ユーザーが自動翻訳されたタイトルをクリックした場合、Google翻訳を介して、ウェブページ内のテキストも自動翻訳された状態で表示されます。
自動翻訳は必ずしも高精度とは言えないため、ウェブページが間違った内容に翻訳され、ユーザーに誤解を与えるおそれがあります。
<meta name=”googlebot” content=”notranslate” />
Google翻訳の機能のみを拒否するのであれば、上記の記述が適切です。また、”googlebot”部分を”robots”と記述した場合も、検索結果でタイトルやテキストスニペットが自動翻訳されることはなくなります。
max-snippetの意味と記述方法
max-snippetとは、検索結果で表示されるテキストスニペットの文字数を制限してくれます。ただし、1,000文字など現実的ではない数字を設定しても反映されません。
max-snippetを設定するうえで注意すべきポイントが、特別な記述方法の存在です。基本的には、以下のとおり表示させたい文字数をmax-snippet:の後ろに数字で指定します。
<meta name=”googlebot” content=”notranslate” />
※テキストスニペットを最大50文字までに制限したい場合
テキストスニペットそのものを表示させたくない場合は、max-snippet:の後ろに数字「0」を記述します。文字数0を指定することで、結果的にnosnippetと同じく、テキストスニペットが表示されなくなります。
文字数を厳密に制限する必要がない場合は、max-snippet:の後ろに数字「-1」を記述すると良いでしょう。Googleが自動で適切な文字数のテキストスニペットを表示してくれます。
max-image-previewの意味と記述方法
max-image-previewとは、検索結果で表示される画像プレビューの最大サイズを制限するためのタグです。ただしmax-snippetのように、明確な数字で指定するものではありません。
指定できる画像プレビューの最大サイズは、「none」「standard」「large」の3種類です。
noneは画像プレビュー自体の表示を拒否し、standardはデフォルトサイズで表示されます。largeは、画面幅最大まで画像プレビューを表示します。
<meta name=”robots” content=”max-image-preview:standard” />
※デフォルトサイズで画像プレビューを表示したいとき
上記の記述のstandard部分をnoneまたはlargeに変えるだけで、表示を拒否したり画面幅最大まで表示させたりできます。記述しなかった場合に自動表示される画面プレビューは、standard(デフォルトサイズ)です。
max-video-previewの意味と記述方法
max-video-previewとは、検索結果で動画プレビューが表示されるとき、自動再生される時間を指定するためのタグです。max-snippetと同じく、現実的ではない数字が指定されたときは適用されません。
下記のとおり、秒数を数字で指定するのが基本的な記述方法です。
<meta name=”robots” content=”max-video-preview:10″ />
※10秒再生させたい場合
max-video-previewにも特別な数字があり、秒数ではなく「0」と記述すれば動画プレビューの代わりに静止画が表示され、「-1」と記述すればGoogleによって自動で最適な秒数が設定されます。
静止画が表示される場合に適用されるのは、前述のmax-image-previewで指定したサイズです。
unavailable_afterとは、指定した日時以降のインデックスやクロールを拒否するためのタグです。
たとえば定期的に行われるイベントの過去開催分のウェブサイトは、「イベント終了後は混乱を避けるために検索エンジンでの表示を避けたいが、情報としては残しておきたい」コンテンツではないでしょうか。
公開から一定期間は無料で読めるコンテンツなども、unavailable_afterを設定しておくと、指定日時まで積極的に集客できます。
<meta name=”robots” content=”unavailable_after: 25-Dec-2022 23:59:00 JST” />
※2022年12月25日23時59分以降はインデックスやクロールを避けたい場合
unavailable_afterの設定は、上記のとおり具体的な日時を入れることがポイントです。
日時部分に厳密な記述のルールはなく、”unavailable_after: 2022-12-26″のように日付のみでも適用されます。ただし広く採用されている記述形式に限られるため、オリジナルの日付表記の方法では適用されません。
noimageindexの意味と記述方法
noimageindexとは、ウェブページの中で画像のみをクロール対象から外すためのものです。
ウェブページそのものや、記事の文章など画像以外の部分は、通常どおり検索エンジンにインデックスしてほしいときに使用します。
ただし、同じ画像が他のウェブページや第三者のウェブサイトなど、noimageindexを設定していない場所で使用されている場合、完全に検索結果での画像の表示を防ぐことはできません。
<meta name=”googlebot” content=”noimageindex” />
noimageindexは、上記のとおり記述します。フリー素材を無加工で使用している場合は、他サイトの画像が検索結果に表示されることもありますが、参照元に自身のウェブサイト情報が表示されることはありません。
【要注意】robots.txtとの使い方の違い
検索エンジンによるウェブサイトやウェブページへの特定の動作を制御する方法として、ここまで解説してきたmeta robotsとともにあげられるのが、robots.txtです。
厳密にはそれぞれ効果の範囲や用途が異なるため、使用時は混同しないよう注意しなくてはなりません。
最後に、robots.txtとmeta robotsを使い分けるうえで覚えておきたいポイントを2点紹介します。
特定のbotに対してだけ指示できる点は共通している
robots.txtもmeta robotsタグも、特定のbot(Googleのクローラーなど)に対して「クロールしてほしくない」など指示できるのが特徴です。大きな違いは指示の範囲で、それぞれ下記のとおりです。
・robots.txt:ウェブサイト全体に対して指示する
・meta robotsタグ:個々のウェブページに対して指示する
robots.txtは、各ウェブページよりも上の階層(ルートディレクトリ)に保存されており、検索エンジンのクローラーが真っ先にクロールするファイルです。
一方のmeta robotsタグは、各ウェブページのタグの間に記述することで適用される指示です。
よって先にrobots.txtでウェブページへのクロールが拒否されている場合、ウェブページにmeta robotsタグで指示が記述されていても、クローラーに認識されません。
robots.txtはインデックス除外には使えない
前述のとおり、まずrobots.txtの指示がクローラーに認識されるため、インデックス除外を設定するときは注意が必要です。
たとえば、ウェブページがすでにインデックスされている状態でrobots.txtにクロール拒否の指示(Disallow)を記述しても、検索結果から該当ページが消えるわけではありません。Disallowを記述した後の新しいバージョンがクロールされることはありませんが、記述する前までに収集したウェブページの情報は残り続けるためです。
既存のウェブページをインデックス除外したい(検索エンジンに表示されないようにしたい)場合は、まずクローラーに該当ページをクロールしてもらい、ページ単位のmeta robotsタグでインデックス除外の指示を認識させましょう。
まとめ
meta robotsタグは、検索エンジンのクローラーがウェブページに対して行う動作を制御するためのタグです。
制御したい内容に応じてさまざまな記述方法があり、中には特定の日時以降のクロールを拒否するなど、時限的な指示ができるタグもあります。
meta robotsタグと混同されやすいrobots.txtも、クローラーの動作を制御するうえで欠かせないものです。それぞれの特性を理解したうえで適切に活用することで、SEO効果も期待できます。