noindexとrobots.txtの違い・使い分けを理解しよう

新人Web担当

「noindex」と「robots.txt」の違いがよくわかりません…

青山

たしかに、ちょっとややこしいですよね。現役でSEO対策の仕事をしている私が、「noindex」と「robots.txt」について解説します。

目次

「noindex」と「robots.txt」

「noindex」と「robots.txt」は異なる性質のものですが、用途がやや似ているため、使い分けが少しややこしいです。

間違えて使うとトラブルにつながる可能性もあるので、違いを理解しておきましょう。

それぞれの用途についてこれから解説していきますが、まずは「noindex」と「robots.txt」の共通点を覚えておきましょう。

それは、
クローラの動きをコントロールするために設定するという点です。

ちなみに、
クローラというのは、
検索エンジンのロボットのことです。

「Google bot」だけだけはなく、
他の検索エンジンのロボットも含みます。

noindex

まずは、「noindex」についてです。

「noindex」は、Webページを検索結果に表示させたくないときに使用します。

以下のように設定します。

HTMLソースの<head></head>内に、
<meta name=”robots” content=”noindex”>を設置。

通常、各ページごとに設定します。

PDFなど、
コードが埋め込めないものについては、
「.htaccess」ファイルに「X-Robots-Tag」を記述します。

検索エンジンのロボットは、
「noindex」の記述を見つけると、
そのページを検索結果に表示しないようにします。

この点が「noindex」の特徴ですので、
覚えておきましょう。

注意点としては、検索結果に表示されないだけで、ユーザーはアクセスできる点です。

robots.txt

次に「robots.txt」についてです。

「robots.txt」の役割はいくつかありますが、ここではアクセスのブロックについてのみ解説します。

クローラは、
Webサイトにアクセスする際に、
まず「robots.txt」を読み取ります。

なぜ「robots.txt」を読み取るかというと、「robots.txt」には、サイト管理者からクローラへのメッセージが記載されているからです。

「robots.txt」に記載されていること

  • sitemap.xmlの場所
  • アクセス可能なページ
  • アクセスしてほしくないページ

※各サイトによって記載情報は異なります。

サイト管理者からのメッセージが記載されているため、クローラは「robots.txt」を読み取るのですが、その際に「アクセスしてほしくないページ」の記載があると、クローラはそのページにアクセスしません。

ですので、
クローラはWebサイトにアクセスする前に「robots.txt」を読み取るのです。

「robots.txt」は、直接HTMLソースに何かを書くのではなく、サーバーの中にファイルを入れます。

「noindex」が設置されたページについては、クローラがアクセスしますが、「robots.txt」で指定されたページについては、そもそもクローラはアクセスしません。

ここに違いがあります。

また、
HTMLソースに直接記載するか、
サーバーにファイルを設置するかといった違いもあります。

ちなみに、
「robots.txt」についても、
「noindex」と同じように、ユーザーは閲覧できます。

「robots.txt」にはいくつか注意点があります。

  • 強制力がない。あくまでも「お願い」レベルでの指示です。
  • クローラの種類によって挙動が異なる。※Googleは問題なし。
  • インデックスされる可能性がある。※他サイトからリンクがある場合などに、リンクからたどってインデックスされる場合があるようです。

「robots.txt」については、
【robots.txtとは】作成方法や注意点も解説にも詳しく書いています。

ケース別使い分け

ケース別の使い分けもいくつか見ていきます。

ちなみに、「noindex」と「robots.txt」は以下の方法で、競合サイト含め確認が可能です。

【noindexの確認方法】

  • 確認したいページのHTMLソースを表示
  • 「ctrl+F」or「command+F」で検索窓を表示して、noindexと検索します。

見つかったら、そのページには「noindex」が設定されています。

【robots.txtの確認方法】

アドレスバーに「サイトURL/robots.txt」を打ち込むと表示されます。

SEO対策のためにページ単位で検索結果をコントロールする

SEO対策を行う際に、サイト全体の評価を下げないために、サイトテーマにマッチしないページや、価値の低いページを検索結果に表示しないようにすることがあります。

価値の低いページなら削除すれば良いかもしれませんが、サイトテーマに合わないが発信したいコンテンツや、お問い合わせフォームなどは、そうはいきません

こういった場合には、
「noindex」を使用します。

「robots.txt」ではインデックスされてしまう可能性がありますし、ページごとに個別に設定可能という意味で、「noindex」の方が手軽に設定できます。

私もこのブログのいくつかの記事に設定しています。

管理者ログインページなどへのアクセスをブロックする

管理者ログインページなどは、そもそもクローラのアクセスが必要ないので、「robots.txt」でブロックします。

「robots.txt」は、通常ディレクトリ単位でブロックの設定をすることが多いので、アクセスしてほしくないディレクトリがある場合、「robots.txt」でアクセスブロックの設定をします。

※ディレクトリにアクセス制限をかけると、そのディレクトリ内のすべてのページにアクセス制限がかかります。

ちなみに、管理者ログインページなどは、インデックスもされたくないと思うので、「noindex」も併用することが多いと思います。

※一度インデックスされてしまったページを検索結果から削除するために「robots.txt」でブロックするのは間違った設定方法です。

見られたくないページを管理する

制作途中のWebサイトなど、人に見せたくないし、クローラにも巡回してほしくないものもあると思います。

こういった場合には、
「noindex」や「robots.txt」ではなく「ベーシック認証」の使用を推奨です。

「ベーシック認証」とは、パスワードを使ってアクセス制限をかける方法です。

「ベーシック認証」をかけてしまえば、クローラのアクセスをブロックできます。

「robots.txt」よりも確実な方法ですので、アクセス制限をかけたい場合には利用しましょう。

まとめ

以上で「noindex」と「robots.txt」については終わりです。

「noindex」や「robots.txt」は、間違えて設定すると大きな問題を引き起こしてしまうことがあります。

正しい使い方を理解して、
適切に使いましょう。

もしよろしければシェアお願いいたします。
目次