← REVearth AIシステム 全体マップに戻る

SYSTEM DETAIL — SEO BLOG ENGINE

CONTEXTED SEOブログエンジン

検索需要を見つけ、記事と画像を自動で作ってWordPressに公開。人はLINEで承認するだけ。

このシステムは、CONTEXTED(宿)の集客のために、検索でよく調べられている言葉を見つけ、根拠付きの記事と画像を自動で作ってWordPress(contexted.osaka.jp)に公開します。
日・英・繁体中・簡体中の4言語に対応し、タイトル・メタ・狙うキーワードは市場ごとに現地最適化。人はLINEで公開を承認するだけです(承認画面で4言語ともプレビュー可)。公開した記事は同内容を note にも自動クロス投稿稼働中・完全自動運転

1.ひと目でわかる全体像

flowchart TD K["① 検索需要を発見
DataForSEOで実数の検索ボリュームを取得"]:::src W["② 記事を書く
OpenAIが調査・執筆・分類(4言語・市場別に最適化)"]:::ai IMG["③ 画像を作る
OpenAIがアイキャッチ・本文画像を生成"]:::ai OK["④ LINE承認
確認サイトで4言語プレビュー → 人がOK"]:::human PUB["⑤ 公開・配信
WordPress 4言語公開 → note自動クロス投稿"]:::step M["⑥ 計測・改善
順位を見て次の記事の優先順位に反映"]:::step K --> W --> IMG --> OK --> PUB --> M M -.-> K classDef src fill:#F6EFE3,stroke:#E6D6BE,color:#2c2922; classDef step fill:#FFFFFF,stroke:#E7DECE,color:#2c2922; classDef ai fill:#EEF1EA,stroke:#D9E0D2,color:#2c2922; classDef human fill:#52684A,stroke:#445539,color:#ffffff;

「需要を見つける → 書く → 画像 → 承認 → 公開 → 計測」のループ。公開した結果が次に書くテーマの選び方に返ってきます。

2.記事ができるまで(工程の中身)

工程なにをしているか
① 需要発見DataForSEOで「どの言葉が何回検索されているか」を実数で取得。市場(言語)ごとに本命キーワードを選ぶ。
② 執筆OpenAIが調査して根拠付きの記事を作成。日本語・英語・台湾語の3市場がそれぞれ自分のランキング上位テーマを自分の言語でネイティブ執筆(翻訳ベースではない独立記事)。簡体中文だけは台湾版の忠実翻訳(コピー)。タイトル/H1/メタ/slug/狙うKWは各市場の実需要に最適化。
③ 画像OpenAIがアイキャッチ・本文画像を生成。言語別に翻訳タイトルを描画。
④ 承認確認サイト(seo.revearth.co・noindex)でプレビューし、LINEで公開可否を承認。
⑤ 公開WordPress(contexted.osaka.jp)の言語別カテゴリへ自動投稿。
⑥ 計測順位・ボリュームを見て、次に書く記事の優先順位へ反映。

3.キーワードはどう選ぶか(日・英・台の独立3ランキング)

🆕 2026-07-09 更新:日本語・英語・台湾(繁体字)の3市場を完全に独立させました。市場ごとに別々のキーワードランキングを持ち、各市場が自分のランキング上位テーマを自分の言語でネイティブ執筆します(翻訳ベース廃止)。簡体中文だけは台湾版のコピー。言語をまたいだ共食い(カニバリ)が構造的に起きず、書けるテーマの総量も約3倍に。

言語ごとに「刺さる言葉」は違います。日本で大きいキーワードでも、海外では別の言葉が本命です。そこで市場ごとに独立したランキング(検索数 × 予約意図)を作り、毎回の生成で日・英・台から1本ずつ選んで書きます。ある市場の候補が薄いときは他市場が埋めるので、配信は止まりません。

flowchart LR SRCJ["源泉(日本語)
DataForSEO実数(JP)/GSC/顧客シート"]:::src SRCE["源泉(英語)
DataForSEO実数(US)"]:::src SRCT["源泉(台湾)
DataForSEO実数(TW)"]:::src RJ["JPランキング"]:::step RE["ENランキング"]:::step RT["TWランキング"]:::step WJ["日本語でネイティブ執筆"]:::ai WE["英語でネイティブ執筆"]:::ai WT["台湾繁体でネイティブ執筆"]:::ai CN["簡体中文へ忠実翻訳
(台湾版のコピー)"]:::ai PUB["公開
1回のrunで3記事(+CN)"]:::step M["計測
順位・反応を各市場の優先順位へ"]:::step SRCJ --> RJ --> WJ --> PUB SRCE --> RE --> WE --> PUB SRCT --> RT --> WT --> CN --> PUB PUB --> M M -.-> SRCJ M -.-> SRCE M -.-> SRCT classDef src fill:#F6EFE3,stroke:#E6D6BE,color:#2c2922; classDef step fill:#FFFFFF,stroke:#E7DECE,color:#2c2922; classDef ai fill:#EEF1EA,stroke:#D9E0D2,color:#2c2922; classDef human fill:#52684A,stroke:#445539,color:#ffffff;

3市場が並走する独立ライン。カニバリ判定は同一市場内だけで行い、言語が違えば同じテーマでも別記事としてOK(各市場の実需要に合わせて書くため)。計測結果はそれぞれの市場のランキングへ戻ります。

言語位置づけ
日本語独立市場。国内グループ・家族需要。「大阪 団体 宿泊」など。JPランキングから日本語でネイティブ執筆。
英語独立市場。「things to do in Osaka」など広い観光・宿泊意図。ENランキングから英語でネイティブ執筆。
繁体字(台湾)独立市場。Google主流で検索価値が大きい。「大阪住宿推薦」など予約直結。TWランキングから台湾語でネイティブ執筆。
簡体字中国本土はGoogle圏外のため最小投資。台湾版の忠実翻訳(コピー)を自動生成(台湾版成功時のみ)。

4.「枯れない」しくみ(ネタ切れの防止)

3つの独立市場=テーマ3倍

日・英・台がそれぞれ独立したキーワードプールを持つため、書けるテーマの総量が約3倍。ある市場が薄い週も他市場が埋め、配信が止まりません。

シードの網を常に広く

エリア×季節×客層×実用(行程日数・雨天・賞櫻・親子・包棟・USJ・近郊…)の掛け算で各市場数百件の候補を機械生成し、DataForSEOの実数で本命だけ残す。

在庫が薄くなったら自動補充

ブリーフ在庫が目標を割った瞬間、0本になる前にdiscovery→分類→ブリーフを自動で回して先手で補充(2026-07-09〜)。GSC実クエリも公開するほど湧く好循環。

重複を作らない(カニバリ防止)

同一市場内だけで意図を判定し、同じ意図の記事を二重に作らない(1意図=1本、別意図・エリア別は分けて作る)。言語が違えば同テーマでも独立記事としてOK=市場をまたいだ誤ブロックが起きません。

AIにも引用される形

一文定義・FAQで、検索エンジンだけでなくAIにも引用されやすく作る。

検索意図 × 予約

「観光の悩み入口 → 宿の魅力 → 予約」へ橋渡しする設計。

5.LINE承認の流れ(人が触れる唯一の操作)

記事と画像ができると、確認サイト(seo.revearth.co)でプレビューが見られ、LINEに承認カードが届きます。スタッフは「OK」を押すだけで公開、直したいときは書き直しを指示します。確認サイトは検索に載らない設定(noindex)です。

flowchart LR DRAFT["下書き完成
記事+画像+4言語版"]:::step NOTIF["LINEに通知
確認サイトで4言語プレビュー"]:::human PUB["4言語を自動公開
WordPress 言語別カテゴリ"]:::step NOTE["note へ自動クロス投稿"]:::step BACK["書き直し
修正して再提案"]:::ai DRAFT --> NOTIF NOTIF -->|OK 番号| PUB PUB --> NOTE NOTIF -->|差し戻し| BACK BACK --> NOTIF classDef src fill:#F6EFE3,stroke:#E6D6BE,color:#2c2922; classDef step fill:#FFFFFF,stroke:#E7DECE,color:#2c2922; classDef ai fill:#EEF1EA,stroke:#D9E0D2,color:#2c2922; classDef human fill:#52684A,stroke:#445539,color:#ffffff;

人が触れるのはここだけ。「OK」で4言語が自動公開され、noteにも即クロス投稿(公開と同時)。「差し戻し」なら書き直して再提案します。

6.データの土台

保管庫役割
Supabase(contexted-seo)キーワード・記事・順位などの記録庫。SEOシステムの土台。
WordPress(contexted.osaka.jp)記事の公開先。言語別カテゴリで管理。

7.どこで動いているか(インフラ地図)

本システムは、1台の Xserver VPS「revearth」(Ubuntu)の上で、他の全システムと完全分離で同居しています。玄関の Caddy がドメイン/パスごとに各システムへ振り分けます。下はこのVPSに乗っている全システムの一覧です。

flowchart TB subgraph VPS["Xserver VPS「revearth」(1台に全システム同居)"] CADDY["Caddy(玄関・振り分け)"]:::step SEOE["① CONTEXTED SEO
engine+note-mcp(本システム)"]:::step COCO["② Coco(CS自動化)
OpenClaw Gateway+受付・監視"]:::ai HYUGA["③ 日向サーフキャンプ SEO
engine+note-mcp"]:::src NEHANSEO["④ nehan SEO
engine+note-mcp"]:::src NEHANSNS["⑤ nehan SNS自動化
投稿・分析・PDCA"]:::src CADDY --- SEOE CADDY --- COCO CADDY --- HYUGA CADDY --- NEHANSEO CADDY --- NEHANSNS end SEOE --> REV[("seo.revearth.co /seo
承認プレビュー・noindex")] COCO --> D1[("cs.revearth.co")] HYUGA --> D3[("seo.revearth.co /hyuga-*")] NEHANSEO --> D4[("seo.nehan.life")] NEHANSNS --> D5[("circle.nehan.life")] SEOE --> WP[("WordPress
contexted.osaka.jp・4言語")] classDef src fill:#F6EFE3,stroke:#E6D6BE,color:#2c2922; classDef step fill:#FFFFFF,stroke:#E7DECE,color:#2c2922; classDef ai fill:#EEF1EA,stroke:#D9E0D2,color:#2c2922; classDef human fill:#52684A,stroke:#445539,color:#ffffff;
#システム実体(/srv・ユニット)入口ドメイン役割
CONTEXTED SEOエンジン(本システム)/srv/contexted-seo-engine/srv/contexted-note-mcpcontexted-seo-{weekly,monthly,refill,health}contexted-seo-line-webhookcontexted-note-crossseo.revearth.co /seo/review/*/line-webhook(:8788)大阪・4言語SEO(本システム)
Coco(CONTEXTED CS自動化)openclaw-gateway(本体)+受付係 beds24-webhookbeds24-message-polleremail-monitorline-dm-proxyline-outbound-filterstripe-webhook+運用タイマー(send-schedulersend-reconcilerpending-replies-auto-closecase-auto-closehealth-doctorops-vector-reconcilereflection-agent=Miru 等)cs.revearth.co宿のゲスト対応AI(別システム)
日向サーフキャンプ SEOエンジン/srv/hyuga-seo-engine/srv/hyuga-note-mcphyuga-seo-{weekly,monthly,refill,health}hyuga-seo-line-webhookhyuga-note-crossseo.revearth.co /hyuga-seo/hyuga-review/*/hyuga-line-webhook(:8789)日向・日英2言語SEO(本システムの複製)
nehan SEOエンジン/srv/nehan-seo-engine/srv/note-mcpnehan-seo-*nehan-note-crossnehan-blog-importseo.nehan.lifenehan社SEO(別クライアント)
nehan SNS自動化/srv/nehan-snsnehan-sns-*(投稿・分析・PDCA・RAG等 多数)circle.nehan.lifenehan社SNS運用(別クライアント)
Caddy(共通の玄関)caddy.servicecs.revearth.co/seo.revearth.co/seo.nehan.life/circle.nehan.life(全4ドメイン)HTTPS終端・ドメイン/パス振り分け
静的説明ページ・社内レポート/var/www/html(Caddyのfile_serverで配信)cs.revearth.co /overview/coco/system/miru/wonderfruit/seo.revearth.co /seo/hyuga-seo/seo.nehan.life /overview/seo/sns/circle.nehan.life //mirror本ページを含む各システムの説明ページ・Miru日次レポート等

本システムは上表①のみを触り、②〜⑤のユニット・Caddy行・チャネルには一切干渉しません。本システムが使う外部APIは、OpenAI(執筆・画像)/ DataForSEO(検索需要)/ LINE(公開承認)/ Supabase contexted-seo(DB)/ WordPress contexted.osaka.jp(公開先・4言語)/ note(クロス投稿)。

自動スケジュール(タイマー一覧・JST)

エンジンの自動運転はすべて systemd タイマーで動きます。時刻はすべて日本時間(JST)。

タイマースケジュール役割
contexted-seo-weekly毎週 月・木 08:00記事生成(ネタ選定→執筆→画像→LINE承認)
contexted-seo-monthly毎月 1日 08:30キーワードの一括発見(月次の棚卸し)
contexted-seo-refill毎週 日曜 07:00記事ネタのキュー補充(週次生成の前に)
contexted-seo-health毎日 08:00ヘルス監視(詰まり・異常の見張り番)
contexted-note-cross10分ごと(起動3分後〜)公開記事の note 自動クロス投稿

鍵・秘密情報の守り方(APIキーはどこにある?)

OpenAI・DataForSEO・LINE・Supabase・WordPress の APIキーやパスワードは、コードにもGoogle Driveにも「本物の値」を一切書いていません。守り方は次の3層です。

置いてあるものなぜ安全か
Drive(設計図)テンプレート .env.tpl のみ。値はすべて op://…=1Passwordへの参照アドレス「どの金庫のどの鍵か」という住所だけ。流出しても本物の値は入っていない
1Password(金庫)APIキー・パスワードの本体実行時に op コマンドが取り出し、環境変数として渡す。人もコードも平文を持たない
VPS(現場)実際に値が入った .env(サーバー内の非公開領域)SSH鍵(.pem)がないと入れない。Web配信領域の外に置く

要点:Git・Driveには「参照アドレス」だけを置き、本物の秘密は1PasswordとVPSの中だけに保管。設定ファイルが漏れても合鍵は渡らない設計です。

8.進捗(できているところ・途中・これから)

🟢 稼働中(本番)

  • 独立3市場アーキテクチャ=日・英・台が別ランキング×各言語ネイティブ執筆、簡体は台湾版コピー(2026-07-09 稼働)
  • 執筆モデルを gpt-5.6-terra に更新(OpenAI最新世代・2026-07-09。未提供の間は gpt-5.5 で生成し、アクセスが付けば自動でterraへ)
  • キーワード戦略(DataForSEO実数・市場別の独立ランキング)
  • 市場内カニバリ防止(言語をまたいだ誤ブロック廃止)・市場別KW最適化
  • 本番VPS配備・結合テスト完了
  • 言語別カテゴリ・アイキャッチ(4言語で写真共有)
  • 確認サイトで4言語プレビュー+LINE承認
  • 4言語 WordPress自動公開(言語別認証)
  • note 自動クロス投稿(承認OKで即公開)
  • API呼び出しのタイムアウト堅牢化(ハングで配信が止まらない)
  • 「下書き0本」防止(候補を厚めにブリーフ+重複時は自動で在庫補充し再生産。承認候補を必ず出す)
  • 週次(月・木 08:00 JST)/月次の自動運転

🟡 調整・チューニング

  • 定常運用での順位計測
  • 本文の品質・文字数チューニング
  • 画像コスト最適化(high→medium)

⚪ これから

  • 順位劣化の自動リライト最適化
  • 優先順位の自動更新の高度化

9.やさしい用語集

DataForSEO
「どんな言葉が何回検索されているか」を実数で取得するサービス。
キーワード(KW)
記事で狙う検索語。市場ごとに本命が違う。
noindex
検索エンジンに載せない設定。承認前の確認サイト用。
メタ / slug
検索結果に出る説明文と、記事のURLの一部。市場別に最適化する。
LINE承認
記事を人がLINEのボタンで「OK/書き直し」する操作。人の仕事はここだけ。

10.費用とAPI(SEOのコスト早見表)

SEOブログエンジンの運用で「外部サービスに払っているAPI」の早見表です。金額はすべて概算で、実額は各社の請求画面で確認できます。主コストはOpenAIの従量課金です。

サービスモデル請求元(Project / Workspace)用途課金月額の概算
OpenAI(記事執筆・調査・分類・翻訳)執筆は gpt-5.6-terra(未提供時は gpt-5.5 に自動フォールバック)・調査は gpt-4o-search-preview・分類/概念は gpt-4o-miniREVearth(OpenAI Project: contexted-seo4言語の記事生成従量¥800〜1,400
OpenAI(画像生成)gpt-image-2(+ Python PIL で組版)REVearth(OpenAI Project: contexted-seoアイキャッチ・本文画像従量¥200〜400
DataForSEOnehan(共有アカウント)検索順位・ボリューム従量(上限設定済)¥30前後
SupabaseREVearth(org=REVearth / project=contexted-seo)記事DB無料枠¥0
WordPress(contexted.osaka.jp)既存(さくら)公開先既存契約¥0(AI増分)
LINE Messaging APIREVearth(公式アカウント)公開承認無料枠内¥0
Xserver VPS「revearth」REVearth稼働サーバー(Coco・nehanと同居・按分)固定¥600〜1,000
合計(概算)¥1,400〜2,400/月 程度

※ 金額はすべて概算。確定値は各社の請求画面で確認。OpenAI・Supabase・LINE・Xserver は 合同会社REVearth名義。DataForSEO は nehan の共有アカウント。WordPress(さくら)は宿事業の既存契約。LINE公式アカウントは SEOの利用は無料枠内のため¥0(月¥5,000はCS/Coco側が全額負担)。VPS費はCoco・nehan SEO(別事業)と同居のため按分。
※ OpenAI は専用プロジェクト contexted-seo のAPIキーを使用(Coco/nehan SEO とは請求分離済。VPSの .envOPENAI_API_KEY に設定)。SEOエンジンは本番稼働中。呼び出しは2系統=テキスト /v1/chat/completions執筆 gpt-5.6-terra/未提供時は gpt-5.5 に自動フォールバック/調査 gpt-4o-search-preview/分類・画像概念 gpt-4o-mini)と画像 /v1/images/generationsgpt-image-2・high/1536×1024)。
執筆モデルを 2026-07-09 に gpt-4ogpt-5.6-terra(OpenAI最新世代)へ切替gpt-5.6-terra はプレビュー枠のため現在のAPIキーで未提供の間は gpt-5.5 で生成し、アクセスが付いた瞬間に自動で gpt-5.6-terra へ切り替わります(GPT-5.x系はリクエスト形式が異なるため max_completion_tokens 化・温度既定化の正規化を実装済)。
OpenAI費の目安:新世代モデルは gpt-4o より単価が高く、テキスト費は上振れ余地あり(gpt-5.6-terra は概算で入力 $2.5/出力 $15 per 1M tokens)。従来は1回(1記事セット)あたり 約$1(記事執筆+画像生成コミ)×週2回=月 約¥1,300 でした。上の「執筆」「画像生成」の2行はその内訳です(別々の上乗せではありません)。NEHAN_IMAGE_QUALITY=medium 運用で画像費を抑制(high画質だと1セット$2〜2.5に増加)。