Klávesové zkratky na tomto webu - rozšířené Na obsah stránky

Kanonicky proti duplicitám

07.27 - 13. února 2009 | Webdesign

Jedním z velkých problémů dnešních vyhledávačů je duplicitní obsah. Musejí se poprat s velkým množstvím stránek, které vypadají na první pohled shodně a liší se pouze v URL adrese. Jak mají rozhodnout, kterou z těchto adres vrátit uživateli jako jedinou správnou?

Problém duplicitního obsahu

Duplicitní obsah může vzniknout velice jednoduše, nemusí ani dojít ke zkopírování stránky někým jiným. Prostě stačí mít blbě nastavený server a vracet stejný obsah pro URL s i bez www. na začátku. Další možností je, že se vaše adresy dynamických stránek v čase vyvíjí. Začínal jsem s nepěknými adresami ve tvaru clanek.aspx?id=4, pak jsem časem přešel na SEO URL ve tvaru clanek.aspx/4-nejaky-nadpis, později jsem přidal URL rewriter a mé URL vypadaly takto clanek/4-nejaky-nadpis.aspx. Všechny tyto adresy vedou na stejný obsah, ale protože mají jinou URL, jsou to pro vyhledávacího robota různé stránky.

Jako správný poskytovatel obsahu bych měl zajistit, že všechny verze URL jsou stále funkční, ale měly by směřovat na jedinou platnou. Ale jak?

Řešení

Cest k cíli vede samozřejmě spousta. Pokud máte tu možnost, využijte nějaký URL rewriter. Zvolte si kanonickou formu vašich adres a tu všude používejte. Pokud nechcete používat v adresách prefix www., stačí málo.

Na IIS7 s URL Rewriterem přidejte do vašeho web.config souboru do sekce system.webServer/rewrite/rules následující kód:

<rule name="Remove WWW prefix" >
  <match url="(.*)" ignoreCase="true" />
  <conditions>
    <add input="{HTTP_HOST}" pattern="^www\.domain\.com" />
  </conditions>
  <action type="Redirect" url="http://domain.com/{R:1}" redirectType="Permanent" />
</rule>

Na Apachi stačí do souboru .htaccess přidat následující řádky:

# Remove WWW prefix
RewriteCond %HTTP_HOST ^www\.domain\.com [I]
RewriteRule ^/(.*) http://domain.com/$1 [RP]

Co ale dělat, pokud nemáte na serveru možnost URL rewriting provádět?

Naštěstí existuje alternativa. Vývojáři Google, Yahoo a Live Search se domluvili na zavedení link tagu, který určuje kanonickou URL přímo v dokumentu. Do sekce html/head vašich stránek přidejte následující tag:

<link rel="canonical" href="http://domain.com/kanonicka/adresa-stranky" />

Tím dosáhnete toho, že pokud crawler navštíví vaši stránku přes různé adresy, vždy ji bude považovat za jednu a tu samou s adresou, která je hodnotou atributu href.

Autor: Aleš Roubíček | Přidej komentář | Delicious | Digg | FriendFeed | Facebook | Linkuj! | Jagg

Komentáře RSS

  1.  

    marek

    13.29 - 13. února 2009 | #

    Jak dlouho se už dá používat ten link tag? Nikdy jsem o tom neslyšel… Hodně zajímavá myšlenka.

  2.  

    Aleš Roubíček

    13.50 - 13. února 2009 | #

    [1] marek: Používat se dá odjakživa, vymyšlen byl nedávno a fungovat začne někdy v létě :) Je to opravdu horké zboží, ale je dobré se na něj připravit.

  3.  

    Plaváček

    07.50 - 14. února 2009 | #

    Zajímavý tip, slyším o tom také poprvé. Bohužel mám takový pocit, že toto řešení má své limity především s ohledem na fakt, že Seznam.cz nejspíš tenhle link tag nepodporuje. Nebo ano? Nemáš nějaké bližší info?

  4.  

    Aleš Roubíček

    10.05 - 14. února 2009 | #

    [3] Plaváček: Jak jsem psal v minulém komentáři je to úplná novinka o které veřejnost ví dva dny. :) Tipuju, že Seznam je na tom podobně, ne-li hůř.

    Pokud jsem odkazované články pochopil správně, tak Google už podporu implementoval a Live Search na ní ještě pracuje. Jak je na tom Yahoo, jsem zatím nikde nenašel.

  5.  

    Jakub Vrána

    10.49 - 16. února 2009 | #

    Viz též Content-Location

  6.  

    Miki

    07.54 - 17. února 2009 | #

    Dobrý den, můžu se zeptat jetsli ta IIS7 cesta je vázána na NET framework 3.5 nebo to můžu rozchodit i s webem pod NET framworkem 2.0?

  7.  

    Aleš Roubíček

    09.09 - 17. února 2009 | #

    [6] Miki: IIS7 není svázán s žádnou verzí .net frameworku. Můžete na něm bez problémů provozovat ASP.NET 1.0, 2.0, 3.5, MVC i 4.0, stejně jako PHP, ASP, Django. Dle libosti.

  8.  

    Miki

    09.33 - 17. února 2009 | #

    Jasně, tajkže to xml je konfigurace II7 jako takového, rozumím a děkuju.

  9.  

    Aleš Roubíček

    09.40 - 17. února 2009 | #

    [8] Miki: Přesně tak. Soubor web.config je v IIS7 nejen konfiguračním souborem pro ASP.NET, ale i pro samotný web. Pro URL Rewriter samozřejmě existuje i krásný GUI panel, ale ten stejně generuje toto XML.

  10.  

    Aleš Roubíček

    20.12 - 17. února 2009 | #

    Tak Seznam už také zareagoval, odkaz jsem přidal do Souvisejících.

Místo pro tvůj názor

Povinné je jméno a komentář, z e-mailu se rozpoznají Gravatary.
Komentář je formátován pomocí Texy! syntaxu.
Například: **tučný text**, *kurzíva*, "text odkazu":adresa.
Internetové adresy jsou převáděny na odkazy.
Na komentáře se můžete odkazovat pomocí [číslo komentáře].

Nový komentář