Na navigaci | Klávesové zkratky

Translate to English… Ins Deutsche übersetzen…

Jsou tyto URL stejné?

Otázka, kterou si klade řada webmasterů: vnímají vyhledávače tyto URL jako stejné? Jak s nimi naložit?

  • http://example.com/article
  • http://example.com/article/
  • http://example.com/Article
  • https://example.com/article
  • http://www.example.com/article
  • http://example.com/article?a=1&b=2
  • http://example.com/article?b=2&a=1

Stručná odpověď by byla: „URL jsou odlišné.“ Chce to ale podrobnější rozbor.

Z pohledu uživatelů se tyto adresy liší v drobnostech, kterým nepřikládají žádnou váhu. Tedy je vnímají jako stejné, ačkoliv z technického hlediska jde o adresy různé. Říkejme jim třeba adresy podobné. V zájmu uživatelského prožitku proto dodržujte 2 zásady:

  1. Nedovolte, aby se na podobných adresách nacházel odlišný obsah. Jak záhy ukážu, nevedlo by to jen ke zmatení uživatelů, ale i vyhledávačů.
  2. Umožněte uživatelům přístup i přes podobné adresy.

Pokud se adresy liší v protokolu http / https nebo doméně s www či bez, považují je vyhledávače za různé. Nikoliv tak uživatelé. Bylo by tedy fatální chybou na takto podobné adresy umístit různý obsah. Nicméně chybou by bylo i znemožnění přístupu přes podobnou adresu. Musí tedy fungovat adresa s www i bez www. Přičemž SEO nabádá držet se jedné varianty a ostatní na ni přesměrovávat HTTP kódem 301. To lze u www subdomény zajistit například souborem .htaccess:

# presmerovani na variantu bez www
RewriteCond %{HTTP_HOST} ^www\.
RewriteRule ^.*$   http://example.com/$0  [R=301,NE,L]

# presmerovani na variantu s www
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^.*$   http://www.example.com/$0  [R=301,NE,L]

Schválně si hned vyzkoušejte, jestli vaše servery přesměrovávají a to včetně celé adresy a správného předání parametrů. Nezapomeňte i na varianty www.subdomena.example.cz. Protože některé prohlížeče umí chybějící přesměrování obcházet, zkuste raději nízkoúrovňovou službu jako Web-Sniffer.

Velká a malá písmena se v URL rozlišují všude kromě schéma a domény. Avšak uživatel je opět nerozlišuje a je tedy nešťastné nabízet rozdílný obsah na adresách lišících se jen velikostí písmen. Jako špatný příklad může posloužit Wikipedie:

Kuriózní chybou trpí Bing, který vrací stejné URL, ať už hledáte kyselinu nebo databázi (ačkoliv textový popis je správný). Google nebo Yahoo tímto problémem netrpí.

Bing nerozlišuje mezi kyselinou a databází

Také některé služby (webmaily, ICQ) převádí velká písmenka v URL na malá, což jsou všechno důvody, proč se rozlišování velikosti vyhnout a to nejlépe i v parametrech. Raději dodržujte konvenci, že všechna písmenka v URL budou malá.

Rozlišit některé podobné adresy je oříšek i pro vyhledávače. Udělal jsem experiment a na URL lišící se v detailech jako je přítomnost pravostranného lomítka nebo pořadí parametrů umístil odlišný obsah. Zaindexovat je byl schopen pouze Google. Ostatní vyhledávače dokázaly pojmout vždy jen jednu z variant.

Jen Google tyto stránky umí indexovat jako rozdílné

Pokud jde o pravostranná lomítka, webový server přesměrovává na kanonickou podobu obvykle za vás; přistoupíte-li k adresáři bez pravostranného lomítka, doplní je a přesměruje. Samozřejmě to neplatí, když URI spravujete ve vlastní režii (Cool URI apod.)

A nakonec: skutečně záleží na pořadí parametrů? Mezi adresou article?a=1&b=2 a article?b=2&a=1 by neměl být žádný rozdíl. Jsou ale situace, kdy to neplatí, zejména když předáváme složitější struktury jako třeba pole. Například ?sort[]=name&sort[]=city může být něco jiného, než ?sort[]=city&sort[]=name. Nicméně přesměrovávat, nejsou-li parametry ve stanoveném pořadí, bych považoval za zbytečnou hyperkorektnost.

