Cocoonでpage/2をnoindexにする方法|タグは設定でできるが2ページ目だけ残った話

ゆとりブログ運営

WordPressテーマのCocoonでブログを運営していて、Search Consoleやサイトマップを確認していると、タグページやアーカイブページまでGoogleに認識されていることに気づきました。

投稿記事を検索に出したいのに、タグページや一覧ページまで検索対象になっている。

これは少し整理した方がよさそうだと思い、Cocoon設定を見直しました。

Cocoonでは、タグページやその他のアーカイブページは、設定画面から簡単にnoindexにできます。

しかし、僕の環境では一つだけ問題が残りました。

それが、

/page/2/

です。

トップページの2ページ目以降、いわゆるページ送りのページです。

Cocoon設定でnoindexにできる項目にはチェックを入れたのに、/page/2/ だけはnoindexになっていませんでした。

この記事では、Cocoonで /page/2/ をnoindexにする方法をまとめます。

結論から言うと、functions.phpを直接触るのではなく、Code Snippetsというプラグインを使って対応するのがおすすめです。

今回やりたいこと

今回やりたいのは、次のようなページをnoindexにすることです。

https://example.com/page/2/
https://example.com/page/3/
https://example.com/category/xxx/page/2/

こういった一覧ページの2ページ目以降を、Googleの検索結果に出さないようにします。

検索してほしいのは、あくまで記事本体です。

一覧ページの2ページ目が検索結果に出ても、読者にとってはあまり便利ではありません。

そのため、投稿記事はindexのままにして、page/2以降だけnoindexにします。

タグページはCocoon設定でnoindexにできる

まず、タグページや一部のアーカイブページは、Cocoon設定からnoindexにできます。

WordPress管理画面で、次の場所を確認します。

Cocoon設定

SEO

headタグ設定

このあたりに、noindex関連の設定があります。

僕の環境では、カテゴリページをnoindexにする以外は、基本的にチェックを入れました。

カテゴリページは、主要カテゴリとして使う可能性があるため、indexのままにしています。

一方で、タグページやその他のアーカイブページは、検索結果に出す必要がないと判断しました。

タグは記事管理や読者の回遊には使えます。

しかし、タグページ自体を検索で上位表示させたいわけではありません。

そのため、タグページはnoindexにしました。

問題は /page/2/ だけだった

Cocoon設定でnoindexにできるものは設定しました。

しかし、確認してみると、

/page/2/

だけはnoindexになっていませんでした。

やり方は簡単です。

まず、対象ページを開きます。

https://example.com/page/2/

次に、ブラウザでページのソースを表示します。

Windowsなら右クリックから「ページのソースを表示」。

Macでも右クリック、またはブラウザのメニューからソースを表示できます。

ソースを開いたら、ページ内検索で次の文字を探します。

noindex

ここで noindex が見つかれば、そのページにはnoindexが入っています。

逆に、noindex が見つからなければ、そのページはnoindexになっていません。

僕の環境では、タグページなどはnoindexになっていました。

しかし、/page/2/ だけはnoindexが見つかりませんでした。

functions.phpを直接触るのはおすすめしない

この問題を解決するには、WordPressにコードを追加する必要があります。

ただ、ここでいきなり functions.php を直接編集するのはおすすめしません。

functions.php は、書き方を間違えるとサイトが真っ白になることがあります。

特に、WordPressやPHPに慣れていない人にとってはかなり不安な作業です。

そのため、この記事では functions.php を直接触りません。

Code Snippetsというプラグインを使います。

Code Snippetsを使えば、管理画面から安全にPHPコードを追加できます。

万が一コードに問題があっても、スニペット単位で停止しやすいため、functions.phpを直接編集するより安心です。

この記事では、Code Snippetsで対応します。

Code Snippetsをインストールする

まず、WordPress管理画面からプラグインを追加します。

プラグイン

新規追加

Code Snippetsで検索

インストール

有効化

有効化すると、管理画面のメニューに「スニペット」が追加されます。

そこから新しいスニペットを作成します。

page/2をnoindexにするコード

Code Snippetsで新しいスニペットを作成し、以下のコードを貼り付けます。

// page/2 以降の一覧ページを noindex にする
add_filter( 'wp_robots', function( $robots ) {
	if ( is_paged() ) {
		$robots['noindex'] = true;
		$robots['follow'] = true;
		unset( $robots['index'] );
	}

	return $robots;
} );

タイトルは、自分が分かりやすい名前で大丈夫です。

たとえば、

page2をnoindexにする

でよいです。

設定は「サイト全体で実行」にします。

保存して有効化します。

これで、/page/2/ 以降の一覧ページにnoindexが入るようになります。

このコードで何をしているのか

コードの意味も簡単に説明します。

is_paged() は、WordPressで「現在のページが2ページ目以降のページ送りかどうか」を判定する関数です。

たとえば、

