0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

# AIエージェント時代のWeb開発:デザイナーがPHPブログで実装した4つの規格

0
Posted at

はじめに:検索エンジンの次に来るもの

私はデベロッパーではない。10年以上金融機関のUX/UIデザインをしてきたデザイナーだ。3ヶ月前、ClaudeをコーディングパートナーとしてバニラPHPでブログをゼロから構築した。フレームワークなし、WordPress なし。

その過程で気づいたことがある。GoogleのクローラーとAIエージェントでは、ウェブサイトに求めるものが根本的に違う。

Googleはリンク構造とキーワードを分析する。AIエージェントはコンテンツを直接読み、回答に引用するかどうかを判断する。つまり、SEOだけでは足りない時代が来ている。

Cloudflareのテストで現実を知った

CloudflareがIs It Agent Readyというツールを公開した。10の規格をチェックしてスコアを出す。

自分のブログを試した結果:50/100

最初は低いと思った。しかし調べてみると、10の規格のうち6つはSaaSプラットフォーム向け(OAuth、MCP、API Catalog等)で、コンテンツサイトには関係ない。ブログの理論最大値は約40点で、Markdownネゴシエーションのサブテストでボーナスが付いて50点になった。

つまり、自分のサイトタイプにとっては満点に近い。

実装した4つの規格とコード

規格1:llms.txt

LLM向けの自己紹介ファイル。robots.txtがGoogleに「何をクロールするか」を伝えるように、llms.txtはAIモデルに「自分は誰で、何を書いていて、どのページが重要か」を伝える。

ドメインルートに配置するMarkdownファイルだ。

# サイト名

> サイトの説明文(AIモデル向け)

## Author
- Role: UX/UI Designer
- Experience: 10+ years in fintech

## Key Pages
- [About](https://yoursite.com/about)
- [Best Article](https://yoursite.com/best-article)

PHPルーターがリクエストを横取りしないようにApacheで設定する:

RewriteRule ^llms\.txt$ - [L]

robots.txtにも参照を追加:

LLMs-Txt: https://yoursite.com/llms.txt

自分で書くのが面倒な人向けに無料ジェネレーターも作った。URLを入力するだけでllms.txtが生成される。

規格2:Content Signals

robots.txtに1行追加するだけ。実装コスト30秒。

Content-Signal: ai-train=no, search=yes, ai-input=yes

この1行の意味:

  • ai-train=no → コンテンツでモデルを訓練するな
  • search=yes → 検索結果には表示しろ
  • ai-input=yes → AI回答のインプットには使え

「無料でコンテンツを使わせる」のと「引用のルールを決める」のは全く違う。この1行がその境界線になる。

規格3:Markdown for Agents

これが最も技術的な実装だった。AIエージェントがAccept: text/markdownヘッダーでリクエストしたとき、HTMLではなくクリーンなMarkdownを返す仕組みだ。

なぜこれが重要か。AIエージェントにとって、ナビゲーションバー、Cookieバナー、JavaScriptバンドルはすべてノイズだ。記事本文だけが欲しい。Markdownならトークン消費も大幅に減る。

.htaccessでルーティング:

RewriteCond %{HTTP_ACCEPT} text/markdown
RewriteRule ^(.*)$ markdown-negotiator.php [L,QSA]

Header always append Vary "Accept"

PHP側の変換ロジック(主要部分):

// HTMLからMarkdownへの変換
$md = preg_replace('/<h2[^>]*>(.*?)<\/h2>/s', "\n## $1\n", $md);
$md = preg_replace('/<a\s+href="([^"]*)"[^>]*>(.*?)<\/a>/s', '[$2]($1)', $md);
$md = preg_replace('/<strong>(.*?)<\/strong>/s', '**$1**', $md);
$md = preg_replace('/<p>(.*?)<\/p>/s', "$1\n\n", $md);
$md = strip_tags($md);

header('Content-Type: text/markdown; charset=utf-8');
header('Vary: Accept');

Vary: Acceptヘッダーを忘れると、CDNやプロキシが間違ったバージョンをキャッシュする可能性がある。

規格4:Agent Skills discovery

/.well-known/agent-skills/index.jsonに配置するJSONファイル。サイトで利用可能なツールをエージェントに伝える。

{
  "skills": [
    {
      "name": "llms.txt Generator",
      "url": "https://shinobis.com/tools/llmstxt-generator",
      "description": "Generate a valid llms.txt file for your website"
    },
    {
      "name": "GEO Tarot",
      "url": "https://shinobis.com/tools/geo-tarot",
      "description": "22 interactive cards explaining Generative Engine Optimization"
    }
  ]
}

これにより、エージェントはサイトのすべてのページをクロールしなくても、利用可能なリソースを発見できる。

実装しなかった6つの規格

OAuth/OIDC → ブログにログイン機能なし。認証不要。

OAuth Protected Resource → 保護するAPIエンドポイントなし。

API Catalog (RFC 9727) → REST APIを公開していない。

MCP Server Card → ドラフト段階で未確定。明日変わるかもしれない仕様を実装するのは技術的負債。

WebMCP → Chrome実験機能。普及率ほぼゼロ。

Link headers (RFC 8288) → コンテンツサイトへの影響が測定不能。

自転車にエアバッグをつけるようなものだ。技術的に可能でも、意味がない。

これはSEOの延長線にある

この4つの規格は単独で機能するものではない。JSON-LD、Schema.org、llms.txt、Content Signals、内部リンク構造、マルチ言語対応。これらが組み合わさって初めて「AIモデルが信頼できるソース」として認識される。

私はこの全体像を22枚のインタラクティブカードにまとめた。GEO(Generative Engine Optimization)と呼ばれる概念で、SEOの次に来る最適化戦略だ。タロットカードのメタファーで各概念を説明している。

デザイナーだからこそ見えたこと

面白いのは、AIエージェント対応の本質がUXデザインと同じだということだ。

人間のユーザーにはレスポンシブデザインで最適な表示を提供する。モバイルとデスクトップで同じHTMLを送るのではなく、ビューポートに合わせて調整する。

AIエージェントも同じだ。ブラウザ向けのHTMLをそのまま送るのではなく、エージェントが処理しやすいMarkdownを返す。「ユーザーに合わせてコンテンツの形を変える」という原則は同じだ。

デベロッパーの視点だと「技術的に正しい実装」に目が行く。デザイナーの視点だと「受け手にとって最適な形」に目が行く。どちらも必要だが、後者の視点がAIエージェント対応では特に重要だと感じている。

テストしてみてほしい

isitagentready.comでスコアを確認できる。アカウント不要、URLを入力するだけ。

特に知りたいのは、PHP以外のスタックでの結果だ。Next.js、Rails、Laravel、WordPress。フレームワークが自動で対応している規格はあるのか、それとも手動実装が必要なのか。

皆さんのスコアと使っているスタックをコメントで教えてほしい。AIエージェント対応のベンチマークを一緒に作りたい。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?