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 というフィルターフックが用意されており、カテゴリーやタグなどのタクソノミーをサイトマップから除外できます。
追加するコード
以下を、子テーマの functions.php か、Code Snippets などのプラグインに追加します。
add_filter( 'wp_sitemaps_taxonomies', function( $taxonomies ) {
// カテゴリーをサイトマップから除外
unset( $taxonomies['category'] );
// タグをサイトマップから除外
unset( $taxonomies['post_tag'] );
return $taxonomies;
} );手順:エックスサーバーのファイルマネージャで編集する
このサイトはエックスサーバー上で動いているため、エックスサーバーの管理ページから編集します。



各自利用しているサーバー環境に合わせてファイルを編集しましょう。
エックスサーバーのサーバーパネルにログインし、対応サーバーの「ファイル管理」をクリックします。


ファイルマネージャが開くので、SWELLの子テーマのfunctions.phpを開きます。
詳しいパスは以下になります。
ドメイン名/public_html/wp-content/themes/swell_child/functions.php


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


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




確かにcategoryとpost-tagというファイルが消えてますね!
念のためGoogle Search Consoleからサイトマップを再送信しておきましょう。数日すれば反映されます!







編集前後でカテゴリーとタグが消えていることが確認できたわ。これで完璧ね!
参考:投稿者ページも除外したい場合
今回は対応していませんが、投稿者ページもサイトマップから除外したい場合は、以下のコードも追加しましょう。
// WordPress標準サイトマップから投稿者ページを除外
add_filter( 'wp_sitemaps_add_provider', function( $provider, $name ) {
if ( 'users' === $name ) {
return false;
}
return $provider;
}, 10, 2 );








