Rudra Analyzer

評価方法

ウェブサイトのテストとスコアの算出方法

このページでは、チェックで何を確認しているか、その根拠がどこから得られるか、各スコアをどのように算出しているか、テストの安全性をどう保っているか、そしてどこに限界があるかを詳しく説明します。無料ツールとウェブサイト監査の背後にある 1 ページ単位のチェックに加え、サイトスキャンで追加されるチェックについても説明します。

各チェックの確認内容

監査全体では 7 つのチェックを実行します。それぞれに、レポート全体で使うわかりやすい名前と、実際にテストする内容を表す技術名があります。

SEO

技術名
ページ内 SEO とテクニカル SEO
チェック内容
タイトルとメタディスクリプション(長さ、ありきたりな表現、繰り返される語)、H1 と見出しの順序、canonical URL とそのリンク先のステータス、robots メタタグと X-Robots-Tag のルール、meta refresh、Open Graph と Twitter カードのタグ(og:image が読み込めるかを含む)、html lang、viewport、画像の alt テキスト、JSON-LD 構造化データ(解析エラー、重複した型、無効な URL、一般的な型で欠けている主要プロパティ)、hreflang、ファビコン、文字数、リンクテキストと URL の形式、さらに robots.txt、宣言されたサイトマップ最大 3 件、llms.txt、リダイレクトチェーン、HTTPS。
スコアの算出方法
100 点から開始します。タイトルなし −25、メタディスクリプションなし −15、H1 なし −15、noindex −30、その他は小さな減点(2〜15 点)です。新しく追加されたチェックによる減点は合計で最大 45 点で、新しい情報レベルの検出結果では減点されません。
使用ツール
Python の requests + BeautifulSoup(サーバーが送信する HTML を読み取ります。JavaScript は実行しません)、さらに異なる canonical のリンク先と og:image に対してそれぞれ HEAD リクエストを 1 回
SEO チェッカー を試す

速度

技術名
ページのパフォーマンス(Lighthouse)
チェック内容
Lighthouse のパフォーマンスカテゴリ:First Contentful Paint、Largest Contentful Paint、Total Blocking Time、Cumulative Layout Shift、Speed Index、Time to Interactive を、それぞれ公開されている基準値と比較します(例:LCP 2.5 秒 / 4 秒、CLS 0.1 / 0.25、TBT 200 / 600 ms)。さらに、不合格の監査項目を原因となるファイルとともに最大 15 件表示します。Lighthouse を実行できない場合は、簡易チェックでサーバーの応答、HTML のサイズ、圧縮、レンダリングをブロックするファイル、キャッシュヘッダー、画像のサイズと形式を報告します。
スコアの算出方法
Lighthouse 独自の 0〜100 のパフォーマンススコアをそのまま使います。0.5 未満の監査項目は重大、0.9 未満は警告として扱います。簡易チェックの場合は 100 点から開始して減点内容を表示します。簡易チェックであることを明記し、Lighthouse のスコアとして表示することはありません。
使用ツール
ヘッドレス Chrome 上の Google Lighthouse、既定(モバイル)設定、1 回の実行。代替手段:GET 1 回と最大 25 回の HEAD リクエスト
ウェブサイト速度チェッカー を試す

モバイルでの見え方

技術名
レスポンシブレイアウト
チェック内容
viewport メタタグ(存在するか、width=device-width か、拡大がブロックされていないか)と、スマートフォン(375×667)、タブレット(768×1024)、デスクトップ(1440×900)の各サイズでの横方向のはみ出し。はみ出している要素を特定し、スマートフォン表示と問題のあるサイズのスクリーンショットを添付します。
スコアの算出方法
100 点から開始します。viewport タグなし −20、width=device-width のない viewport −10、拡大をブロックする viewport −5、ページが画面より広いサイズごとに −15、いずれかのサイズで読み込みに問題があった場合 −10。
使用ツール
Playwright と Chromium
モバイルチェッカー を試す

アクセシビリティ

