landing-page-auditor について
landing-page-auditor は、ランディングページやサービスページを監査するスキルです。10 カテゴリーの 48 項目を採点し、単独で表示できる HTML レポートを作成します。
主な機能
- 0110 カテゴリー、48 項目の監査
- 02ページと技術情報の並列取得
- 03カテゴリー別・総合スコアの算出
- 04単独表示可能な HTML レポート生成
活用シーン
- 01ランディングページの内容と構成の評価
- 02技術情報やインデックス関連シグナルの確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ infrasity-labs/ dev-gtm-claude-skills --skill landing-page-auditorインストール後、Claude Code で/landing-page-auditorを入力して読み込まれたか確認します。
同梱ファイルreferences/html-template.md
詳細
ランディングページ GEO・LLM 監査
ランディングページまたはサービスページを、10 カテゴリの 48 項目にわたって監査します。URL を指定すると、必要なデータをすべて取得し、各項目を評価して、カテゴリ別および総合スコアを算出したうえで、単体で使える HTML レポートを生成します。
ステップ 0 — URL を解析して確認する
呼び出し引数に URL が指定されている場合は、その URL をそのまま使用します。指定されていない場合は、次のように尋ねます。
「監査するページの URL を指定してください。」
正規化ルール:
- URL が
https://で始まるようにします - 末尾のスラッシュを削除します
- 完全なパスを保持します(例:
infrasity.comだけでなく、https://infrasity.com/claude-skills) - ファイル名にはドメイン部分のみを抽出します(例:
infrasity.com) - 補助ファイル用にドメインルートを抽出します(サブドメインが異なる場合のみ削除し、両方を確認します)
処理を続ける前に、解決した URL を表示します。
「
{URL}を監査します。データを取得しています……」
ステップ 1 — 必要なデータをすべて並行して取得する
以下のすべてのデータ取得を同時に実行します。1 つの処理が完了するまで、次の処理の開始を待たないでください。
1a — ページコンテンツの概要(WebFetch パス 1)
次のプロンプトを使って {URL} を取得します。
「ページのテキストコンテンツをすべて返してください。次の内容を含めてください:見出し(H1、H2、H3、H4)のレベルとテキスト、すべての段落テキスト、リスト項目、本文の冒頭の文と最初の 150 語(ナビゲーションを除く)、FAQ セクションの内容、推薦文またはソーシャルプルーフのテキスト、価格情報、統計値と数値、対象ユーザーに関する表現、「X とは異なり」や「X の代わりに」といった比較表現、「X 向けではない」といった対象範囲の除外、削減率などの測定可能な成果の主張、href とアンカーテキストを含むすべての内部リンクと外部リンク、表示されている日付または「最終更新日」のテキスト、パンくずナビゲーション、比較表。」
1b — ページのスキーマと技術情報(WebFetch パス 2)
次のプロンプトを使って {URL} を取得します。
「次の内容を返してください:1)
@typeの値を含む、すべての JSON-LD スキーマブロック(原文のまま)、2)正確なsrc属性とalt属性を含むすべての画像タグ(画像を漏れなく列挙)、3)meta title タグの内容、4)meta description の内容、5)canonical link タグの canonical URL、6)robots meta タグの内容、7)BreadcrumbList スキーマの有無、8)Service、ProfessionalService、SoftwareApplication、Product のいずれかのスキーマの有無、9)FAQPage スキーマの有無、10)JavaScript を実行せずに raw HTML でページコンテンツを表示できるかどうか。」
1c — robots.txt(WebFetch)
次のプロンプトを使って {ROOT_DOMAIN}/robots.txt を取得します。
「robots.txt の内容をすべて返してください。すべての User-agent エントリーと、それぞれの Allow/Disallow ルールを列挙してください。特に、GPTBot、ClaudeBot、PerplexityBot、OAI-SearchBot、およびワイルドカードの User-agent に対するルールを明記してください。存在する場合は、Sitemap ディレクティブの URL も記載してください。」
1d — sitemap.xml(WebFetch)
次のプロンプトを使って {ROOT_DOMAIN}/sitemap.xml を取得します。
「このサイトマップに
{FULL_URL}またはそのバリエーションが含まれているか確認してください。一致した URL、そのlastmod日付、changefreq、priorityを正確に返してください。また、サイトマップ内の URL の総数も返してください。」
最初に取得したサイトマップがサブサイトマップを参照するインデックスファイルの場合は、最も関連性の高いサブサイトマップを取得して、確認を繰り返します。
1e — llms.txt(WebFetch)
次のプロンプトを使って {ROOT_DOMAIN}/llms.txt を取得します。
「この llms.txt ファイルの内容をすべて返してください。記載されている URL またはパスをすべて列挙してください。特に、対象 URL のパス部分である「
{PAGE_PATH}」または完全な URL「{FULL_URL}」がファイル内のどこかに含まれているか確認してください。」
1f — サーバー応答時間(Bash / curl)
RESPONSE_MS=$(curl -o /dev/null -s -w "%{time_starttransfer}" --max-time 15 "{URL}" | awk '{printf "%.0f", $1 * 1000}')
echo "TTFB: ${RESPONSE_MS}ms"
curl を使用できない場合は、チェック 10.3 を ⚠ Warning とし、注記に「応答時間を測定できませんでした。」と記載します。
ステップ 2 — 48 項目すべてを評価する
取得したデータを使って、以下の各項目を評価します。次の 4 種類の判定のいずれかを割り当ててください。
| 判定 | 記号 | スコアの重み | 使用する条件 |
|---|---|---|---|
| 合格 | ✓ | 1.0 | 明確に記載されており、基準を満たしている |
| 警告 | ⚠ | 0.5 | 一部記載されている、改善の余地がある、または曖昧である |
| 不合格 | ✗ | 0.0 | 欠落している、機能していない、または明らかに記載がない |
| 手動 | ○ | 対象外 | 正確に確認するには人によるレビューが必要 |
各項目について、短い根拠メモも記載してください(最大 1 文)。見つかった内容、または見つからなかった内容を記します。
カテゴリ 1 — コンテンツの明瞭さと簡潔さ(5 項目)
1.1 — サービスを説明する明確な冒頭文
本文の最初の文を確認します(ナビゲーション、ヒーローボタン、GitHub バッジは除外)。
- 合格: 最初の文で、製品やサービスの内容、またはその機能が明確に説明されている
- 警告: 冒頭文はあるものの、その前に複数の文以外の要素(ボタン、バッジ、CTA)があり、スクロールせずに見える範囲より下に押しやられている
- 不合格: 明確な冒頭文がなく、ページがキャッチコピー、画像、または宣伝文句だけで始まっている
1.2 — 最初の 100 語以内にサービスの定義がある(「X は、…する[種類]です」)
本文の最初の 100 語を数えます(ナビゲーションリンク、CTA ボタンのテキスト、アイコンのラベルは除外)。
- 合格: 最初の 100 語以内に明示的な定義文(「X は、…する[種類]です」や「X は、…することで[目的]を実現します」など)がある
- 警告: 定義はあるものの 100 語を過ぎている、または明示されず暗示されている
- 不合格: 最初の 100 語以内に定義文がない
1.3 — 説明のない専門用語や頭字語がない
頭字語(2~5 文字のすべて大文字の文字列)や、定義されていないまま使われている専門用語を確認します。
- 合格: すべての頭字語が初出時に定義されている(例:「GEO(Generative Engine Optimization)」)、または頭字語がない
- 警告: 説明のない頭字語や用語が 1~2 個あるものの、製品の主要な概念は明確である
- 不合格: 初出時に説明されていない頭字語や重要な用語が 3 個以上ある
1.4 — 用途の説明がある(「X 向けに設計」「Y チームに最適」)
対象ユーザーを明示する表現を確認します。
- 合格: 「~向けに設計」「~向けに構築」「~に最適」「~に最も適している」、または特定の顧客層(企業、職種、業界)が示されている
- 警告: 内容から対象ユーザーを推測できるものの、明示されていない
- 不合格: ページのどこにも用途や対象ユーザーに関する表現がない
1.5 — 対象外の範囲が明示されている(「X 向けではない」「Z は行わない」)
明示的な除外事項を確認します。
- 合格: 「~向けではない」「~は行わない」「~向けには設計されていない」「~を除外する」、または「~には推奨しない」という明確な一覧がある
- 警告: 範囲が暗黙的に絞られている(例:技術的な用途だけを列挙)が、否定形では明示されていない
- 不合格: 対象外の範囲が一切示されていない
カテゴリー 2 — 構造と一覧性(5 項目)
2.1 — H1 → H2 → H3 の適切な見出し階層
fetch 1a で返された見出し一覧から、見出しの順序を確認します。
- 合格: 明確な階層になっている — H1 は先頭に 1 回だけ登場し、その後に H2 が続く。H3 は H2 の下にのみ登場し、レベルが飛ばされていない
- 警告: 軽微な違反 — H3 が期待される箇所で H4 が 1~2 回使われている、または 1 つのセクションで H1 の直後に H3 が登場している
- 不合格: 重大な違反 — 複数のセクションで H3 より先に H4 が登場する、または明確な階層がない
2.2 — 疑問文形式の見出しが 1 つ以上ある
すべての見出しを確認し、テキストが ? で終わっているかを調べます。
- 合格: メインコンテンツ内の H2 または H3 に、疑問文形式の見出しが少なくとも 1 つある
- 警告: 疑問文形式の見出しはあるものの、FAQ セクションにしかなく、メインコンテンツにはない
- 不合格: 疑問文形式の見出しがまったくない
2.3 — 短い段落(平均 15 語以下で、長文の壁がない)
返された本文テキストから、段落の平均的な長さを推定します。
- 合格: 段落が短く、150 語を超える途切れのない長文がない
- 警告: 150 語を超える長文が 1 段落ある、または段落が明らかに長めである
- 不合格: 150 語を超える長文が 2 段落以上ある、または本文の大半が密度の高い段落で構成されている
2.4 — 特徴や利点に箇条書きを使用している
fetch 1a からリスト項目を数えます。
- 合格: 特徴、利点、手順、サービス項目にリストや箇条書きを使用している(ページ全体で 10 項目以上)
- 警告: リストは一部にあるが、主な利点や特徴が段落だけで説明されている
- 不合格: ページ内にリスト項目がない
2.5 — ありきたりな埋め草の導入段落がない
冒頭のセクションが具体的で、価値のある情報を含んでいるかを確認します。
- 合格: 冒頭の段落が具体的で有益であり、製品にすぐ関連している
- 警告: 冒頭は問題ないが、ページ内の別の段落に明らかにありきたりな埋め草がある
- 不合格: 冒頭の段落が曖昧でありきたり(「ウェブサイトへようこそ」など)、またはマーケティングの決まり文句ばかりである
カテゴリー 3 — エンティティと事実のシグナル(5 項目)
3.1 — ブランド名が 5 回以上登場する
本文中のブランド名の登場回数を数えます。
- 合格: 本文コンテンツ内でブランド名が 5 回以上登場する(ナビゲーションやフッターのみの登場は除く)
- 警告: 3~4 回登場する
- 不合格: 3 回未満
3.2 — 具体的な数値や統計が 3 つ以上ある(年号のみは除く)
割合、件数、金額、所要時間など、具体的な数値を確認します(「2026」や「v3」は除く)。
- 合格: 本文コンテンツ内に具体的な数値やデータが 3 つ以上ある
- 警告: 具体的な数値が 1~2 個ある
- 不合格: 具体的な数値や統計が見当たらない
3.3 — 比較表現がある(「X とは異なり」「~の代わりに」「~の代替」など)
- 合格: 明示的な比較表現がある:「unlike X」「instead of」「alternative to」「compared to」「vs」「rather than」
- 警告: 差別化要素の列挙から比較が示唆されるが、明示的な比較表現はない
- 不合格: 比較表現がまったくない
3.4 — 名称付きサービスを一貫した形式で表記している(太字または大文字)
製品名やサービス名が一貫した形式で書式設定されているかを確認します。
- 合格: サービス名が太字、大文字、またはページ全体で一貫した形式になっている
- 警告: サービス名の書式が一貫していない(太字の場合と通常のテキストの場合がある)
- 不合格: 名称付きサービスに一貫した書式が適用されていない
3.5 — ページ上に価格が表示されている、または /pricing ページへのリンクがある
- 合格: 価格、価格帯、開始価格がページ上に表示されている、または /pricing ページへの明確なリンクがある
- 警告: 数値や料金ページへのリンクがないまま、「価格はお問い合わせください」「個別見積もり」「通話を予約」などと記載されている
- 不合格: ページ内のどこにも価格情報や料金ページへのリンクがない
カテゴリー 4 — 信頼性と権威性を示すシグナル(4 項目)
4.1 — クライアントの推薦文または顧客の声
- 合格: 顧客名が明記されたコメント、企業名が記載された推薦文、または出典が明記された事例紹介の抜粋がある
- 警告: 一般的な社会的証明の表現(「500 以上のチームに信頼されています」など)はあるが、直接のコメントはない
- 不合格: 推薦文、コメント、社会的証明が一切ない
4.2 — クライアントのロゴまたはパートナーバッジ
- 合格: 企業ロゴ、「メディア掲載」バッジ、パートナーロゴ、または受賞バッジが視覚的に表示されている
- 警告: クライアント企業名はテキストで記載されているが、ロゴはない
- 不合格: 視覚的な信頼性を示す要素(ロゴ、バッジ、認証)がない
4.3 — 具体的かつ測定可能な成果(「N 週間で X を Y% 削減」など)
ここでいう成果とは、クライアントの業界に関する統計ではなく、サービスを通じてクライアントに提供した成果である必要があります。
- 合格: 数値で示されたクライアントの成果が 1 件以上ある。「X を Y% 削減」「X を A から B に成長」「N 週間で X を達成」など
- 警告: 定性的な成果(「パフォーマンスが向上」「市場投入が迅速化」など)は説明されているが、数値はない
- 不合格: 成果に関する主張はなく、機能の説明のみ
4.4 — 信頼できる情報源への外部リンクが 3 件以上
信頼性の高いドメイン(GitHub、研究論文、政府機関のサイト、定評ある業界出版物、Wikipedia)への発リンクを数えます。
- 合格: 本文に信頼できる外部リンクが 3 件以上ある
- 警告: 信頼できる外部リンクが 1~2 件ある
- 不合格: 信頼できる外部リンクがない(ソーシャルプロフィールまたはリンク集サイトのみ)
カテゴリー 5 — FAQ とスキーマのシグナル(5 項目)
5.1 — 疑問文形式の H2/H3 見出しを含む FAQ セクション
- 合格: H2 または H3 の見出しが実際の質問形式になっている、専用の FAQ セクションがある
- 警告: FAQ の内容はあるが、見出しが疑問文形式ではない(「FAQ」「よくある質問」などは該当しない)
- 不合格: FAQ セクションがない
5.2 — JSON-LD の Service または ProfessionalService スキーマ
fetch 1b のスキーマを確認します。
- 合格: JSON-LD に
Service、ProfessionalService、SoftwareApplication、またはProductの @type がある - 警告:
OrganizationまたはWebPageスキーマはあるが、Service タイプのエンティティはない - 不合格: JSON-LD スキーマがない、または Service/Product タイプのスキーマがない
5.3 — JSON-LD の FAQPage スキーマ
- 合格: JSON-LD に
QuestionとacceptedAnswerのペアを含むFAQPageの @type がある - 警告: ページ上に FAQ の内容は表示されているが、FAQPage のスキーママークアップがない
- 不合格: FAQ スキーマも FAQ の内容もない
5.4 — サービスを正確に説明するメタタイトル
fetch 1b の <title> タグを確認します。
- 合格: タイトルが 30~60 文字で、製品またはサービス名と主な価値提案を明確に示している
- 警告: タイトルはあるが、一般的な内容、途中で切れている(70 文字超)、またはドメイン名のみと一致している
- 不合格: メタタイトルがない、またはタイトルが空欄/プレースホルダーである
5.5 — Canonical URL が正しく設定されている
fetch 1b の <link rel="canonical"> タグを確認します。
- 合格: Canonical タグがあり、このページの正確な URL(または www/非 www の正しいバリアント)を指している
- 警告: Canonical タグはあるが、ドメインのバリアントが間違っている(例:ページが非 www なのに www を指している)
- 不合格: Canonical タグがない、またはトップページや別のページを指している
カテゴリ 6 — 意味的な回答範囲(5 項目)
6.1 — 内容 — サービスが明確に説明されている
- 合格:「X は…です」「X によって…できます」「X は…します」のような定義文がある
- **注意:**機能の一覧からサービス内容を推測できるものの、直接的な説明がない
- **不合格:**サービスがどのようなものか説明されていない
6.2 — 対象 — 理想的な顧客が特定されている
- **合格:**対象となる企業の種類、役職、チーム、または業界が明示されている(「企業」や「チーム」だけでは不十分)
- **注意:**具体的な対象を示さず、一般的な対象者(「開発者向け」「マーケター向け」など)を想定している
- **不合格:**対象となる顧客が特定されていない
6.3 — 方法 — 提供プロセスまたはワークフローが説明されている
- **合格:**サービスの仕組みを説明する段階的なプロセス、番号付きのワークフロー、または明確な方法がある
- **注意:**プロセスには触れているものの、詳細がない
- **不合格:**仕組みやプロセスに関する内容がない
6.4 — 理由 — 代替手段との違いが示されている
- 合格:「当社を選ぶ理由」「X とは異なり」、独自の仕組み、または明確な優位性など、明示的な差別化要素がある
- **注意:**メリットは挙げられているものの、代替手段との比較や、この方法が優れている理由が示されていない
- **不合格:**差別化要素や、選ぶ理由に関する内容がない
6.5 — 費用 — 料金または予算の範囲が示されている
- **合格:**価格、価格帯、料金が記載されたプラン名、または
/pricingリンクが表示された明確な「料金を見る」CTA がある - **注意:**価格帯や最低料金の目安がなく、「料金についてはお問い合わせください」または「カスタム料金」とだけ記載されている
- **不合格:**費用に関する記載がなく、料金情報への導線もない
カテゴリ 7 — 内部リンクとコンテキストグラフ(5 項目)
7.1 — 文脈に沿った内部リンクが 10 件以上ある
fetch 1a の本文コンテンツ内の内部リンクを数えます(ナビゲーションメニューとフッターは除外)。
- **合格:**本文コンテンツ内に内部リンクが 10 件以上ある
- **注意:**本文コンテンツ内に内部リンクが 5〜9 件ある
- **不合格:**本文コンテンツ内の内部リンクが 5 件未満
7.2 — 関連するサービスやブログ/リソースコンテンツへのリンクがある
- **合格:**関連するブログ記事、ガイド、リソース、またはその他のサービスページへのリンクが本文コンテンツ内にある
- **注意:**関連コンテンツへのリンクがサイドバーまたはフッターにのみあり、本文にはない
- **不合格:**関連コンテンツへのリンクがどこにもない
7.3 — パンくずリストナビゲーション(BreadcrumbList スキーマ付き)
- **合格:**表示されるパンくずリストナビゲーションと
BreadcrumbListJSON-LD スキーマの両方がある - **注意:**パンくずリストナビゲーションは表示されるがスキーマがない、または
BreadcrumbListスキーマはあるが表示されるナビゲーションがない - **不合格:**パンくずリストナビゲーションも
BreadcrumbListスキーマもない
7.4 — 主要なサービス用語が、それぞれ専用ページにリンクされている
本文に記載された主なサービス/機能がハイパーリンクされているか確認します。
- **合格:**本文中の主要なサービス/機能名が、それぞれ専用ページにリンクされている
- **注意:**サービス用語の一部はリンクされているが、その他はプレーンテキストで記載されている
- **不合格:**本文中のサービス用語に、文脈に沿ったリンクがない
7.5 — 比較表がある(プラン、パッケージ、または代替手段との比較)
- **合格:**料金プランの表、機能比較表、または代替手段との比較表がページにある
- **注意:**比較情報が表ではなく、文章や箇条書きで示されている
- **不合格:**いかなる種類の比較表もない
カテゴリ 8 — コンテンツの充実度とマルチモーダル対応(3 項目)
8.1 — プロセスまたはワークフローの手順が定義されている(番号付きまたはフェーズ別)
- 合格: 番号付きの手順(1、2、3)または名前付きのフェーズ(フェーズ 1、ステップ 1)で、プロセスの仕組みが定義されています
- 要確認: プロセスが文章で説明されていますが、番号付きの手順として構成されていません
- 不合格: プロセスの手順やワークフローの定義がありません
8.2 — 説明的な代替テキスト付きの画像
fetch 1b を参照し、各画像の alt 属性を確認します。
- 合格: 画像の 90%以上に意味のある代替テキストが付いています(空欄、「image.png」などのファイル名、一般的な文言ではありません)
- 要確認: 説明的な代替テキストが付いている画像は 50〜89%です。または、重要な画像に代替テキストがありません
- 不合格: 代替テキストが付いている画像が 50%未満です。または、製品や機能に関する画像のすべてに代替テキストがありません
8.3 — ページが llms.txt に記載されている
fetch 1e を参照し、llms.txt の内容を確認します。
- 合格: 正確なページパス(例:
/claude-skills)または完全な URL が llms.txt に記載されています - 要確認: ルートドメインは llms.txt に記載されていますが、この特定のページパスは記載されていません
- 不合格: llms.txt が存在しません(404)。または、このページの URL/パスが記載されていません
カテゴリ 9 — 新しさとメンテナンス状況のシグナル(4 項目)
9.1 — 過去 6 か月以内に内容がレビューまたは更新されている
日付に関する情報(ページ上で見える日付、サイトマップの lastmod、コンテンツのタイムスタンプ)がないか確認します。
- 合格: 今日から過去 6 か月以内の日付情報(表示されている日付、サイトマップの lastmod、公開日/更新日など)が確認できます
- 要確認: 日付はありますが、6 か月より前のものです
- 不合格: 表示されている日付、サイトマップの lastmod、タイムスタンプなど、日付情報がどこにもありません
9.2 — 「最終更新日」がページ上に表示されている
fetch 1a を参照し、「最終更新日」、「更新日:」、「公開日:」、またはページの内容に表示されている日付を探します。
- 合格: ページ本文に「最終更新日」または公開日が表示されています
- 要確認: 日付はメタデータ(サイトマップ、メタタグ)にありますが、ページ上で読者が確認できる形では表示されていません
- 不合格: ページ上に日付を示す情報がまったくありません
9.3 — 古くなった統計、価格、主張が削除されている
- 手動: 人による確認が必要です。統計、価格、具体例が現行の日付を参照し、正確であるかを確認します。プログラムでは検証できません。
9.4 — 変更履歴またはバージョン履歴がある
- 合格: 変更履歴のセクション、リリースノートへのリンク、またはバージョン履歴がページ上で確認できます
- 要確認: テキスト内でバージョンについて触れていますが、専用の変更履歴や履歴はありません
- 不合格: 変更履歴、リリースノート、バージョン履歴が一切ありません
カテゴリ 10 — クロール可能性と技術面(7 項目)
10.1 — XML サイトマップでページが見つかる
fetch 1d の結果を使用します。
- Pass: 正確なページ URL(または www の有無を除いたバリエーション)が sitemap.xml に見つかる
- Warn: サイトマップは存在し、URL も含まれているが、この特定のページは見つからない
- Fail: sitemap.xml が 404 を返す、または存在しない
10.2 — サイトマップの lastmod が過去 6 か月以内
fetch 1d の結果から、このページの項目にある <lastmod> の値を確認します。
- Pass: lastmod の日付が今日から過去 6 か月以内
- Warn: lastmod はあるが、6 か月より前の日付
- Fail: サイトマップでこのページの lastmod が見つからない
10.3 — サーバーの応答が 500ms 未満
Step 1f の curl 結果を使用します。
- Pass: TTFB が 500ms 未満
- Warn: TTFB が 500ms〜1000ms
- Fail: TTFB が 1000ms 超、または測定に失敗
10.4 — robots.txt で AI クローラーを許可
fetch 1c の結果を使用します。
- Pass: GPTBot、ClaudeBot、PerplexityBot のすべてが明示的に許可されている(
Allow: /)、またはいずれの Disallow ルールにも記載されていない(デフォルトでは許可) - Warn: 一部の AI ボットは許可されているが、ほかのボットは記載がない、またはステータスが不明確
- Fail: GPTBot、ClaudeBot、PerplexityBot のいずれかが明示的に
Disallowされている
10.5 — ページがインデックス可能(noindex がない)
fetch 1b の結果から、robots メタタグを確認します。
- Pass:
<meta name="robots" content="index, follow">がある、または制限する robots メタタグがない - Warn: Robots メタタグがない(サーバーによって index または noindex のどちらがデフォルトか異なる可能性があるため、不明確)
- Fail: robots メタタグまたは X-Robots-Tag ヘッダーに
noindexディレクティブがある
10.6 — この URL への AI クローラーのアクセスが制限されていない
fetch 1c の結果から、このページの特定のパスが AI クローラーに対してブロックされているかを確認します。
- Pass: どの AI クローラーのユーザーエージェントに対しても、ページのパスに適用される
Disallowルールがない - Warn: このパスに影響する可能性のあるワイルドカードの Disallow ルールがあるが、AI ボットは指定されていない
- Fail: GPTBot、ClaudeBot、PerplexityBot に適用される、ページのパスに対する特定の
Disallowルールがある
10.7 — JavaScript なしでページコンテンツを読める
fetch 1b の結果から、サーバーでレンダリングされた生の HTML に実質的なコンテンツが含まれているかを確認します。
- Pass: JavaScript を実行しなくても、生の HTML に意味のあるコンテンツが 500 語以上表示される
- Warn: 生の HTML に 100〜499 語が含まれる(SSR が部分的で、一部のコンテンツが JavaScript のみで表示される可能性がある)
- Fail: 生の HTML が 100 語未満で、ページがクライアントサイドレンダリングされており、AI クローラーからほとんど見えない
Step 3 — スコアを計算する
カテゴリ別スコア(100 点満点)
Category Score = (Σ check_scores) / (total_scoreable_checks_in_category) × 100
Where:
check_score = 1.0 for Pass
check_score = 0.5 for Warning
check_score = 0.0 for Fail
Manual checks are excluded from both numerator and denominator
最も近い整数に丸めます。
総合スコア(100 点満点)
Overall Score = (Σ all_check_scores across all categories) / (total_scoreable_checks) × 100
チェック項目の合計:48。手動チェックは分母から除外します。
スコアの色のしきい値
| スコア | 色ラベル | Hex |
|---|---|---|
| 80–100 | 緑 | #22C55E |
| 60–79 | 黄 | #F59E0B |
| 0–59 | 赤 | #EF4444 |
Step 4 — 優先修正項目を決定する
採点後、すべての Fail と Warning のチェック項目を影響度順に並べたリストを作成します。次の優先順位の枠組みを使用してください。
影響度の割り当て:
| 影響度 | 基準 |
|---|---|
| High | LLM による引用に影響することが知られているチェック(llms.txt への掲載、Service スキーマ、FAQPage スキーマ、見出しの階層、段落の長さ、canonical URL、AI クローラーのアクセス、JavaScript なしでの可読性) |
| Medium | 人間と LLM の両方に見えるコンテンツの品質や信頼性のシグナルに影響するチェック(測定可能な成果、比較表、ユースケースの表現、パンくずリスト、代替テキスト) |
| Low | 仕上がりや鮮度のシグナルに影響するチェック(変更履歴、最終更新日、サーバー速度、対象外の明示) |
優先順位の高い修正項目を上位 10 件まで列挙してください。各修正項目には、次を含めます。
- 優先度番号(P1–P10)
- 影響度(High / Medium / Low)
- カテゴリ名
- 修正タイトル(追加または変更する内容)
- 詳細メモ(重要な理由、または実施内容を説明する 1 文)
ステップ 5 — HTML レポートを生成する
HTML の構造全体については、references/html-template.md を確認してください。
テンプレート内の AUDIT_DATA JavaScript オブジェクトに、この監査の実データをすべて入力します。
const AUDIT_DATA = {
url: "{FULL_URL}",
domain: "{BARE_DOMAIN}",
date: "{AUDIT_DATE}", // e.g. "June 16, 2026"
overallScore: {OVERALL_SCORE},
totalChecks: 48,
scoreable: {SCOREABLE_COUNT}, // 48 minus manual count
pass: {PASS_COUNT},
warn: {WARN_COUNT},
fail: {FAIL_COUNT},
manual: {MANUAL_COUNT},
categories: [
{
name: "Content Clarity & Directness",
score: {CAT1_SCORE},
pass: {CAT1_PASS},
warn: {CAT1_WARN},
fail: {CAT1_FAIL},
manual: 0,
checks: [
{ status: "pass|warn|fail|manual", label: "Clear opening sentence", note: "Evidence note — one sentence" },
// ... all 5 checks
]
},
// ... all 10 categories in order
],
topFixes: [
{ priority: 1, impact: "High", category: "Category Name", fix: "Fix title", detail: "One sentence detail" },
// ... up to 10 fixes
]
};
プレースホルダーの値を未入力のまま残さないでください。 すべての数値に、この監査の実際の値を入力してください。
ステップ 6 — 作成して提示する
完成した HTML レポートを、現在の作業ディレクトリ内のファイルに書き込みます。
{domain}-landing-page-audit.html
例:infrasity-com-landing-page-audit.html
書き込み後、ユーザーに次のように伝えます。
「監査が完了しました。レポートは
{filename}.htmlに保存されています。任意のブラウザーで開いてください。 総合スコア:{SCORE}/100(合格 {PASS} 件・警告 {WARN} 件・不合格 {FAIL} 件・要手動確認 {MANUAL} 件) 最優先の修正項目:{P1_FIX}」
その後、各カテゴリの詳細を説明したり、優先順位付きのアクションプランを作成したりできることを提案します。
エラー処理
| 状況 | 対応 |
|---|---|
| URL が 404 を返す、または接続が拒否される | エラーを明確に報告します。ユーザーに URL を確認して再試行するよう提案します。処理を続行しないでください。 |
| ページが完全に JS でレンダリングされる(生の HTML が 100 語未満) | AI クローラーからページが見えない可能性があることを伝えます。チェック 10.7 を不合格とし、メタデータから評価できる範囲を監査して、評価範囲が限られていることを記載します。 |
| robots.txt が 404 を返す | チェック 10.4 と 10.6 を警告とし、「robots.txt が見つからないため、AI クローラーのアクセス状況は不明です。」という注記を付けます。 |
| sitemap.xml が 404 を返す | チェック 10.1 と 10.2 を不合格とし、「sitemap.xml が見つかりません。」という注記を付けます。 |
| llms.txt が 404 を返す | チェック 8.3 を不合格とし、「ルートドメインに llms.txt が見つかりません。」という注記を付けます。 |
| WebFetch で JSON-LD を抽出できない | この制約を記載し、スキーマが存在しないと確信できる場合を除き、スキーマチェックを不合格ではなく警告とします。 |
| タイミング測定に curl を利用できない | チェック 10.3 を警告とし、「サーバー応答時間を測定できませんでした — curl を利用できません。」という注記を付けます。 |