0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

連載ブログの回数は最初に決めすぎない — 「3本→計測→延長」を仕組みで回す

0
Posted at

「連載ものを始めたいのですが、何回くらいで考えればいいですか?」

ホームページ制作の相談でよく聞かれる質問です。結論から言うと、最初に10回・12回と決めないほうがいい。まず3回で区切り、読まれ方を見てから続きを決める。これが内容も工数もいちばん無駄になりません。

この記事では、なぜ「最初に多く決める」と詰むのかを整理したうえで、連載の本数をデータとして管理し、3本目で延長・終了を判定する仕組みを、実際のコードと計測手順まで含めて解説します。

環境

  • Node.js 20.11 / pnpm 9
  • Astro 4.5 + Content Collections(Markdown運用)
  • ホスティング: Vercel
  • 計測: GA4(BigQuery Export 有効)+ Google Search Console
  • 想定読者: オウンドメディアを内製しているエンジニア、制作会社のディレクター

なぜ「最初に10本」と決めると失敗するのか

連載企画が破綻するパターンは、ほぼ同じです。

  1. 企画会議で「SEO的には10本くらい必要」と言われ、10本のタイトルを確定させる
  2. 3〜4本目でアクセスが伸びず、テーマ選定が間違っていたことに気づく
  3. しかし「10本と決めたから」と残りを消化する
  4. 書くのに40時間、読まれるのは3本。残り7本は在庫になる

問題はサンクコストです。回数を先に確定させると、途中で「この方向は違う」と分かっても撤退できなくなる。ブログは書籍と違い、読者の反応がリアルタイムで返ってくるメディアです。確定してから走るより、走りながら確定したほうが合理的です。

実際にあった例を挙げます。ある中小企業のオウンドメディアで「補助金活用の12回連載」を企画しました。ところが3本目の時点で、検索から来たユーザーが読んでいたのは補助金の概要回だけで、実務編にはほぼ流入がないことが判明。それでも残り9本を書き切るのに約35時間を費やし、結果的にCVは初回記事からのみ発生しました。

別の案件では最初から3本区切りにしました。3本目でエンゲージメント率が高かった「事例インタビュー」だけを延長し、そこに内部リンクを集中。同じ工数で問い合わせが3件増えています。延長できる前提で作ると、勝ちテーマに工数を寄せられるのです。

ルール:まず3本で区切る

3という数字には根拠があります。

  • 検索意図を検証できる最小単位: 1本では「たまたま読まれた」のか判断できない。3本あるとクエリの傾向が見える
  • 内部リンク構造が組める最小単位: 相互リンクを張って回遊を計測するには最低3ノード必要
  • 撤退コストが小さい: 3本なら書き切れる。失敗しても次の企画に切り替えられる

そして延長は「+3本」で行います。いきなり10本に戻さないのがポイントです。

実装:連載をフロントマターで管理する

「3本区切り」を人力の運用ルールにすると必ず崩れます。データとして持たせて、サイト側が自動で目次や残数を出すようにしましょう。

---
title: "補助金活用の実務:申請書の書き方"
publishedAt: 2024-06-12
series: "subsidy-basics"
seriesOrder: 2
seriesPlan: 3          # 予定本数(延長時にここだけ書き換える)
seriesState: "open"    # open | extended | closed
---

Astro の Content Collections でスキーマを定義します。

import { defineCollection, z } from 'astro:content';

const blog = defineCollection({
  type: 'content',
  schema: z.object({
    title: z.string(),
    publishedAt: z.date(),
    series: z.string().optional(),
    seriesOrder: z.number().int().positive().optional(),
    seriesPlan: z.number().int().min(1).default(3),
    seriesState: z.enum(['open', 'extended', 'closed']).default('open'),
  }),
});

export const collections = { blog };

連載目次と「残り何本か」を自動生成する関数です。

type Post = {
  slug: string;
  data: {
    title: string;
    series?: string;
    seriesOrder?: number;
    seriesPlan: number;
    seriesState: 'open' | 'extended' | 'closed';
  };
};

export function buildSeries(posts: Post[]) {
  const grouped = new Map<string, Post[]>();
  for (const p of posts) {
    if (!p.data.series) continue;
    const list = grouped.get(p.data.series) ?? [];
    list.push(p);
    grouped.set(p.data.series, list);
  }

  return [...grouped.entries()].map(([name, list]) => {
    const sorted = list
      .filter((p) => typeof p.data.seriesOrder === 'number')
      .sort((a, b) => (a.data.seriesOrder ?? 0) - (b.data.seriesOrder ?? 0));
    const plan = sorted[0]?.data.seriesPlan ?? 3;
    return {
      name,
      posts: sorted,
      plan,
      published: sorted.length,
      remaining: Math.max(plan - sorted.length, 0),
      state: sorted[0]?.data.seriesState ?? 'open',
    };
  });
}

これで「全◯回」という表記を記事本文に手書きする必要がなくなります。延長時は seriesPlan: 6 に書き換えるだけ。手書きの「全3回」は延長した瞬間に嘘になるので、必ず自動生成にしてください。

