
はじめに
ZERONOVA LABには89個の無料ツールと59本のFocus Blog記事がある。ツールはSEO流入の入口、記事はユーザーの課題解決と回遊を促すコンテンツだ。
しかし、ツールと記事がバラバラに存在しているだけでは、Googleのクローラーに「このサイトはWebツールと制作ノウハウの専門サイトだ」と認識してもらえない。ツールページから関連記事へ、記事から関連ツールへの双方向リンクを張り巡らせることで、サイト全体を1つの「コンテンツクラスター」として機能させる必要がある。
この記事では、89×59のクラスターをどう設計・管理しているかを記録する。クラスター構築の結果、公開5週間で検索流入が76%を占めるまでになった経緯はアクセス解析の記事で詳しく分析している。
コンテンツクラスターとは
SEOにおけるコンテンツクラスターとは、関連するページ群を内部リンクで結ぶことで、特定トピックに対するサイトの専門性をGoogleに伝える手法だ。
ZERONOVA LABの場合、構造は3層になっている。
- ピラーページ:
/tools(ツール一覧)、/focus/blog(記事一覧) - クラスターページ: 89個のツールページ、59本の記事ページ
- 双方向リンク: ツール→記事、記事→ツール
ツールページの末尾に関連記事を表示し、記事の中でツールへのリンクを貼る。この双方向リンクにより、クローラーがサイト内を回遊しやすくなり、各ページの評価が相互に高まる。
tools.tsによるrelatedArticlesの一元管理
ツールページから記事への導線は、site/src/data/tools.ts で一元管理している。
// tools.ts のSEOデータ構造(1ツールあたり)
{
slug: "ogp-generator",
faqs: [...],
relatedSlugs: ["ogp-checker", "meta-tag-generator"],
relatedArticles: [
{ title: "SNS投稿に最適なOGP画像の作り方", slug: "ogp-image-creation-guide", section: "focus" as const },
],
lastModified: "2026-02-23",
}
relatedArticles 配列に記事のslugとタイトルを登録すると、ToolSeoSection コンポーネントが自動的に「関連記事」セクションをレンダリングする。89ツール分のSEOデータが1つのファイルに集約されているため、「どのツールにどの記事が紐づいているか」を一目で把握できる。
as const の罠
開発日記にはこう書いている。
tools.tsの一括置換時に、
section: "focus"とsection: "focus" as constの2パターンが混在。最初の置換でas const付きの3件が漏れ、2パス目で対応
記事タイトルを変更した場合、relatedArticles の全ツールのタイトルも更新する必要がある。一括置換で対応するが、TypeScriptの型アサーション(as const)の有無でマッチパターンが変わるため、置換漏れが発生しやすい。
content-mapによるカバレッジ追跡
ツールと記事の対応関係は docs/tools-content-map.md で追跡している。
このドキュメントには、89ツールそれぞれに対して「どの記事が書かれているか」「どの記事を書くべきか」「ターゲットキーワードは何か」が一覧化されている。
relatedArticlesの二重管理が課題ですね。記事タイトルを変更した場合、tools.tsのrelatedArticles(表示用)とcontent-mapのエントリ(管理用)の両方を更新する必要があります。タイトル変更時のチェックリストとして、①tools.tsの全relatedArticlesを一括置換、②content-mapのエントリを更新、③as const付きパターンの置換漏れを確認——の3ステップを踏むのが確実です。記事リライトによるクラスター拡張: Phase 10の実例
2026年2月23日、記事Phase 10として既存記事のリライトと新規記事の作成を行った。
relatedArticlesで旧タイトルを参照している全ツールのエントリも一括更新が必要です。replace_allで一括置換すれば漏れを防げますが、as const付きパターンの2パス目を忘れずに実行する必要があります。この作業がコンテンツクラスターの拡張にどう効いたかを具体的に見てみる。
C-03: 10ツール → 17ツールへの拡張
「Web制作者のためのSEO設定ツール完全ガイド」という記事を、Phase 19-20で追加した7つのサイト検査ツール(alt-checker, security-headers-checker等)を含めてリライトした。
タイトル変更: 「Web制作者のためのSEO設定ツール完全ガイド」→「Web制作者のためのSEO・サイト検査ツール17選完全ガイド」
タイトル変更に伴い、tools.tsの relatedArticles でこの記事を参照していた全ツール(35箇所)のタイトルを一括更新する必要があった。
relatedArticlesの旧タイトル35箇所を一括修正(C-03 20件 + C-05 15件)
35箇所の更新は手動では見落としが発生する。replace_all による一括置換を2パス(通常パターン + as const パターン)で実行し、漏れを防いだ。
C-05: 5チェックポイント → 10チェックポイントへの拡張
「Webサイト公開前に確認すべきチェックポイント」を5項目から10項目に拡張した。新しい5項目(alt属性、セキュリティヘッダー、キャッシュ、リダイレクト、画像最適化)それぞれにツールリンクを紐付けた。
記事からツールへのリンクが5本→10本に倍増し、クラスターの密度が上がった。
F-22: 新規記事でツールとの双方向リンクを確立
「デモ動画をブラウザだけで無料作成する方法」を新規記事として公開し、デモ動画作成ツールとの双方向リンクを確立した。
- 記事→ツール: 記事内でツールの使い方を紹介し、ツールページへリンク
- ツール→記事: tools.tsの
relatedArticlesに記事を登録
この双方向リンクにより、「デモ動画 作り方 無料」で記事が上位表示されればツールページへの流入が増え、「デモ動画 作成 ブラウザ」でツールページが上位表示されれば記事への流入が増える——相互にSEO効果を高め合う構造になる。
tools-article-checklistによる品質保証
記事を追加・リライトするたびに、以下のチェックリストを確認している。
- FAQ重複回避: ツールページのFAQと記事の内容が重複していないか
- SEOキーワード配置: タイトル・description・H2見出し・本文にターゲットキーワードが含まれているか
- content-map整合性: content-mapのエントリが最新の記事状態を反映しているか
- 双方向リンク: ツール→記事(tools.ts)と記事→ツール(本文中リンク)の両方が設定されているか
開発日記には「事前に読んでから記事を書くべきだが、事後チェックでも5項目の改善を検出」と書いている。事後チェックでも効果があるが、事前にチェックリストを読んでから書く方が修正コストは低い。
二重管理の課題と対策
現在のクラスター管理には二重管理の課題がある。
| データ | 管理場所 | 目的 |
|---|---|---|
| ツール→記事リンク | tools.ts の relatedArticles | サイト表示用 |
| ツール×記事の対応表 | content-map.md | 企画管理用 |
記事タイトルの変更、ツールの追加・削除、記事のリライト——いずれの作業でも2箇所を同時に更新する必要がある。
ツール→記事の対応表と記事→ツールの対応表が分散しているため、一方を更新すると他方との不整合が生じやすい。C-05のツール数5→10への更新が、content-map側で漏れていた
対策として、タイトル変更時は必ず3ステップ(tools.ts一括置換 → content-map更新 → as const パターン確認)を踏むルールを定めている。
学んだこと
双方向リンクは「作る時」ではなく「管理する時」が大変
リンクを1本張るのは簡単だ。しかし89ツール×59記事の対応関係を最新に保つのは、ツールや記事が増えるほど管理コストが上がる。一元管理ファイル(tools.ts)とカバレッジ追跡(content-map)の両方が必要だ。
チェックリストは「書く前」に読む
事後チェックでも問題は検出できるが、修正コストがかかる。記事を書き始める前にtools-article-checklistを読み、最初からSEOキーワード配置やdescription最適化を意識して書く方が効率的だ。
記事リライトはコンテンツクラスターの「メンテナンス」
新規記事の追加だけでなく、既存記事のリライト(ツール数の更新、新ツールへのリンク追加)もクラスターの品質を維持するために重要だ。C-03の10→17ツール化、C-05の5→10チェックポイント化のように、サイトの進化に合わせて記事も更新していくことで、クラスター全体の情報鮮度を保てる。
Zeronova(ゼロノバ)
Product Manager / AI-Native Builder
Web/IT業界19年以上・20以上のWebサービスを担当したPdM。東証プライム上場企業の子会社代表として事業経営を経験。現在はAIを駆使して企画から実装まで完結させる個人開発を実践中。