仕様と根拠
canonical の決まり(RFC 6596)
RFC 6596 の 3 では、1 つのリソースに指定する canonical は 1 つにし、参照先は内容が重複しているか上位互換のアドレスにします。参照先に避けるものとして、恒久的な移転(300・301)の元のアドレス、別の canonical を持つアドレス(連鎖)、4xx などのエラーを返すアドレスが挙げられています。canonical には相対の指定も書けます。
差分の出し方
改修前と改修後の一覧を、ページのアドレスで突き合わせます。両方にあって参照先が違えば「変更」、改修後にだけあれば「追加」、改修前にだけあれば「消失」、同じなら「同じ」です。相対の指定はページのアドレスを基準に絶対のアドレスへ直し(RFC 3986 5.2)、スキームとホストは小文字にそろえて(6.2.2.1)比べます。パスの大文字小文字は区別します。
問題の判定
参照先がそのまま一覧のページとして載っていて、その参照先が自分以外を指していれば連鎖です。参照先のページに書いた状態コードが 300・301 なら移転元、400 台なら 4xx のアドレスを指しています。同じページに違う参照先が 2 つ以上あれば複数指定です。参照先が一覧にないページは、状態を知る手がかりがないため判定できません。
根拠にした仕様・資料
| 仕様・資料 | 確認日 | 使った箇所 |
|---|---|---|
| RFC 6596 The Canonical Link Relation | 2026年10月28日 | 3(相対 IRI も可・1 つのリソースに canonical は 1 つ・対象は 300/301 の元・連鎖・4xx を避ける) |
| RFC 3986 Uniform Resource Identifier (URI): Generic Syntax | 2026年10月28日 | 5.2(相対参照の解決)・6.2.2.1(スキームとホストは大小を区別しない) |
指摘の段階
- エラー: 仕様に反していて、正しく読めない・処理できない入力です。
- 警告: 読めるものの、仕様の推奨に反する・矛盾する・意図と違う結果になりやすい入力です。
- 情報: 誤りではありませんが、知っておくとよい扱い(読み飛ばした部分や解釈)です。
入力の扱い(送信しない仕組み)
処理はすべてお使いのブラウザの中で行います。処理の本体はこのサイトから配信する小さなスクリプト(/app.js)で、外部のサービスやライブラリを読み込みません。ページはブラウザに通信を禁止させる設定(Content-Security-Policy の connect-src)つきで配信しており、入力した内容がサーバーや第三者へ送られることはありません。ファイルを選んだ場合も、端末の中で読み込むだけです。
このツールでできないこと(制約)
- アドレスへアクセスして状態コードや canonical を取得することはしません。状態コードは、利用者が一覧の 3 つ目に書いたものだけを使います。
- 参照先が一覧にないアドレスは、連鎖・移転元・4xx のどれも判定できません。クロールの結果は、サイト内の全ページを含めて書き出してください。
- HTML の中身(link タグや HTTP ヘッダー)を読む機能はありません。ページに複数の canonical が書かれているかは、複数指定の行として貼り付けたものだけを調べます。
- アドレスの細かい表記の違い(既定ポート・パーセントエンコードの大小など)は同一視しません。スキームとホストの大小だけをそろえます。
ご利用にあたって
- 検索エンジンが canonical をどう扱うかは仕様どおりとは限りません。この表は設定の書き方の点検であり、検索結果での扱いを保証しません。
- 状態コードは書き出した時点のものです。サイトを変更した後は、書き出し直した一覧で確かめてください。