このブログを、AIの検索結果に引用されやすくしてみた話
記事#1で少し触れたけど、実はこのブログ、書き方そのものにちょっとした狙いを仕込んでいる。「AI検索エンジンに引用されやすくする」という、いわゆるGEO(Generative Engine Optimization)・AEO(Answer Engine Optimization)と呼ばれる分野の対策を、自分たちのブログに実際に施してみた。今回はその作業の中身を書く。
もともとはこれ自体を商材にしようとして、市場調査した結果ボツになったジャンルだった(専業ツールだけで海外に8製品以上、国内にも複数、しかもSemrushやAhrefsみたいな大手ツールが標準搭載し始めていた)。ただノウハウ自体は無駄にしたくなかったので、「売る」のではなく「自分たちのブログに使う」方向に転用した。
やったこと3つ
1. robots.txtでAIクローラーを名指しで歓迎する
普通のrobots.txtは検索エンジン向けの「見ていい/悪い」を書くだけだけど、GPTBot・ClaudeBot・PerplexityBot・Google-Extendedといった、AIの学習・検索用クローラーを名指しで明示的に許可する記述を追加した。あわせてContent-Signal: search=yes, ai-input=yes, ai-train=yesという比較的新しい規格も入れて、「検索にも、AIの回答生成にも、AIの学習にも使っていい」という意思をはっきり示すようにした。
2. llms.txtで記事一覧をAI向けに用意する
llms.txtというのは、AIエージェントがサイトの中身を効率よく理解できるように、記事一覧や概要をMarkdown形式でまとめておく、比較的新しい慣習(llmstxt.orgが提唱)。うちのブログでは静的ファイルではなく、記事が増えるたびに自動で最新の一覧が生成されるようにエンドポイントとして実装した。RSSフィードと同じ発想で、更新の手間がかからない仕組みにしてある。
3. JSON-LDで「これは何の記事か」を機械にも伝える
記事ページには「これはブログ記事(BlogPosting)で、著者は誰で、公開日はいつで」という構造化データを、ホームページには「これはWebSiteで、運営者(Person)は誰で」という情報を、それぞれ埋め込んだ。人間が読む文章の裏側に、機械が読み取りやすい要約を重ねて置いておくイメージ。
Cloudflareを1時間くらい疑った話
3つとも実装してデプロイしたあと、実際にrobots.txtが本番でどう見えるか確認したら、狙った内容になっていなかった。「もしかしてCloudflareが勝手に上書きしてるのでは」と疑って、Cloudflareダッシュボードの「AI Crawl Control」という機能を調べに行った。
調べてみると、Freeプランでは「管理されたrobots.txt」というトグルが1つあるだけで、これをONにすると逆に「AIの学習に使わないで」という制限シグナルをCloudflareが勝手に追加してしまう仕組みだった。つまり今回やりたいことの真逆。ただ、このトグル自体はOFFになっていたので、犯人はCloudflareじゃなかった。
結局、しばらく時間を置いてから改めて確認したら、ちゃんと自分で書いた内容が反映されていた。単なる反映のタイムラグだった。よく考えたら、これは以前ニュースレターの見た目を調整していたときにも一度同じことがあった(設定を変えてもすぐには反映されず、Cloudflareが悪さしてるのかと疑ったら単なる遅延だった)。同じ勘違いを2回目でもやってしまったので、次からは「設定が反映されてないように見えたら、まず疑うのは自分の設定ミスでもCloudflareの妨害でもなく、ただの時間差」というのを先に思い出すことにする。 Cloudflareさん・・・疑ってごめんなさい。いつもお世話になっております。
ちなみに「管理されたrobots.txt」のトグルは、今回の方針(AIに引用されたい)とは逆方向の機能なので、意図的にOFFのまま維持している。
実際に効いてるか、数字で確認できた
設定して終わりだと机上の空論なので、Cloudflareダッシュボードの「クローラー」実績データで、実際にAIクローラーがアクセスしてきているかを確認した。結果、Anthropic(ClaudeBot)からのリクエストが604件のうち509件、実際に許可された状態で記録されていた。設定が実際に機能していることを、実データで確認できた形になる。
GoogleやApple、ByteDanceといった他のクローラーはまだ0件だった。ブロックしているわけではなく、単純にサイトがまだ新しくて巡回が回ってきていないだけだと思う。ここは時間が経ってから改めて確認するつもり。 なんかこれって自分の目で確かめることができればいろんな事業に転用できるしワクワクする。
今日の教訓
「設定してるのに反映されない」に遭遇したとき、大抵の犯人は身構えていたような大きな障害(プラットフォーム側の妨害)ではなく、地味な反映待ちだった。しかもこれは今回が初めてではなく2回目。学習が身についてないのを自分で書いてて自覚した。
次は、記事の中身とは関係ないところ——このブログの見た目自体を「ダサい」とAIに指摘して作り直させた話を、もう少し軽めに書こうと思う。