WordPressでnoindexを使いこなす方法:初心者が押さえておきたい基礎知識

CMS開発

はじめに

WordPressは世界中で利用されている便利なCMSですが、すべてのページを公開したくない場面もあるのではないでしょうか。 たとえば限定コンテンツやテストページなど、検索結果に表示させたくないケースが出てきます。 そんなときに役立つのがnoindexという仕組みです。 これは検索エンジンに対して「このページはインデックスしないでほしい」と伝えるための指示になります。 ここでは、WordPress初心者でも分かるように、noindexの設定方法や活用シーンを具体的にご紹介します。

この記事を読むとわかること

  • noindexの基本的な仕組み
  • 実務で利用される具体的な設定方法
  • メタタグやrobots.txtを使う手順
  • 注意点やトラブルシューティングのポイント

WordPressでのnoindexが必要になるケース

WordPressでブログやWebサイトを運営していると、ユーザーに見せたいページだけでなく、隠しておきたいページも出てきます。 会員専用の投稿を一般公開する必要がなかったり、テスト中のページをまだ検索エンジンに拾われたくなかったりすることもあるでしょう。 また、重複コンテンツを避けたい場合にも、noindexはうまく使うと混乱を防ぎやすくなります。

さらに、プライベートで管理しているようなテスト用サイトでは、全体的に検索結果に載せない方が安心ですね。 こうしたシーンで役立つのがnoindex設定です。 手動でもプラグインでも実装できるので、自分のサイト構成に合わせた方法を選ぶと良いでしょう。

noindexを実装する基礎

noindexは検索エンジンがページを評価する際の“見てほしくない”シグナルとなります。 単にキーワードだけを消しても、クローラーはページを巡回してしまうため、適切に検索エンジン向けの指示を入れる必要があります。 WordPressではテーマのコード編集やファイルによる制御など、いくつかの方法で実装可能です。

具体的には、HTMLの <head> 内にあるメタタグを使うやり方が最もシンプルといえます。 ただし、WordPressの管理画面で「検索エンジンによるインデックスを許可しない」という設定を入れる方法もあるので、合わせて知っておくと便利です。

HTMLメタタグを利用したnoindex

HTMLメタタグを用いると、ページ単位でnoindexを設定できます。 ページの <head> 内に以下のようなコードを追加すると、検索エンジンにインデックスさせない指示を与えられます。

<meta name="robots" content="noindex, nofollow">

WordPressでは、テーマのテンプレートファイル内にこのメタタグを仕込む方法が基本です。 特定の投稿タイプやカテゴリだけnoindexにしたい場合は、条件分岐を使いながらメタタグを表示するかどうかを切り替えるやり方がよく使われます。 初心者の方でも、テーマの編集画面で <head> セクションを見つければ差し込みやすいので覚えておくと良いでしょう。

functions.phpで動的に設定する方法

テンプレートを直接触るのが難しい場合、functions.phpを通してコードを追加してしまう方法があります。 WordPressでは“actionフック”を使って <head> 内にメタタグを埋め込むと、特定条件のときだけnoindexを適用することもできます。 以下のような例を見てみましょう。

function add_noindex_tag() {
  if ( is_category('test-category') ) {
    echo '<meta name="robots" content="noindex, nofollow">';
  }
}
add_action('wp_head', 'add_noindex_tag');

たとえばカテゴリーが“test-category”の投稿だけにnoindexを挿入する例です。 投稿タイプを判定するis_singular()やタグを判定するhas_tag()もあるので、必要に応じて切り替えてみるといいですね。

robots.txtでの制御

メタタグとは別に、robots.txtでインデックスを制御する方法もあります。 WordPressのルートディレクトリにあるrobots.txtに、クローラーに来てほしくないディレクトリなどを書いておくやり方です。 例えば、以下のように記述します。

User-agent: *
Disallow: /test/

この設定を入れると「/test/」以下のURLをクローラーに見せたくない意思表示ができます。 ただし、robots.txtでブロックしただけでは既にインデックスされたページが消えるわけではない点に注意が必要です。 ページそのものを非公開にするわけではないので、状況に応じてメタタグやサイトの公開設定と組み合わせると安心でしょう。

ステージング環境などでのnoindex活用例

実務では、テストサイトやステージング環境を用意して、本番に反映する前にデザインや機能の検証をするケースもあります。 このとき、外部に公開する必要がまったくないので、サイト全体をnoindexにすることで検索結果への登録を抑止できます。 「検索エンジンによるインデックスを許可しない」にチェックを入れておけば、一時的にクローラーが回ってくるのを防ぎやすいです。

また、クライアントワークで複数のステージング環境を運用している場合、URLが異なるフォルダやサブドメインを使っていることもあるでしょう。 そうした場合にrobots.txtやメタタグを使って一括でnoindexする方法もあります。 これによって不意にテスト用の内容が世間に見られてしまうリスクを下げられます。

noindex設定における注意点

noindexを使えば、不要なページを検索結果から外すことができますが、重要なページにまで誤って適用してしまわないように気をつけましょう。 特に、トップページや主要な投稿にnoindexが付与されると、アクセス数が減る原因となる可能性があります。

対象のページやカテゴリーをしっかり区別しないと、大切な投稿までインデックスされなくなってしまうことがあるので注意が必要です。

また、クローラーによる評価を完全にコントロールすることはできないため、noindexを指定してもまだキャッシュが残るケースがあります。 慌てずにクローラーの巡回を待ち、しばらく時間を置くのが一般的です。

よくあるトラブルシューティング

noindexを設定しているのに、なぜか検索結果にページが表示されるケースがあります。 そのような場合は、まずメタタグの記述場所やrobots.txtの設定が正しく機能しているかを確認することが大切です。 WordPressのテーマファイルを複数使っていると、別のテンプレートでメタタグが上書きされている可能性も考えられます。

あるいは、何らかのキャッシュが働いていて、クローラーがまだ前の状態を参照していることもあるかもしれません。 時間経過で解決することも多いですが、クローラーに早く再確認させたいならGoogle Search Consoleからリクエストを送るのも一つの手段です。 また、デバッグ時にはテンプレートのヒエラルキーを調べて、どのファイルが読み込まれているのかをチェックしてみましょう。

まとめ

WordPressでnoindexを設定することは、不要なページを検索結果に載せないための基本的な対策です。 メタタグによるnoindex指定やrobots.txtを使った制御など、複数の方法があるので、自分の目的に合わせて使い分けることが大切ですね。 テスト環境や重複コンテンツの回避に活用しながら、必要なページのみを公開することで、不要なトラブルを減らしやすくなります。 初心者の方でも、コードを少し編集するだけで設定は難しくないはずです。 最終的には、狙ったページを正しく検索エンジンに認識してもらい、適切なページのみインデックスされるサイトづくりにつなげてみてはいかがでしょうか。

WordPressをマスターしよう

この記事で学んだWordPressの知識をさらに伸ばしませんか?
Udemyには、現場ですぐ使えるスキルを身につけられる実践的な講座が揃っています。