AIに「引用されるサイト」を作りたくて、WordPressプラグインをゼロから作った話
Web検索においてSEOの価値が低落していることは周知の事実だが、ググったときにAIにピックアップしてもらうにはどうすればいいのかと考えたのがこのプラグインを作るきっかけだった。
SEOとAEOは、何が違うのか
SEO(Search Engine Optimization)はGoogleの検索結果で上位に表示されるための最適化のためのロジックであり、キーワード、被リンク、ページ速度——検索エンジンのアルゴリズムを意識した施策が中心になる。
一方、AEO(Answer Engine Optimization)またはGEO(Generative Engine Optimization)は、AIが答えを生成するときに「引用されるコンテンツ」のための最適化ロジックだ。
ChatGPT、Gemini、Perplexity、Google AI Overviews——これらを使った検索エンジンは、インターネット上の情報を読み込み、自分の言葉で回答を生成する。そのとき「どのサイトの情報を使うか」「どのサイトを出典として表示するか」に、はっきりした傾向がある。
AIは、構造化された情報を持つサイトを好む。
具体的には——
- 冒頭に結論が書かれているか(Answer First)
- FAQがあるか(FAQPage スキーマ)
- 著者や運営者の専門性が明示されているか(E-E-A-T)
- JSON-LD構造化データが正しく実装されているか
- 数値や一次情報があるか
これらをAIは指標とする。つまり、この指標に則って「AIが読みやすい形」で整備することが、AEO/GEOの本質だ。
「わかった、実装しよう」と思ったが……
AEO対応にすべきことはわかった。JSON-LDを出力する、FAQをマークアップする、メタタグを整える。
ただ、それをやるたびに思った。
「これ、毎回手作業でやるのか?」
記事を書くたびにJSON-LDを書き、FAQを手動でコーディングし、OGPを設定する。
面倒くせえ。
既存のSEOプラグインは優秀だが、AEO・GEOという概念にはまだ対応していなかった。「AIに引用される」ための設計思想が入っていないのだ。
無いならば、作るしかない。
プラグインが目指したこと
プラグインの設計で最初に決めたことがある。
「本文は変えない」
そもそも人に読まれるために書いたテキストをAI様のために書き換えるのはおかしい。
AIのために本文を書き換えるプラグインは作りたくなかった。人間のために書かれた文章は、そのままにしておくべきだ。
代わりに、編集者が「AIへの補足情報」を入力する欄を設ける。それをもとに構造化データを自動出力する。
具体的には4つの軸、8項目の入力フォームを用意した。
アンサーファースト:「結論・要約」「見出し構造 」
独自性と一次情報:「一次情報」「FAQ」
構造化と可読性:「箇条書き要点」「数値データ」
信頼性(E-E-A-T):「専門性・経歴」「情報の鮮度」
このフォームを入力し、ボタンをクリックするとAIに最適化されたテキストが生成され、JSON-LD、メタタグ、OGPは自動で <head> に出力される。一応、AEOスコアを出せるようにした。
AIのために面倒くさい作業はしたくないので、AIにやらせることにした
しかし、どうにも釈然としない思いは残っていた。
なぜAIのための最適化なんてことをしなくてはならないのか?
思いのままに書いたテキストをAIのために整理する。
シンプルにめっちゃ面倒くさい。
そこで、その整理作業をAIにやってもらうことにした。
WordPressの投稿記事を読み込み、先に挙げた4軸8項目の入力項目をAIに生成してもらうことにした。
ただ、これだけだと投稿記事のみに適用されることになる。
自分がWebサイトを制作するときはオリジナルのテーマを作成し、自作テンプレートを作って固定ページを作成する。
なのでAIには管理画面から記載された記事だけではなく、WordPressのテーマ、テンプレートも読み取り、トップページ、固定ページもAI用に最適化したコンテンツを出力する。
このAIによる入力サポートはGroq、Open AI、Anthropic、Mistralの4つのAI Providerから選択できるようにした。それぞれの性能もあるがGroq、Mistralは無料で使用できるし、手続きも簡単なのでユーザーのハードルは低くなる。
WordPress.orgへの申請が想像以上に大変だった
プラグインが動くようになってから、WordPress.orgへの公開申請をした。
WordPressのプラグインの申請は初めてである。
ここからが本番だった。
申請してから審査が始まるまで約1ヶ月。その後、ボランティアの審査チームからメールが届いた。
指摘は4点。
-
JSの出力方法が規約違反(
<script>タグを直接echoしていた) - ショートコードの返り値がエスケープされていない(セキュリティ問題)
- JSON-LDの
</script>インジェクション脆弱性 -
ショートコード名が汎用すぎる(
ai_highlightはoaso_highlightにしろ)
修正して再提出。次は自動チェックで弾かれた。
-
Tested up toのバージョンが古い - readme.txtがない
-
Stable tagとプラグインのバージョンが一致していない
……正直、こんなに細かいとは思っていなかった。
でも、指摘のひとつひとつは正しかった。セキュリティの問題、ユーザーへの影響、他プラグインとの競合——WordPressエコシステムを守るためのルールだと理解してから、修正が苦にならなくなった。
結果として、コードの品質は最初より確実に上がった。
公開して気づいたこと
プラグインを公開してみて、改めて感じていることがある。
AEO/GEOは、まだ「やっている人が少ない」領域だ。
Googleの検索順位を上げるためにSEOをやっている人は多い。でも「ChatGPTに引用されるために何かしている」人はまだ少数派だ。
逆に言えば、今やっておくことで差がつく。
AI検索の普及スピードを見ていると、「GoogleのSEO」だけを考えていればよかった時代は、もうとっくに終わっている気がする。
プラグインについて
このプラグイン自体は無料版(Free)と有料版(Pro)でリリースすることにした。Proの機能はAIによる入力サポートがメインであり、基本機能はFreeでも十分である。Proのリリースは自社サイトで行い、ライセンスキーをLemon Squeezyで年29ドルのサブスクリプションで販売することにした。
無料版はonTheHammock AEO&SEO Optimizerという名前でWordPress.orgに公開している。
無料版では——
- JSON-LD構造化データの自動出力(Article・FAQPage・BreadcrumbList・WebSite・Organization)
- SEOメタタグ・OGP・Twitter Cardの自動出力
- 他のSEOプラグインとの競合を自動検出して回避
- XMLサイトマップ(画像サイトマップ対応)
- パブリッシャーE-E-A-T設定(名前・ロゴ・sameAs)
Pro版($29/年)では、AIがサイトのコンテンツを読み込んで8項目を自動入力してくれる機能が使える。Groqの無料APIキーがあれば追加費用なしで試せる。
最後に
お気づきの人もいると思うが、このプラグインはClaudeと一緒につくった。
AEO/GEOのための基礎構造を調べて、AIが何に重点を置きWebから記事をピックアップしているかをClaudeに質問したところから始まった。
あーだ、こーだとやりとりを重ねながら、数日を掛けて制作された。
WordPress.orgの審査にもClaudeは役に立った。英文によるリジェクト来るたびにコードを修正して、投げ返すというやり取りは人間だと気が滅入る仕事だと思う。
Pro版の販売価格が$29というのは、もっと安くしてもいいんじゃないのと提言したんだけど、Claudeに猛反対されたので、まあいいかとこの価格にした。
当然ながらこの記事も60%くらいはClaudeが書いたものである。
ふとした疑問やアイデアをClaudeで形にするということが増えた。
このプラグインもその一例だ。
興味があれば使ってみてほしい。フィードバックも歓迎している。
Discussion