「連載ものを始めたいのですが、何回くらいで考えればいいですか?」
ホームページ制作の相談でよく聞かれる質問です。結論から言うと、最初に10回・12回と決めないほうがいい。まず3回で区切り、読まれ方を見てから続きを決める。これが内容も工数もいちばん無駄になりません。
この記事では、なぜ「最初に多く決める」と詰むのかを整理したうえで、連載の本数をデータとして管理し、3本目で延長・終了を判定する仕組みを、実際のコードと計測手順まで含めて解説します。
環境
- Node.js 20.11 / pnpm 9
- Astro 4.5 + Content Collections(Markdown運用)
- ホスティング: Vercel
- 計測: GA4(BigQuery Export 有効)+ Google Search Console
- 想定読者: オウンドメディアを内製しているエンジニア、制作会社のディレクター
なぜ「最初に10本」と決めると失敗するのか
連載企画が破綻するパターンは、ほぼ同じです。
- 企画会議で「SEO的には10本くらい必要」と言われ、10本のタイトルを確定させる
- 3〜4本目でアクセスが伸びず、テーマ選定が間違っていたことに気づく
- しかし「10本と決めたから」と残りを消化する
- 書くのに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本目での判定手順
- 3本目の公開から7日後、上記5指標をスプレッドシートに転記する
- 基準を満たした指標の数を数える
-
3つ以上 → 延長。
seriesPlanを6に、seriesStateをextendedに変更 -
2つ以下 → 連載を閉じ、
seriesStateをclosedにする。次は別テーマで3本 - 延長時は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) — 日々の知見を発信中