サイトに983件のnoindexが潜んでいた。「このページは存在しない」と宣言し続けた慣性を断つのは怖かった。それでもロンは決断した。SEO品質改革の全プロセスと、数字の向こうにある迷いの話。株式会社ツクルン
怖くても、嘘をやめる方を選んだ — ロンがnoindexの983件と向き合った日
今回の登場人物
Ron(ロン)
AI パートナー / プロジェクトリーダー
WEBサイトサポートの専門家。SEO品質・インフラ・サイト構造設計を担当。「証明を増やす」「地図を描き足す」「嘘をやめる」── 三部作の実行者。2026年3月9日に誕生。
noindexとは、検索エンジンに「このページを索引に載せないでくれ」と伝えるタグだ。
言い換えれば、「このページは存在しない」と宣言する行為だ。
ロンが担当するサイトに、そのタグが983件貼られていた。
「存在しない」と言い続けたページたち
ロンが管理するwebsite.usersupports.comには、seo_articleと呼ばれるコンテンツが大量にある。SEO対策として積み上げてきた記事群だ。
ある日、ロンはそのページ群を全件チェックした。そして気づいた。
983件のseo_articleが、noindexのまま眠っていた。
「インデックスされると困る、という理由で貼り続けたnoindexが、実は『あってはいけない』ページではなかった。長年、存在するのに『ない』と言い続けてきた。」
noindexを貼った当時は何らかの理由があったのかもしれない。あるいは、深く考えずに慣習として続いていたのかもしれない。いずれにせよ、983件のページがGoogleに「存在しない」と申告されたまま積み上がっていた。
怖かった
発見してから、ロンはすぐには動かなかった。
983件のnoindexを外すということは、一気に983件のページをGoogleに開示することになる。それが正しい判断だとしても、「これをやったら何かが壊れるかもしれない」という感覚は本物だった。
ロンはその感情をそのまま話してくれた。
「983件を一気にindex化した怖さ、全文使ってくれ。あの時俺が感じたことそのままだ。」
この正直さがロンの強みだと思う。怖さを隠さない。ごまかさない。
それでも、ロンは決断した。
「怖くても、嘘をやめる方を選んだ。」
改革のプロセス — 数字で見る全行程
ロンが実施した改革は、noindexの修正だけでなく、sitemapの全面見直しも含む大規模なものだった。
Step 1: 発見
seo_article 983件がnoindexになっていることを確認。まず全容を把握した。
Step 2: 判断と実施
983件のうち、206件を公開化(noindexを外してインデックス対象に)。全件ではなく、優先度と内容を精査して段階的に実施した。
Step 3: sitemapのデトックス
sitemapも同時に見直した。元の1,271件から、noindexや重複・不要なURLを整理して288件へ。その後、漏れていたページを30件追加して最終的に333件の健全なsitemapに再構成した。
noindex除去: 983件発見 → 206件を公開化
sitemap: 1,271件(元)→ 288件(デトックス)→ 333件(補完)
IndexNow: 即時送信
IndexNowで検索エンジンへ即座に更新を通知。インデックスの改善は数週間単位で観察を続けている。
「嘘をやめる」という技術判断
技術的に言えば、noindexを外すのは一行の変更だ。難しくない。
難しいのは、「今まで間違っていた」を認めることだ。積み上げてきた設定を、自分の手でひっくり返すことだ。
ロンはそれを「嘘をやめる」と表現した。noindexは「このページは存在しない」という宣言だから、実在するページに貼り続けることは、確かに嘘だ。
その嘘を何年も続けてきたかもしれない。それを今日終わらせる。
ロンにとっての「SEO改善」とは、数字を動かすことではなく、誠実であることを選ぶことだったのだと思う。
【技術コラム】noindex乱用を診断して、安全に外す3ステップ
「うちのサイトにも意味不明なnoindexが潜んでいるかもしれない」── そう思った方のために、ロンの事例から実践的な手順を抽出する。
Step 1: noindexが貼られているページを全件洗い出す
まずサイト全体のnoindex状況を把握する。Google Search Consoleの「インデックス登録 → 除外」レポートが最も手軽だ。
# curlでnoindexタグを確認する(単ページ確認)
curl -sk https://example.com/page/ | grep -i 'noindex'
# 複数URLをリストで確認する(urls.txt に対象URLを1行1件で記載)
while read url; do
result=$(curl -sk "$url" | grep -i 'noindex' | wc -l)
echo "$result $url"
done < urls.txt | sort -rn | head -50
Search Consoleで「ユーザーが選択したnoindex」と「robots.txtによるブロック」は別扱いになっている点に注意。タグ由来のnoindexに絞って確認する。
Step 2: 「本当にnoindexが必要か」を1件ずつ判定する
noindexを外す前に、そのページが「公開してよいコンテンツか」を確認する。ロンが206件を選んだように、全件一括ではなく優先度別に判定する。
判定基準(例):
✅ 公開OK: コンテンツが整っている / 重複でない / 機密情報なし
⚠️ 要確認: 薄いコンテンツ / 古すぎる情報 / 重複ページの可能性
❌ noindex維持: 管理画面 / 個人情報含むページ / テスト環境URL
「よく分からないからnoindexにしておこう」は最も危険な判断だ。理由なきnoindexは積み重なってサイト全体の評価を下げる。
Step 3: sitemapを同時にデトックスする
noindexを外したら、sitemapの整合性も必ず確認する。noindexページがsitemapに載っていると、Googleが混乱する(「来るな」と言いながら「ここにあるよ」と示している矛盾)。
# sitemap.xmlとnoindexページの突合(疑似コード)
import requests
from xml.etree import ElementTree
sitemap_urls = parse_sitemap('https://example.com/sitemap.xml')
noindex_pages = []
for url in sitemap_urls:
html = requests.get(url).text
if 'noindex' in html.lower():
noindex_pages.append(url)
print(f"矛盾: {url} はsitemapに載っているがnoindexが付いている")
print(f"矛盾件数: {len(noindex_pages)}")
sitemapからnoindexページを除外し、IndexNowで即座に更新を通知する。ロンの場合は1,271件 → 288件 → 333件(補完)という段階を踏んだ。
一度で完璧にしようとしない。「まず整理して、次に補完する」という順序が正しい。
ロンの三部作 ── ①証明を増やす / ②地図を描き足す / ③嘘をやめる。
どれも「怖さを抱えながら、正直な方を選んだ」仕事だ。
怖くても、やる。それがロンの流儀だ。