← REVearth AIシステム 全体マップに戻る  🕒 全タイマー稼働状況を見る →

SYSTEM DETAIL — SEO BLOG ENGINE

日向サーフキャンプ SEOブログエンジン

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

このシステムは、宮崎県日向市の一棟貸しサーフゲストハウス「日向サーフキャンプ」の集客のために、検索でよく調べられている言葉を見つけ、根拠付きの記事と画像を自動で作ってWordPress(hyugasurf.camp)に公開します。
日本語と英語の2言語に対応し、両言語をそれぞれネイティブで執筆(翻訳コピーではありません)。人はLINEで公開を承認するだけです。公開した記事は同じ内容を note にも自動クロス投稿稼働中・完全自動運転

🆕 2026-07-04 稼働開始。既存の CONTEXTED SEOエンジンを土台に、日英2言語・両ネイティブ執筆の日向テナントとして複製・立ち上げ(複製は約1日で完了)。

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

flowchart TD K["① 検索需要を発見
DataForSEOで実数の検索ボリュームを取得(日・英を別々に)"]:::src W["② 記事を書く
OpenAIが調査・執筆(日本語・英語をそれぞれネイティブ執筆)"]:::ai IMG["③ 画像を作る
OpenAIがアイキャッチ・本文画像を生成"]:::ai OK["④ LINE承認
確認サイトで日英プレビュー → 人がOK"]:::human PUB["⑤ 公開・配信
WordPress 日英公開(/en/)→ note自動クロス投稿"]:::step M["⑥ 計測・改善
順位を見て次の記事の優先順位に反映"]:::step K --> W --> IMG --> OK --> PUB --> M M -.-> K classDef src fill:#EEF6F4,stroke:#C4DEDA,color:#22302e; classDef step fill:#FFFFFF,stroke:#DDECE9,color:#22302e; classDef ai fill:#E9F3F1,stroke:#C9E2DE,color:#22302e; classDef human fill:#2E6E6A,stroke:#245450,color:#ffffff;

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

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

工程なにをしているか
① 需要発見DataForSEOで「どの言葉が何回検索されているか」を実数で取得。日本語(宮崎・日向・サーフィン)と英語(surfing in japan 等)を別々のランキングで管理。
② 執筆OpenAIが調査して根拠付きの記事を作成。日本語記事は日本語で、英語記事は英語で、それぞれネイティブ執筆(1:1翻訳はしません)。タイトル/H1/メタ/URLは各言語で最適化。
③ 画像OpenAIがアイキャッチ・本文画像を生成。アイキャッチには記事タイトルをゴシック体で描画(英語は単語単位で折り返し)。
④ 承認確認サイト(seo.revearth.co・noindex)でプレビューし、LINEで公開可否を承認。
⑤ 公開WordPress(hyugasurf.camp)へ自動投稿。日本語はサイト直下、英語は /en/ 配下(Polylangで多言語化・hreflang自動)。
⑥ 計測順位・ボリュームを見て、次に書く記事の優先順位へ反映。公開30日ごとに順位を再計測し、落ちた記事はリライト候補へ。

3.キーワードはどう選ぶか(日・英を別ランキングで)

言語ごとに「刺さる言葉」は違います。そこで日本語と英語で別々のランキングを作り、それぞれの上位テーマから1本ずつ記事にします。日英を無理に同じテーマにしないため、言語をまたいだ共食い(カニバリ)が構造的に起きません。本文は各言語でネイティブ執筆します。

flowchart LR SRCJ["源泉(日本語)
DataForSEO実数(JP) / GSC実クエリ / 顧客シート"]:::src SRCE["源泉(英語)
DataForSEO実数(US) / GSC実クエリ"]:::src RANKJ["日本語ランキング
検索数 × 予約意図"]:::step RANKE["英語ランキング
検索数 × 予約意図"]:::step PICK["各ランキング上位から1本ずつ
(日1本+英1本 / 週)"]:::step BASE["各言語でネイティブ執筆
SEO+AIO両対応"]:::ai PUB["日英で公開
週1回(月曜 07:30)"]:::step M["計測
順位・反応を次の優先順位へ"]:::step SRCJ --> RANKJ --> PICK SRCE --> RANKE --> PICK PICK --> BASE --> PUB --> M M -.-> SRCJ M -.-> SRCE classDef src fill:#EEF6F4,stroke:#C4DEDA,color:#22302e; classDef step fill:#FFFFFF,stroke:#DDECE9,color:#22302e; classDef ai fill:#E9F3F1,stroke:#C9E2DE,color:#22302e; classDef human fill:#2E6E6A,stroke:#245450,color:#ffffff;
言語位置づけ・狙い
日本語国内サーファー+観光層。「宮崎 サーフィン」「日向市」「お倉ヶ浜」「日向 サーフキャンプ」など、地元・宿・サーフの入口語。既存記事のリライトで順位も維持。
英語訪日サーフトラベラー。「surfing in japan」「japan surf spots」「miyazaki surf」「hyuga japan」など。検索数の大きいヘッド語+競合ゼロのローカル語(お倉ヶ浜/金ヶ浜)で確実に上位を狙う。

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

4つの井戸から補充

シード展開・GSC実クエリ(公開するほど新語が湧く)・顧客シート・リライト需要の4系統から候補を補充。毎週日曜に自動補充も走ります。

止まらない設計

テーマを書き尽くしても選定は止まらず(飽和は減点であって禁止ではない)、常に次の一手を出します。

リライトの無限ループ

公開記事の順位を30日ごとに再計測し、落ちた記事を自動でリライト候補へ。新規ネタが薄い週は改善作業に回します。

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

日英を別ランキングにするため言語間の共食いが起きません。さらにWordPress上の全公開記事(手動作成の既存記事も含む)のタイトルと意図を毎回照合し、同じ意図の記事を二重に作りません。

号室を書かない(ブランド保護)

各棟は別オーナーがGoogle Mapに号室別で掲載していますが、記事では必ず「日向サーフキャンプ」単体で表記(号室・番号は自動除去)。集客を統合サイトに一本化します。

失敗しても止まらない

AI呼び出しは自動リトライ、画像が失敗しても記事は継続、1本が失敗してももう1本は必ず届く独立実行。配信は絶対に止めません。

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

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

flowchart LR DRAFT["下書き完成
日本語記事+英語記事+画像"]:::step NOTIF["LINEに通知
確認サイトで日英プレビュー"]:::human PUB["日英を自動公開
WordPress(/ と /en/)"]:::step NOTE["note へ自動クロス投稿
(日英とも)"]:::step BACK["書き直し
修正して再提案"]:::ai DRAFT --> NOTIF NOTIF -->|OK 番号| PUB PUB --> NOTE NOTIF -->|差し戻し| BACK BACK --> NOTIF classDef src fill:#EEF6F4,stroke:#C4DEDA,color:#22302e; classDef step fill:#FFFFFF,stroke:#DDECE9,color:#22302e; classDef ai fill:#E9F3F1,stroke:#C9E2DE,color:#22302e; classDef human fill:#2E6E6A,stroke:#245450,color:#ffffff;

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

6.データの土台

保管庫役割
Supabase(hyuga-seo)キーワード・記事・順位などの記録庫。SEOシステムの土台。
WordPress(hyugasurf.camp)記事の公開先。Polylangで日英を1サイトに統合(英語は /en/)。予約導線は Beds24。

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

日向SEOエンジンは、1台の Xserver VPS「revearth」(root@210.131.219.187 / Ubuntu / 2GBメモリ / 50GBディスク)の上で、他の全システムと完全分離で同居しています。玄関の Caddy がドメイン/パスごとに各システムへ振り分けます。下はこのVPSに乗っている全システムの一覧です。

flowchart TB subgraph VPS["Xserver VPS「revearth」(1台に全システム同居)"] CADDY["Caddy(玄関・振り分け)"]:::human COCO["① Coco(CS自動化)
OpenClaw Gateway"]:::ai CTX["② CONTEXTED SEO
engine+note-mcp"]:::ai HYUGA["③ 日向サーフキャンプ SEO
engine+note-mcp(本システム)"]:::step NEHANSEO["④ nehan SEO
engine+note-mcp"]:::src NEHANSNS["⑤ nehan SNS自動化
投稿・分析・PDCA(多数のジョブ)"]:::src CADDY --- COCO CADDY --- CTX CADDY --- HYUGA CADDY --- NEHANSEO CADDY --- NEHANSNS end COCO --> D1[("cs.revearth.co")] CTX --> D2[("seo.revearth.co /seo")] HYUGA --> D3[("seo.revearth.co /hyuga-*")] NEHANSEO --> D4[("seo.nehan.life")] NEHANSNS --> D5[("circle.nehan.life")] classDef src fill:#EEF6F4,stroke:#C4DEDA,color:#22302e; classDef step fill:#E9F3F1,stroke:#2E6E6A,color:#22302e; classDef ai fill:#EEF6F4,stroke:#C9E2DE,color:#22302e; classDef human fill:#2E6E6A,stroke:#245450,color:#ffffff;
#システム実体(/srv・ユニット)入口ドメイン役割
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(別システム)
CONTEXTED SEOエンジン/srv/contexted-seo-engine/srv/contexted-note-mcpcontexted-seo-*contexted-note-crossseo.revearth.co /seo/review/*/line-webhook大阪・4言語SEO(別事業)
日向サーフキャンプ 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行・チャネルには一切干渉しません(LINE配信を絶対に止めない鉄則)。日向が使う外部APIは、OpenAI(執筆・画像)/ DataForSEO(検索需要)/ LINE(公開承認)/ Supabase hyuga-seo(DB)/ WordPress hyugasurf.camp(公開先・Polylang日英)/ note(クロス投稿)。

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

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

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

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

🟢 稼働中(本番)

  • 日英2言語・両ネイティブ執筆で自動生成(2026-07-04 稼働)
  • キーワード戦略(DataForSEO実数・日英を別ランキング)
  • WordPress多言語化(Polylang・/en/・hreflang自動)
  • 本番VPS配備・結合テスト完了(日英2本公開)
  • アイキャッチ(ゴシック体・英語は単語折返し)
  • 確認サイトで日英プレビュー+LINE承認
  • 日英 WordPress自動公開(単一サイト+言語割当)
  • note 自動クロス投稿(日英とも・承認OKで即公開)
  • カニバリ防御(既存記事も照合)・号室表記の自動除去
  • スキーマ検査・生成の堅牢化(リトライ/画像なし継続)
  • 「下書き0本」防止(候補を厚めにブリーフ+重複時は自動で在庫補充し再生産。承認候補を必ず出す)
  • 週1回(月曜 07:30 JST)/月次の自動運転

🟡 調整・チューニング

  • 定常運用での順位計測
  • 本文の品質・文字数チューニング
  • キーワードの間口拡大(サーフ全般・宮崎観光)

⚪ これから

  • 順位劣化の自動リライト最適化
  • 英語カテゴリ・固定ページの拡充

9.やさしい用語集

DataForSEO
「どんな言葉が何回検索されているか」を実数で取得するサービス。
Polylang
WordPressを多言語化するしくみ。1サイトの中に日本語と英語を併存させ、英語は /en/ に置く。
hreflang
「このページの別言語版はこちら」を検索エンジンに伝える印。国ごとに正しい言語版を出すために付ける。
カニバリ(共食い)
似たテーマの記事が複数でき、検索順位を奪い合うこと。意図の重複を避けて防ぐ。
noindex
検索エンジンに載せない設定。承認前の確認サイト用。
LINE承認
記事を人がLINEのボタンで「OK/書き直し」する操作。人の仕事はここだけ。

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

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

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

※ 金額はすべて概算。確定値は各社の請求画面で確認。OpenAI・Supabase・LINE・Xserver は 合同会社REVearth名義。DataForSEO は nehan の共有アカウント。WordPress(さくら)は日向サーフキャンプの既存契約。
※ OpenAI は専用プロジェクト hyuga-seo のAPIキーを使用(CONTEXTED/nehan SEO とは請求分離済。VPSの .envOPENAI_API_KEY に設定)。呼び出しは2系統=テキスト /v1/chat/completions と画像 /v1/images/generationsgpt-image-2・medium/1536×1024)。
OpenAI費の根拠(概算):1回(日英2記事セット)あたり 約$1.5〜2、運転は 週1回(月曜 07:30) = 週 約$1.5〜2。月換算 約$7〜9=約¥1,000〜1,300。上の「執筆」「画像生成」の2行は、この内訳です(別々の上乗せではありません)。NEHAN_IMAGE_QUALITY=medium 運用でコストを抑えています。VPS費はCONTEXTED・nehan SEO(別事業)と同居のため按分。