エーデルハーツ

Custom WordPress Support & Development

診断ロジック設計(GSC × WordPress 記事伸びしろ診断)

このドキュメントは、Search Console API(またはCSV)で取得したデータを基に、記事URL(page)ごとに「伸びる可能性」を判定し、優先度付きで改善アクションを提示するための診断ロジック案。


0. 用語と前提

入力データ(最低限)

  • page(URL)
  • query(検索クエリ)
  • clicks
  • impressions
  • ctr
  • position(平均掲載順位)
  • range_start, range_end(例:直近28日)

推奨:dimension = page+query を基本にする 拡張:device, country, date を入れると精度が上がる

診断のゴール

  • 「今月やるべき記事 TOP N」を自動抽出
  • 記事ごとに 診断タイプ改善タスク(AI文章化は後段)を返す
  • 断定せず「可能性」「優先度」で表現する

1. 正規化と集計

1-1. クエリ行のフィルタ(ノイズ除去)

  • impressions < 20 の行は原則除外(ロングテールのノイズが多い)
  • position > 60 は原則除外(改善余地はあるが“今月の優先”からは落とす)
  • ブランドクエリ除外(任意)
    • 例:query にサイト名/会社名/著者名が含まれる場合は別枠

1-2. page単位の集計(記事指標)

page_metrics を作る:

  • page_clicks = Σ clicks
  • page_impr = Σ impressions
  • page_ctr = page_clicks / page_impr
  • page_pos = 加重平均(position, impressions)
    • page_pos = Σ(position * impressions) / Σ impressions

1-3. page内の重要クエリ抽出

top_queries(page)

  • impressions順に上位 K=5〜20 を保持
  • 以下も保持すると後段の診断に便利
    • q_pos_band(1-3 / 4-7 / 8-20 / 21-40 / 41+)
    • q_ctr_gap(後述)

2. スコアリング設計(優先度の核)

2-1. 伸びしろスコア(0〜100)

スコアは「改善すると増える可能性が高い」順に並べるための近似値。

推奨の大枠:

  • Opportunity(機会):impressionsの大きさ(伸びたときのインパクト)
  • Proximity(近さ):順位帯(上位に近いほど伸びやすい)
  • Fixability(直しやすさ):CTR課題は比較的短期で改善しやすい
  • Confidence(確度):データ量(impressions)が多いほど確度が高い

例(概念):

  • opportunity = log10(page_impr + 1) を 0〜1に正規化
  • proximity = f(page_pos)(順位が良いほど高い)
    • 1〜3: 1.0
    • 4〜7: 0.8
    • 8〜20: 0.6
    • 21〜40: 0.3
    • 41+: 0.1
  • fixability = 1.0 (CTR型), 0.7 (順位型), 0.5 (意図ズレ/構造問題) など
  • confidence = min(1, page_impr / 2000)(2000impで頭打ち)

最終:

  • score = round(100 (0.35opportunity + 0.35proximity + 0.20fixability + 0.10*confidence))

※ MVPでは「ルールでタイプ判定 → タイプ別の重み」で十分


3. 診断タイプ(ルールベース)

3-1. CTR改善型(表示はあるのにクリックが弱い)

判定条件(例)

  • page_impr >= 500
  • page_pos <= 12(上位〜準上位にいる)
  • page_ctr <= ctr_threshold(page_pos) を満たす

ctr_threshold 例:

  • pos 1-3 : 10%未満は要改善
  • pos 4-7 : 5%未満は要改善
  • pos 8-12: 2%未満は要改善
  • pos 13-20: 1%未満は要改善(ただし順位改善型と競合するので優先度は下げる)

典型原因

  • タイトルが検索意図とズレ
  • ディスクリプション弱い / ベネフィット不足
  • SERPで競合タイトルに負けている
  • 上位クエリが複数意図で散らかっている(意図ズレ型と併発)

推奨アクション(テンプレ)

  • タイトル改善(クエリ語を前寄せ、数字/具体性)
  • ディスクリプション改善(誰の何を解決するか)
  • 見出し冒頭に結論(検索意図一致)
  • 競合SERPの見出し要素を補完(FAQ追加など)

3-2. 順位改善型(8〜20位の“伸ばしどころ”)

判定条件(例)

  • page_impr >= 300
  • 8 <= page_pos <= 20
  • page_clicks が一定以上 or top_queriespos 8-20 が多い