技術名
WCAG の自動テスト
チェック内容
axe-core の既定のルールセット(WCAG 2.x のレベル A・AA のルールとベストプラクティス)を、レンダリング後のページに対して実行します。違反の種類を最大 25 件、それぞれ影響を受ける要素の数と最大 5 件の例(セレクター、HTML スニペット、修正内容)とともに表示します。axe-core が判断できないルールは「手動での確認が必要」として表示し、合格したルールも表示します。
スコアの算出方法
100 点から開始し、不合格のルールごとに影響度に応じて減点します:重大 −15、深刻 −10、中程度 −5、軽微 −2。
使用ツール
Playwright 経由で Chromium に挿入した、同梱の axe-core
アクセシビリティチェッカー を試す

ウェブサイトのセキュリティ

技術名
通信のセキュリティ、ヘッダーの値、Cookie、露出
チェック内容
リダイレクト後の HTTPS と、http:// が HTTPS に恒久的にリダイレクトされるか。TLS 証明書(信頼性、ホスト名、プロトコルのバージョン、発行者、有効期限)。セキュリティヘッダーの値 — HSTS の max-age(180 日以上)と構文、'unsafe-inline'、'unsafe-eval'、広範なスクリプトソース、nonce とハッシュ、object-src、base-uri を含む CSP ディレクティブ、X-Frame-Options または CSP の frame-ancestors、X-Content-Type-Options、Referrer-Policy、Permissions-Policy。Cookie のフラグ(Secure、HttpOnly、SameSite、Domain)を名前のみで確認。無害なテスト用オリジン 1 つによる CORS。混在コンテンツ。security.txt。バージョンを明かすヘッダーと公開されたソースマップ。ログインフォームや API への参照などの技術と外部から見える領域。インラインのイベントハンドラーと Subresource Integrity のないスクリプトは、手動での確認用としてフラグを付けます。
スコアの算出方法
100 点から開始します。HTTPS でない −40、証明書が無効または期限切れ −40、TLS 接続の失敗 −30、認証情報付きで任意のオリジンを信頼する CORS −25、HSTS なし −15、CSP なし −12、http→https のリダイレクトなし −10、クリックジャッキング対策なし −8、アクティブな混在コンテンツ −8、Report-Only の CSP −8、X-Content-Type-Options なし −6、'unsafe-inline' のスクリプト −6、Secure のない Cookie −6、弱い HSTS −5、その他の弱い値には小さな減点。security.txt がないなど、多くの情報レベルの検出結果では減点されません。
使用ツール
Python の requests(GET と HEAD のみ)+ 標準ライブラリの ssl モジュール
ウェブサイトセキュリティチェッカー を試す

リンクとページエラー

技術名
機能のスモークテストとフォームの確認
チェック内容
ブラウザでページを読み込み、JavaScript のコンソールエラー、未処理の例外、読み込みに失敗した自サイトのスクリプト・スタイル・画像・フォントを記録します。同じサイトへの重複しないリンクを最大 12 件(ナビゲーションを優先)、他のサイトへのリンクを最大 5 件テストし、各フォームのマークアップを確認します:HTTPS、パスワードでの GET の使用、ラベル、入力タイプ、autocomplete、外部への action、目に見える CSRF 形式のトークン、送信ボタン。フォームの送信、クリック、フォーカス、入力は一切行いません。
スコアの算出方法
100 点から開始します。内部リンク切れ 1 件ごとに −10(最大 −40)、未処理の JavaScript エラー 1 件ごとに −10(最大 −30)、コンソールエラー 1 件ごとに −5(最大 −20)、読み込みに失敗した自サイトのファイル 1 件ごとに −4(最大 −20)、HTTP 上のパスワードフォーム、http:// への送信、GET の使用はそれぞれ −10、プレースホルダーのみがラベル代わりの場合 −3。外部リンクの切れやその他のフォームに関する注意点は情報レベルです。
使用ツール
Playwright と Chromium。リンクのチェックは HEAD で行い、失敗時は GET で再試行
リンク切れチェッカー を試す

サーバーと稼働状況

