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>
32
demandé sur Giel Berkers 2012-09-19 12:35:03

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!).

19
répondu unor 2014-03-02 21:40:08

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>
12
répondu John R Perry 2015-09-28 13:30:58

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>
9
répondu Stephan Weinhold 2014-01-22 12:45:40
<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>
5
répondu davidcondrey 2015-07-01 20:14:37

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>

3
répondu ashrafnezhad 2016-08-29 11:40:51