• canonicalはlinkタグ内に単独で

canonicalはlinkタグ内に単独で

<link>の中に記載するアノテーション属性としてcanonicalがありますが、このcanonical属性を使用する場合、同じ<link>内に他の属性(実際には、hreflanglangmediatype)を入れるとcanonical属性を無視してしまうとのことで、Googleは米国現地時間2月15日、canonicalについてのドキュメントに改めて記載したと発表しました。特別仕様が変更したわけではなく、あくまでもドキュメントで分かりやすくしたとのことです。canonical属性記述時には、<meta>内の<link>として無意識に独立していたので、特に考えたこともありませんでしたが、言われてみれば…<link>内にまとめて属性を記述してしまう人もいたのかもしれませんね。大した話ではありませんが、一応まだ英語版ドキュメントのみで更新されていますので和訳してご紹介します。

February 15
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.

2月15日
rel=“canonical” アノテーション利用について明文化

変更事項:特定の属性と共にしたrel=“canonical”アノテーションは正規化されないことを明確化しました。
理由:rel=“canonical”アノテーションは、内容が重複するURLのうち、それが正規のものかをGoogleが判断するのに役立ちます。link要素に特定の属性を追記してしまいますと、アノテーションの意味合いが変わり、異なるデバイスや言語のバージョンを示す指示で解釈するようになります。本件はあくまでもドキュメントの変更に過ぎず、Googleはこれまでも、このような場面では正規化を目的としたrel=“canonical”アノテーションで解釈していません。

引用)Latest documentation updates

どういうこと?

特にcanonical属性のアノテーション効果や方法論が変わった話ではありません。Googleは引き続きちゃんとcanonicalをサポートしています、とのことです。しかし、同じ<link>内にrel=“canonical”rel=“alternate”を混同したり、rel=“canonical” hreflang=“ja”と記述したりする人が多いようで、そういう時はcanonicalを無視するよ、というのを改めて明記したとのことでした。

Googleのcanonicalに関する英語版の公式ドキュメントには下記の部分が書き加えられています。

Googleは、RFC 6596に記載されている通り、明示的なrel canonical link アノテーションをサポートしています。Webページの代替バージョンを示す、rel=“canonical”アノテーションは無視されます。具体的には、hreflanglangmedia、並びにtype属性と一緒に記述したrel=“canonical”アノテーションは正規化のために使うものではありません。その代わりに、適切なlinkアノテーションを使用して、ページの代替バージョンを指定してください。例えば、言語と国の指定にはlink rel=“alternate” hreflangを使用してください。

引用)Search Centralより一部和訳

 

要は、例えば以下のような記述方法はcanonicalを無視してGoogleは解釈しますとのことです。
 

Googleがcanonicalを解釈しない例

<link rel=“canonical” media=“only screen and (max-width: 640px)” href=“https://m.sample.com/” />

<link rel=“canonical” rel=“alternate” media=“only screen and (max-width: 640px)” href=“https://m.sample.com/” />

 

上記はrel=“alternate”によるmediaを使う時のcanonical例です。canonicalを使う時は、ひとつの<link>内に他の要素を詰め込むな、ということですね。この場合は正しい使い方としては以下です。
 

Googleがcanonicalを解釈する例

<link rel=“canonical” href=“https://m.sample.com/” />
<link rel=“alternate” media=“only screen and (max-width: 640px)” href=“https://m.sample.com/” />

 

このように都度<link>を使い分けて記述しなさいということです。あまりこういった間違った記述をしている例を目にしたことがないので、私にはよく分かりませんが、世界的には多いのかもしれません。皆様もcanonicalの記述にはお気をつけください。

ちなみに、canonicalの定義は(インターネット技術の標準的な仕様を記した文書である)RFCRFC 6596にも記述がありますが、“強制”ではなく“示唆”をする信号となりますので、絶対そうなるとは限らない旨も改めて理解しておきましょう。

カテゴリー

新着記事

人気記事

過去記事