技術名
稼働状況と応答時間
チェック内容
ページ自体と、よく使われるパス(robots.txt、sitemap.xml、/health、/healthz、/api、/api/health、openapi.json、swagger.json、manifest.json、security.txt)について、サーバーエラーと平均応答時間を確認します。これらの任意のパスが 404 でも減点しません。
スコアの算出方法
100 点から開始します。ページに到達できない、または 5xx の場合 −50、ページが 4xx の場合 −20、その他のパスが 5xx を返すごとに −15(最大 −30)、平均応答時間が 800 ms 超で −8、1,500 ms 超で −15。
使用ツール
Python の requests
ウェブサイト監査 を試す

根拠の収集方法

検出結果は、チェックが説明どおりのもの — ヘッダーの値、要素、レスポンス — を実際に確認した場合にのみ表示されます。各検出結果には、根拠の取得元が記録されています:

HTTP レスポンス
ページへの通常のリクエストで得られたステータスコード、リダイレクト、レスポンスヘッダー。
HTML
JavaScript が実行される前に、サーバーが送信するページのソース。
レンダリング後のページとブラウザの実行環境
Chromium で読み込んだ後のページ:レンダリングされた要素、JavaScript のエラー、読み込みに失敗したファイル。
Lighthouse
1 回の Lighthouse の実行で得られたラボ指標と監査結果。
axe-core
レンダリング後のページに対するアクセシビリティルールの結果。
クロールデータ
サイトスキャンの場合:クロール中に保存したページ、リンク、タイトル、canonical — 追加のリクエストは行いません。
robots.txt とサイトマップ
robots.txt のルールと、XML サイトマップに記載されている URL。
TLS 接続
サーバーが提示する証明書とプロトコルのバージョン。

プライバシー:根拠には、Cookie の値、トークン、パスワード、Authorization ヘッダー、API キー、フォームに入力された内容は一切含まれません。Cookie は名前とフラグのみ、フォームの入力欄は名前とラベルのみを記録し、トークンと思われるクエリ文字列のパラメーターは URL から削除します。

確実性のレベル

各検出結果には確実性の度合いを示しているため、すぐに対応すべきものと、先に確認すべきものがわかります。

高

直接確認したもの:ヘッダーの値、ステータスコード、ルールに違反した要素など。ご自身ですぐに確認できます。

中

状況によって変わるものの、有力な兆候です — たとえば名前からセッション Cookie と思われる Cookie や、サイトマップに記載されているものの、クロールしたどのページからもリンクされていないページなどです。

低

人による確認が必要な推測に基づくもので、目に見える CSRF トークンのないフォームやインラインのイベントハンドラーなどです。これらは「可能性がある」または「手動での確認」と表記し、確認済みの脆弱性として示すことはありません。

実施したチェックと「未テスト」

レポートには、合格したものも含め、評価したすべてのルールを表示します。そのため、問題点だけでなく、どこまで確認したかもわかります。問題の一覧が短くても、40 件のチェックに合格した場合と、5 件しか実行できなかった場合とでは意味が異なります。

「未テスト」は、チェックが該当しなかったか、実行するのが安全でなかったことを意味します — たとえば HTTPS で配信されていないページでの Cookie の Secure チェックや、プライベートアドレスへのリンクなどです。「スキップ」は、通常はこちら側のリクエストが失敗またはタイムアウトしたために実行できなかったことを意味します。その場合、その分野は一部のみ完了として表示され、サマリーにどのチェックが欠けているかが示されます。こちら側でのタイムアウトや DNS エラーは「確認できませんでした」であり、サイトの不具合として扱うことはありません。

スキップしたチェックと未テストのチェックでは減点されません。分野全体を実行できなかった場合(ツールが利用できなかった、またはこちら側で失敗した場合)、その分野は 0 点として数えるのではなく、総合スコアから除外します。

安全性:セキュリティチェックを非破壊に保つ仕組み

