Amazon10/19まで!プライム感謝祭開催中! セール会場へ

Search Console│送信されたURLにnoindexタグが追加されています|原因と直し方

Search Console のインデックス作成レポートに、こんな項目が出ることがあります。

「送信された URL に noindex タグが追加されています」

まず、対象ページを検索結果に出したいのか、意図してnoindexにしているのかを確認します。

意図したnoindexならサイトマップから外し、意図しないnoindexならページ側の設定を直します。

この報告だけでは、noindexの設定ミスかサイトマップの不整合かは判別できません。

本稿では、意図したnoindexのページがサイトマップに残っている場合を扱います。

この記事では、なぜそうなるのかと、設定に合わせて自動で外す方法をまとめます。

目次

著者

WEB制作をしているデジタルノマド
WordPressのカスタマイズが好きで、色々と自作しています。

WordPressのカスタマイズに困ったらご相談ください!

なぜ起きるのか

WordPress 5.5 から、本体が wp-sitemap.xml を自動で出すようになりました。

標準サイトマップは公開投稿や分類の一覧を生成しますが、SEO SIMPLE PACKの個別noindex設定と自動で同期するわけではありません。

noindex かどうかは見ていません。

一方、noindex を出しているのは SEO プラグインのほうです。

SEO SIMPLE PACK なら、設定画面の「投稿ページ」や「タクソノミー」にトグルがあります。

つまり、この2つは別々の仕組みです。

  • サイトマップ … 「このURLを見に来てください」という申告
  • noindex … 「このページは検索結果に載せないでください」という指示

両方を同時に出している状態になります。

案内された先に「入らないでください」と書いてあるので、report に上がります。

どれくらい起きているか

当方で運用しているサイトを数えてみました。

7サイト・22インストール、2026年9月時点の実測です。

サイトマップの総数noindex が載っていた数割合
3,899件181件4.6%
2,131件293件13.7%
999件25件2.5%
162件44件27.2%
117件13件11.1%
105件34件32.4%
104件1件1.0%

合計で591件ありました。

サイトマップの3分の1が noindex だったサイトもあります。

特徴として、記事は1件も含まれていませんでした。

全部が分類ページ(カテゴリ・タグ・カスタム分類)と著者ページです。

どれも「検索結果には出さない」と決めて noindex にしてあるものでした。

つまり設定は正しく、サイトマップだけが古いままだった、ということです。

自分のサイトで数える

手順は3つです。

  • robots.txt を開いて、Sitemap の行を見る
  • そのサイトマップを開いて、載っているURLを集める
  • 1つずつ開いて、robots メタに noindex があるか見る

数が少なければブラウザだけでもできます。

サイトマップのURLをいくつか開き、ページのソースを robots で検索してください。

ただ、数が増えると手では追えません。

全数を確認するスクリプトは、この記事の後半に置いています。

数えるときに引っかかった3つ

当方はここで3回、判断を誤りました。

同じところで止まらないよう、先に書いておきます。

1. robots メタは1ページに何本も出る

WordPress 本体と SEO プラグインが、それぞれ別に出します。

しかも引用符が違います。

<meta name='robots' content='max-image-preview:large' />   ← WordPress本体
<meta name="robots" content="noindex">                     ← SEOプラグイン

片方だけを探すと見落とします。

当方はシングルクォートだけを見て、「noindex になっていない」と誤って判断しました。

1本目で止めず、そのページの robots メタを全部集めてください。

2. 転送されたページの中身で判断しない

著者ページを無効にしていると、開いた先がトップページに転送されることがあります。

SEO SIMPLE PACK の「著者ページを無効化する」がこれにあたります。

転送先はトップページなので、当然 noindex は入っていません。

それを読んで「noindex ではないのに外れた」と勘違いしました。

取得したあと、最終URLが最初に指定したURLと同じかを先に見てください。

def get(url):
    """飛ばされた先の中身で判断しないよう、最終URLも返す。"""
    req = urllib.request.Request(url, headers=UA)
    res = urllib.request.urlopen(req, timeout=60)
    return res.read().decode("utf-8", "replace"), res.url


html, final = get(u)
if final.rstrip("/") != u.rstrip("/"):
    # 転送された。転送先の robots を読んでも意味がない
    print("転送される:", u, "→", final)
    continue

3. 取得に失敗したものを「問題なし」に数えない

タイムアウトした分を握りつぶすと、件数が実際より少なく出ます。

当方はこれで10件を取りこぼし、あとから数が合わなくなりました。

失敗した件数は、0件でも必ず表示させたほうがよいです。

放置してよいのか

正直に書くと、これ自体ですぐ順位が下がるものではありません。

Googleがページをクロールしてnoindexを読める状態であることが必要です。設定直後に検索結果から消えるとは限らず、robots.txtでクロールを拒否すると指示を読めません。Googleのnoindexの説明を参照してください。

