オーガニック成長
カレントプロジェクトでPLAYBOOK.mdに記載されているシステムを実行します。最初に一度読み、その後は該当するフェーズに達したときだけ該当モジュールを読みます。すべての調査結果はプロジェクト内のdocs/seo/に書き込み(templates/からテンプレートをコピー)、各フェーズ後にコミットします。
マップ
| # | フェーズ | 読む場所 | プロジェクトへの出力 |
|---|---|---|---|
| 0 | 偵察 + ベースライン | PLAYBOOK.md §0 | docs/seo/00-baseline.md |
| 1 | 技術SEO | checklists/technical-seo.md | コード + seo.config.mjs |
| 2 | Search Console + Bing | checklists/search-console.md | ベースライン数値 |
| 3 | 調査:トレンド、支払意思額、サジェスト、Ahrefs/Semrush、Search Console、ソース | modules/research.md | docs/seo/research/*.md、09-sources-log.md |
| 4 | 成長計画 | modules/pseo-2.md、modules/tool-led-seo.md、modules/money-pages.md、modules/linkable-assets.md | docs/seo/03-seo-plan.md |
| 5 | クリーンアップ + 構築 | PLAYBOOK.md §5、ブリーフ04/07/08 | ページ、リダイレクト、05-consolidation-map.md |
| 6 | GEO + コンバージョン | modules/geo-ai-search.md、modules/seo-to-revenue.md | robots、ページ形状、CTA、イベント |
| 7 | ローンチ + 測定 | PLAYBOOK.md §7 | docs/seo/06-launch-log.md |
ユーザーが一部だけを依頼することもできます(「ツールSEOだけ」「サイト監査して」「pSEO計画」)。その場合は該当フェーズのみ実行しますが、最初にフェーズ0は素早く実行します。
最初に確認すること(コードからわからないことのみ)
- 本番ドメインと推奨ホスト(apex または www)。
- ターゲット国と言語。 創業者の所在地から推測しないでください。
- Search Console / アナリティクスへのアクセス。
- 有料キーワードツール(Ahrefs、Semrush)。スクリーンショットやエクスポートで構いません。
- サイト上の評価、レビュー数、「利用者数」の主張は実在しますか?
スクリプト(Node 18+、依存関係なし;scripts/内)
| スクリプト | 用途 |
|---|---|
check-live.sh <url> | ライブサイトからクローラーが取得する内容:リダイレクト、404、robots、サイトマップ、ページごとのタイトル/正規URL/H1(JSなし) |
prerender.mjs --config seo.config.mjs | SPA → ルートごとの静的HTML + 404.html + spa.html + sitemap.xml |
audit.mjs <dist> --base <url> | 構築済みHTMLをチェック:タイトル、説明、正規URL、H1、薄いページ、JSON-LD、サイトマップの一貫性、評価スキーマ |
overlap.mjs <dist> --prefix /<cluster>/ | 重複コンテンツ品質ゲート:5単語シャングルJaccard、<40%かつ≥800語 |
autocomplete.mjs "<seed>" --gl us,gb,au --expand | 国別のリアルなGoogleサジェストクエリ(需要の証拠) |
苦労して学んだルール
- ターゲット市場のロケールで調査すること。 誤った国のサジェストで、かつて全く異なる市場向けのページが大量に生成されました。
- すべての調査プルは日付入りファイルとして
docs/seo/research/に保存し、すべてのページ上の事実は09-sources-log.mdに記録すること(法的事実の公式ソース;競合の事実は日付入りで90日ごとに再確認;検証不可能な主張は除外)。 - Ahrefsの無料ツールには人間による確認が必要で、ユーザーがそれを通過する必要があります。 スクリーンショットを依頼し、回避を試みないでください。
- ページは需要が存在するから存在します。 計画されたすべてのページは、その証拠を明記します。
- 品質ゲートは必須です。 兄弟ページとの重複<40%、≥800語、独自のデータ/ツール/出力を持つこと。テンプレート化された
{city}のスワップはnoindexにしてサイトマップから除外。スケールドコンテンツのペナルティはドメイン全体に及びます。 - ツールはページであり、ウィジェットではありません。 各ツールには独自の編集ガイド、FAQ、スキーマを静的HTMLで含める必要があります。そうでなければ薄いページとみなされます。
- より少なく、より深いページに。 薄い投稿を融合して深いガイドにし、古いスラッグはすべて301リダイレクトします。
- 数字やソーシャルプルーフを捏造しないこと。 価格はソースを明記するかページ上で計算;競合の事実は日付入り;評価スキーマは所有者が実在確認した場合のみ。
- クローラー(およびAIクローラー)はJavaScriptなしでコンテンツを見られる必要があります。
- 1つのホスト、1つのURL、リアル404、ページと同じデータから生成されたサイトマップ。
- 10~20ページ単位でローンチし、インプレッションが得られたものだけを拡大すること。
- すべてのページは関連するCTAで終わり、ページグループごとにコンバージョンを追跡すること。
作業スタイル
- 本番影響のある変更(リダイレクト、robots.txt、noindex、ページ削除)は、まず一覧とともにユーザーから一行の確認を得ます。
- Search Console、DNS、アナリティクスのクリックはユーザー自身で行います;正確な手順を提供します。
- ビルド後は毎回
audit.mjsを、デプロイ後は毎回check-live.shを実行し、サマリーを貼り付けます。 - 日付入りの数値を
06-launch-log.mdに記録し、次回のセッションで比較できるようにします。
フレームワーク
prerender.mjsはクライアントレンダリングSPA(Vite、CRA、React Router)向けです。Next.js、Astro、Nuxt、SvelteKit、Remix:それぞれのメタデータAPIとサイトマッププラグインを使用し、ビルド出力に対してaudit.mjsを実行します。WordPress/Webflow/Shopify:フェーズ1のコードはスキップし、check-live.shを使ってライブサイトに対してチェックリストを実行します。