Quelle est l'utilisation correcte de schema.org SiteNavigationElement?
En termes SEO...
Est-il préférable de mettre le système sur le parent contenant tous les liens?
<nav itemscope="itemscope" itemtype="http://www.schema.org/SiteNavigationElement">
<a href="#">Link 1</a>
<a href="#">Link 2</a>
<a href="#">Link 3</a>
</nav>
...ou chaque lien doit être considéré comme son propre élément?
<nav>
<span itemscope="itemscope" itemtype="http://www.schema.org/SiteNavigationElement">
<a itemprop="url" href="#">
<span itemprop="name">Link 1</span>
</a>
</span>
<span itemscope="itemscope" itemtype="http://www.schema.org/SiteNavigationElement">
<a itemprop="url" href="#">
<span itemprop="name">Link 2</span>
</a>
</span>
<span itemscope="itemscope" itemtype="http://www.schema.org/SiteNavigationElement">
<a itemprop="url" href="#">
<span itemprop="name">Link 3</span>
</a>
</span>
</nav>
5 réponses
Si SiteNavigationElement
est destiné à l'ensemble de la navigation (i.e., une liste de liens de navigation), votre premier exemple est correct.
Si SiteNavigationElement
est destiné à une seule entrée de navigation (i.e., un lien dans la liste des liens de navigation), votre deuxième exemple est correct.
I think Schema.org ne définit pas sans ambiguïté quelle variante est visée, comme ils disent seulement:
Un élément de navigation de la page.
cependant, le type de parent WebPageElement
est défini comme suit:
un élément de page web, comme une table ou une image
aussi, tous les autres types d'enfants (comme Table
ou WPFooter
) semble être utilisé pour l'ensemble de la chose, et non des parties spécifiques de la chose.
donc cela semble suggérer que toute la navigation devrait être marquée, et pas chaque lien:
<nav itemscope itemtype="http://schema.org/SiteNavigationElement">
<ul>
<li><a href="/link-1">Link 1</a></li> <!-- don’t use the 'url' or 'name' property here! -->
<li><a href="/link-2">Link 2</a></li>
</ul>
</nav>
dans ce cas, toutes les propriétés appartiennent à toute la navigation, donc cela signifie le url
la propriété spécifierait une URL pour cette navigation (et les URL des liens dans cette navigation!).
Selon Moteur De Recherche, De La Terre, il est censé ressembler à ceci:
<ul itemscope itemtype="http://www.schema.org/SiteNavigationElement">
<li itemprop="name">
<a itemprop="url" href="#">Link 1</a>
</li>
<li itemprop="name">
<a itemprop="url" href="#">Link 2</a>
</li>
<li itemprop="name">
<a itemprop="url" href="#">Travel Resources</a>
</li>
</ul>
Première réponse est correcte, mais je préfère mélanger les deux (HTML5)sémantique:
<nav itemscope itemtype="http://schema.org/SiteNavigationElement">
<ul>
<li>
<a itemprop="url" href="http://example.com/">
<span itemprop="name">Link 1</span>
</a>
</li>
</ul>
</nav>
<nav role="navigation">
<ul role="menubar" aria-activedescendant="">
<li role="presentation" itemscope itemtype="https://schema.org/SiteNavigationElement">
<a href="" role="menuitem" tabindex="-1" itemprop="url">
<span itemprop="name">Link 1</span>
</a>
</li>
</ul>
</nav>
schema.org/SiteNavigationElement étend WebPageElement et peut être utilisé pour marquer des liens, ce qui ferait souvent de bons liens contextuels. Vous pouvez utiliser ce schéma pour votre menu de page.
<nav role="navigation" itemscope itemtype="http://schema.org/SiteNavigationElement">
<ul>
<li>
<a href="https://yoursite.com/" title="Link to Home" itemprop="url">
<span itemprop="name">Home</span>
</a>
</li>
<li>
<a href="https://yoursite.com/sample-page" title="Link to sample page" itemprop="url">
<span itemprop="name">sample page</span>
</a>
</li>
</ul>