すべてのチェックは受動的で、読み取り専用です。具体的には次のとおりです:

  • こちらから送るリクエストは GET または HEAD のみで、POST、PUT、PATCH、DELETE は使いません。ブラウザでページを開いた場合、そのページ自体のスクリプトは通常の訪問者の場合と同じように実行されます。
  • CORS のチェックは、存在し得ないドメイン(https://rudra-audit.invalid)の無害な Origin を 1 つ付けた GET を 1 回送るだけで、Cookie や認証情報は含みません。
  • リクエストするのは、よく知られたファイルの短い固定リストのみです — robots.txt、sitemap.xml、/.well-known/security.txt、llms.txt、humans.txt、ページがリンクしているマニフェスト、さらに上記のサーバーチェックに記載されているヘルスチェックと API 定義のパスなどです。その他のパスを推測したり列挙したりすることはなく、ソースマップはサイト自体のスクリプトがそれを参照している場合にのみ確認します。
  • フォームの送信、クリック、フォーカス、入力は一切行わず、攻撃用のペイロードも送信しません。
  • サインイン、認証情報の送信、パスワードの試行は一切行いません。
  • プライベートネットワークや内部ネットワークのアドレス(localhost、10.x、192.168.x、クラウドのメタデータサービスなど)へのリクエストは、送信前にブロックされます。これにはリダイレクト先や、Playwright によるブラウザチェックでページが読み込み中に送るすべてのリクエストも含まれます。

スコアの算出

各分野は 100 点から開始し、見つかった問題に応じて減点されます。速度は代わりに Lighthouse 独自のスコアを使用します。レポートには、原因となった検出結果の横にすべての減点を表示するため、どこで何点減ったのかが正確にわかります。

同じ問題で二重に減点することはありません:Secure のない Cookie が 3 つあっても、1 つの検出結果として 1 回だけ減点します。リンク切れや JavaScript のエラーなど、発生回数が重要な場合は、明示された上限まで件数に応じて減点が増えます。新しい情報レベルの検出結果では減点されませんが、以前からある優先度の低いいくつかのチェックでは、Referrer-Policy がない場合(−4)や軽微なアクセシビリティルール(−2)など、小さな減点が残っています。

サイトスキャンでは、1 ページ単位のチェックでは見つけられないページ横断の SEO チェックを追加します — 重複したタイトルとディスクリプション、canonical の問題、リダイレクトへのリンク、エラーを返すサイトマップの URL、欠けている hreflang の相互リンク、同一のコンテンツです。これらによる SEO スコアの減点は合計で最大 5 点で、各ページですでに評価された問題が再度数えられることはありません。

総合スコアの算出方法

総合スコアは、各カテゴリのスコアの平均を整数に丸めたものです。結果が得られたカテゴリだけを数えます。サーバー上でツールが利用できない場合や、こちら側でチェックが失敗した場合、そのカテゴリは 0 点として数えたり推測したりせず、平均から除外します。Lighthouse が利用できない場合は、速度は代わりに簡易チェックで確認します。

チェックは実行されたものの、ページが時間内に読み込まれないなどの理由で完了できなかった場合は、0 点として平均に含めます。訪問者も同じ問題に遭遇する、実際の問題だからです。

スコアにはわかりやすいステータスを添えています:90〜100 は「良好」、50〜89 は「要確認」、0〜49 は「不良」です。ステータスは必ず色の横に文字でも表示します。

使用しているツール

独自の測定方法を作るのではなく、実績のあるオープンなツールを土台にしています。

  • Google Lighthouse

    実際の Chrome ブラウザで読み込みパフォーマンスを測定します。パフォーマンススコアと監査結果はそのまま使用し、各指標は 1 回の実行によるラボ測定値であることを明記しています。

  • Playwright と Chromium

    モバイルレイアウト、リンク、フォームとエラー、アクセシビリティのチェックのために実際のブラウザエンジンでページを読み込み、スクリーンショットを撮影します。プライベートネットワークのアドレスへのリクエストはブラウザ内でブロックされます。

  • axe-core

    Deque が提供するオープンソースのアクセシビリティルールエンジンで、WCAG の自動テストに広く使われています。

  • requests と BeautifulSoup

    SEO、セキュリティ、サーバーのチェックのために、GET と HEAD リクエストのみを使ってページを取得し、HTML を解析します。

  • Python の ssl モジュール

    TLS 接続を開いて証明書を読み取り、標準的な信頼済み認証局に照らして検証します。

自動チェックではわからないこと

  • コンテンツが役に立つか、正確か、説得力があるか、また競合と比べてどの程度上位に表示されるか。
  • 人の判断が必要なアクセシビリティの問題:alt テキストに意味があるか、キーボードでの移動順序が自然か、内容が理解しやすいか。
  • サイトに脆弱性、古いソフトウェア、弱いパスワード、マルウェアがあるかどうか。セキュリティチェックは設定を読み取るもので、ペネトレーションテストではありません。
  • 実際の訪問者にとってサイトがどれだけ速いか。Lighthouse は 1 回のラボテストを行うもので、実際の訪問者のデータとは異なる場合があります。
  • ログイン、有料の壁、フォームの向こう側にあるもの — 公開状態で読み込めるページしか確認できません。
  • 他のページの問題。1 ページ単位の各チェックは、入力したアドレスだけを確認します。

実行ごとに結果が変わる理由

最も変わりやすいのは速度です。Lighthouse は毎回ページを新たに読み込み、ネットワークの状態、サーバーの負荷、キャッシュ、広告、サードパーティのスクリプトは読み込みごとに異なります。実行ごとに数ポイント差が出るのは普通のことです。

ブラウザを使うチェックも、ページがコンテンツをランダムな順序で読み込む場合、異なるバナーや実験を表示する場合、自動アクセスをときどきブロックする場合には結果が変わることがあります。SEO とセキュリティの結果は、ページやサーバーの設定が変わったときにだけ変化します。

分野ごとの既知の制限

速度

Lighthouse の既定のシミュレーション(通信速度を制限した中価格帯のスマートフォン)による、1 回の読み込みのラボテストです。実際の操作が必要な Interaction to Next Paint(INP)は測定できません。ラボで最も近い指標は Total Blocking Time です。

アクセシビリティ

自動ルールで見つかるのは、ページが抱えうる問題の一部だけです。合格しても WCAG を満たしているとは限らず、キーボードとスクリーンリーダーによる手動テストが引き続き必要です。

セキュリティ

ブラウザが受け取る設定を読み取ります:ヘッダーの値、ページ自体のレスポンスに含まれる Cookie のフラグ、CORS、TLS、HTML。ペネトレーションテストではありません — 脆弱性の悪用、ログイン、認証が必要なページの確認、サーバー側のコードレビュー、ソフトウェアや依存関係の脆弱性スキャンは行いません。

リンクとフォーム

1 ページにつき、同じサイトへのリンクを最大 12 件、他のサイトへのリンクを最大 5 件テストします。一部のサーバーは、人にとっては正常に動作するページでも自動アクセスにはエラーを返すため、外部リンクの 401、403、405、429 の応答は判定不能として扱います。フォームは送信しないため、サーバー側の検証や CSRF 対策はテストできません。

SEO

JavaScript 実行後のページではなく、サーバーが送信する HTML を読み取ります。検索順位、トラフィック、キーワード、被リンクは測定しません。また、構造化データが揃っていてもリッチリザルトが表示されるとは限りません。

レポートでの AI の使い方

有効な場合、AI モデル(Anthropic の Claude)がスキャンで得られた実際の結果を、優先順位付きの短い次のステップのリストに書き直します。AI が受け取るのは、スキャンしたアドレス、カテゴリのスコア、スキャナーが検出した問題です。

AI には、それらの結果の説明と優先順位付けだけを行うよう指示しています。問題を作り出したり、スコアを変えたり、測定していないものを測定したと主張したりすることはありません。AI が設定されていない場合やリクエストが失敗した場合は、スコアの低い分野をもとにしたテンプレートのサマリーを代わりに使います。どちらを読んでいるかはレポートに表示されます。

スコアと問題は常に上記のスキャナーから得たもので、AI が生成することはありません。

データの取り扱い

分析結果は一時的なものです。すべてのスキャン、サイトスキャン、レイアウトテストは、結果、レポート、スクリーンショットを含め、最後の操作から 24 時間後に自動で削除されます。

アカウント情報など、その他に保存する情報とその保存期間については、プライバシーポリシーで説明しています。

プライバシーポリシーを読む

チェックを試す

このページで紹介しているツールはすべて、サイトの 1 ページで無料で試せます。見つかった問題の直し方はガイドで解説しています。