web-dev-qa-db-fra.com

Implémentation incorrecte de rel-alternate-hreflang

Les outils Google pour les webmasters nous ont conseillé:

Nous avons remarqué que, sur un certain nombre de pages de votre site, la mise en oeuvre de rel-alternate-hreflang est incorrecte. En particulier, il semble exister un problème de liaison bidirectionnelle manquante ou incorrecte (lorsque la page A relie avec hreflang à la page B, il doit également exister un lien de B à A). Lorsque nos algorithmes détectent des signaux en conflit, comme sur ces pages, ils peuvent prendre des décisions d’indexation et de classement qui ne correspondent pas à ce que vous vouliez.

Les liens qu'ils mentionnent en particulier sont:

http://www.kogan.com/au/careers/

Vous pouvez voir le sitemap pour cette URL particulière à l’adresse http://www.kogan.com/au/sitemap-pages.xml

En particulier:

<url>
<loc>http://www.kogan.com/au/careers/</loc>
<changefreq>daily</changefreq>
<priority>0.5</priority>
<xhtml:link rel="alternate" hreflang="en-AU" href="http://www.kogan.com/au/careers/"/>
</url>

Ou l'URL http://www.kogan.com/au/shop/collection/mac-mini/ , dont le plan du site se trouve sur http: //www.kogan .com/au/sitemap-collections.xml

En particulier:

<url>
<loc>http://www.kogan.com/au/shop/collection/mac-mini/</loc>
<xhtml:link rel="alternate" media="only screen and (max-width: 640px)" href="https://m.kogan.com/#!/au/shop/collection/mac-mini/"/>
<xhtml:link rel="alternate" media="only screen and (max-width: 640px)" href="https://m.kogan.com/au/shop/collection/mac-mini/"/>
<changefreq>daily</changefreq>
<priority>0.9</priority>
<xhtml:link rel="alternate" hreflang="en-AU" href="http://www.kogan.com/au/shop/collection/mac-mini/"/>
<xhtml:link rel="alternate" hreflang="en-AU" media="only screen and (max-width: 640px)" href="https://m.kogan.com/#!/au/shop/collection/mac-mini/"/>
<xhtml:link rel="alternate" hreflang="en-US" href="http://www.kogan.com/ii/shop/collection/mac-mini/"/>
<xhtml:link rel="alternate" hreflang="en-US" media="only screen and (max-width: 640px)" href="https://m.kogan.com/#!/ii/shop/collection/mac-mini/"/>
<xhtml:link rel="alternate" hreflang="en-NZ" href="http://www.kogan.com/nz/shop/collection/mac-mini/"/>
<xhtml:link rel="alternate" hreflang="en-NZ" media="only screen and (max-width: 640px)" href="https://m.kogan.com/#!/nz/shop/collection/mac-mini/"/>
<xhtml:link rel="alternate" hreflang="en-GB" href="http://www.kogan.com/uk/shop/collection/mac-mini/"/>
<xhtml:link rel="alternate" hreflang="en-GB" media="only screen and (max-width: 640px)" href="https://m.kogan.com/#!/uk/shop/collection/mac-mini/"/>
</url>
<url>
<loc>https://m.kogan.com/#!/au/shop/collection/mac-mini/</loc>
<xhtml:link rel="canonical" href="http://www.kogan.com/au/shop/collection/mac-mini/"/>
<xhtml:link rel="alternate" href="https://m.kogan.com/au/shop/collection/mac-mini/"/>
<changefreq>daily</changefreq>
<priority>0.9</priority>
<xhtml:link rel="alternate" hreflang="en-AU" href="https://m.kogan.com/#!/au/shop/collection/mac-mini/"/>
<xhtml:link rel="alternate" hreflang="en-US" href="https://m.kogan.com/#!/ii/shop/collection/mac-mini/"/>
<xhtml:link rel="alternate" hreflang="en-NZ" href="https://m.kogan.com/#!/nz/shop/collection/mac-mini/"/>
<xhtml:link rel="alternate" hreflang="en-GB" href="https://m.kogan.com/#!/uk/shop/collection/mac-mini/"/>
<mobile:mobile/>
</url>

Je ne suis pas tout à fait sûr, à la lecture de la spécification, où je me trompe. Cela signifie-t-il que l'URL du mobile ne renvoie pas aux URL du bureau? Ou bien parce que l'URL est liée à la même URL pour hreflang="en-AU"?

Je suis au courant d'une question similaire à l'adresse Google Webmaster Tools, message d'erreur relatif à l'implémentation de rel-alternate-hreflang , ce qui laisse supposer qu'il s'agit d'un bogue de Google, bien que j'aimerais obtenir une confirmation ou des précisions. s'il y a une erreur flagrante avec mon implémentation.

2
Gaurav Dadhania

Très peu de sites obtiennent ce droit, les permutations complexes sont très déroutantes.

Il semble que vous ayez deux problèmes différents ici:

1er exemple (carrières):
Vous indiquez, à l'aide de la référence rel=alternate, qu'il existe d'autres versions de cette URL, lorsqu'il n'y en a qu'une. Vous n'avez besoin de faire référence à vous-même que lorsqu'il y a d'autres remplaçants. Ce référencement circulaire peut être à l'origine de l'erreur "bidirectionnelle" (A-> B, B-> A).

Une correction de l'exemple de code que vous avez donné serait:

