正規化目的のrel=canonicalは他のlink要素とまとめて記述してはいけない

[レベル: 上級]

特定の属性と共に使われた rel="canonical" アノテーションは正規化には使用されないことを、正規ページの指定方法を解説する技術ドキュメントで Google は明確にしました。

ドキュメントの更新箇所

rel="canonical" の説明は以前は次のように書かれていました。

Google supports rel canonical link annotations as described in RFC 6596.

Google は、RFC 6596 に記載されているように、rel canonical link アノテーションをサポートしています。

更新後は次のように変わりました。

Google supports explicit rel canonical link annotations as described in RFC 6596. rel="canonical" annotations that suggest alternate versions of a page are ignored; specifically, rel="canonical" annotations with hreflang, lang, media, and type attributes are not used for canonicalization. Instead, use the appropriate link annotations to specify alternate versions of a page; for example, link rel="alternate" hreflang for language and country annotations.

Google は、RFC 6596 に記載されているように、明示的な rel canonical link アノテーションをサポートしています。ウェブページの代替バージョンを示唆する rel="canonical" アノテーションは無視されます。具体的には、hreflanglangmedia、および type 属性を持つ rel="canonical" アノテーションは正規化に使用されません。その代わりに、適切な link アノテーションを使用して、ページの代替バージョンを指定してください。たとえば、言語と国の指定には link rel="alternate" hreflang を使用します。

📝すずき注:日本語ドキュメントはまだ更新されていないので、訳は僕による

「explicit(明示的な)」という単語が追加されました(ハイライトした単語)。
そして、さらに説明が増えています。

とはいえ、言っていることがわかるようなわからないような。

rel="canonical" は単独で使う

つまり、重複コンテンツを含むページが存在する場合、優先する「正規」バージョンを明示するためには、

  • rel=canonical" リンク要素を単独で使い
  • hreflanglangmediatype 属性と一緒には使わない

ことを推奨しています。

「一緒に」というのは、「1 つのタグにまとめて」という意味です。
同じページでそれぞれを別々に使うことは問題ありません。

たとえば、英語と日本語で同じ内容の記事を公開していたとします。

  • 英語記事 URL:https://www.example.com/article
  • 日本語記事 URL:https://www.example.com/article-jp

英語ページには、次のように記述できます。

<link rel="canonical" href="https://www.example.com/article" />
<link rel="alternate" hreflang="ja" href="https://www.example.com/article-jp" />

1 行目は正規 URL の指定で、2 行目は日本語の代替ページの指定です。

どちらも link 要素だからといって、rel="canonical"hreflang をまとめて記述してはいけません。

❌ <link rel="canonical" href="https://www.example.com/article" rel="alternate" hreflang="ja" href="https://www.example.com/article-jp" />

このように記述してしまうと、正規ページを識別する情報としては Google からは無視されます。

ドキュメントとしての更新、仕様変更ではない

ここまで説明した内容はドキュメント上での変更です。
正規化目的の rel="canonical" が他の link 要素と一緒に使われた場合は、これまでも Google は無視していました。
明文化しただけです。

おそらく、まとめて記述しているサイトが少なからず存在していたからでしょう。
管理サイトの rel="canonical" が非推奨の状態になっていないか確認してください。