URL canónica para una página de inicio y barras inclinadas

14

Mi página de inicio podría estar potencialmente vinculada como:

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)

Estoy pensando en definir una URL canónica para asegurarme de que Google no considere esas URL como páginas diferentes:

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

¿Cuál debería usarse? Solo abofetearía, /pero jugar con canonical parece un negocio aterrador, así que primero quería comprobarlo dos veces.

¿Es una buena idea definir una URL canónica para una página de inicio?

serg
fuente

Respuestas:

14

De acuerdo con RFC 2616 (HTTP / 1.1), sección 3.2.2 , las URL http://www.example.comy http://www.example.com/son equivalentes, y los clientes HTTP deben normalizar la primera a la segunda antes de enviar la solicitud al servidor:

"Si abs_path no está presente en la URL, DEBE aparecer como" / "cuando se utiliza como URI de solicitud para un recurso ( sección 5.1.2 )".

donde la sección 5.1.2 dice:

"Tenga en cuenta que la ruta absoluta no puede estar vacía; si no hay ninguna presente en el URI original, DEBE indicarse como" / "(la raíz del servidor)".

RFC 3986 (sintaxis genérica de URI) confirma esto en la sección 6.2.3, Normalización basada en esquemas , y señala que:

"Por ejemplo, debido a que el esquema" http "hace uso de un componente de autoridad, tiene un puerto predeterminado de" 80 "y define una ruta vacía para que sea equivalente a" / ", los siguientes cuatro URI son equivalentes:

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

En general, un URI que utiliza la sintaxis genérica para la autoridad con una ruta vacía debe normalizarse a una ruta de "/". Del mismo modo, un ": puerto" explícito, para el que el puerto está vacío o el predeterminado para el esquema, es equivalente a uno donde el puerto y su delimitador ":" se eluyen y, por lo tanto, deben eliminarse mediante la normalización basada en el esquema. Por ejemplo, el segundo URI anterior es la forma normal del esquema "http".

Técnicamente, la normalización descrita en RFC 3986 sección 6.2.3 es opcional para implementaciones que, por ejemplo, simplemente indexan URL, aunque RFC 2616 hace que sea obligatorio para los clientes que realmente desean enviar solicitudes HTTP. Aún así, dado que el estándar permite dicha normalización, y dado que los motores de búsqueda generalmente no desean agregar duplicados deliberadamente a su índice, uno puede estar razonablemente seguro de que casi todos los motores de búsqueda estarán normalizando todas esas URL para que sean las mismas.

Por lo tanto, no hace ninguna diferencia para los navegadores o motores de búsqueda, ya sea que use http://www.example.como http://www.example.com/. Son equivalentes.

Ilmari Karonen
fuente
55
http://www.example.comy http://www.example.com/puede ser equivalente, pero http://www.example.com/es el canónico porque es a lo que deben normalizarse los URI. Entonces lo usaría en la metaetiqueta canónica.
Stephen Ostermiller