<url>
<loc>http://www.kogan.com/au/careers/</loc>
<changefreq>daily</changefreq>
<priority>0.5</priority>
</url>

2ème exemple (Collections):
Erreur n ° 1: vous fournissez deux URL de substitution à la version mobile pour chaque URL (versions hashbang et non-hashbang), puis vous fournissez des versions dans une autre langue de ces URL de mobile.

Erreur n ° 2: vous faites référence à des URL de téléphone portable dans les éléments <loc> de votre sitemap XML pour ordinateur de bureau - cela n'est pas nécessaire, car rel=alternate media= s'en charge. Vous devez uniquement fournir des URL mobiles dans un sitemap XML mobile .

Erreur n ° 3: vous utilisiez le balisage <mobile:mobile> dans le sitemap XML de votre ordinateur de bureau. Cette option ne devrait être limitée qu'aux fonctions du téléphone ou du smartphone . sitemaps XML. Il serait intéressant de relire à nouveau les spécifications (dans le lien ci-dessus).

Erreur # 4: Le plus gros problème est que vous ne faites pas référencer les autres versions du <loc></loc> comme étant leurs propres entités - selon la spécification , et selon l'avertissement concernant l'annotation "bidirectionnelle".

Vous devriez envisager de limiter le balisage d'URL de remplacement pour mobile au <head></head> de vos documents. Rappelez-vous que rel=canonical à l'URL du bureau est requis à inclure dans l'en-tête de vos pages mobiles

Une correction de votre deuxième exemple de code ressemblerait à ceci:

<url>
     <loc>http://www.kogan.com/au/shop/collection/mac-mini/</loc>
     <xhtml:link rel="alternate" media="only screen and (max-width: 640px)" href="https://m.kogan.com/au/shop/collection/mac-mini/"/>
     <xhtml:link rel="alternate" hreflang="en-AU" href="http://www.kogan.com/au/shop/collection/mac-mini/"/>
     <xhtml:link rel="alternate" hreflang="en-US" href="http://www.kogan.com/ii/shop/collection/mac-mini/"/>
     <xhtml:link rel="alternate" hreflang="en-NZ" href="http://www.kogan.com/nz/shop/collection/mac-mini/"/>
     <xhtml:link rel="alternate" hreflang="en-GB" href="http://www.kogan.com/uk/shop/collection/mac-mini/"/>
     <changefreq>daily</changefreq>
     <priority>0.9</priority>
</url>
<url>
    <loc>http://www.kogan.com/ii/shop/collection/mac-mini/</loc>
    <xhtml:link rel="alternate" media="only screen and (max-width: 640px)" href="https://m.kogan.com/ii/shop/collection/mac-mini/"/>
    <xhtml:link rel="alternate" hreflang="en-AU" href="http://www.kogan.com/au/shop/collection/mac-mini/"/>
    <xhtml:link rel="alternate" hreflang="en-US" href="http://www.kogan.com/ii/shop/collection/mac-mini/"/>
    <xhtml:link rel="alternate" hreflang="en-NZ" href="http://www.kogan.com/nz/shop/collection/mac-mini/"/>
    <xhtml:link rel="alternate" hreflang="en-GB" href="http://www.kogan.com/uk/shop/collection/mac-mini/"/>
    <changefreq>daily</changefreq>
    <priority>0.9</priority>
    </url>
<url>
    <loc>http://www.kogan.com/nz/shop/collection/mac-mini/</loc>
    <xhtml:link rel="alternate" media="only screen and (max-width: 640px)" href="https://m.kogan.com/nz/shop/collection/mac-mini/"/>
    <xhtml:link rel="alternate" hreflang="en-AU" href="http://www.kogan.com/au/shop/collection/mac-mini/"/>
    <xhtml:link rel="alternate" hreflang="en-US" href="http://www.kogan.com/ii/shop/collection/mac-mini/"/>
    <xhtml:link rel="alternate" hreflang="en-NZ" href="http://www.kogan.com/nz/shop/collection/mac-mini/"/>
    <xhtml:link rel="alternate" hreflang="en-GB" href="http://www.kogan.com/uk/shop/collection/mac-mini/"/>
    <changefreq>daily</changefreq>
    <priority>0.9</priority>
    </url>
<url>
    <loc>http://www.kogan.com/uk/shop/collection/mac-mini/</loc>
    <xhtml:link rel="alternate" media="only screen and (max-width: 640px)" href="https://m.kogan.com/uk/shop/collection/mac-mini/"/>
    <xhtml:link rel="alternate" hreflang="en-AU" href="http://www.kogan.com/au/shop/collection/mac-mini/"/>
    <xhtml:link rel="alternate" hreflang="en-US" href="http://www.kogan.com/ii/shop/collection/mac-mini/"/>
    <xhtml:link rel="alternate" hreflang="en-NZ" href="http://www.kogan.com/nz/shop/collection/mac-mini/"/>
    <xhtml:link rel="alternate" hreflang="en-GB" href="http://www.kogan.com/uk/shop/collection/mac-mini/"/>
    <changefreq>daily</changefreq>
    <priority>0.9</priority>
    </url>

Vous devez également faire très attention en utilisant rel=canonical dans cette situation (voir la réponse à ce message: https://plus.google.com/+RichardHearne/posts/SpSnNfv3f1a )

2
Mike Hudson