AI SEO改善提案ツールv1.0.0 – Initial Releaseの機能追加と変更を行いました。
今回の中心は、SQLite + Prismaを使用した実行履歴保存機能の追加と、必要な項目から段階的に改善提案を生成できる方式への変更です。
AI SEO改善提案ツールは、記事を解析してからローカルLLMで改善案を作るため、どうしても処理に時間がかかります。
そこで今回は、必要な改善案だけを生成できることを重視して機能改善を行っています。
履歴保存機能の追加
初期版では、記事URLやHTMLを入力して改善提案を作ることはできました。
ただし、実際に使ってみると次のような課題がありました。
- 同じURLを再度解析すると、毎回同じような処理が走ってしまう
- 改善提案の生成に時間がかかる
- 生成結果をあとから見返しにくい
- ダウンロードしたいときに、その時点の結果を確実に残しておく必要がある
- 複数の改善案を順番に生成したとき、前に生成した内容が消えるリスクがある
このツールは、単発の診断ツールではなく、ページのリライト作業に使う改善提案ツールです。
そのため、1回の解析で終わりではなく、同じページに対して何度も確認し、改善案を追加し、必要に応じてダウンロードできる状態が重要になります。
そこで、解析結果と生成結果をSQLiteに保存する構成に変更しました。
SQLite + Prismaの保存項目
今回の実装では、Prismaのschemaを用意し、SQLiteを保存先として扱える構成にしています。
実際には、URLをキーにして以下の情報を保存しています。
- 解析したURL
- HTML入力かURL入力か
- 主要キーワード
- 使用した生成モード
- HTML内容のハッシュ
- knowledge情報の更新日時
- 解析結果
- 改善提案の生成結果
- キャッシュ判定用のキー
- 完了状態
同じURLでも、HTMLの内容、主要キーワード、SEO情報の更新状態、生成モードが変われば、別の解析情報として扱っています。
履歴キャッシュで再解析を減らす
保存した情報を利用した履歴キャッシュ機能により、同じ条件の解析であれば、過去の結果を再利用できるようにしています。
これにより、以下のような使い方ができるようになりました。
- 同じ記事の改善案をあとから見返す
- 途中まで生成した提案を再利用する
- リライト作業中に何度も同じ解析を待たずに済む
- 必要なときだけ「前回結果を使わず強制再解析する」を選べる
通常は履歴キャッシュを使い、記事内容やSEO情報を更新したときだけ再解析する、という使い分けができます。
改善提案の段階的な生成
以前は、解析から改善提案までをまとめて一度に作る流れでした。
しかし、ローカルLLMで長い改善提案を一括生成すると、次の問題が起きるようになりました。
- 生成時間が長い
- JSON出力が崩れやすい
- 途中で失敗すると全体をやり直す必要がある
- 必要ではない提案まで生成してしまう
そこで、改善提案を次のように段階的に生成できるように分けました。
- 改善方針と優先度の高い改善提案
- 冒頭要約ブロック案
- h2直下の結論文案
- FAQ案
- コピー用HTML案
- 構造化データ案
まず記事の解析結果だけを先に表示し、その後、必要な項目から個別に改善提案を段階生成できます。
これにより、たとえば「今日はFAQだけ作りたい」「まずは改善方針だけ確認したい」「構造化データは最後に生成したい」といった使い方ができます。
解析結果を先に表示
今回の改善では、LLMの生成を待たずに、まず記事解析の結果を表示するようにしました。
解析結果では、以下のような情報を確認できます。
- title
- meta description
- h1
- h2 / h3の数
- 見出し階層の問題
- 主要キーワードがtitle / h1 / h2に含まれているか
- FAQの有無
- JSON-LDの有無
- 箇条書き、表、内部リンク、外部リンクの有無
- 本文冒頭
ページの解析はローカルLLMを使用しないため、ページの基本状態を先に把握できます。
これに対して、改善提案の生成は、ローカルLLMを使用した重い処理です。
このページ解析と改善提案生成を分けたことで、作業の見通しが良くなりました。
なお、AI SEO改善提案ツールは、改善提案が中心機能であるため、解析結果表示を改善提案表示の下方に移動させてあります。
軽量モデルと高品質モデルを選べるようにした
生成モードも追加しました。
現在は以下の2つを選べます。
- 高品質: qwen3.5:9b
- 高速: qwen3:latest
高品質モードは、記事に反映する前提の改善提案に向いています。
一方、高速モードは、下書き確認や大まかな方向性を見たいときに便利です。
AI SEO改善提案は毎回かなり長い文章を扱うため、常に高品質モデルだけを使うと待ち時間が長くなります。
「まず高速で方向性を見る」「最終的な提案は高品質で作る」という使い分けができるようになりました。
その他の機能改善
バグ修正と利便性の向上のため以下の機能改善を行っています。
- JSON出力の失敗に対する対策
- 生成済みの内容消失対策
- 複数の生成ボタンを同時に押せないようにした
- UI面の改善
今回の機能追加と改善でできるようになったこと
今回の修正により、AI SEO改善提案ツールは次のような使い方がしやすくなりました。
- まず記事を解析する
- 解析結果を見て、改善すべき方向を確認する
- 必要な改善提案だけを個別に生成する
- 生成結果を履歴に保存する
- 同じ条件なら履歴キャッシュを再利用する
- 生成済みの内容を消さずに追加していく
- MarkdownやHTMLであとから出力する
- 高速モデルと高品質モデルを使い分ける
初期版が「改善提案を作れるツール」だったとすると、今回の改善で「リライト作業を継続しやすいツール」に近づきました。
完成コードと詳しい実装手順を公開しています
Substackで、この記事の完成コ―ドをダウンロードできます。
Substack記事では、GitHubに公開した完成コード、セットアップ手順、主要ファイルの解説、動作確認方法、よくあるエラー対処までまとめています。
実際に手元で動かしてみたい方は、以下からご覧ください。
まとめ
今回の作業では、AI SEO改善提案ツールにSQLite + Prismaを前提にした履歴保存基盤を追加し、改善提案を段階的に生成できるようにしました。
この変更により、同じ記事の再解析を減らし、必要な改善提案だけを生成して、生成済みの内容を履歴として積み上げられるようになりました。
AI SEO向けの改善提案は、1回作って終わりではありません。
実際には、記事を読み、提案を確認し、必要な部分だけを採用し、さらに不足部分を追加していく作業になります。
今回の履歴保存と段階生成は、そのような実務の流れに合わせるための重要な改善です。
