web-dev-qa-db-fra.com

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

Ma page d'accueil pourrait être potentiellement liée en tant que:

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 songe à 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="/" /> (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 simplement gifler /, mais jouer avec canonique semble être une entreprise effrayante, je voulais donc vérifier deux fois en premier.

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

13
serg

Conformément à RFC 2616 (HTTP/1.1), section 3.2.2 , les URL http://www.example.com et http://www.example.com/ sont équivalentes et les clients HTTP doivent normaliser les unes par les autres avant d'envoyer la demande au serveur:

"Si le chemin abs_path n'est pas présent dans l'URL, il DOIT être indiqué sous la forme"/"lorsqu'il est utilisé en tant qu'URI de demande pour une ressource ( section 5.1.2 )."

où la section 5.1.2 dit:

"Notez que le chemin absolu ne peut pas être vide; s'il n'y en a pas dans l'URI d'origine, il DOIT être indiqué par"/"(la racine du serveur)."

RFC 3986 (syntaxe générique d'URI) le confirme dans section 6.2.3, Normalisation basée sur un schéma , notant que:

"Par exemple, étant donné 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 étant é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 une autorité avec un chemin vide doit être normalisé en un chemin "/". 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 supprimés et doivent donc être supprimés par normalisation basée sur un 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 RFC 3986, section 6.2.3, est facultative pour les implémentations qui, par exemple, il ne fait qu'indexer les URL, bien que la norme RFC 2616 la rende obligatoire pour les clients souhaitant envoyer des requêtes HTTP. Néanmoins, étant donné que la norme autorise une telle normalisation et que les moteurs de recherche ne veulent généralement pas délibérément ajouter des doublons à leur index, on peut raisonnablement sûr que presque tous les moteurs de recherche normaliseront toutes ces URL pour qu'elles soient identiques.

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

13
Ilmari Karonen