【45,415記事分析】Qiitaでいいねが増える再現可能な法則はあるのか?
はじめに — 「いいねが増える法則」は存在するのか?
Qiitaに記事を投稿するたびに気になることがある。
- 「投稿時刻は朝がいいのか、夜がいいのか?」
- 「タグはいくつ付ければいいのか?」
- 「タイトルの書き方で変わるのか?」
ネット上には「朝8時に投稿すると伸びる」「タグは5個」といった定性的なアドバイスが溢れているが、実際のデータで検証された話はほとんど見かけない。
そこで今回、以下の2つのデータセットを作成して科学的に分析した。
- Qiita公開記事データ(
public_items_minimal.csv) - 30分刻みスナップショット(2023年11月・2024年6月・2025年1月・2026年2月、計3年分)
分析の設計思想は明確で、**「投稿前に制御できる要素だけ」**に絞っている。フォロワー数や著者の知名度は後から変えられないので、分析対象から除外している。
分析設計と前提の確認
データ品質
| データ集合 | 件数 | 0いいね率 | P(10いいね以上) |
|---|---|---|---|
| 全件 | 45,415 | 53.52% | 6.33% |
| 24時間以上経過 | 45,008 | 53.24% | 6.39% |
| 72時間以上経過(主分析対象) | 44,334 | 52.97% | 6.45% |
まず直視すべき現実として、Qiitaの記事の53%は0いいねで終わる。いいね分布は極端なロングテール構造で、上位1%の記事がいいね総数の48%を占めている。
主分析は「投稿後72時間以上経過した記事」に限定した。投稿直後は露出時間の差が大きく、いいね数が安定しないためだ。
なぜ「P(10いいね以上)」を指標にするか
平均いいね数は外れ値(最大3208いいね)に引きずられやすく、意思決定の指標として使いにくい。そこで本分析では 「10いいね以上を獲得できる確率」(P(10+)) を主指標にした。これは「並の記事が埋もれず認知を得られる最低ライン」として現実的な目標設定になる。
3つのコア施策の効果検証
施策1:タグを5個にする
Qiitaではタグを最大5個設定できるが、実際に5個付けている記事と3個以下の記事では、統計的に有意な差が観測された。
| 比較 | 平均いいね差 | P(10+)差 |
|---|---|---|
| タグ数5 vs タグ数3以下 | +2.553 [1.837, 3.293] | +4.20% [3.70%, 4.75%] |
| タグ数2以下 vs タグ数5 | −3.221 [−3.975, −2.539] | −5.11% [−5.70%, −4.62%] |
著者固定効果(同一ユーザー内比較)でも、ユーザー内P(10+)差は+1.65% [0.50%, 2.78%]と正の効果が残った。
解釈: タグを5個にすることで、検索面・関連記事面での露出機会が広がる。タグが2個以下の記事は「発見されにくい構造」になっている。
また普遍特徴の検証でも、タグ数5の効果は2023年から2026年まで全時代で一貫して正であることが確認された。
施策2:推奨時間帯(01/02/08/09/10/15/17/19時)に投稿する
時刻別のいいね平均を見ると、トップは**8時(平均6.33いいね)**で、次いで9時(5.68)、19時(5.16)が続く。
| 時刻(JST) | 平均いいね | P(10+) | 件数 |
|---|---|---|---|
| 08:00 | 6.334 | 6.46% | 1,486 |
| 09:00 | 5.677 | 8.83% | 1,902 |
| 19:00 | 5.160 | 6.66% | 2,103 |
| 10:00 | 4.856 | 7.52% | 2,141 |
| 15:00 | 4.789 | 6.58% | 2,372 |
推奨時間帯 vs 非推奨時間帯の比較:
| 比較 | 平均いいね差 | P(10+)差 |
|---|---|---|
| 推奨 vs 非推奨 | +1.419 [0.811, 2.187] | +1.04% [0.57%, 1.51%] |
著者固定効果では信頼区間が0をまたぐケースもあり(ユーザー内差: 0.246 [−0.497, 1.054])、時刻効果は他の施策と比較すると弱めだが、全時代で一貫して正方向であることは確認されている。
曜日では月曜(平均4.67いいね)と水曜(4.29)が強く、土曜(3.57)が最も弱い。
施策3:タイトルを【】構造にする
タイトルに「【】」を含む記事と含まない記事の比較:
| 比較 | 平均いいね差 | P(10+)差 |
|---|---|---|
| 【】あり vs なし | +1.236 [0.231, 2.430] | +1.02% [0.35%, 1.65%] |
ただし、著者固定効果では信頼区間が0をまたぎ(ユーザー内差: −1.448 [−3.710, 0.423])、準普遍特徴(res整合率80%)に分類される。AIテーマとの組み合わせで真価を発揮する(後述)。
発見1:タイトルに「コロン」と「括弧」を入れると逆効果
統制後残差で分析すると、単純平均では見えにくいがタイトルに含めると一貫してマイナスになる文字パターンが存在する。
| 要因 | 全体residual差分(P10+) | 全時代で一貫して負か |
|---|---|---|
| コロン(:/:)含む | −2.12% | ✅ 100% |
| 括弧(()/( ))含む | −1.72% | ✅ 100% |
コロン例:「Pythonの使い方:基礎から応用まで」→ マイナス
括弧例:「Pythonの使い方(初心者向け)入門」→ マイナス
これらはどの年代・月でも一貫して負の効果を示す「普遍的に効かない特徴」だ。
なぜかは断定できないが、「タイトルの情報密度が下がる」「クリック前に内容が分かりすぎて好奇心が減る」といった仮説が考えられる。
発見2:組み合わせると跳ねる「正のシナジー」
単独では弱い要因でも、組み合わせると効果が増幅することが相互作用分析で確認された。
正のシナジー(組み合わせると伸びる)
| ペア | valid残差uplift |
|---|---|
| 【】構造 × AIテーマ | +4.00% |
| 【】構造 × 疑問形(?/なぜ) | +2.81% |
| 推奨時間帯 × AIテーマ | +2.21% |
| タグ数5 × AIテーマ | +2.11% |
特に**「【】構造とAIテーマの組み合わせ」**は、それぞれ単体の効果を大きく上回るシナジーが確認された。
本記事のタイトル「【45,415記事分析】Qiitaでいいねが増える再現可能な法則はあるのか?」は、「【】構造 × 疑問形 × AIテーマに近い分析内容」を意図的に組み合わせている。
負のシナジー(組み合わせると相殺)
逆に、掛け合わせると効果が消える組み合わせも存在する。
| ペア | valid残差 |
|---|---|
| タグ数5 × 括弧含む | −2.73% |
| 推奨時間帯 × 括弧含む | −2.62% |
| コロン含む × AIテーマ | −1.19% |
| 【】構造 × コロン含む | −1.53% |
タグを5個設定して時間帯も気をつけているのに、タイトルに括弧を入れてしまうと効果が相殺される。
発見3:本文の「長さ」より「構造」が重要
本文あり記事(27,016件)での分析結果:
| 本文特徴 | 平均いいね差 | P(10+)差 |
|---|---|---|
| 本文長 上位四分位(5,504字以上)vs 下位四分位(1,439字以下) | +8.230 | +12.21% |
| 見出し3個以上 vs 1個以下 | +5.005 | +8.28% |
| リンク3個以上 vs 0個 | +4.377 | +7.55% |
| コードブロック2個以上 vs 0個 | −1.527 | −1.24% |
予想外だったのが**「コードブロックが多いとマイナス」**という結果だ。コードを貼るだけで解説が薄い記事が多い可能性、あるいはコードヘビーな記事は特定の狭いテーマに限定されやすいことが一因かもしれない。
本文の設計指針をまとめると:
- 文字数は5,000字以上を目指す(ただし量より質)
- 見出しで記事を3ブロック以上に分ける
- 参考リンクを3つ以上埋め込む
- コードを貼るだけでなく、前後の説明を厚くする
タグ選定の戦略:shrunk推定でリスクを下げる
タグの効果を生の割合で比較すると、サンプル数が少ないタグが過大評価される。そこでEmpirical Bayes法による「縮約推定(shrunk)」でP(10+)を補正した。
P(10+) 高いタグ トップ10(shrunk値・CI下限順)
| タグ | n | P(10+) shrunk | 平均いいね(shrunk) |
|---|---|---|---|
| AdventCalendar2023 | 130 | 40.34% | 15.621 |
| Elixir | 248 | 28.67% | 6.486 |
| Livebook | 88 | 25.45% | 6.063 |
| bedrock | 189 | 21.65% | 8.677 |
| LangChain | 165 | 19.31% | 7.297 |
| ollama | 117 | 16.93% | 9.328 |
| ポエム | 725 | 15.76% | 20.769 |
| ClaudeCode | 677 | 10.68% | 10.407 |
強いタグペア(組み合わせ効果が高いもの)
| タグペア | n | P(10+) | 平均いいね |
|---|---|---|---|
| Elixir + Livebook | 86 | 34.88% | 7.151 |
| AWS + bedrock | 155 | 26.45% | 10.097 |
| Claude + 生成AI | 74 | 21.62% | 23.243 |
| LLM + rag | 89 | 20.22% | 10.258 |
| ClaudeCode + 生成AI | 61 | 21.31% | 45.279 |
「ClaudeCode + 生成AI」ペアの平均いいね45.3は突出している。現在のAIエンジニアリングトレンドを反映した組み合わせだ。
まとめ:定量ループこそが本質
今回の分析から導いた実行ポリシーをまとめる。
やると伸びやすいこと
- タグは5個にする(P(10+)+4.20%、全時代で一貫)
- 推奨時間帯(8時・9時・19時・10時・15時・17時)に投稿する
- タイトルを【】構造にする(AIテーマ・疑問形と組み合わせると効果増幅)
- 本文を5,000字以上・見出し3個以上・リンク3個以上にする
- 疑問形のタイトルにする(全時代で一貫して+4.24%)
やると取りこぼしやすいこと
- タグを2個以下にする(P(10+)−5.11%)
- タイトルにコロン(:)や括弧(())を入れる(全時代で一貫してマイナス)
- タイトルを20文字以下にする(情報量不足でクリック率低下)
3条件を全部満たすとどうなるか
「タグ数5 × 推奨時間帯 × 【】タイトル」の条件を全て満たした記事(n=889)の実績:
| 平均いいね | P(10+) | |
|---|---|---|
| 全体ベースライン | 4.115 | 6.45% |
| 3条件すべて満たす | 6.457 | 10.35% |
| 差分 | +2.342 | +3.90% |
ただし、これは因果ではなく相関だ。著者の実力・テーマの時流・フォロワー基盤などが完全に統制されているわけではない。
だからこそ、「1記事で神タイトルを探す」のではなく、定量ループで毎週係数を更新しながら改善し続けることが最も効率的な戦略になる。
おわりに
今回使ったデータは実際のQiita記事45,415件で、30分刻みのスナップショットを使って時系列の変化も追いかけた。分析には機械学習モデル(5-fold CV、AUC=0.665)も使ったが、予測精度は正直まだ高くない。
それでも、「何をすると再現可能に効くか」の方向性は見えた。エンジニアリングと同じで、計測→仮説→実装→評価のループを回し続ければ、確率は少しずつ上がる。
今後はA/Bテストで逐次更新する予定だ。同じような分析をしている人がいれば、ぜひコメントで知らせてほしい。
参考
- Qiita API v2 ドキュメント
- Empirical Bayes estimation の概要 - Wikipedia
- Calibration in machine learning models - Scikit-learn
分析環境:Python 3.x、乱数シード 20260228(再現可能)
データ期間:2023年11月〜2026年2月
主分析対象:投稿後72時間以上経過した記事 44,334件