[レベル: 上級]
特定の属性と共に使われた rel="canonical"
アノテーションは正規化には使用されないことを、正規ページの指定方法を解説する技術ドキュメントで Google は明確にしました。
ドキュメントの更新箇所
rel="canonical"
の説明は以前は次のように書かれていました。
Google supports
rel
canonicallink
annotations as described in RFC 6596.
Google は、RFC 6596 に記載されているように、
rel
canonicallink
アノテーションをサポートしています。
更新後は次のように変わりました。
Google supports explicit
rel
canonicallink
annotations as described in RFC 6596.rel="canonical"
annotations that suggest alternate versions of a page are ignored; specifically,rel="canonical"
annotations withhreflang
,lang
,media
, andtype
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
canonicallink
アノテーションをサポートしています。ウェブページの代替バージョンを示唆するrel="canonical"
アノテーションは無視されます。具体的には、hreflang
とlang
、media
、およびtype
属性を持つrel="canonical"
アノテーションは正規化に使用されません。その代わりに、適切なlink
アノテーションを使用して、ページの代替バージョンを指定してください。たとえば、言語と国の指定にはlink
rel="alternate"
hreflang
を使用します。
「explicit(明示的な)」という単語が追加されました(ハイライトした単語)。
そして、さらに説明が増えています。
とはいえ、言っていることがわかるようなわからないような。
rel="canonical"
は単独で使う
つまり、重複コンテンツを含むページが存在する場合、優先する「正規」バージョンを明示するためには、
rel=canonical"
リンク要素を単独で使いhreflang
やlang
、media
、type
属性と一緒には使わない
ことを推奨しています。
「一緒に」というのは、「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"
が非推奨の状態になっていないか確認してください。