【2026年版】AIを使った自動SEO記事生成システムをVPS上で構築し、WordPressに自動投稿する
最初に結論を書きます
記事を開いた瞬間に判断できるように、先に言っておく。
OpenAI APIを使うなら、月1,000円台の2GBメモリVPSで動く。GPUは絶対に要らない。
「AI記事生成にはGPU搭載VPS!」という記事をたまに見かける。はっきり書いておくと、OpenAI APIを使う前提でそれを勧めてくるのは完全に的外れ。APIは向こうのサーバーで処理されるので、こっちのVPSはPythonが動けばそれで十分。月数万円のGPUプランを勧めてくる記事は、アフィリエイト報酬単価の高いプランを売りたいだけの可能性が高い。自分はそういう記事を見るたびにうんざりする。騙されないでほしい。
ただしOllamaでローカルにモデルを動かしたい場合は別の話になる。8GBメモリが必要になるので、月2,000〜3,000円台のプランを選ぶことになる。このあと詳しく書く。
自分が選ぶとしたら、迷わずこの2択:
| 構成 | 選ぶVPS | 月額目安 |
|---|---|---|
| OpenAI API使用 | KAGOYA or XServer 2GBプラン | 1,000〜1,500円 |
| Ollama(ローカルLLM) | KAGOYA 8GBプラン | 2,000〜3,000円台 |
損益分岐点の詳細はまとめに書いた。先に確認したい人はそっちを見てください。
「記事を書き続ける」という作業をVPSに丸投げする
SEOブログの最大の壁は「記事を継続的に書き続けること」だと思う。キーワード選定、構成、本文、見出し整理——これを手作業で繰り返すのは、正直しんどい。自分も何度か「今週は書けなかった」を繰り返してきたので、その感覚はよくわかる。
VPS上にPythonスクリプトを置いて、OpenAIまたはOllamaのAPIと連携してSEO記事を生成し、WordPress REST APIで自動投稿する仕組みを作れば、寝てる間も記事が増える状態を作れる。
「自宅PCを立ち上げっぱなしにすればいいのでは?」と思う人もいるかもしれない。ぶっちゃけ、自分はこれが精神的にしんどかった。何かあったらリモートデスクトップで入らなきゃいけないから全然手放しにならないし、電気代も気になるし、「自動化した感」がまるでない。VPSに置いてcronで回してしまえば、本当に放置できる。これが決定的な違い。「手放しで動いてる」という安心感は、やってみないとわからないけどかなり大きい。
システム全体の構成
[キーワードリスト CSV]
↓
[Python: キーワード選定スクリプト]
↓
[OpenAI API / Ollama(ローカルLLM)]
↓ 記事HTML生成
[WordPress REST API 自動投稿]
↓
[cron: 毎日定時に自動実行]
シンプルに見えるけど、これが実際にちゃんと動く。このパイプラインをVPSに置けば、自宅PCなしで24時間稼働する構成になる。難しそうに見えてもコードの中身は後述するのでそのままコピーして使ってほしい。
必要なVPSスペック:ここが一番「記事によってバラつくポイント」
体感として、スペック要件は使う構成によって全然違う。「AI記事生成に最適なスペックは?」という質問に対してひとつの答えを出せない理由がここにある。ざっくり整理する。
| 項目 | OpenAI API使用 | Ollama使用 |
|---|---|---|
| CPU | 2コアで十分 | 4コア推奨 |
| メモリ | 2GBで動く | 8GB必要 |
| ストレージ | 30GB | 50GB以上(モデルファイルが大きい) |
| OS | Ubuntu 22.04 LTS | Ubuntu 22.04 LTS |
OpenAI API使用なら、スペックを上げてもほぼ意味がない。Pythonスクリプトを動かしてAPIを叩くだけなので、2GBメモリの最安プランで完全に足りる。GPU?要らない。本当に要らない。ここを強調しておかないと「念のため4GBにしようかな」「GPU付きのほうが安心かな」という方向に流れがちなので、もう一度言っておく。APIを使うなら2GBで十分、GPUは不要。
Ollamaはローカルでモデルを動かすので8GBが必要——ここは削れない。6GBで試してもモデルが読み込めないか、極端に遅くなる。「メモリは多いほうがいい」という話ではなく、最低ラインが8GBということ。
環境構築:ステップバイステップ
Step 1: Python と必要ライブラリをインストール
sudo apt update && sudo apt install -y python3.11 python3.11-venv python3-pip
mkdir ~/auto-seo && cd ~/auto-seo
python3.11 -m venv venv
source venv/bin/activate
pip install openai requests python-dotenv
Step 2: 環境変数を設定する
nano .env
OPENAI_API_KEY=sk-xxxxxxxxxxxxxxxx
WP_URL=https://yourdomain.com
WP_USER=your_username
WP_APP_PASSWORD=xxxx xxxx xxxx xxxx xxxx xxxx
WordPressのアプリケーションパスワードは「ユーザー → プロフィール → アプリケーションパスワード」から発行できます。
Step 3: キーワードリストを用意する
nano keywords.csv
keyword,category
VPS おすすめ 初心者,VPS
WordPress 高速化 方法,WordPress
AI 記事生成 ツール,AIツール
Step 4: 記事生成スクリプトを作成する
# generate_article.py
import os
import csv
import requests
import base64
from openai import OpenAI
from dotenv import load_dotenv
load_dotenv()
client = OpenAI(api_key=os.getenv("OPENAI_API_KEY"))
def generate_article(keyword: str) -> dict:
"""キーワードからSEO記事を生成する"""
prompt = f"""
以下のキーワードで検索上位を狙うSEO記事を日本語で書いてください。
キーワード: {keyword}
要件:
- タイトル(H1)を1つ
- 導入文(200字程度)
- H2見出し3〜5つ、各300字程度の本文
- まとめ(150字程度)
- HTML形式で出力(<h1>, <h2>, <p> タグを使用)
"""
response = client.chat.completions.create(
model="gpt-4o-mini",
messages=[{"role": "user", "content": prompt}],
max_tokens=2000,
)
content = response.choices[0].message.content
# タイトルを抽出
title_start = content.find("<h1>") + 4
title_end = content.find("</h1>")
title = content[title_start:title_end] if title_start > 3 else keyword
return {"title": title, "content": content}
def post_to_wordpress(title: str, content: str) -> bool:
"""WordPress REST API で記事を投稿する"""
wp_url = os.getenv("WP_URL")
wp_user = os.getenv("WP_USER")
wp_pass = os.getenv("WP_APP_PASSWORD")
credentials = base64.b64encode(f"{wp_user}:{wp_pass}".encode()).decode()
headers = {
"Authorization": f"Basic {credentials}",
"Content-Type": "application/json",
}
data = {
"title": title,
"content": content,
"status": "draft", # まず下書きで投稿、確認後に公開
}
response = requests.post(
f"{wp_url}/wp-json/wp/v2/posts",
json=data,
headers=headers,
)
if response.status_code == 201:
post_id = response.json().get("id")
print(f"投稿成功: ID={post_id}, タイトル={title}")
return True
else:
print(f"投稿失敗: {response.status_code} {response.text}")
return False
def main():
with open("keywords.csv", newline="", encoding="utf-8") as f:
reader = csv.DictReader(f)
for row in reader:
keyword = row["keyword"]
print(f"記事生成中: {keyword}")
article = generate_article(keyword)
post_to_wordpress(article["title"], article["content"])
if __name__ == "__main__":
main()
Step 5: cron で毎日自動実行
crontab -e
# 毎朝6時に記事生成・投稿を実行
0 6 * * * /home/ubuntu/auto-seo/venv/bin/python /home/ubuntu/auto-seo/generate_article.py >> /home/ubuntu/auto-seo/log.txt 2>&1
これを仕込んでおけば、あとは本当に何もしなくていい。起きたら下書きが増えてる状態になる。自分がはじめてこれを確認したときはちょっと感動した。
Step 6: Ollama でコスト削減する(任意)
OpenAI APIの費用を抑えたい場合は、Ollamaに切り替えます。
自分の正直な判断:最初はOpenAI APIのほうが圧倒的にラク。 Ollamaはモデルのダウンロード・管理・チューニングに手間がかかる。「とにかく動かしたい」ならAPIから始めて、コストが気になってきたタイミングでOllamaに移行するのが現実的な順序。あとで計算してわかると思うけど、月100本程度の生成ならAPI代は誤差レベルなので、最初からOllamaに走る必要はほぼない。「API代が怖い」という感覚はわかるんだけど、先に数字を見てから判断してほしい(次のセクションで計算する)。
curl -fsSL https://ollama.ai/install.sh | sh
ollama pull llama3
# generate_article.py のLLM部分を差し替え
from openai import OpenAI
# OllamaはOpenAI互換のAPIを持つ
client = OpenAI(
base_url="http://localhost:11434/v1",
api_key="ollama", # ダミーキーでOK
)
# モデル名だけ変更
response = client.chat.completions.create(
model="llama3",
...
)
投稿効率の比較と実際のコスト計算
| 方法 | 月間記事数目安 | コスト目安 | クオリティ |
|---|---|---|---|
| 手動執筆 | 10〜20本 | 人件費のみ | ★★★★★ |
| GPT-4o-mini自動 | 100〜300本 | API代数千円 | ★★★★☆ |
| Ollama(Llama 3)自動 | 100〜300本 | VPS代のみ | ★★★☆☆ |
具体的な金額感(GPT-4o-mini使用の場合):
- 記事1本あたりの入出力トークン:約3,000〜4,000トークン
- GPT-4o-miniの料金:入力$0.15/1Mトークン、出力$0.60/1Mトークン
- 記事1本あたりのAPI代:約0.3〜0.5円
- 月100本生成しても:API代は30〜50円程度
これを見てほしい。月100本でAPI代が50円。コーヒー1杯の100分の1以下。「API代が怖い」という理由でOllamaに走る必要は、月100本程度なら正直まったくない。むしろVPS代のほうが固定コストとして圧倒的に大きい。Ollamaを選ぶ理由があるとすれば「コストゼロへのこだわり」か「ローカル実行の学習目的」のどちらかだと思う。コスト計算をちゃんとしてから判断してほしい。
よくある質問
まとめ:あなたの使い方で選ぶ
ここを読めば判断できるようにまとめる。
構成・VPS選びの判断テーブル
| あなたの状況 | 選ぶ構成 | 選ぶVPS | 月額目安 | 1日あたり |
|---|---|---|---|---|
| とりあえず試したい・まず動かしてみたい | OpenAI API + 2GBプラン | KAGOYA(14日無料) | 約1,000円 | 約33円 |
| 毎月固定で把握したい・毎日使う | OpenAI API + 2GBプラン | XServer 830円固定 | 830円 | 約28円 |
| API費用ゼロを目指す・Ollama使いたい | Ollama + 8GBプラン | KAGOYA(8GB) | 約2,000〜3,000円 | 約70〜100円 |
| WordPressも同じVPSに立てたい | OpenAI API + 4GBプラン | XServer(WordPress自動インストール) | 1,500〜2,000円 | 約50〜70円 |
XServer vs KAGOYA の損益分岐点(OpenAI API構成)
- KAGOYA:時間課金(使った分だけ)
- XServer:830円固定
cronで1日数分しか動かさないスクリプトなら、ほとんどのケースでKAGOYAの時間課金のほうが安くなる。理論上の損益分岐点は月76時間程度の稼働。自動記事生成のcronジョブが月76時間以上回り続けることはまずないので、純粋なコスト比較ではKAGOYAが有利なケースが多い。
ただし「月額固定で把握しておきたい・請求書を見るたびにドキドキしたくない」という人はXServerの830円固定が精神的にラク。毎月いくらか計算したくない、という気持ちはよくわかる。これは金額じゃなくて好みの問題なので、自分の性格に合わせて選んでいい。
無料お試しの使い方
KAGOYAの14日間無料は実際に試す価値がある。平日は仕事で触れなくても、週末が2回入るから、スクリプトを動かして自動投稿できるか確認するには十分な時間がある。「本当に自動投稿できるか不安」な人はまずここから始めればいい。費用ゼロで動作確認できる。2週間で「使える」「使えない」の判断がつけば、その後の意思決定がずっとラクになる。
最後に一言: 完璧な選択なんてない。まず触ってみることが一番の近道だ。OpenAI APIで試してみて「やっぱりOllamaにしたい」となったら乗り換えればいいし、VPSを変えたくなったらスクリプトをそのまま持っていけばいい。Pythonスクリプトはどこにでも移せるので、最初の選択で詰まる必要はない。「やってみてから考える」のが一番早い。