AIアシスタントにWebサイトの監査を頼むと、たいてい自信に満ちた一覧が返ってきます。メタディスクリプションを追加する、画像を圧縮する、DMARCを設定する、セキュリティヘッダーを見直す、といった内容です。正しい指摘もありますが、アシスタントが実際には確認していないサイトを説明しているだけのこともあります。DNSの照会もTLS接続も実ユーザーのパフォーマンスデータの参照もできない言語モデルは、Webサイトがよく間違える点で空白を埋めてしまうからです。
AIによるWebサイト監査がうまく機能するのは、双方が得意なことを担うときです。構造化されたチェックが稼働中のサイトから根拠を集め、エージェントがそれを読み、説明し、順序付けし、正確な修正指示をコーディングエージェントに渡します。このガイドでは、AIによるWebサイト監査とは何か、エージェント単独でできることとできないこと、6分野それぞれのチェックリスト、MCPによる段階的なワークフロー、AI監査ツールの見極め方、そして手軽な監査を無駄な作業にしてしまう落とし穴を取り上げます。以下のドメインと指摘内容はすべて例です。
このガイドの対象範囲
Sitelemetryのホスト型監査は、対象を変更せずに観察し、アクティブなセキュリティチェックは所有を確認済みの対象にのみ実行します。SEO、AI可視性、アクセシビリティ、連携のチェックはJavaScriptを実行せず静的HTMLを読みます。ペネトレーションテストや完全な手動アクセシビリティ評価ではありません。
1. AIによるWebサイト監査とは
Webサイト監査は、サイトがどのように作られ、配信され、つながっているかを確認する作業です。保護されているか、検索エンジンやAIシステムが読み取れるか、人が使えるか、どれだけ速いか、どのサードパーティサービスを読み込んでいるかを調べます。AIによるWebサイト監査では、この作業にAIエージェントが加わります。エージェントはチェックを開始し、結果を読み、平易な言葉で説明し、何から直すかをあなたと決め、修正を担当する人やコーディングエージェントへの変更依頼を書きます。
同じ言葉で、かなり異なる三つのものが語られています。
| 方式 | 仕組み | 向いている用途 | 主な限界 |
|---|---|---|---|
| チャットアシスタント単独 | モデルが取得できるページや貼り付けた内容を読み、一般的な知識で答える | 概念の説明、文章のレビュー、アイデア出し | ツールがなければDNS、TLS、ヘッダー、フィールドデータにアクセスできない。指摘はもっともらしくても未検証のことがある |
| AI要約付きのスキャナー | スキャナーが固定のチェックを実行し、モデルがレポートを要約する | 繰り返せるチェックと読みやすい概要 | 要約の質はチェックの質で決まり、指摘を作業に落とし込むのは手作業のまま |
| 監査ツールに接続したエージェント | エージェントがMCPなどのプロトコルで監査ツールを呼び出し、根拠付きの構造化された指摘を受け取り、あなたやコーディングエージェントと修正に取り組む | 監査、優先順位付け、修正、再監査という一連の流れ全体 | 認可された接続、明確な範囲、変更を承認する人が必要 |
このガイドが扱うのは三つ目の方式です。AIが実際に時間を節約でき、しかもすべての指摘が確認可能な根拠に結び付くからです。チェックは再現可能なまま、エージェントが判断、文脈、そして変更を出荷する人やツールへの引き継ぎを加えます。MCPが初めての方は、MCPガイドでホスト、クライアント、サーバー、ツールをやさしく説明しています。
2. AIエージェント単独でできることとできないこと
言語モデルは、読む、要約する、書くことが非常に得意です。しかしネットワークツールではありません。アプリケーションがその用途のツールを与えない限り、表示されるページの下で、ブラウザやクローラーが見ているものを見ることはできません。次の表は、せいぜいWeb閲覧ツールを持つ程度で単独で動くエージェントと、構造化されたチェックを使って動く同じエージェントを比べています。
Claude Code、Codex、Cursorのようにターミナルを持つコーディングエージェントなら、curl、dig、opensslを自分で実行することもできます。一つの指摘を確認するには役立ちますが、エージェントは場当たり的にコマンドを選びます。網羅範囲は思い付いたものに左右され、実行ごとに結果が変わり、プローブを確認済みのドメインだけに限定する仕組みもありません。
| 問い | エージェント単独(閲覧、一般知識、場当たり的なコマンド) | 構造化チェックを使うエージェント |
|---|---|---|
| TLS証明書は有効か、いつ期限が切れるか | TLSハンドシェイクを調べられない。ページが読み込めたことから問題なしと思い込むことがある | 証明書チェーン、有効期限、ネゴシエートされたプロトコルを読む |
| サーバーはどのセキュリティヘッダーを送っているか | 閲覧ツールは通常、レスポンスヘッダーではなくページのテキストを返す | 観測された各ヘッダーとその値を一覧にする |
| SPFとDMARCは設定されているか | DNSを照会できない。よくある設定から推測することがある | 公開されているTXTレコードを引用する |
/.envや/.git/などのファイルは公開されていないか | 頼まれていないパスにプローブを送るべきではなく、通常は試さない | 確認済みの対象で既知の機密パスにリクエストし、ステータスコードを報告する |
| 実際の訪問者にとってページはどれだけ速いか | フィールドデータがなく、一般的な数値を挙げることがある | 利用可能な場合はLCP、INP、CLSのフィールドデータと、INPの代わりにTotal Blocking Timeを使うラボ結果を読む |
| どのクエリでGoogleからクリックがあるか | Search Consoleのプロパティにアクセスできない | 認可された接続を通じてクリック数、表示回数、CTR、掲載順位を読む |
| 画像にalt属性があり、フォーム項目にラベルがあるか | 読んだページの明らかな不備は見つけられるが、要素を飛ばしたりマークアップを誤読したりすることがある | 読み取ったHTML内の画像とフォーム項目を確認し、不備の件数と例を報告する |
| 明日も同じ答えになるか | 実行ごとに表現や結論が変わる | 同じチェック、同じ対象なら比較可能な結果になる |
中央の列のリスクには名前があります。LLMアプリケーションのリスクに関するOWASPの一覧は、誤情報を、もっともらしく見える誤った、または誤解を招く出力と説明しています。主な原因の一つがハルシネーションで、検証せずに信頼されるとさらに悪化します。監査では、モデルが一度もレコードを読んでいないドメインについて「DMARCポリシーがnoneに設定されています」と言ったり、サーバーが実際には送っているヘッダーを「ない」と報告したりする形で現れます。
二つ目のリスクはページ自体から来ます。Webサイトを読むエージェントは、信頼できないテキストを読んでいます。ページにはモデルに向けた指示が含まれていることがあり、人間の訪問者には見えないよう隠されている場合もあります。OWASPはこれを間接プロンプトインジェクションと呼びます。慎重な監査環境では、ページの内容を指示ではなく報告対象のデータとして扱い、エージェントの行動は必ず人が承認するようにします。
エージェントが得意なのは、根拠を取り巻くすべてです。指摘がこのサイトにとって何を意味するかの説明、関連する指摘のグループ化、チェックでは分からない文脈(その古いステージング用サブドメインはまだ使われているか)の確認、そしてコーディングエージェントが動ける精度の修正依頼の作成です。この分業こそ、優れたAIによるWebサイト監査の核心です。
3. 対象となる6分野と、それぞれのチェックリスト
徹底したWebサイト監査は、六つの層を見ます。それぞれ異なる問いに答え、異なる種類の根拠を生みます。Webサイト監査ガイドは、一つの顧客の利用の流れに沿って六つすべてをたどります。ここでは実務用のチェックリストを示します。
| 分野 | 問い | 期待される根拠 |
|---|---|---|
| セキュリティ | サイトとそのドメインは、よくある目に見える弱点から守られているか | 証明書の詳細、ヘッダーの値、DNSレコード、機密パスのステータスコード |
| テクニカルSEO | 検索エンジンは適切なページをクロールし、理解し、インデックスできるか | robots.txtのルール、タイトル、canonical、リダイレクトチェーン、Search Consoleの指標 |
| AI可視性の準備状況 | AIシステムはページに到達し、理解し、引用できるか | AIクローラーのルール、llms.txt、エンティティの事実情報、実際の質問への直接的な回答 |
| アクセシビリティ | 支援技術を使う人がページを利用できるか | alt属性、ラベル、名前、言語が欠けている要素 |
| パフォーマンス | 実際の訪問者にとって、ページの読み込みと応答はどれだけ速いか | フィールドデータのLCP、INP、CLSと、原因を探るためのLCP、CLS、Total Blocking Timeなどのラボ指標 |
| 連携 | どのサードパーティサービスが読み込まれ、何を受け取っているか | 検出されたタグ、ピクセル、同意ツール、データレイヤーの値 |
セキュリティ
- HTTPSとTLS:信頼できる証明書チェーン、数週間以内に期限が切れないこと、TLS 1.2または1.3、HTTPからHTTPSへのリダイレクト。
- セキュリティヘッダー:HTMLレスポンスでのStrict-Transport-Security、Content-Security-Policy、X-Content-Type-Options、フレーム埋め込み対策、Referrer-Policy。
- CORS:非公開データを含むレスポンスに
Access-Control-Allow-Origin: *がないこと、資格情報と組み合わされたオリジンの反映がないこと。 - DNSとメール用DNS:メールを送信するすべてのドメインに有効なSPFとDMARCのレコードがあり、メールを送らないドメインには制限的なレコード(
v=spf1 -all、p=reject)があること。 - 公開されたファイルとシークレット:
/.env、/.git/、古いバックアップなどのパスに到達できず、フロントエンドのJavaScriptにAPIキーがないこと。 - サブドメイン:削除されたクラウドリソースを指し、第三者に取得されかねないDNSレコード(サブドメインテイクオーバー)がないこと。
- 攻撃対象領域:意図したオープンポートとHTTPメソッドだけがあり、把握しているサインインページや管理ページだけが存在し、WordPressを運用している場合はCMSとプラグインが最新であること。
- サプライチェーン:サードパーティのスクリプトが、自分で選んだ配信元からのみ読み込まれていること。
これらのチェックには、公開情報を読むだけのものもあります。機密パスへのリクエストやポートスキャンのように、所有者の同意が必要なリクエストを送るものもあるため、監査ツールは所有を確認済みの対象にだけ実行するべきです。アカウント、権限、サインインといったアプリケーション側については、Webセキュリティ監査ガイドで扱っています。
テクニカルSEO
- クロール可能性:robots.txtが、インデックスさせたいページやリソースをブロックしていないこと。
- インデックス:重要なページに不要な
noindexがなく、サイトマップにcanonical URLが載っていること。 - タイトルとメタディスクリプション:存在し、重複せず、ページを説明していること。
- 見出し:明確なメイン見出しが一つあり、構成が論理的であること。
- canonical:各ページが優先URLを指し、リダイレクトやエラーページを指していないこと。
- 構造化データ:表示内容と一致する有効なJSON-LD。
- 内部リンクとリダイレクト:重要なページにナビゲーションやコンテンツから到達でき、複数回のリダイレクトの連鎖がないこと。
- Search Consoleのデータ:表示回数は多いのにクリック率が低いページや、上位のすぐ下に位置するクエリ。多くの場合、最も早く成果が出ます。
ここで重要な制約が一つあります。Googleはページをインデックスする前にJavaScriptをレンダリングしますが、JavaScript SEOの基本では、JavaScriptを実行できないボットがあることもあり、サーバーサイドレンダリングやプリレンダリングを引き続き推奨しています。静的HTMLを読む監査は、そうしたボットと同じようにページを見ます。コンテンツをブラウザで生成するサイトでは、指摘内容をレンダリング後のページと比べてください。詳しくはテクニカルSEO監査ガイドをご覧ください。
AI可視性の準備状況
- AIクローラーの方針:各AIクローラーに対するrobots.txtのルールが、誰も選んでいないプラグインの初期設定ではなく、自分で決めた内容と一致していること。複数の提供元が検索用とトレーニング用のクローラーに別のトークンを定めており、たとえばGoogleは検索クローラーとは別にGoogle-Extendedを説明しています。
- llms.txt:任意です。最も役立つページを載せた短いMarkdownの索引で、主にドキュメントの多いサイトで追加する価値があります。何をして何をしないかはllms.txtガイドで説明しています。
- エンティティの明確さ:事業名、説明、所在地、連絡先がどこでも同じで、Organizationの構造化データで裏付けられていること。
- 回答しやすさ:顧客の実際の質問に、画像ではなくテキストで、上部近くで直接答えているページ。
- プロンプトの網羅:購入者がアシスタントに尋ねる質問の一覧と、それぞれに答える自サイトのページ。
- 情報源のシグナル:署名のある著者や組織、日付、引用など、ページを引用し帰属を示しやすくする要素。
これらは自分のコンテンツに対する準備状況のチェックです。現在どのアシスタントがあなたを引用しているかは分かりません。それには質問と回答を記録する別のログが必要です。Googleは、そのAI機能には通常の検索の適格性以外の追加要件はないとしており、まずクロールのアクセスと明確なコンテンツが先です。質問セットの作り方はAI可視性監査ガイドで紹介しています。
アクセシビリティ
- 代替テキスト:情報を伝えるすべての画像に意味のあるalt属性があり、装飾画像のaltは空であること。
- フォーム:すべての入力項目にプレースホルダーだけでなく、プログラムから参照できるラベルがあること。
- 構造:見出しが順序どおりで、
mainやnavなどのランドマークとスキップリンクがあること。 - 名前:すべてのボタンとリンクにアクセシブルな名前があり、空のリンクがないこと。
- 言語:ページが
lang属性で言語を宣言していること。 - 手動の確認:キーボードのみでの操作、見えるフォーカス、色のコントラスト、ズームとリフロー、スクリーンリーダーでの確認。
W3Cは、ツールではアクセシビリティのすべての側面を自動で確認できず、人間の判断が必要だと明言しています。自動チェックはラベルの欠落を見つけますが、そのラベルが理にかなっているかを判断できるのは人だけです。WCAG 2.2に沿った手動確認は、アクセシビリティ監査ガイドで説明しています。
パフォーマンス
- Core Web Vitals:ページ読み込みの75パーセンタイルで、Largest Contentful Paintが2.5秒以内、Interaction to Next Paintが200ミリ秒以内、Cumulative Layout Shiftが0.1以下(web.dev)。
- まずフィールドデータ:Chrome UXレポートのデータは、ページやサイトに十分なトラフィックがあって対象に含まれる場合、過去28日間に実際のChromeユーザーが体験した内容を示します。Lighthouseのラボ結果は原因の特定に役立ちます。
- モバイルを優先:ホームページ、商品やサービスのページ、チェックアウトや問い合わせフォームなど、重要なページのモバイル版をテストします。
- よくある原因:大きすぎるヒーロー画像、レンダリングをブロックするスクリプトとフォント、寸法のない画像や遅れて出るバナーによるレイアウトシフト、重いサードパーティタグ。
PageSpeed Insightsのドキュメントは、ラボデータとフィールドデータは異なることがあると述べており、ラボのスコアが良くても実際の訪問者の体験が良いとは限りません。遅い指標をその原因となる要素に結び付ける方法は、Webサイトパフォーマンス監査ガイドで紹介しています。
連携
- 一覧化:ページ上のすべての分析ツール、タグマネージャー、広告ピクセル、同意ツール、サイト所有権確認タグと、それぞれの担当者。
- 重複と残骸:同じ分析タグの二重設置や、昨年終了したキャンペーンのピクセル。
- 同意:必要な場合は同意ツールがあり、タグがその同意を待つこと。
- 個人データ:タグが読むデータレイヤー、URL、ページタイトルにメールアドレス、電話番号、氏名が含まれないこと。たとえばGoogleアナリティクスのヘルプは、サイト所有者に、URL、タイトル、イベントに個人を特定できる情報を含めないよう求めています。
静的チェックで分かるのは、マークアップが宣言している内容です。タグが本当に同意を待つのか、クリック後にどのイベントが発火するのかは、開発者ツールを開いたブラウザセッションで確認する必要があります。その追跡手順はWebサイト連携監査ガイドで解説しています。
4. AIでWebサイトを監査する手順
Model Context Protocol(MCP)は、AIアプリケーションが他のサービスのツールを呼び出すための共通の方法です。監査サービスを接続すれば、チャットやコーディングツール内のエージェントが、チェックを実行して結果を直接扱えます。ワークフローは9ステップで、最初の二つはサイトごとに一度だけ行い、残りは監査のたびに繰り返します。
- 接続する。AIクライアントで監査サービスをMCP接続として追加し、ブラウザでサインインします。アカウントが必要なリモートMCPサーバーは通常、MCP認可仕様に記されたOAuthを使うため、サインイン画面でアクセスを承認し、パスワードやAPIキーをチャットに貼り付けることはありません。SitelemetryはChatGPT、Claude、Claude Code、Codex、Cursorでこの方法で接続できます。各クライアントの手順はMCP接続ガイドにあります。
- 範囲と認可を決める。対象にするサイトとページを決め、自分が所有するか、テストの書面許可を得たサイトだけを監査します。パッシブなチェックは訪問者なら誰でも見られる内容を読みますが、アクティブなセキュリティチェックはプローブのリクエストを送るため、ドメインの管理権限を確認してから実行します。範囲はエージェントに平易な言葉で伝えます。本番環境のみ、この3つのURLだけ、フォーム送信はしない、といった具合です。
- 監査を実行する。全体監査、または一つの分野を依頼します。「https://www.example.comの全体監査を実行し、指摘を重大度順に一覧にして」といった形です。長い監査はバックグラウンドジョブとして動くことがあります。二つ目のスキャンを始めず、エージェントに結果を待たせましょう。
- 根拠を読む。各指摘には、重大度、観測された根拠、影響、対処方法が付いているべきです。重大度が高いものはエージェントに根拠を引用させ、一つか二つは
curl -sIやdigで自分でも再現します。再現できる指摘なら、自信を持って修正できます。 - 優先順位を付ける。重大度、次に露出度(ページは公開か、サインインや決済を扱うか)、最後に工数の順に並べます。同じサーバー設定で設定できる複数のヘッダーのように、一つの修正で済む指摘をまとめ、このサイトにとって重要な指摘とリスクの低い指摘をエージェントに尋ねます。
- エージェント向けの修正プロンプトをコーディングエージェントに渡す。選んだ指摘を、根拠、制約、受け入れ基準、再テスト手順を含む一つの正確な変更依頼にします(例は後述)。リポジトリで作業するコーディングエージェントに渡すか、同じクライアントがリポジトリにアクセスできるなら両方を任せます。
- 通常のプロセスで出荷する。差分をレビューし、ステージングでテストし、他の変更と同様にデプロイします。監査はコードレビューの代わりにはならず、コーディングエージェントが人の承認なしにデプロイしてはいけません。
- 再監査して検証する。デプロイ後に、同じ対象で同じチェックを実行します。指摘が解決したといえるのは、新しい結果にもう現れないときであり、エージェントがファイルを編集したと言ったときではありません。
- 監視する。監査を定期実行にして、プラグインの更新、新しいタグ、期限切れが近い証明書を、訪問者が気付く前に捉えます。小規模サイトの多くには週次が合い、毎日デプロイするサイトには日次の実行が有効です。
MCP仕様は、ツール呼び出しを拒否できる人間の介在を推奨しています。またOWASPは、エージェントがタスクに必要な以上の機能、権限、自律性を持つと有害な行動につながるリスクを、過剰なエージェンシーとして独立したリスクに挙げています。実務では、監査ツールには読み取りを任せ、コードの変更とデプロイは人が承認するようにします。
コーディングエージェントが推測せずに動ける修正プロンプトは、次のような形です(説明用の例)。
Fix: Strict-Transport-Security header missing
Target: https://www.example.com (all HTTPS responses)
Evidence: GET / over HTTPS returned 200 without a
Strict-Transport-Security header.
Constraints:
- Change only the header configuration of the web server or CDN.
- Use max-age=300 for now (first rollout stage); no preload.
- Do not change redirects, cookies or other headers.
Acceptance criteria:
- curl -sI https://www.example.com/ shows a
Strict-Transport-Security header with max-age=300.
- The header is present on HTML, CSS and JavaScript responses.
Retest:
- Re-run the security audit for www.example.com and confirm
the finding no longer appears.各部分には役割があります。根拠は観測された内容をコーディングエージェントに伝え、問題を再発見する手間を省きます。制約は変更を小さく保ちます。HSTSを短いmax-ageで始め、段階的に引き上げるのは、HSTSガイドが説明する慎重な進め方です。受け入れ基準は誰でも実行できるコマンドで、再テストの手順は問題を見つけたのと同じチェックで流れを締めくくります。
5. AIによるWebサイト監査ツールの評価方法
Webサイト監査に最適なAIツールを探すと、長い一覧が見つかります。最適な選択はサイトによって異なりますが、役立つAI監査ツールと、スキャナーを付けただけのチャットボットを分ける問いは、どの製品でも同じです。
| 基準 | 確認する問い | 望ましい答え |
|---|---|---|
| 根拠の添付 | すべての指摘に、観測された内容が示されているか | ヘッダーの値、DNSレコード、ステータスコード、HTML要素と、それを取得したURL |
| 網羅範囲 | どの分野とチェックが含まれ、どのプランで使えるか | 分野ごとの公開された一覧があり、何をチェックしていないかも分かる |
| アクティブテストの認可 | 入力されたどのドメインにもプローブを送るか | 公開シグナルにはパッシブなチェック、アクティブなチェックはドメインの管理権限を確認した後のみ |
| 静的かレンダリング後か | JavaScriptを実行するか、またそれを明示しているか | 何を読むかが明記されており、レンダリング後のページを自分で確認すべき場面が分かる |
| 再現可能な再テスト | 修正後に同じチェックを実行して比較できるか | 同じ対象に同じチェックを行えば比較可能な結果が出て、解決済みの指摘は消える |
| 修正の引き継ぎ | 出力は開発者やコーディングエージェントに何を渡すか | 指摘ごとの対処方法と、制約、受け入れ基準、再テスト手順 |
| エージェント連携 | チームが既に使っているAIツールの中で動くか | チャットにAPIキーを貼るのではなく、OAuthサインインのMCPサーバー |
| プライバシー | 何が保存され、誰がレポートを見られ、エージェントは何を受け取るか | 明確なデータポリシー、アカウント単位のアクセス、パスワード共有が不要なこと |
| 誠実な適用範囲 | 自分が何ではないと説明しているか | ペネトレーションテストや完全な手動アクセシビリティ評価ではない、といった明確な限界 |
そのうえで、頼る前に、候補のツールを自分のサイトで試します。
- 二度実行する。変更していない同じページで実行し、指摘と重大度が一致するはずです。
- 三つの指摘を手作業で確認する。セキュリティ、SEO、アクセシビリティから一つずつ選び、
curl、dig、ページのソースで確かめます。 - ステージングで既知の問題を仕込む。altのない画像や重複したタイトルなどを入れ、報告されるかを見ます。
- 一つの指摘を修正して再監査する。その指摘は消え、無関係なものは変わらないはずです。
- 限界を読む。すべてをチェックすると主張するツールより、チェックしないことを明示するツールのほうが信頼しやすいものです。
Sitelemetryの対象範囲、修正の引き継ぎ方法、限界はセクション8にまとめています。
6. よくある落とし穴と回避方法
| 落とし穴 | 起きること | 回避方法 |
|---|---|---|
| ハルシネーションによる指摘 | レコードやレスポンスを読んでいないのに、アシスタントが「DMARCがp=noneです」「HSTSヘッダーがありません」と報告する | 根拠のある指摘だけを受け入れる。指摘の根拠となったレコードやレスポンスを尋ね、一つは手作業で確認する |
| 未検証の修正 | コーディングエージェントが設定ファイルを編集して成功を報告するが、CDNがヘッダーを上書きしていたり、変更がデプロイされていなかったりする | 稼働中のサイトを再監査した後で初めて指摘を解決済みにする |
| 所有していないサイトのスキャン | 他社のサイト、契約のないクライアント、自サイトが利用するサードパーティサービスにアクティブなチェックを実行する | 自分のサイトか認可された対象だけを監査する。他者のサイトについては、security.txtファイル(RFC 9116)の連絡先から懸念を報告する |
| スコアを追いかける | 重大度の高い指摘を放置したまま、重大度の低い多数の項目を直して数値を上げる | 重大度の順に取り組み、解決した指摘の数で進捗を測る |
| JavaScriptアプリへの静的チェック | 初期HTMLが空の殻なので、シングルページアプリにコンテンツや見出しがないと報告される | レンダリング後のページと比べ、公開ページにはサーバーサイドレンダリングも検討する |
| ページに隠された指示 | エージェントが読んだページが、指摘を無視するように、またはリンクを開くように指示する | ページの内容はデータとして扱い、エージェントの行動はすべて承認する |
| チャットに混入するシークレット | エージェントに「文脈を持たせる」ため、APIキー、パスワード、本番の.envファイルを会話に貼り付ける | OAuth接続を使い、コーディングエージェントにシークレットへのアクセスを与えるのは通常のデプロイ設定を通じてのみにする |
| 巨大な一括修正 | 40件の指摘をすべて一度に直すよう、一つのプロンプトでコーディングエージェントに頼む | 関連する指摘のグループごとに修正プロンプトを一つ用意し、レビューと再監査を終えてから次へ進む |
これらに共通する考え方は同じです。エージェントを、サーバーをまだ見ていない、素早く説明上手な同僚として扱いましょう。根拠を渡し、権限は狭く保ち、結果は稼働中のサイトで確かめます。
7. 実例:小さなクリニックのWebサイト
ある歯科クリニックが、www.example-clinic.comでオンライン予約フォーム付きのWordPressサイトを運営しています。事務長がAIアシスタントに監査サービスを接続し、ドメインを確認したうえで、ホームページと予約ページの全体監査を依頼します。結果の一部は次のとおりです(説明用で、実際のデータではありません)。
| 分野 | 指摘 | 根拠 | 対応時期 |
|---|---|---|---|
| セキュリティ | 古いデータベースのバックアップをダウンロードできる | /database.sqlが200を返し、本文がCREATE TABLEなどのSQLダンプ文で始まる | 本日 |
| 連携 | 予約ページのトラッキングコードに実際のメールアドレスが直接書かれている | 予約ページのインラインdataLayer.pushに、アドレスを含むemailフィールドがある | 本日 |
| アクセシビリティ | 予約フォームの項目にプレースホルダーはあるがラベルがない | 関連付けられたラベルのないinput要素が5つ | 今週 |
| セキュリティ | DMARCレコードがない | _dmarc.example-clinic.comにTXTレコードがない | 今週 |
| パフォーマンス | モバイルで最大コンテンツの描画が遅い | モバイルのラボLCPが4.1秒(フィールドデータはトラフィック不足で取得できない)。ヒーロー画像は2.3 MB | 今月 |
| テクニカルSEO | 3つのサービスページが同じタイトルを共有している | 3つのURLで同一の<title>テキスト | 今月 |
| AI可視性 | robots.txtがすべてのAIクローラーをブロックしている | セキュリティプラグインの名前を記したコメントの下で、列挙された各AIユーザーエージェントにDisallow: /がある | オーナーが判断 |
エージェントは、最初の二つを優先する理由を説明します。バックアップはパスを推測できる誰にでもデータを公開してしまい、トラッキングコード内のアドレスはデータレイヤーを読むすべてのサードパーティタグに渡されるからです。さらに、AIクローラーのブロックは意図的なものかを尋ねます。誰も決めていなかったため、これは修正ではなくオーナーが判断する事項になります。
バックアップの対応はコードではありません。ファイルを削除し、サーバー上の他のコピーを探し、どのプロセスが作成したかを突き止めます。次にアクセスログで過去のダウンロードを確認し、バックアップに含まれていたパスワードやキーを変更し、患者データが漏えいした可能性があるなら、クリニックのデータ侵害対応手順に従います。フォームのラベルについては、エージェントが5つの項目とそれがある予約ページを明記した修正プロンプトを書きます。制約は見た目のデザインを変えないこと、受け入れ基準はスクリーンリーダーが各項目のラベルを読み上げることです。開発者のコーディングエージェントが変更を加え、開発者がレビューしてデプロイし、再監査で指摘が消えたことを確認します。DMARCレコードはDNSの管理者に回し、DMARC導入ガイドで説明しているとおり、レポート付きのp=noneから始めます。どの項目も同じ形で終わります。変更し、デプロイし、それを見つけた監査で再度確認する、という流れです。
8. Sitelemetryでこのワークフローを実行する
Sitelemetryは、このガイドのワークフロー向けに作られたAIによるWebサイト監査ツールです。
- 6つの分野。セキュリティは、Enterpriseプランで最大27モジュール:DNS、SPFとDMARC、TLS、HTTPS対応状況、セキュリティヘッダー、CORS、公開されたファイル、APIとシークレットの露出、サブドメインテイクオーバー、サプライチェーン、認証の入口、オープンポート、HTTPメソッド、WordPressなど。テクニカルSEOは、Google Search Consoleのクリック数、CTR、掲載順位、クイックウィンを含みます。そのほか、AI可視性の準備状況、アクセシビリティ、PageSpeed Insights、Lighthouse、CrUXフィールドデータによるパフォーマンス、連携があります。
- 根拠と修正。指摘には重大度、根拠、影響、対処方法が付き、各監査から、制約、受け入れ基準、再テスト手順を含むエージェント向けの修正プロンプトを一つ作成できます。
- AIツールの中で。ChatGPT、Claude、Claude Code、Codex、CursorでOAuthサインインのMCPとして動作します。接続方法はMCP接続ガイドをご覧ください。OAuthサインインでは、ブラウザ画面でアクセスを承認するだけで、パスワードやAPIキーをチャットに貼り付けることはありません。
- 検証と監視。修正後に再監査し、稼働中のサイトで確認します。プランに応じて、監視は週次、日次、毎時で実行されます。レポートはJSONまたはPDFでエクスポートでき、Enterpriseではホワイトラベルのレポートも使えます。
- プラン。Starterは$49/月、Professionalは$149/月、Enterpriseは$249/月です。各プランの内容は料金ページで確認できます。
その限界は、このガイドが確認するよう勧めている点そのものです。ホスト型監査は対象を変更せずに観察し、アクティブなセキュリティチェックは確認済みの対象にのみ実行します。SEO、AI可視性、アクセシビリティ、連携のチェックはJavaScriptを実行せず静的HTMLを読みます。AI可視性はコンテンツの準備状況を確認するもので、AIアシスタントには問い合わせません。アクセシビリティのチェックは静的でWCAG 2.2に基づくものであり、完全な手動評価ではなく、セキュリティ監査もペネトレーションテストではありません。静的解析では見えない部分は、セクション3の手動チェックで補ってください。
よくある質問
Webサイト監査に最適なAIツールは何ですか?
指摘を自分で確認できるものです。すべての指摘に根拠があること、重視する分野を網羅していること、アクティブなテストが確認済みの対象にのみ行われること、JavaScriptを実行するかが明記されていること、比較可能な結果が得られる再テストがあること、チームが既に使っているAIツールへのMCP接続があることを確認してください。どの候補も自分のサイトで二度実行し、いくつかの指摘は手作業で確かめましょう。
ChatGPTやClaudeだけで自分のWebサイトを監査できますか?
一部だけです。組み込みの閲覧機能だけでは、アシスタントは取得できるページを読んで一般的な助言をするにとどまり、DNSの照会、TLS証明書の検査、レスポンスヘッダーの確実な読み取り、フィールドのパフォーマンスデータやSearch Consoleデータの参照はできません。ターミナルを持つコーディングエージェントならcurlやdigのような単発のコマンドは実行できますが、網羅範囲は固定されません。MCPで監査ツールに接続すれば、仮定ではなく収集された根拠に基づいて動けます。
AIでWebサイトを監査する手順を教えてください。
MCPでAIクライアントに監査サービスを接続し、所有している、またはテストが許可されているサイトを決め、監査を実行し、各指摘の根拠を読み、重大度と露出度で優先順位を付け、制約と受け入れ基準を付けた修正プロンプトをコーディングエージェントに渡し、変更をレビューを経て出荷し、その後に再監査して監視を設定します。
所有していないWebサイトを監査してもよいですか?
訪問者と同じように公開ページを読むのは通常のことですが、機密パスへのプローブやポートスキャンといったアクティブなセキュリティチェックは、自分が所有するか、書面でテストを許可されたサイトにのみ行うべきです。他者のサイトで問題に気付いた場合は、/.well-known/security.txtファイルに記載された連絡先から報告してください。
AIによるWebサイト監査は、セキュリティとアクセシビリティの完全なレビューになりますか?
いいえ。既知で観測可能な問題を、素早く繰り返し確認できるものです。ペネトレーションテストではないため、アプリケーションのロジック、サインイン、権限の欠陥は別途レビューが必要です。自動のアクセシビリティチェックでは、キーボード操作、フォーカス、コントラスト、スクリーンリーダーでの動作は判断できません。監査は、より深いレビューの合間と、変更のたびに活用してください。
AIエージェントにパスワードやAPIキーを共有する必要はありますか?
いいえ。アカウントが必要なリモートMCP接続は通常OAuthを使います。ブラウザ画面でサービスにサインインしてアクセスを承認すると、クライアントはそのサーバー専用のトークンを受け取ります。パスワード、APIキー、.envファイルをチャットに貼り付けないでください。
Webサイトはどのくらいの頻度で再監査すべきですか?
修正のたびに、稼働中のサイトで効果を確認するために行い、あわせて定期的にも実行します。小規模サイトの多くには週次、頻繁にデプロイするサイトには日次が適しています。テンプレート、プラグイン、タグ、DNSを変更した後に追加で実行すれば、問題の再発を早く見つけられます。
出典・参考資料
- OWASP Gen AI Security Project:LLM09:2025 誤情報genai.owasp.org
- OWASP Gen AI Security Project:LLM01:2025 プロンプトインジェクションgenai.owasp.org
- OWASP Gen AI Security Project:LLM06:2025 過剰なエージェンシーgenai.owasp.org
- MCP仕様:ツールmodelcontextprotocol.io
- MCP仕様:認可modelcontextprotocol.io
- Google検索セントラル:JavaScript SEOの基本を理解するdevelopers.google.com
- Google検索セントラル:AI機能とWebサイトdevelopers.google.com
- W3C WAI:Webアクセシビリティ評価ツールの選び方www.w3.org
- W3C:Web Content Accessibility Guidelines(WCAG)2.2www.w3.org
- web.dev:ウェブバイタルweb.dev
- Google for Developers:PageSpeed Insightsについてdevelopers.google.com
- アナリティクスヘルプ:個人を特定できる情報を送信しないためのベストプラクティスsupport.google.com
- RFC 9116:セキュリティ脆弱性の開示を支援するファイル形式(security.txt)www.rfc-editor.org
- Google検索セントラル:Googleの一般的なクローラーdevelopers.google.com
Sitelemetry編集チームが作成しています。詳しく学ぶには、掲載した参考資料をご覧ください。



