「毎日1回、自動でブログ記事が更新される仕組み」を作るにあたり、システム構成やプロンプトの設計方針、そして「どんなテーマなら自動投稿ブログとして成立するか」を深掘りして検討してみたので、その内容を一旦整理してまとめてみた。
開発するシステムの全体像
今回目指しているシステムの基本フローはシンプル。
テーマ・プロンプトの取得:あらかじめ準備したデータベース/JSONから本日のテーマを取得
Gemini APIで記事生成:最新の
google-genaiSDK を使い、タイトル・HTML本文・メタ情報・画像検索ワードを一括生成(JSON Mode)アイキャッチ画像の取得:Unsplash等の無料画像APIからテーマに合った画像を取得
WordPress REST APIで投稿:アイキャッチ画像をWordPressのメディアライブラリに登録し、記事を下書き(または自動公開)で投稿
定期実行(cron):Linuxサーバー上で1日1回Pythonスクリプトを自動実行
自動投稿ブログで直面する「テーマ枯渇」と「重複」の課題
最初は「Geminiに毎回プロンプトで『今日のテーマ』から考えさせればいいのでは?」と考えていたけど、検討を重ねる中で重大な問題が見えてきた。
抽象的なテーマだと1〜2ヶ月でネタ切れする
リアルタイム生成だと過去記事との重複(カニバリズム)が発生する
SEO的にも質の低いコンテンツになりやすい
自動投稿ブログを成功させるためには、「普遍的で、事実関係の崩れにくいテーマ」を、いかに解像度高く(具体的に)分解して提供できるかが鍵になる。
解決策:事前テーマ1000件をリスト化
そこで行き着いた方針が、「事前にGeminiを使って子記事・孫記事レベルの具体的なテーマリストを大量生成し、データベース(またはJSON)で管理する」というアプローチだ。
毎回の自動実行時にテーマを考えさせるのではなく、あらかじめ用意したリストから未投稿のものを1つずつ消費していく方式に切り替えた。
1000件のテーマを生み出す切り口
ターゲットとする分野を、自分が得意な領域を含めて以下のように広げた。大テーマはやはり得意なIT系。
基礎・Web・DB:Python / Web開発 / Git・GitHub / データベース(SQL)
言語・アプリ:C# / Java / Go / Android開発
業務効率化:GAS (Google Apps Script) / Excelマクロ (VBA)
これらの各分野において、単なる「初心者向けガイド」ではなく、「具体的に手が動く逆引き・トラブルシューティング・実践テクニック」にまでテーマを細分化する。
NGなテーマ例:「VBAの使い方ロードマップ」
OKなテーマ例:「VBA処理を爆速化する3つの定型コード(画面更新停止・自動計算停止・イベント停止)」
このように10分野 × 約100件の具体テーマに分解することで、約1,000件(毎日投稿で約3年分)のテーマストックが確保できる計算になる。
事前リスト方式がもたらす3つのメリット
テーマの重複を100%防げる 投稿済みのテーマにフラグ(
published)を立てて管理するため、同じような記事が生成されるリスクがなくなる。ゴミテーマの事前検品(QA)が可能 Geminiが生成したテーマリストを事前に目視確認し、不要なテーマや不自然なタイトルを削除・修正できる。
システムがシンプルになりエラーに強い API呼び出し回数が減り、レスポンス崩れや通信エラーによるシステム停止リスクを大幅に軽減できる。
次のステップ
基本構想と「1,000件テーマによる完全自動投稿方針」まで決まったので、次は実際のコード実装に移る。
WordPressのアプリケーションパスワード設定
テーマ管理用のJSON/SQLite構造の定義
google-genaiSDKを使った記事生成プロンプトの調整WordPress REST APIへのPOST処理の実装
システムが完成して実際に運用を開始したら、記事の生成精度やWordPress連携の挙動についてもまたレポートしたいと思います!
