Googleが提供するコードの検証に問題があります。アイデアは(簡略化されています):
<head itemscope itemtype="http://schema.org/WebSite">
<title itemprop="name">Example.com - Best Website in the World</title>
<meta name="description" content="Blah Blah Blah" itemprop="description">
<link rel="canonical" href="https://example.com/" itemprop="url">
</head>
Googleドキュメント に触発されました(マークアップの例を参照)。
主な問題は、上記のコードが無効であることです。
この時点では、属性
itemprop
は要素meta
で許可されていません。
属性itemprop
は、この時点では要素link
で許可されていません。
ただし、itemprop
を削除すると、Google構造ツールはurl
およびdescription
をプロパティとして認識しなくなります。
その理由を教えてください。Googleが無効なコードを提供するのはなぜですか。どうすれば解決できますか?
例は無効なHTML + Microdataです。 itemprop
[meta
]またはname
[link
]要素にrel
属性を持つことは許可されていません。
HTML + Microdataの解決策は、要素を複製することです。
<head itemscope itemtype="http://schema.org/WebSite">
<title itemprop="name">Example.com - Best Website in the World</title>
<meta name="description" content="Blah Blah Blah">
<meta itemprop="description" content="Blah Blah Blah">
<link rel="canonical" href="https://example.com/">
<link itemprop="url" href="https://example.com/">
</head>
HTML + RDFaを使用すると、以下を混在させることができます。
<head typeof="schema:WebSite">
<title property="schema:name">Example.com - Best Website in the World</title>
<meta name="description" property="schema:description" content="Blah Blah Blah">
<link rel="canonical" property="schema:url" href="https://example.com/">
</head>