1. Search Consoleでの問題発見
Google Search Console(GSC)のインデックス作成レポートにて、以下の2つの検出アラートを確認しました。
- 「noindex タグによって除外」:6ページ
- 「重複 / Google が別 canonical を選択」:1ページ
2. noindex ページのコード監査
全HTMLファイルをコード検索・自動スクリプトで照合した結果、legal/commercial-transactions.html(特定商取引法表記)および magazine/category/ 配下の2ページにおいて、機械的に <meta name="robots" content="noindex, follow"> が残存していたことが原因と特定されました。
3. /ja/ 重複構造の発見と 301 リダイレクト一本化
重複canonicalエラーの原因を調査したところ、旧日本語トップ用のHTMLファイル ja/index.html が存在し、<link rel="canonical" href="https://sleeplatelab.com/"> を持っていたため、Googlebot が /ja/ を重複と判定していました。
対策として `ja/index.html` をリポジトリから物理削除し、`.htaccess` 内のサーバーレベル 301 転送ルール(`RewriteRule ^ja/?$ / [R=301,L]`)に一本化することで、Googlebot に対して正しい HTTP 301 応答を返す構成へ修復しました。
4. sitemap.xml の再構築と全49 URLの自動照合
法務表記およびカテゴリーページを網羅するため、`sitemap.xml` を更新し、検証スクリプト `scripts/check_site.py` を用いて、公開全ページとサイトマップの不一致が 0 であることを自動テストで実証しました。
5. 一度カテゴリーページを index,follow 化した判断
当初の修正(コミット `8153fdc`)では、GSCのアラート件数を減らす目的で `magazine/category/case-study/` および `magazine/category/web-development/` の `noindex` を解除し、`index, follow` へ変更しました。
6. Production再監査と1記事カテゴリーの課題発見
しかし、サイト全体の全49 URLに対して本文文字数、独自性、ユーザー価値の定量監査を実施した際、以下の事実が浮き彫りとなりました。
- `magazine/category/case-study/`:本文わずか 149 文字(掲載記事 1 件)
- `magazine/category/web-development/`:本文わずか 164 文字(掲載記事 1 件)
記事が1件しか存在しない150文字前後のアーカイブページは、検索ユーザーに対して独立した情報価値を十分に提供できておらず、検索エンジンにとっても「薄い一覧ページ(Thin Content)」と判定されるリスクがあることが再認識されました。
7. 再度の noindex,follow 変更判断
「一度修正したから完了とする」のではなく、ユーザー価値と検索品質を最重視し、判断を再評価しました。該当する2つのカテゴリーページを再び **`noindex, follow`** に戻し、`sitemap.xml` からも除外する方針に決定しました。
記事数が各カテゴリー 3〜5 件以上に拡充され、一覧として十分なコンテンツ価値を提供する段階で、改めて `index, follow` 化を再検討します。
8. まとめと学び
SEOやインデックスの改善は、GSCの警告メッセージを消去すること自体が目的ではありません。Production環境において定量的な再監査を継続し、ユーザーにとって本当に価値のあるページのみをインデックスに送る姿勢が、長期的なサイトの信頼性を担保します。
Evidence
- 問題特定コミット:
8153fdc(fix(seo): remove redundant ja/index.html) - 再評価スクリプト:
python3 scripts/check_site.py - 特定商取引法表記の更新:
legal/commercial-transactions.html(index, follow化) - 転送テスト:
curl -I https://sleeplatelab.com/ja/(HTTP 301 Location: https://sleeplatelab.com/)