/page/2/

/page/3/

/category/english/page/2/

のようなページで true になります。

その場合に、robotsタグへ noindex を追加しています。

つまり、このコードは、

2ページ目以降の一覧ページだったらnoindexにする

という処理です。

投稿記事そのものをnoindexにするわけではありません。

固定ページをnoindexにするわけでもありません。

トップページの1ページ目をnoindexにするわけでもありません。

対象は、page/2以降のページ送りです。

設定後に確認する方法

設定したら、必ず確認します。

確認するページはこちらです。

https://example.com/page/2/

自分のサイトのURLに置き換えてください。

ページを開いたら、右クリックで「ページのソースを表示」を選びます。

ソースを開いたら、検索します。

noindex

次のような記述が見つかればOKです。

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

または、robotsタグの中に noindex が含まれていれば大丈夫です。

確認するときは、トップページではなく、必ず /page/2/ を見ます。

トップページにnoindexが入っていたら大問題です。

確認するのは、

https://example.com/page/2/

です。

カテゴリページの2ページ目も確認する

トップページの /page/2/ が確認できたら、カテゴリページの2ページ目も確認します。

たとえば、英語カテゴリがあるなら、

https://example.com/category/english/page/2/

のようなURLです。

ここでもページのソースを表示し、noindexを検索します。

noindexが入っていればOKです。

カテゴリページ自体はindexのままでも、カテゴリページの2ページ目以降だけnoindexにできます。

これが今回やりたかったことです。

robots.txtでは対応しない

ここで注意したいのが、robots.txtでブロックしないことです。

検索結果に出したくないページがあると、

robots.txtでDisallowすればいいのでは?

と思うかもしれません。

しかし、今回の目的ではrobots.txtは使いません。

robots.txtは、検索エンジンのクロールを制御するためのものです。

noindexは、検索結果に出さないようにするためのものです。

page/2を検索結果に出したくないなら、noindexを使います。

robots.txtでブロックしてしまうと、Googleがそのページをクロールできず、noindexを確認できないことがあります。

そのため、今回の対応は、

robots.txtでブロックしない

page/2にはアクセスできる状態にする

meta robotsでnoindexを入れる

という方針です。

サイトマップからも不要なURLは外す

noindexとあわせて、サイトマップも整理しておくとよいです。

サイトマップは、Googleに見てほしいURLを伝えるためのものです。

そのため、検索結果に出したくないタグページやpage/2系のURLを積極的に送る必要はありません。

僕の場合も、タグのサイトマップは不要だと判断して外しました。

投稿記事のサイトマップは残します。

固定ページのサイトマップも、プロフィール、運営者情報、お問い合わせ、プライバシーポリシーなどは残して問題ないと考えています。

重要なのは、Googleに評価してほしいページを絞ることです。

投稿記事を検索に出したいなら、投稿記事を中心にサイトマップを整理します。

タグページやpage/2のような一覧ページは、検索流入を狙わないならサイトマップから外しておきます。

Search Consoleではすぐに消えない

noindexを設定しても、Search Consoleからすぐに消えるとは限りません。

Googleが次にそのページをクロールし、noindexを確認してから反映されます。

そのため、設定直後にSearch Consoleを見ても、まだ表示されていることがあります。

焦らなくて大丈夫です。

まずは自分のブラウザでソースを確認し、noindexが入っていることを確認します。

そのうえで、Search ConsoleのURL検査を使って確認します。

対象URLを入力し、公開URLをテストします。

そこでnoindexが検出されれば、設定としては問題ありません。

今回の対応まとめ

今回やったことを整理します。

Cocoon設定で、タグページやその他のアーカイブページをnoindexにした。

ただし、/page/2/ だけはnoindexになっていなかった。

functions.phpを直接触るのは不安なので、Code Snippetsを使った。

is_paged() で2ページ目以降を判定した。

wp_robots フィルターで noindex, follow を追加した。

ソースを表示して noindex が入っていることを確認した。

これで、検索に出したい投稿記事と、検索に出さなくてよい一覧ページを整理できます。

まとめ:Cocoonでできないpage/2だけコードで対応する

CocoonはSEO設定がかなり充実しています。

タグページやアーカイブページのnoindexは、管理画面から簡単に設定できます。

ただし、僕の環境では /page/2/ だけnoindexになりませんでした。

その場合は、Code Snippetsを使って、page/2以降だけnoindexにするのが分かりやすいです。

functions.phpを直接触る必要はありません。

Code Snippetsにコードを貼り付け、有効化する。

その後、/page/2/ のソースを表示して noindex を確認する。

やることはこれだけです。

ブログで本当に検索に出したいのは、基本的には記事本体です。

タグページや一覧の2ページ目ではありません。

検索に出したいページと、出さなくてよいページを整理するだけでも、Search Consoleの見通しはかなり良くなります。

コメント

タイトルとURLをコピーしました