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:
- 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čů.
- 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:
- http://en.wikipedia.org/wiki/Acid o kyselinách
- http://en.wikipedia.org/wiki/ACID o databázových transakcích
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
Jakup #1
Veľmi užitočné postrehy. Niektoré som si vôbec neuvedomoval. Vďaka za príspevok.
Martin Kubíček #2
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 🙂.
Marek Prokop #3
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.
v6ak #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 urlbarunavod.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 Martin Kubíček, 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.
David Grudl #5
#2 Martin Kubíček, 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 Marek Prokop, zkus do vyhledávačů zadat
site:davidgrudl.com seotest
#4 v6ak, dobrá poznámka! Doplnil jsem to do článku.
David Grudl #6
#3 Marek Prokop, díky za upozornění, že je článek nesrozumitelný, prohodil jsem některé odstavce a snad to bude lepší.
Marek Prokop #7
#6 David Grudl, 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ý.
Jan Tichý #8
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ší.
David Grudl #9
#8 Jan Tichý, A není lepší si to vyzkoušet třeba s jiným operátorem a poslat sem svá zjištění?
Jan Tichý #10
#9 David Grudl, 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 https://czechrepublic.googleblog.com/…ebo-bez.html
David Grudl #11
#10 Jan 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)
Tomáš Kapler #12
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.
David Grudl #13
#12 Tomáš Kapler, tak ho naprogramuj a uvolni 🙂 Sám na to čas nemám.
Tomáš Kapler #14
#13 David Grudl, 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.
Tento článek byl uzavřen. Už není možné k němu přidávat komentáře.