典型原因

  • 情報の網羅性不足(競合より薄い)
  • 内部リンクが弱い
  • 古い情報
  • E-E-A-T要素不足(経験・一次情報・実績)

推奨アクション

  • 追記(不足論点、手順、比較、事例)
  • 見出し再構成(意図順)
  • 内部リンク強化(関連3記事からリンク)
  • 更新日を明示、一次情報・実体験追加

3-3. 意図ズレ(ミスマッチ)型(クエリが散らかる / 主軸が弱い)

判定条件(例)

  • top_queries の上位に、異なるテーマ語が混在
    • 例:「料金」「やり方」「比較」「おすすめ」「テンプレ」など複数カテゴリが混ざる
  • かつ page_pos が中位(10〜40)で停滞
  • かつ page_ctr が低い

推奨アクション

  • 記事の主目的を1つ決める(主軸クエリ)
  • 見出し順を「意図の自然な流れ」に揃える
  • 逸れた意図は別記事に分離して内部リンク

3-4. カニバリ疑い型(同一クエリで複数記事が表示される)

判定条件

  • 同一 query に対し、page が 2つ以上存在し、
  • それぞれ impressions が一定以上(例:>=100)
  • かつ片方の順位が上がると他方が下がる傾向(※日次データがあると強い)
    • MVPでは「複数pageに分散」だけでも警告を出す

推奨アクション

  • 主記事を決めて統合(重複部分を移動)
  • 片方は別角度にリライト(意図を分ける)
  • canonical / 内部リンクの整理

3-5. “守り”型(順位は良いが落下リスクあり)

判定条件

  • page_pos <= 5
  • page_impr >= 1000
  • 直近でCTR低下 or クリック低下(※日次比較があると強い)

推奨アクション

  • タイトル微調整(過剰変更は避ける)
  • 競合の新規要素を追加(FAQ/最新情報)
  • 表示速度/構造化データチェック

3-6. インデックス/露出弱い型(表示回数が伸びない)

SEOの“長期戦”に寄るので優先は下げるが、診断としては出す。

判定条件

  • page_impr < 100 かつ published から日数が経っている(WP側メタが必要)
  • もしくは position > 40 が中心

推奨アクション

  • 内部リンク追加(関連上位記事から)
  • タイトルに主要語を明示
  • カテゴリ設計/パンくず/サイト構造の点検

4. 診断タイプの優先順位(同一ページに複数当たる場合)

推奨の優先付け:

  1. カニバリ疑い(根本原因になりやすい)
  2. CTR改善型(短期効果が出やすい)
  3. 順位改善型(追記で上げやすい帯)
  4. 意図ズレ型(構造改修が必要)
  5. 守り型(上位維持)
  6. 露出弱い型(長期)

※ ただし page_impr が非常に大きい場合は CTR型を最優先に繰り上げても良い


5. 出力フォーマット(診断結果のデータ構造)

diagnosis_result(JSONで保存推奨):

  • page
  • range_start, range_end
  • score(0〜100)
  • type(CTR / POSITION / INTENT / CANNIBAL / DEFENSE / LOW_EXPOSURE)
  • evidence
    • page_impr, page_clicks, page_ctr, page_pos
    • top_queries: [{query, impressions, clicks, ctr, position}, …]
  • todo_templates(AIが無くても出る)
    • todo_1, todo_2, todo_3
  • ai_prompt_seed(任意)
    • タイトル案生成用の入力素材(クエリ・現タイトル・狙い等)

6. MVPの最小診断セット(まずはこれだけで売れる)

  1. CTR改善型
  2. 順位改善型(8〜20)
  3. カニバリ疑い型
  4. 「今月のTOP5(score順)」自動抽出

これで“価値が伝わる”。


7. 実装メモ(WordPress側データ突合)

可能なら以下を合わせて診断の精度を上げる:

  • page URL → post_id の解決(url_to_postid() など)
  • post_title
  • post_modified
  • category, tag
  • 内部リンク数(簡易でOK:本文中の自サイトリンク数)

8. 追加で強くなる拡張(次フェーズ)

  • 日次データ保持 → 前週比/前月比診断(落下検知・上昇検知)
  • device別(mobileでCTRが悪い等)
  • country別(日本向けのみなら固定でもOK)
  • “SERP競合特徴”の推定(FAQ/HowTo/レビュー構造化の提案)

Chat