p. s. Nette Framework přesměrování na kanonické URL provádí zcela automaticky ve své režii

Komentáře

  1. Jakup http://www.lemmonjuice.com/ #1

    avatar

    Veľmi užitočné postrehy. Niektoré som si vôbec neuvedomoval. Vďaka za príspevok.

    před 6 lety
  2. Martin Kubíček #2

    avatar

    Ahá, takže k tomuto sloužil ten odkaz SEO Test na Nette stránkách :-). Celkem užitečný článek, jen pro upřesnění – první případ, tedy google, lomítka a pořadí parametrů, pokud je na stránkách stejný obsah, kterou zaindexuje? Nebo je zaindexuje všechny (a tudíž budou ve výsledcích 3 stránky se stejným obsahem, ale jinou URL?). Také mě překvapilo to s velikostí písmen v URL u Bingu, řekl bych, že je to bug který, zvláště v případě wikipedie, může mít katastrofické účinky. Možná, že by nebylo špatné jim to nahlásit jako bug report, třeba ti pak přispějí na pivo, nebo karton chili omáček :-).

    před 6 lety | reagoval [4] v6ak [5] David Grudl
  3. Marek Prokop http://www.sovavsiti.cz #3

    avatar

    Tvrzení „Zaindexovat jej byl schopen pouze Google. Ostatní vyhledávače dokázaly pojmout vždy jen jednu z variant.“ IMHO není pravdivé. Ale já tomu článku moc nerozumím, takže to možná chápu jinak, než jsi to myslel ty.

    před 6 lety | reagoval [5] David Grudl [6] David Grudl
  4. v6ak http://v6ak.profitux.cz/ #4

    Na to „www.“ bacha, myslím, že Firefox to umí dělat taky automaticky (ale asi jen pro domény druhého řádu, takže ne třeba pro fit.vutbr.cz), takže je lepší to testovat jiným prohlížečem. Myslím, že Opera to neumí. Už jsem narazil na nějaké stránky, jejichž URL jsem mohl ve Firefoxu zadat bez „www.“, ale v Opeře ne. Zkuste třeba v obou prohlížečích zadat do urlbaru navod.cz (adresu jsem vybral po hledání výrazu ‚a‘ Googlem).

    Jinak lowercaseování URL je (ne)pěkná prasárna, ještě by to šlo u domény, ale je u části za lomítkem. Ale chápu, že pro user experience je někdy potřeba, aby se mohamed sklonil před Horou, ačkoli to dělá blbě Hora.

    #2 Martine Kubíčku, Tipoval bych, že Google se bude snažit odhadnout, zda jde o stejnou stránku, nebo ne, a podle toho se zařídí. (Možná si poradí i s nějakým malým rozdílem.) Ale to jen odhaduji.

    před 6 lety | reagoval [5] David Grudl
  5. David Grudl http://davidgrudl.com #5

    avatar

    #2 Martine Kubíčku, Google zaindexuje všechny a pokud budou mít stejný obsah, bude nabízet jen jednu z nich. Což ovšem platí obecně. V tomto případě šlo o to, že na každé variantě byl odlišný obsah.

    #3 Marku Prokope, zkus do vyhledávačů zadat site:davidgrudl.com seotest

    #4 v6aku, dobrá poznámka! Doplnil jsem to do článku.

    před 6 lety
  6. David Grudl http://davidgrudl.com #6

    avatar

    #3 Marku Prokope, díky za upozornění, že je článek nesrozumitelný, prohodil jsem některé odstavce a snad to bude lepší.

    před 6 lety | reagoval [7] Marek Prokop
  7. Marek Prokop http://www.sovavsiti.cz #7

    avatar

    #6 Davide Grudle, Děkuji. Já už jsem to asi pochopil z předešlého komentáře. Jinak chápu, že je účel článku trochu jiný, ale pokud by měl opravdu prokázat, jaká URL vyhledavače zaindexují, pak bys musel podrobněji popsat metodiku experimentu a zřejmě ho sestavit pečlivěji. Takhle to nic moc neprokazuje. Nápad je to ale hezký.

    před 6 lety
  8. Jan Tichý http://www.phpguru.cz #8

    avatar

    Ahoj, stejně jako Marka i mne by moc zajímala metodika celého experimentu. Bez toho se nedá nic vyvozovat. Z náznaků v komentářích výše jsem pochopil, že jsi to vyhodnocoval pomocí operátoru site:. Jseš si jistý, že uvedení závěry experimentu nejsou zkresleny například tím, že některé vyhledávače mají prostě jenom blbě implementovaný operátor site:? Netvrdím to, nevím to, jenom se ptám. Tenhle experiment se dá totiž udělat i spolehlivěji a prokazatelněji bez nutnosti sáhnout po jakémkoliv nevyzpytatelném operátoru. Čímž ale netvrdím, že bychom nedošli ke stejným závěrům, jenom by byly věrohodnější.

    před 6 lety | reagoval [9] David Grudl
  9. David Grudl http://davidgrudl.com #9

    avatar

    #8 Jane Tichý, A není lepší si to vyzkoušet třeba s jiným operátorem a poslat sem svá zjištění?

    před 6 lety | reagoval [10] Jan Tichý
  10. Jan Tichý http://www.phpguru.cz #10

    avatar

    #9 Davide Grudle, Já jsem spíš myslel pokus, ve kterém se obejdeme zcela bez operátorů. Pokud budu mít v blízké době trošku času, tak to vyzkouším.

    Jinam mimochodem k našemu tématu zrovna aktuálně viz http://google-cz.blogspot.com/…ebo-bez.html

    před 6 lety | reagoval [11] David Grudl
  11. David Grudl http://davidgrudl.com #11

    avatar

    #10 Jane Tichý, ale co je tak složitého na tom zkusit třeba v Seznamu vyhledat nějakou frázi z této čtveřice stránek? S Markem jste napsali víc slov sem do komentářů, než by bylo třeba napsat k otestování do vyhledávače. Co mi uniká?

    (stejně jde o pouhou zajímavost, která na vyznění článku nemá vliv)

    před 6 lety
  12. Tomáš Kapler http://www.mediacentrum.cz #12

    avatar

    Prosimtě Davide jeden takový úplný offtopic – proč vlastně phpfashion běží na blog:cms. Nemám teď na mysli jeho tvůrce, ani flame že WP je tisíckrát lepší. Ale spíš to, že to neběží na Nette+Dibi+Texy

    Myslím, že by bylo velmi zajímavé udělat takový minimalistický „DavidPress“, a uvolnit jej, aby mohl být zároveň názornou ukázkou všech tvých systémů. Optimálně v takové podobě, aby to mohli i lidé rozšiřovat nějakými pluginy (+forum kde by to diskutovali), které bys ty mohl schvalovat (resp. odmítat kdyby nebyly „lege artis“), ale jinak by tě to nestálo energii/čas.

    před 6 lety | reagoval [13] David Grudl
  13. David Grudl http://davidgrudl.com #13

    avatar

    #12 Tomáši Kaplere, tak ho naprogramuj a uvolni :-) Sám na to čas nemám.

    před 6 lety | reagoval [14] Tomáš Kapler
  14. Tomáš Kapler http://www.mediacentrum.cz #14

    avatar

    #13 Davide Grudle, No přiznám se, že mé schopnosti programování nedosahují ani té úrovně, abych pochopil větší část tvých textů ;-) (a i právě proto jsem navrhl to co jsem navrhl, abych se učil od mistrů a na reálném příkladu ze života nevytrženém z kontextu). Dokázal bych třeba hodně dobře cssstylovat, nasadit na to profi grafika atd.
    Ale i bych se do toho pustil, ale myslím, že by to nebylo obecně akceptováno, dobrá by byla jakási „garance stvořitele“, něco jako že nejenom že směr návrhu je dobrý, ale že třeba nekoliduje s nějakými plánovanými budoucími vylepšeními atd. jestli mi rozumíš.
    Naprosto chápu, že ty na to nemáš čas ale co takhle to nechat naprogramovat tvé čtenáře tím, že (jestli tedy bys s mou ideou souhlasil) vždycky jednou za čas udělal nějaký výkop z branky typu „tak a teď navrhněte část starající se o uživatelská práva a skupiny. Fáze jedna – diskuse nad zadáním, Fáze dva – shrnutí a výběr požadovaných funkcí ze zadání a nyní "masive multiplayer coding“, Fáze 3 – případný výběr z různých možností, uzavření a zveřejnění jako součást balíku.

    před 6 lety

Tento článek byl uzavřen. Už není možné k němu přidávat komentáře.