Struktura URL adres, která vydrží roky
Adresa stránky má být krátká, malými písmeny, se slovy oddělenými spojovníky, bez diakritiky a bez zbytečného zanoření. Takovou adresu si člověk přečte ve výsledcích hledání, zkopíruje ji do e-mailu a nic se cestou nerozsype. A hlavně ji nebudete za dva roky předělávat, protože měnit adresy na běžícím webu je vždycky nepříjemná operace.
Jak vypadá adresa, kterou nebudete za rok předělávat?
Adresa je popisek, ne úložná cesta. Když se na ni podívá člověk, který váš web nikdy neviděl, měl by z ní poznat, co na stránce najde. To je celá filozofie. Zbytek jsou pravidla, na kterých se shodne Google, Seznam i vaši zákazníci:
- Tři až pět slov v posledním segmentu.
/zimni-pneumatiky-vyber/stačí./jak-si-spravne-vybrat-zimni-pneumatiky-na-zimu-2026/už ne. - Jen malá písmena. Server rozlišuje velikost písmen, takže
/Kontakt/a/kontakt/jsou z pohledu vyhledávače dvě různé stránky. - Spojovník jako oddělovač slov. Nic jiného.
- Bez diakritiky. Důvod rozeberu níž, není to o pozicích.
- Bez čísel, která nic neznamenají.
/produkt-48213/vám za pět let neřekne vůbec nic. - Maximálně dvě až tři úrovně zanoření. Každé lomítko je další rozhodnutí, které bude jednou špatně.
- Bez spojek a předložek, pokud nejsou nutné. „pro“, „na“, „se“ v adrese jen přidávají znaky.
Konkrétní limit délky Google nikde nestanovuje a nikdo zvenčí ho nezná. Praktická hranice je jiná: ve výsledcích hledání se z dlouhé adresy zobrazí jen kousek a na mobilu ještě menší. Když se celá adresa i s doménou vejde do zhruba sedmdesáti znaků, je to v pořádku. Přes sto dvacet už je znát, že se struktura někde vymkla.
| Spíš ne | Spíš ano |
|---|---|
/blog/2024/03/17/Jak_vybrat_zimní_pneumatiky.html |
/blog/zimni-pneumatiky-vyber/ |
/e-shop/kategorie/damske/obuv/zimni/id-4471/ |
/damske-zimni-boty/ |
/index.php?page=12&cat=3 |
/kontakt/ |
Proč diakritika v adrese skončí jako změť procent
Adresy se přenášejí v ASCII. Všechno ostatní, tedy i háčky a čárky, se musí zakódovat do procentové notace podle standardu, na který se Google ve své dokumentaci odvolává. Prohlížeč vám v adresním řádku ukáže hezký český tvar, ale to je jen kosmetika. Skutečná adresa vypadá takhle:
/skoleni-pro-ucetni/zůstane/skoleni-pro-ucetni/
/školení-pro-účetní/se změní na/%C5%A1kolen%C3%AD-pro-%C3%BA%C4%8Detn%C3%AD/
Dvě česká slova narostou na trojnásobek. Jakmile klient takovou adresu zkopíruje do e-mailu, do Wordu nebo do příspěvku na Facebooku, vyleze z toho ta změť. Zákazník ji nepřečte, nedůvěřuje jí a spousta systémů ji navíc rozseká na dva řádky, takže odkaz přestane fungovat. Zažil jsem to u e-shopu se svíčkami, kde obchodní zástupci posílali odkazy na produkty ručně a část jich odběratelům nešla otevřít.
Přímý vliv na pozice to nemá, aspoň se to nikdy nepovedlo prokázat. Je to problém použitelnosti a prokliků, což jsou dost dobré důvody. WordPress i Shoptet naštěstí diakritiku z názvu automaticky odstraňují. Problém dělají hlavně ručně dopisované adresy a nahrané soubory, u kterých se na přejmenování zapomene. Fotka Vánoční svíčka žlutá.jpg vypadá v adrese úplně stejně nešťastně.
Podtržítko, nebo spojovník?
Spojovník. Google to má v dokumentaci černé na bílém a důvod je technický: spojovník se chová jako oddělovač slov, podtržítko jako spojovač. zimni_pneumatiky tedy může být čtené jako jeden token, zimni-pneumatiky jako dvě slova.
Nakolik na tom dneska ještě záleží, upřímně nevím. Vyhledávače jsou v rozdělování slov výrazně chytřejší než před deseti lety a podezřívám je, že si s podtržítkem poradí. Doporučení ale platí dál, spojovník nic nestojí a nemám důvod hádat se se zdrojem. Podtržítka v adresách vidím prakticky jen u starších webů na míru a u nahraných PDF, kde se název souboru propíše do adresy.
Pokud už podtržítka na webu máte a stránky se v pohodě umisťují, nechte je být. Cena za přesun všech adres převyšuje užitek.
Patří datum do adresy blogového článku?
Většinou ne. WordPress ale od verze 4.2 z roku 2015 nastavuje novým instalacím tvar s datem, tedy /2026/08/04/nazev-clanku/, takže s ním běhá spousta českých blogů, aniž by si to někdo vědomě vybral.
Co to dělá v praxi. Adresa se prodlouží o deset znaků, které nikoho nezajímají. Návštěvník ve výsledcích hledání vidí rok 2019 a klikne radši na konkurenci, i když je váš text lepší a čerstvě přepsaný. A když článek po letech přepíšete, což je jedna z nejlevnějších věcí, které se dají v SEO udělat, zůstane v adrese původní datum a lže o stáří obsahu. O tom, jak aktualizovat staré články, aby zase začaly přivádět návštěvnost, mám samostatný text.
Výjimka existuje: zpravodajský web, kde jde o události a kde se dvakrát do roka objeví článek se stejným názvem. Tam datum v adrese řeší kolize názvů a dává smysl. Pro firemní blog, magazín e-shopu nebo poradnu ne.
Kategorie v adrese e-shopu se vymstí při prvním přesunu produktu
Tady se neshodnou ani konzultanti mezi sebou. Adresa /damske-boty/kotnikove/hnede-kozene-kotnickove-boty/ vypadá logicky a člověk z ní hned pozná, kde v e-shopu stojí. Ušetří to i jeden řádek v drobečkové navigaci.
Praxe je horší. Produkt patří do více kategorií, protože ty kotníkové boty chcete mít i v „zimní obuvi“ a ve výprodeji. Buď vám systém vyrobí tři adresy s identickým obsahem, což pak řešíte přes kanonickou adresu a správné nastavení kanonizace, nebo vám dovolí produkt zařadit jen do jedné výchozí kategorie. Shoptet to má přímo v nastavení Marketing, Základní SEO, kde si vybíráte tvar adres produktů a kategorií, a jejich podpora sama upozorňuje, že varianta s kategorií v adrese vás na jednu kategorii uzamkne.
Přidejte k tomu, že sortiment se překopává. Jednou za dva roky přijde reorganizace kategorií a s ní se změní adresy všech produktů. Proto u e-shopů nad zhruba pět set položek radím produkty na jedné rovině (/hnede-kozene-kotnickove-boty/) a kategorie zvlášť (/damske-boty/kotnikove/). Kategorie klidně zanořené, ty se mění málo. Pokud vám sortiment stojí roky na místě a produkt patří vždy jen do jedné kategorie, kategorii do adresy dejte, nikomu tím neublížíte.
Trvalé odkazy ve WordPressu a co se stane, když je přepnete
Nastavení najdete v administraci pod Nastavení, Trvalé odkazy. Vypadá to nevinně, je to přepínač s následky.
| Tvar | Jak vypadá | Kdy ho použít |
|---|---|---|
| Prostý | /?p=123 |
Nikdy |
| Den a název | /2026/08/04/nazev/ |
Zpravodajský web |
| Měsíc a název | /2026/08/nazev/ |
Skoro nikdy |
| Číselný | /archives/123 |
Nikdy |
| Název příspěvku | /nazev/ |
Firemní web, blog, poradna |
| Vlastní struktura | /blog/%postname%/ |
Když blog oddělujete od zbytku webu |
Teď to podstatné. Když na běžícím webu strukturu přepnete a neuděláte nic dalšího, všechny staré adresy začnou v tu vteřinu vracet chybu 404. Zmizí jich najednou klidně pět set. Odkazy z cizích webů vedou do prázdna, návštěvníkům se rozbijí záložky a interní odkazy v textech míří na neexistující stránky. Přesměrování si WordPress sám nevyrobí, takovou funkci prostě nemá. Jak se server v takové situaci chová a jaký kód vrací, rozebírám v článku o stavových kódech HTTP a jejich vlivu na SEO.
Následky se neprojeví hned, což je zrádné. Pokles přijde za dva až šest týdnů, jak vyhledávače postupně přeindexují, a majitel webu si mezitím ani nevzpomene, že něco přepínal. Takhle jsem dohledával propad organické návštěvnosti u webu s kurzy, kde příčinou bylo přepnutí trvalých odkazů tři měsíce zpátky.
Pravidlo je jednoduché: strukturu si rozmyslete první den a pak už na ni nesahejte. Kdo si chce ověřit, jestli na jeho webu nějaké adresy nevracejí chybu, může si pustit bezplatnou SEO kontrolu webu a podívat se, co se z jednotlivých adres reálně načítá.
Jednotný tvar s lomítkem na konci
Vyhledávač bere /kontakt a /kontakt/ jako dvě různé adresy. Když se obě načtou se stejným obsahem a kódem 200, máte doma duplicitní obsah v té nejhloupější podobě.
Který tvar zvolíte, nehraje roli. WordPress standardně přidává lomítko na konec a variantu bez lomítka sám přesměruje. Řada řešení na míru a statických webů to nedělá. Ověřte si to za deset sekund: napište adresu ve druhém tvaru a sledujte, jestli vás server přehodí na ten správný, nebo jestli se stránka prostě otevře. Když se otevře, patří to na seznam úkolů pro programátora a řeší se to jedním trvalým přesměrováním 301 na úrovni serveru.
Totéž platí pro variantu s www a bez www a pro http a https. Jedna kanonická podoba, ostatní se přesměrují. Souvisí s tím i správně nasazený certifikát a přechod na https.
Když adresu opravdu potřebujete změnit
Někdy to nejde jinak. Přejmenovala se služba, v adrese je překlep, nebo se e-shop stěhuje na jinou platformu. Postup je vždycky stejný a nedá se z něj vynechat žádný krok:
- Sepište si staré adresy, ideálně ze Search Console a z XML sitemapy, ať víte, co se vlastně mění.
- Nastavte přesměrování 301 ze staré adresy na novou, jedna ku jedné. Ne všechno hromadně na úvodní stránku, to Google vyhodnotí jako měkkou 404 a o pozice stejně přijdete.
- Přepište interní odkazy v obsahu, aby vedly rovnou na nový tvar. Řetězec přesměrování zdržuje a u delších řetězců se robot přestane obtěžovat.
- Aktualizujte XML sitemapu a odešlete ji znovu, ať má vyhledávač čerstvý seznam. Návod na XML sitemapu prakticky je součástí blogu.
- Nechte přesměrování běžet aspoň rok. Google u stěhování webu doporučuje minimálně dvanáct měsíců, u jednotlivých stránek to platí obdobně. Já je nechávám navždy, nic nestojí.
- Sledujte chyby 404 první tři měsíce v Search Console a ve webmaster nástrojích Seznamu.
Počítejte s dočasným výkyvem. Dva až šest týdnů se pozice houpou, i když jste všechno udělali správně. Pomůže mít předem změřený výchozí stav, aby bylo s čím srovnávat, k čemuž se hodí rozumně nastavené měření výsledků SEO. A po dokončení projděte web na rozbité odkazy, které po přesunu v textech zůstanou.
Časté dotazy
Vadí diakritika v URL adrese pro Google a Seznam?
Přímý vliv na pozice se nikdy neprokázal, oba vyhledávače si s českými znaky poradí. Problém je praktický: adresa se přenáší zakódovaná do procentové notace, takže slovo „školení“ se změní na %C5%A1kolen%C3%AD. Po zkopírování do e-mailu nebo na sociální síť je taková adresa nečitelná a často i rozbitá. Používejte tvary bez háčků a čárek.
Co se stane, když ve WordPressu změním trvalé odkazy?
Všechny stávající adresy okamžitě začnou vracet chybu 404, protože WordPress sám žádná přesměrování nevytvoří. Odkazy z cizích webů přestanou fungovat a pozice ve vyhledávání klesnou, obvykle až s odstupem dvou až šesti týdnů. Pokud strukturu měnit musíte, nastavte předem přesměrování 301 ze všech starých adres na nové a nechte je běžet aspoň rok.
Má mít adresa na konci lomítko?
Na tom, kterou variantu zvolíte, nezáleží, důležité je držet jeden tvar na celém webu. Vyhledávač totiž bere /kontakt a /kontakt/ jako dvě různé stránky, a pokud se obě načtou se stejným obsahem, vzniká duplicita. Ověřte si, že server druhou variantu přesměrovává kódem 301 na tu vybranou.
Související návody
Bezpečnostní hlavičky: které nastavit a v jakém pořadí
Hlavičky se nastavují na serveru a chrání návštěvníka před tím, co se do stránky vloudí. Čtyři z nich jde zapnout bez rizika hned.
HTTPS a certifikát: co hlídat, aby web nespadl kvůli vypršení
HTTPS je dnes samozřejmost a jeho absence je nález. Zajímavější je, co se stane při vypršení certifikátu a jak přechod udělat bez ztráty pozic.
Zabezpečení WordPressu: co udělat, aby web nebyl snadný cíl
Napadený web přijde o pozice dřív, než si toho někdo všimne. Většinu útoků zastaví aktualizace, silná hesla a úklid nepoužívaných pluginů.
Pojmy z tohoto textu
- JSON-LD Formát zápisu strukturovaných dat. Vkládá se jako samostatný blok a nemíchá se do značek obsahu.
- llms.txt Textový soubor v kořeni webu, který jazykovým modelům shrnuje, co na webu je a kde to najdou.
- Duplicitní obsah Tentýž nebo velmi podobný text na víc adresách. Není to postih, ale vyhledávač si vybere jednu verzi a ostatní potlačí.
- Smíšený obsah Stav, kdy se stránka načte přes HTTPS, ale některé její části se stahují přes nešifrované HTTP.
- Tenký obsah Stránka, která na svůj dotaz neodpoví. S délkou to souvisí jen volně, krátká a přesná odpověď tenká není.
- HSTS Hlavička, kterou prohlížeči nařídíte chodit na doménu výhradně přes HTTPS. Prohlížeč si to zapamatuje na zadanou dobu.
Nevíte, jestli se vás to týká?
Pusťte kontrolu na svůj web a uvidíte, jestli tenhle problém máte. Trvá to necelou minutu.