URL canonique pour une page d'accueil et des barres obliques de fin

14

Ma page d'accueil pourrait être potentiellement liée comme:

http://example.com
http://example.com/
http://example.com/?ref=1
http://example.com/index.html
http://example.com/index.html?ref=2

(the same page is served for all those URLs)

Je pense à définir une URL canonique pour m'assurer que Google ne considère pas ces URL comme des pages différentes:

<link rel="canonical" href="/webmasters//" /> (relative)
<link rel="canonical" href="http://example.com/" /> (trailing slash)
<link rel="canonical" href="http://example.com" /> (no trailing slash)

Lequel devrait être utilisé? Je voudrais juste gifler /mais jouer avec canonique semble être une entreprise effrayante, donc je voulais d'abord vérifier.

Est-ce une bonne idée de définir une URL canonique pour une page d'accueil?

serg
la source

Réponses:

14

Selon RFC 2616 (HTTP / 1.1), section 3.2.2 , les URL http://www.example.comet http://www.example.com/sont équivalentes, et les clients HTTP doivent normaliser les premiers aux seconds avant d'envoyer la demande au serveur:

"Si abs_path n'est pas présent dans l'URL, il DOIT être donné comme" / "lorsqu'il est utilisé comme Request-URI pour une ressource ( section 5.1.2 )."

où la section 5.1.2 dit:

"Notez que le chemin absolu ne peut pas être vide; si aucun n'est présent dans l'URI d'origine, il DOIT être donné comme" / "(la racine du serveur)."

La RFC 3986 (URI Generic Syntax) le confirme dans la section 6.2.3, Normalisation basée sur les schémas , en notant que:

"Par exemple, parce que le schéma" http "utilise un composant d'autorité, a un port par défaut de" 80 "et définit un chemin vide comme équivalent à" / ", les quatre URI suivants sont équivalents:

    http://example.com
    http://example.com/
    http://example.com:/
    http://example.com:80/

En général, un URI qui utilise la syntaxe générique pour l'autorité avec un chemin vide doit être normalisé en un chemin de "/". De même, un ": port" explicite, pour lequel le port est vide ou la valeur par défaut pour le schéma, est équivalent à celui où le port et son délimiteur ":" sont élidés et doivent donc être supprimés par la normalisation basée sur le schéma. Par exemple, le deuxième URI ci-dessus est la forme normale du schéma "http". "

Techniquement, la normalisation décrite dans la section 6.2.3 de la RFC 3986 est facultative pour les implémentations qui, par exemple, indexent simplement les URL, bien que la RFC 2616 la rend obligatoire pour les clients souhaitant réellement envoyer des requêtes HTTP. Cependant, étant donné que la norme permet une telle normalisation et que les moteurs de recherche ne veulent généralement pas ajouter délibérément des doublons à leur index, on peut être raisonnablement sûr que presque tous les moteurs de recherche normaliseront toutes ces URL pour qu'elles soient identiques.

Ainsi, cela ne fait aucune différence pour les navigateurs ou les moteurs de recherche, que vous utilisiez http://www.example.comou http://www.example.com/. Ils sont équivalents.

Ilmari Karonen
la source
5
http://www.example.comet http://www.example.com/peut être équivalent, mais http://www.example.com/est canonique car c'est à cela que les URI doivent être normalisés. Je l'utiliserais donc dans la balise META canonique.
Stephen Ostermiller