3本目までに計測すべき指標

判定は感覚ではなく数字で行います。3本目の公開から7日後に、以下を埋めます。

指標 取得場所 基準の目安 下回ったときのアクション
連載内の回遊率 GA4 探索レポート 20%以上 内部リンクの位置と文言を変更
1本目→3本目の遷移数 GA4 ページ遷移 10セッション以上 目次を記事上部へ移動
平均エンゲージメント時間 GA4 エンゲージメント 90秒以上 導入文と見出し構成を再設計
想定クエリでの表示回数 Search Console 100imp以上 キーワード選定をやり直す
コンバージョン(問い合わせ等) GA4 コンバージョン 1件以上 テーマ自体を変更

回遊を測るには、連載ナビのクリックをイベントで送ります。

// 「次の記事へ」クリックを series 単位で計測する
document.querySelectorAll('[data-series-next]').forEach((el) => {
  el.addEventListener('click', () => {
    if (typeof gtag !== 'function') return;
    gtag('event', 'series_next_click', {
      series: el.dataset.series,
      from_order: Number(el.dataset.order),
      to_order: Number(el.dataset.order) + 1,
    });
  });
});

3本目での判定手順

  1. 3本目の公開から7日後、上記5指標をスプレッドシートに転記する
  2. 基準を満たした指標の数を数える
  3. 3つ以上 → 延長。seriesPlan を 6 に、seriesState を extended に変更
  4. 2つ以下 → 連載を閉じ、seriesState を closed にする。次は別テーマで3本
  5. 延長時はURL構造を変えない。スラッグは内容ベース(/blog/subsidy-form/)にする

ハマりポイント

  • URLに連載番号を入れる: /series/1/ のような連番にすると、延長時に番号が崩れてリダイレクト地獄になる
  • サイトマップや構造化データに「全3回」を埋め込む: 延長で不整合が起きる。動的生成に統一する
  • 内部リンクを片方向で張る: 2本目→3本目だけ張って逆方向を忘れると回遊が測れない。buildSeries から双方向に生成する
  • GTM経由でイベント名が揺れる: series_next_click と seriesNextClick が混在するとGA4で集計できない。命名は定数化する
  • 3本目を公開した直後に判断する: 検索流入は2〜4週間遅れて来る。最低7日、できれば14日待つ

比較:最初に確定 vs 3本区切り

観点 最初に10本確定 3本区切り+延長
初期の意思決定コスト 高い 低い
途中の軌道修正 不可 可能
無駄になる工数 大きい 小さい
検索評価の蓄積 テーマが分散しがち 勝ちテーマに集中
執筆の心理的負担 常に高い 区切りごとに完了感がある
向いているケース 書籍化前提の体系解説 オウンドメディア・集客目的

FAQ

Q. 3本では伝えきれないテーマの場合は?
A. 3本の中で「全体像→実務→事例」と圧縮してください。伝えきれない部分は延長枠に回す前提で、3本目に「続きは反応を見て決めます」と書く必要はありません。あくまで内部の管理情報です。

Q. 3本目で反応がなかったら、書いた3本は無駄ですか?
A. 無駄ではありません。3本あれば「このテーマは刺さらない」という確度の高い結論が得られます。10本書いてから気づくのと比べ、検証コストは3分の1以下です。

Q. 連載を途中で止めるとSEO的にマイナスですか?
A. 大きなマイナスはありません。ただし連載目次ページを残す場合は、閉じた状態(seriesState: "closed")を明示し、リンク切れを出さないようにしてください。

Q. 延長のたびに工数見積もりをやり直すのが面倒です。
A. 「+3本=約6〜9時間」と固定してしまえば、見積もりは不要です。実際、1本あたり2〜3時間で書ける粒度にテーマを分割するのが前提条件になります。

Q. CMSを使う場合も同じ考え方でいいですか?
A. 同じです。WordPress ならカスタムタクソノミー series と series_order、series_plan を用意し、テンプレートで残数を出します。ヘッドレスCMSでもフィールド設計は本記事のフロントマターと同じで構いません。

まとめ

  • 連載の回数は最初に多く決めず、3本で区切る
  • 予定本数は本文に書かず、フロントマターで管理して自動生成する
  • 3本目の7〜14日後に5指標を確認し、3つ以上基準を超えたら**+3本**延長
  • URLに連番を入れない、イベント名を揺らさない、片方向リンクを作らない

「何回で出せばいいですか」と聞かれたら、答えは「まず3回、反応を見てから」です。判断を先送りするのではなく、判断するタイミングと条件を先に決めておく。これが連載を無駄なく運用するいちばん確実な方法です。


この記事を書いた人

BENTEN Web Works — 業務自動化・システム開発のフリーランスエンジニアです。

GAS / Python / RPA を使った業務自動化や、Web制作・システム開発のご相談を承っています。
「こんなこと自動化できる?」というご質問だけでもお気軽にどうぞ。

👉 BENTEN Web Works — 詳細・お問い合わせはこちら
🐦 X(旧Twitter) — 日々の知見を発信中

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?