WordPressのタグを606個から490個に減らした話

WordPressのタグを606個から490個に減らした話

Search Console の「クロール済み – インデックス未登録」が489件。

この数字の犯人を探していたら、まったく別の問題に行き当たりました。

タグが606個あったのです。

公開記事は150本ほどしかないのに、です。

タグ606個の内訳がひどかった

タグ606個の内訳(記事0件142個・1件389個・2件以上75個)と、全ステータス照合で116個を削除し490個にした流れの図解

まず現状を数えるところから始めました。

WordPress の REST API でタグを全件取得し、記事数(count)ごとに分類してみます。

let all=[],page=1;
while(page<=7){
  const r=await fetch(`/wp-json/wp/v2/tags?per_page=100&page=${page}&_fields=id,name,count`,
    {headers:{Authorization:auth},credentials:"omit"});
  if(!r.ok)break;
  const a=await r.json();
  if(!a.length)break;
  all=all.concat(a); page++;
}
console.log("total",all.length,"count0",all.filter(t=>t.count===0).length);

結果は散々でした。

記事0件のタグが142個、記事1件だけのタグが389個。

つまり606個のうち531個が、ほぼ何の役にも立っていなかった計算になります。

「関連しそうな言葉をとりあえず付けておく」を何年も続けた結果です。

タグアーカイブがクロール予算を食っていた

問題は、管理画面が見にくいことではありません。

WordPress はタグごとにアーカイブページを自動生成します。

記事1件だけのタグが389個あるということは、**中身がその1記事と重複するだけの薄いページが389枚**公開されている状態。

さらにタグアーカイブにはフィードも付くので、実際のURL数はその倍近くになります。

Google がこれらを律儀にクロールしたうえで「登録する価値なし」と判断すれば、そのまま「クロール済み – インデックス未登録」に積み上がっていくわけです。

削除の判断基準をどう引いたか

ここで安易に「count=0 を全部消す」とやると事故ります。

WordPress の count は公開記事だけを数えた値で、下書きに付いているタグは 0 と表示されるからです。

私の場合、count=0 の142個のうち26個が下書きで使用中でした。

これを消していたら、公開時にタグが消えた下書きが26本できあがっていたことになります。

全ステータスを含めて照合する

そこで、タグごとに全ステータスの投稿を検索して、本当に0件かを確認する方式に変えました。

const r=await fetch(
  `/wp-json/wp/v2/posts?tags=${id}&status=publish,draft,pending,future&per_page=1&_fields=id`,
  {headers:{Authorization:auth},credentials:"omit"});
const used=(await r.json()).length>0;   // true なら削除対象から除外

この照合を通したうえで、真に未使用だった116個を削除対象に確定させました。

残った26個は、下書きが公開されれば自然と count が付く予備軍。

消さずに置いておくのが正解です。

消す前にバックアップを取る

タグの削除はゴミ箱を経由せず、その場で消えます。

削除前に id と name を CSV へ書き出しておきました。

間違えて消しても、名前さえ残っていれば作り直して付け直せます

リストを見返して「これは残すべきだった」と気づけるという意味でも、手間に見合う保険でした。

結果と、その後の付与ルール

116個を削除して、606個から490個になりました。

体感で言えば、投稿画面のタグ入力欄で既存タグの候補が出るようになったのが一番の変化です。

とはいえ、記事1件だけのタグが391個残っている事実は変わりません。

こちらは統合先を人間が判断する必要があるので、今後の宿題として残しています。

同じことを繰り返さないよう、付与のルールも決めました。

新しいタグを作る前に必ず既存タグを検索し、**1記事にしか使わないと分かっている言葉はタグにしない**

タグは検索面を増やす装置ではなく、読者が同じテーマの記事を辿るための導線だと考えれば、自然とこの結論になります。

最後に

タグの整理は、やってみると SEO というより在庫管理に近い作業でした。

付けるのは一瞬、棚卸しは数時間。

もし手元のブログでタグが3桁に達しているなら、count の分布を数えるところだけでも試してみてください。

WordPress のタグ仕様は WordPress.org のサポート記事 にまとまっています。

以上です。