J'ai un problème avec la validation du code fourni par Google. L'idée est (simplifiée):
<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>
Inspiré par documentation Google (voir exemple de marquage).
Le problème principal est que le code ci-dessus n'est pas valide:
L'attribut
itemprop
n'est pas autorisé sur l'élémentmeta
à ce stade.
L'attributitemprop
n'est pas autorisé sur l'élémentlink
à ce stade.
Mais si je supprime itemprop
, Google Structure Tool ne reconnaît plus les propriétés url
et description
.
Dites-moi pourquoi, pourquoi Google fournit-t-il un code non valide et comment puis-je résoudre ce problème?
L'exemple est HTML non valide + Microdonnées. L'attribut itemprop
n'est pas autorisé sur les éléments meta
[name
] ou link
[rel
].
La solution pour HTML + Microdata serait de dupliquer les éléments:
<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>
Avec HTML + RDFa, il est possible de mélanger:
<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>