【解決】Search Consoleの「検出 – インデックス未登録」が急増?WordPressサイトマップからタグ・カテゴリを除外する方法

【解決】Search Consoleの「検出 - インデックス未登録」が急増?WordPressサイトマップからタグ・カテゴリを除外する方法のトップ画像
くらうど
CloudStepia運営者|ITエンジニア13年目
VPS・クラウド・AIを実際に使いながら、初心者が「迷わず始められる」情報を発信しています。

当サイトでは、実体験に基づいたレビューと、公式情報・料金・スペックなどの客観的なデータ比較を大切にしています。良い点だけでなく、デメリットや注意点も正直にお伝えします。

Search Consoleで「検出 – インデックス未登録」が急に増えて、不安になっていませんか?

私の場合、WordPress標準サイトマップに切り替えたあと、未登録URLが一気に増えてしまいました。

この記事では、WordPress標準サイトマップからタグ・カテゴリを除外する方法を、functions.phpに追加するコード付きで解説します。

SWELL利用者向けに画像多めで紹介するので、初心者の方でも手順どおりに進められると思います。
安心してくださいね!

この記事でわかること
  • サイトマップ変更後にインプレッションが半減した原因
  • noindexのタグ・カテゴリをサイトマップから除外する方法
  • functions.phpに追加するコードと手順

目次

事の発端:サイトマップをWordPress標準機能に切り替えた

すてぴあ

サイトマップってGoogleに伝えたほうがいいって聞いたことあるけど、どうするの?

くらうど

SWELLを使っているなら、SWELL設定からWordPressの標準機能でサイトマップを作成するように変更できるよ。でも実はそのあとに落とし穴があって…。

サイト開設以来サイトマップをGoogleに送信していなかったため、WordPressの標準サイトマップ機能に切り替えました。

SWELL設定 > 機能停止からコアのサイトマップ機能を停止するという項目のチェックを外します。

サイトマップを作成する設定に変更

設定した直後は「これで完璧!」と思っていたのですが、後日Search Consoleを確認すると異変に気づきました。

「検出 – インデックス未登録」が一気に増えている…

推移のグラフが急上昇していますよね。

インデックス未登録の急増

最初は「まあ放置しておけばそのうち解決するよね」と思っていましたが、この日を境にインプレッションが半減してしまいました。

これはさすがに対策しなくてはまずい、と重い腰を上げることになりました。


原因を調査:インデックス未登録の中身はタグとカテゴリだらけ

Search Consoleで「検出 – インデックス未登録」の中身を確認してみると、タグやカテゴリのページばかりということが判明しました。

もちろん、これらのページはnoindex設定済みです!

どうしてnoindexとして除外されないんだろうと少し考えた結果、以下の結論に至りました。

原因のまとめ

noindex設定をしていてもタグやカテゴリはサイトマップに含まれてしまう。
GoogleがURLは認識したもののクロールしなかったためnoindexを認識できず、すべて「検出 – インデックス未登録」扱いになってしまっていた。

くらうど

WordPress標準のサイトマップ機能だけでは、管理画面から「タグだけ外す」「カテゴリーだけ外す」という設定はできないんだ。次に説明するfunctions.phpにコードを追加することで除外できるよ!


対策:functions.phpでサイトマップからnoindexページを除外する

WordPress 5.5以降の標準XMLサイトマップには、wp_sitemaps_taxonomies というフィルターフックが用意されており、カテゴリーやタグなどのタクソノミーをサイトマップから除外できます。

編集を間違えるとWordPressが真っ白の画面になることがあります。必ず事前にバックアップを取り、間違えたら編集したファイルを元に戻しましょう。

追加するコード

以下を、子テーマの functions.php か、Code Snippets などのプラグインに追加します。

add_filter( 'wp_sitemaps_taxonomies', function( $taxonomies ) {
    // カテゴリーをサイトマップから除外
    unset( $taxonomies['category'] );
    // タグをサイトマップから除外
    unset( $taxonomies['post_tag'] );
    return $taxonomies;
} );

手順:エックスサーバーのファイルマネージャで編集する

このサイトはエックスサーバー上で動いているため、エックスサーバーの管理ページから編集します。

くらうど

各自利用しているサーバー環境に合わせてファイルを編集しましょう。

STEP
エックスサーバーの管理ページを開く

エックスサーバーのサーバーパネルにログインし、対応サーバーの「ファイル管理」をクリックします。

ファイルマネージャーを開く
STEP
functions.phpを開く

ファイルマネージャが開くので、SWELLの子テーマのfunctions.phpを開きます。

単なるswellではなくswell_childと名前がついている方です。

詳しいパスは以下になります。

ドメイン名/public_html/wp-content/themes/swell_child/functions.php
ファイルを開く
STEP
コードを追記して更新する

上記のコードをファイルの末尾に追記し、「更新」をクリックして保存します。

コードを追記する
STEP
サイトマップを確認する

サイトマップにアクセスして、カテゴリーとタグのエントリが消えていることを確認しましょう。

サイトマップURL:https://自分のドメイン/wp-sitemap.xml

変更前
変更前
変更後
変更後

確かにcategoryとpost-tagというファイルが消えてますね!

STEP
Search Consoleでサイトマップを再送信する

念のためGoogle Search Consoleからサイトマップを再送信しておきましょう。数日すれば反映されます!

サイトマップを再送信
送信完了
すてぴあ

編集前後でカテゴリーとタグが消えていることが確認できたわ。これで完璧ね!


参考:投稿者ページも除外したい場合

今回は対応していませんが、投稿者ページもサイトマップから除外したい場合は、以下のコードも追加しましょう。

// WordPress標準サイトマップから投稿者ページを除外
add_filter( 'wp_sitemaps_add_provider', function( $provider, $name ) {
    if ( 'users' === $name ) {
        return false;
    }
    return $provider;
}, 10, 2 );

投稿者ページはデフォルトでnoindexにしているサイトが多いですが、念のためサイトマップからも除外しておくと安心です。

よかったらシェアしてね!
  • URLをコピーしました!
目次