web-dev-qa-db-fra.com

Esperluette (&) dans l'URL réelle et le plan du site

J'ai un plan du site (soumis à l'indexation de Google) dans lequel j'ajoute des URL comportant une esperluette (&). Comme dans le plan du site, & doit être évité, j'ai remplacé & par & dans les URL du plan du site. Les URL de mes pages actuelles contiennent uniquement &.

En tant que nouveau venu sur les webmasters de Google et le référencement, je souhaite comprendre si cette différence d’esperluette en URL et en sitemap causera un problème. Mes pages seront-elles indexées? Cela peut sembler une question de niveau NOOB car je peux accéder au site après avoir remplacé & par & dans l'URL. Néanmoins, toute aide sur ce front sera hautement appréciée.

3
user109308

si cette différence d'esperluette d'URL et de sitemap causera un problème.

tl; dr Pas de problème, car les URL sont les mêmes.

Comme dans sitemap & doit être échappé, j'ai remplacé & par & ...

Votre sitemap est un document XML. Comme pour tout document XML, les valeurs de données doivent être stockées sous la forme d'une entité XML codée. Le caractère & est un caractère spécial (il désigne lui-même le début d'une entité XML) et doit donc être codé pour en annuler le sens spécial. C’est la façon dont les données sont stockées dans un document XML .

Lorsque le document XML est lu par un analyseur XML, les valeurs de données sont une entité XML décodée , de nouveau à la valeur réelle. Ainsi, & devient & lorsque le document XML est lu.

Ainsi, une URL de la forme /page?foo=1&bar=2 stockée dans un document XML est identique à l'URL /page?foo=1&bar=2 dans votre document HTML5.

Les URL de mes pages actuelles contiennent uniquement &

En HTML5, cela convient parfaitement, à condition qu'il n'y ait pas d'ambiguïté. Cependant, dans HTML4.1 (et les versions antérieures), vous auriez eu besoin de coder correctement par l'entité HTML le & en tant que & dans votre code source HTML pour obtenir du code HTML valide. Cependant, les navigateurs sont très tolérants et votre document HTML aurait très probablement encore fonctionné.

En HTML5, vous devez uniquement strictement encoder en HTML le & s'il existe une ambiguïté. Prenons l'exemple suivant . Nous voulons passer la chaîne littérale "& dollar;" dans le paramètre foo URL.

<!-- In an HTML document (WRONG) -->
<a href="/page?foo=&dollar;">link</a>

L'URL souhaitée est http://example.com/page?foo=&dollar;, toutefois, l'ancre HTML ci-dessus entraîne l'envoi de l'utilisateur à http://example.com/page?foo=$ - qui n'est pas le intention. Pour créer le résultat souhaité, le & doit être une entité HTML codée pour en annuler le sens spécial, ce qui donne le code HTML (correct) suivant: :

<!-- In an HTML document (CORRECT) -->
<a href="/page?foo=&amp;dollar;">link</a>

Il est toujours plus sûr de toujours coder par une entité HTML le & de votre document HTML. Si vous générez votre contenu via un CMS, cela devrait être automatique.

Je peux accéder au site après avoir remplacé & par &amp; dans l'URL.

Vous voulez probablement dire "dans l'URL, dans votre HTML "? Parce que si vous deviez utiliser une entité HTML, codez le & avec &amp; dans la barre d'adresse du navigateur (par exemple), c'est-à-dire. en dehors d'un contexte HTML, vous n'obtiendrez pas les résultats escomptés. Par exemple, si vous avez saisi directement le texte suivant dans la barre d’adresse du navigateur:

/page?foo=1&amp;bar=2

Vous obtiendrez alors les deux paramètres URL [foo] => 1 et [amp;bar] => 2, ce qui n’est clairement pas l’intention.

4
MrWhite

Les URL que vous incluez dans le sitemap doivent respecter le norme RFC-3986 . Comme vous pouvez le lire dans le guide officiel de Google , & doit être échappé avec &amp; afin que vous puissiez continuer.

Néanmoins, une fois votre sitemap envoyé via Google Searh Console, vous serez en mesure de savoir s’il existe un problème avec les URL soumises.

Juste au cas où, vous ne devriez inclure que les URL finales, cela signifie que vous pourriez peut-être éviter certains paramètres. Par exemple:

 - https://example.com/shoes (good one)
 - https://example.com/shoes?order=1&amp;color=blue (remove this one)
2
Emirodgar