ただ、2つ困ることがあります。

1つは、レポートが読みにくくなることです。

本当に見るべきエラーが、この項目に埋もれます。

当方の場合、1サイトで293件がこれで埋まっていました。

もう1つは、載せる意味のないURLを毎回渡していることです。

サイトマップは「見に来てほしいURL」を伝えるものなので、そこに「見なくていいURL」が3分の1混ざっているのは、伝え方として正しくありません。

プラグインの設定では直りません

SEO プラグインは noindex を出す担当で、本体のサイトマップには手を出しません。

サイトマップを自前で持つプラグインを使っている場合は、そちらの設定で外せます。

本体の wp-sitemap.xml を使っているなら、フィルタで外すことになります。

WordPress には、そのための入り口が用意されています。

フィルタ外せるもの
wp_sitemaps_taxonomies分類ごと(カテゴリ・タグ・カスタム分類)
wp_sitemaps_post_types投稿タイプごと
wp_sitemaps_add_provider著者ページなど、まとまりごと
wp_sitemaps_taxonomies_query_args分類の中の、特定の用語だけ
wp_sitemaps_posts_query_args投稿タイプの中の、特定の記事だけ

固定で消してはいけません

ここが一番の注意点です。

「カテゴリを消す」と直接書いてしまうと、あとで設定を index に戻したときに、サイトマップに出てこなくなります。

そして、それに気づけません。

サイトマップは普段見ないものなので、間違ったまま何か月も経ちます。

なので、SEO プラグインの設定を読んで判断させます。

トグルを切り替えたら、サイトマップも一緒に変わる形にします。

全体のnoindexより個別のindex指定を優先する

スクロールできます
確認項目確認結果・判断
全体index・個別未設定サイトマップに残す。個別noindexだけを除外する
全体noindex・個別index個別設定を優先して残す。投稿タイプや分類ごと丸ごと消すと、この例外まで失われる
既存のmeta_query新しい条件をANDで加える。他のコードによる絞り込みを上書きしない
著者ページnoindexと無効化のどちらも確認する。転送したURLは転送先のrobotsと分けて集計する
確認した環境WordPress 7.1.2、SEO SIMPLE PACK 3.7.0。実DBの投稿・用語クエリー、標準サイトマップのURL一覧、解除後の復旧を確認

修正版の掲載コードはWordPress標準サイトマップ用です。別のSEOプラグインが生成するサイトマップ、ssp_output_robotsによる追加変更、WordPress全体の非公開設定は別途確認してください。公開サイトの設定を変える前に、検証環境で代表URLを比較します。

貼付先はCode SnippetsのPHPスニペット、または子テーマのfunctions.phpです。既存の同目的コードと二重に有効化しないでください。Code Snippetsでは先頭の<?phpを付けません。戻すときは追加したスニペットを停止するか、追加した関数と3つのadd_filterを削除します。停止後に掲載URLを再取得して元の状態へ戻ったかを確認します。

使うのは投稿クエリー、分類クエリーと著者プロバイダーのフィルターです。後半の検査コードは、対象のサイトマップURLを指定し、noindex・転送・取得失敗を別に報告します。

ここから先(有料部分)

以下を掲載しています。

  • そのまま貼れるコード全文(3つのフィルタ)
  • 設定キーの落とし穴(カテゴリだけ名前が違います)
  • 個別に noindex にしたページも拾う書き方
  • 効いたかどうかを全数で確かめるスクリプト
  • 複数サイトへ一括で入れる方法
  • 入れる前後で必ず見る3点

2026年9月の運用例に加え、2026年10月2日に個別のindex指定と既存の絞り込み条件を保持する修正版を検証しました。

この記事だけ読みたい方は単品購入、ほかの有料記事も読みたい方は購読プランをご確認ください。

購読対象の記事・料金は、下のプラン案内で確認できます。

役に立った記事を、ブログやSNSで紹介しませんか?

紹介制度の対象記事・購読プランを購入した方は、codocで専用リンクと報酬条件を確認できます。

専用リンク経由で購入されると、設定された紹介報酬が発生します。

購読プランの紹介報酬は初回課金のみが対象です。

codocで紹介リンク・報酬条件を確認する

紹介時は、広告・PRであることが読者に分かるように明記してください。

  • URLをコピーしました!

内部SEOを本格的に見直すなら

WordPressのSEO対策

内部構造の調査は¥30,000〜、継続的なSEO対策は月額 ¥50,000〜(税込・最低6ヶ月)。専任のコンサルタントが定期ミーティングで施策を進めます。

WAZAの有料記事のサブスクリプションも開始しました。

サービス

Service

WordPressサイトのSEO対策のサービスに関心がありましたら、ぜひ詳細をご覧ください。

目次