<link>の中に記載するアノテーション属性としてcanonicalがありますが、このcanonical属性を使用する場合、同じ<link>内に他の属性(実際には、hreflang、lang、media、type)を入れるとcanonical属性を無視してしまうとのことで、Googleは米国現地時間2月15日、canonicalについてのドキュメントに改めて記載したと発表しました。特別仕様が変更したわけではなく、あくまでもドキュメントで分かりやすくしたとのことです。canonical属性記述時には、<meta>内の<link>として無意識に独立していたので、特に考えたこともありませんでしたが、言われてみれば…<link>内にまとめて属性を記述してしまう人もいたのかもしれませんね。大した話ではありませんが、一応まだ英語版ドキュメントのみで更新されていますので和訳してご紹介します。
Clarifying the extraction of rel=“canonical” annotations
What: Clarified that rel=“canonical” annotations annotations with certain attributes are not used for canonicalization.
Why: The rel=“canonical” annotations help Google determine which URL of a set of duplicates is the canonical. Adding certain attributes to the link element changes the meaning of the annotation to denote a different device or language version. This is a documentation change only; Google has always ignored these rel=“canonical” annotations for canonicalization purposes.
rel=“canonical” アノテーション利用について明文化
変更事項:特定の属性と共にしたrel=“canonical”アノテーションは正規化されないことを明確化しました。
理由:rel=“canonical”アノテーションは、内容が重複するURLのうち、それが正規のものかをGoogleが判断するのに役立ちます。link要素に特定の属性を追記してしまいますと、アノテーションの意味合いが変わり、異なるデバイスや言語のバージョンを示す指示で解釈するようになります。本件はあくまでもドキュメントの変更に過ぎず、Googleはこれまでも、このような場面では正規化を目的としたrel=“canonical”アノテーションで解釈していません。
どういうこと?
特にcanonical属性のアノテーション効果や方法論が変わった話ではありません。Googleは引き続きちゃんとcanonicalをサポートしています、とのことです。しかし、同じ<link>内にrel=“canonical”とrel=“alternate”を混同したり、rel=“canonical” hreflang=“ja”と記述したりする人が多いようで、そういう時はcanonicalを無視するよ、というのを改めて明記したとのことでした。
Googleのcanonicalに関する英語版の公式ドキュメントには下記の部分が書き加えられています。
引用)Search Centralより一部和訳
要は、例えば以下のような記述方法はcanonicalを無視してGoogleは解釈しますとのことです。
上記はrel=“alternate”によるmediaを使う時のcanonical例です。canonicalを使う時は、ひとつの<link>内に他の要素を詰め込むな、ということですね。この場合は正しい使い方としては以下です。
<link rel=“alternate” media=“only screen and (max-width: 640px)” href=“https://m.sample.com/” />
このように都度<link>を使い分けて記述しなさいということです。あまりこういった間違った記述をしている例を目にしたことがないので、私にはよく分かりませんが、世界的には多いのかもしれません。皆様もcanonicalの記述にはお気をつけください。
ちなみに、canonicalの定義は(インターネット技術の標準的な仕様を記した文書である)RFCのRFC 6596にも記述がありますが、“強制”ではなく“示唆”をする信号となりますので、絶対そうなるとは限らない旨も改めて理解しておきましょう。