Kanoniczny adres URL strony głównej i końcowe ukośniki

14

Moja strona główna może być potencjalnie połączona jako:

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)

Zastanawiam się nad zdefiniowaniem kanonicznego adresu URL, aby mieć pewność, że Google nie uzna tych adresów URL za różne strony:

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

Którego należy użyć? Po prostu bym klapnął, /ale mieszanie się z kanoniką wydaje się przerażające, więc najpierw chciałem sprawdzić dwukrotnie.

Czy to w ogóle dobry pomysł na zdefiniowanie kanonicznego adresu URL strony głównej?

serg
źródło

Odpowiedzi:

14

Zgodnie z RFC 2616 (HTTP / 1.1), sekcja 3.2.2 , adresy URL http://www.example.comi http://www.example.com/są one równoważne, a klienci HTTP muszą znormalizować te pierwsze do tych drugich przed wysłaniem żądania do serwera:

„Jeśli ścieżka abs nie jest obecna w adresie URL, MUSI zostać podana jako„ / ”, gdy jest używana jako identyfikator URI żądania dla zasobu ( sekcja 5.1.2 ).”

gdzie sekcja 5.1.2 mówi:

„Pamiętaj, że ścieżka bezwzględna nie może być pusta; jeśli nie ma jej w oryginalnym URI, MUSI być podana jako„ / ”(katalog główny serwera).”

RFC 3986 (ogólna składnia URI) potwierdza to w sekcji 6.2.3, Normalizacja oparta na schemacie , zauważając, że:

„Na przykład, ponieważ schemat„ http ”wykorzystuje komponent uprawnień, ma domyślny port„ 80 ”i definiuje pustą ścieżkę jako równoważną„ / ”, następujące cztery identyfikatory URI są równoważne:

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

Ogólnie rzecz biorąc, identyfikator URI, który używa ogólnej składni dla uprawnień z pustą ścieżką, powinien zostać znormalizowany do ścieżki „/”. Podobnie wyraźny „: port”, dla którego port jest pusty lub domyślny dla schematu, jest równoważny z tym, w którym port i jego separator „:” są pomijane, a zatem powinny zostać usunięte przez normalizację opartą na schemacie. Na przykład drugi identyfikator URI powyżej jest normalną formą dla schematu „http”.

Technicznie rzecz biorąc, normalizacja opisana w RFC 3986 sekcja 6.2.3 jest opcjonalna dla implementacji, które np. Jedynie indeksują adresy URL, chociaż RFC 2616 nakłada obowiązek dla klientów, którzy faktycznie chcą wysyłać żądania HTTP. Mimo to, biorąc pod uwagę, że norma zezwala na taką normalizację, a biorąc pod uwagę, że wyszukiwarki generalnie nie chcą celowo dodawać duplikatów do swoich indeksów, można być pewnym, że prawie wszystkie wyszukiwarki będą normalizować wszystkie te adresy URL, aby były takie same.

Tak więc, nie ma różnicy, albo przeglądarek lub wyszukiwarek czy używasz http://www.example.comlub http://www.example.com/. Są równoważne.

Ilmari Karonen
źródło
5
http://www.example.comi http://www.example.com/może być równoważny, ale http://www.example.com/jest kanoniczny, ponieważ właśnie na to URI trzeba znormalizować. Więc użyłbym go w kanonicznym metatagu.
Stephen Ostermiller