canonicalタグが誤って設定される理由
- URLパラメータが意図しない重複を生む。 トラッキングパラメータ、並び順、フィルター状態(
?utm_source=、?sort=price)は、同じコンテンツを配信しながら技術的には異なるURLを生成しますが、これらをクリーンなバージョンに戻すcanonicalが設定されていないケースです。 - プロトコルやサブドメインの不一致。
httpとhttps、あるいはwwwと裸のドメインが、同じコンテンツを2つの異なるインデックス対象アドレスに分割してしまいます。 - 自己参照または連番を考慮したcanonicalのないページネーション。 ページネーションされたリストの2ページ目が1ページ目をcanonicalとして指定している(あるいはcanonical自体が設定されていない)と、検索エンジンが2ページ目の独自コンテンツをまるごと除外してしまう可能性があります。
- テンプレートが環境間でコピーされた結果、ステージングやプレビュー用URLが本番を指すcanonicalを漏らしてしまう、あるいはその逆のケース。
問題の特定方法
Website AuditのSEOスコアは、すべてのスキャンで実際のcanonical正当性チェックを実行します。相対パスになっている(絶対URLでない)canonical URL、そもそも無効なcanonical URL、同一ページ上に競合する複数のcanonicalタグ、そしてページが自分自身ではなくホームページをcanonicalとして指定してしまうという特によくある間違いを検出します。Browser Testはこれを補完し、実際にレンダリングされたライブページから取得した生のタグと正確なURLを表示します。
いずれのチェックも、canonicalの指定先が実際に(リダイレクトや404ではなく)200を返すかどうか、あるいはサイト全体のプロトコル/サブドメインの選択と整合しているかどうかまでは確認しません。この2点については手動でのスポットチェックが依然として必要です。
修正方法
1. ページの正規バージョンには、自己参照するcanonical URLを設定する
1export const metadata = {
2 alternates: {
3 canonical: "https://example.com/products/keyboard",
4 },
5};あるいは、HTML内に直接記述する場合:
1<link rel="canonical" href="https://example.com/products/keyboard" />2. パラメータや並び替え/フィルターのバリエーションは、クリーンなURLへcanonicalで戻す
/products?sort=priceと/productsの両方でアクセス可能なページでは、パラメータ付きバージョンのcanonicalがクリーンな/productsのURLを指すようにし、リンクエクイティとインデックスを1つのアドレスに統合してください。
3. プロトコルとホストは、それぞれ1つに統一する
httpsと、wwwまたは裸のドメインのどちらか一方を標準として決め、もう一方は恒久的に(301)リダイレクトしたうえで、サイト内のすべてのcanonicalタグがその標準に沿っていることを確認してください。リダイレクトされていないバージョンを指すcanonicalは、その目的を無効にしてしまいます。
4. canonicalの指定先が実際に解決するかを手動で確認する
まずはWebsite Auditを実行してください。相対URL、無効なURL、競合するcanonical、そしてホームページの誤指定は自動的に検出されます。手動でのチェックが残るのは、canonical URLが実際に200ステータスを返し、指定元ページの内容と本当に一致しているかどうかです。特にURL構造の変更や移行の直後は注意が必要です。
Scanverraがこれをどう検出するか
Website AuditのSEOスコア(Lighthouseのcanonical監査)は、ページ上のすべてのrel="canonical"リンクを解析し、相対URLや無効なURL、競合する複数のcanonical、そしてページ自身ではなくホームページのルートを指すcanonicalを検出します。Browser Testは別途、canonicalタグの有無とその指定先の正確なURLを取得します。両者を組み合わせることで上記の間違いをカバーできますが、指定先URLが実際に正しく解決するか、指定元ページの内容と一致しているかまでは検出できません。