Sherpas · SEO Tech Brief
VERZE 1.2 DATUM 13. 05. 2026 OWNER Zbyněk Fridrich
Zadání pro Kim · idealninajemce.cz

Migrace
lokalitních
URL

Konsolidace parametrického filtru /volne-byty?lokalita=X na statickou hierarchii /mesta/X. Plus pět drobných SEO úkolů k souběžnému zpracování.

PRO: Kim (project management na straně klienta)  ·  OD: Zbyněk Fridrich, Sherpas SEO  ·  K NASAZENÍ: dev tým (Radixal / interní)
17
Migrace redirectů
15
Cílových měst
5
Doplňkových tasků
11
Sitemap úklid URL
01HLAVNÍ TASK

Migrace parametrické → statické

14 měst × parametrický filter ?lokalita=X → statická URL /mesta/X. Plus 3 redirecty pro slug consolidation Roztoky. Bare /volne-byty bez parametru zůstává 200 OK — v listu není záměrně.

01·AParametrický filter → statická URL

Tabulka zahrnuje organic data cílových /mesta/X z SEMRUSH (květen 2026). Všechny cílové URL byly potvrzeny jako 200 OK manuální kontrolou klienta 13. 5. 2026.

Zdroj (parametrický filter) Cíl (statická URL) KW Traffic /m Top pos.
/volne-byty?lokalita=brno/mesta/brno85281#1
/volne-byty?lokalita=praha/mesta/praha80264#4
/volne-byty?lokalita=olomouc/mesta/olomouc3096#4
/volne-byty?lokalita=ostrava/mesta/ostrava4128#8
/volne-byty?lokalita=plzen/mesta/plzen2814#10
/volne-byty?lokalita=hradec-kralove/mesta/hradec-kralove2711#10
/volne-byty?lokalita=ceske-budejovice/mesta/ceske-budejovice147#13
/volne-byty?lokalita=zlin/mesta/zlin151#21
/volne-byty?lokalita=pardubice/mesta/pardubice50#17
/volne-byty?lokalita=liberec/mesta/liberec10#27
/volne-byty?lokalita=celakovice/mesta/celakovice00
/volne-byty?lokalita=jablonec-nad-nisou/mesta/jablonec-nad-nisou00
/volne-byty?lokalita=kladno/mesta/kladno00
/volne-byty?lokalita=prezletice-praha-vychod/mesta/prezletice-praha-vychod00

01·BRoztoky — slug consolidation

Master target je /mesta/roztoky-u-prahy (specifičtější slug, lepší pro „Roztoky u Prahy" než generic „Roztoky"). Dvě další URL spadají na master.

Zdroj Cíl KW Traffic /m Typ
/volne-byty?lokalita=roztoky-u-prahy /mesta/roztoky-u-prahy 1 0 param
/volne-byty?lokalita=roztoky /mesta/roztoky-u-prahy slug
/mesta/roztoky /mesta/roztoky-u-prahy 0 0 slug
Pozn. k nově launched URL

4 cílové URL (Čelákovice, Jablonec, Kladno, Prezletice) zatím nemají organic rankings — jsou nedávno launchnuté. 301 ze ?lokalita=X jim pomůže rychleji zaindexovat (kanonický signál pro Google).

Některá z těchto měst mají aktuálně 0 inzerátů — to je UX otázka, ne SEO problém. Stránka má strukturu a content, takže Google ji zaindexuje. Doporučení do UX backlogu: pro „prázdná" města zobrazovat „aktuálně bez nabídky, dejte vědět emailem".

02IMPLEMENTACE

Co předat dev týmu

Pravidla, na kterých záleží. Při slepém nasazení 301 bez ohledu na tyto body může výsledek ztratit polovinu hodnoty.

  1. Server-side 301, nikoliv meta-refresh ani JS Google bere v úvahu jen HTTP-level redirecty. Implementace v Next.js přes redirects() v next.config.js, případně edge middleware nebo Nginx rewrite rule. Pro Next.js: permanent: true = 301, ne 302.
  2. Bare /volne-byty v žádném pravidle nezahrnovat Pravidlo má matchovat pouze URL s parametrem ?lokalita=…. URL bez parametru zůstává 200 OK. V regex: /volne-byty\?lokalita=([^&]+), NE /volne-byty.*
  3. Žádný redirect chain (max 1 hop) Při slug consolidation Roztoky musí být všechny zdroje 301 přímo na finální target /mesta/roztoky-u-prahy, ne přes mezistanici /mesta/roztoky. Autorita ztrácí ~10–15 % na každém hopu.
  4. Cílové URL mají rel="canonical" samy na sebe Po nasazení 301 musí /mesta/X mít self-canonical tag. Žádný noindex. Signál Googlu: „toto je správná verze".
  5. Aktualizovat interní odkazy Search & replace v CMS / frontend kódu — nahradit všechny interní linky ?lokalita=X přímými linky na /mesta/X. Linkování na 301 URL = ztráta autority + zbytečný hop.
  6. Aktualizovat sitemap.xml Sitemap má obsahovat pouze 200 OK kanonické URL. Žádné parametrické varianty ani 301 zdrojové URL. Viz též task 03·B (samostatný úklid). Po nasazení znovu submitnout v GSC (přístup se vyřizuje).
  7. Po deployi: 2 týdny monitoring Sledovat: 301 status codes (Screaming Frog), pozice cílových KW (SEMRUSH Position Tracking), error logy (4xx, 5xx). Při poklesu pozic cílových URL o víc než 30 % eskalace na Zbyňka. Specifické riziko: /mesta/brno a /mesta/praha — top performers, hlídat.
03DALŠÍ TASKY

Pět doplňkových úkolů

Drobnější SEO úkoly, které vyplynuly z auditu. Lze nasadit společně s hlavní migrací (efektivnější) nebo samostatně. Každý má samostatný dopad a samostatné akceptační kritérium.

03·A · Tech SEO / PPC

PPC LP varianty — přidat noindex,follow

Tři URL pod /pronajimam/ jsou pravděpodobně PPC landing pages (variantní testy „strach / klid / USP"). SEMRUSH potvrzuje 0 organic — neztratíme nic. Aktuálně ale tyto LP indexují a kanibalizují hlavní /pronajimam/naceneni-najmu.

Co udělat

Přidat do <head> každé z URL:

<meta name="robots" content="noindex,follow">
Kde (3 URL)
  • /pronajimam/naceneni-najmu-camp-strach
  • /pronajimam/naceneni-najmu-camp-klid
  • /pronajimam/naceneni-najmu-usp
Akceptační kritérium

Tři URL vrací status 200 OK, ale v zdrojovém kódu obsahují noindex,follow. Google je do 2 týdnů odstraní z indexu.

03·B · Hygiena sitemap

Odstranit ze sitemap.xml 11 URL, které vracejí 301

Sitemap.xml má obsahovat pouze 200 OK kanonické URL. Aktuálně v sitemap.xml je 11 URL, které vracejí 301 — Google z nich čte smíšený signál. Akce: ze sitemap odstranit, kanonickou URL (cíl 301) tam nechat (nebo přidat, pokud chybí).

URL v sitemap (vrací 301) — ODSTRANIT Kanonická URL (200) — ponechat / přidat
/radce/odstehovani-najemnika/radce/jak-vystehovat-najemnika
/radce/chystate-se-pronajimat-pres-airbnb-…/radce/dlouhodoby-vs-kratkodoby-pronajem-bytu
/radce/jak-na-pojisteni-bytu-urceneho-k-pronajmu/radce/pojisteni-bytu
/radce/jak-na-pojisteni-bytu-v-najmu/radce/pojisteni-bytu
/radce/inflace-a-najemne/radce/inflacni-dolozka-v-najemni-smlouve
/radce/vyjednavani-o-zvyseni-najmu/radce/jak-na-zvyseni-najemneho-kompletni-prirucka-2025
/radce/jak-a-za-jakych-podminek-je-mozne-zvysit-najemne/radce/jak-na-zvyseni-najemneho-kompletni-prirucka-2025
/radce/jak-to-chodi-s-vyuctovanim/radce/kompletni-pruvodce-vyuctovanim-sluzeb
/radce/jak-resit-pronajem-bytu/radce-kategorie/jak-pronajimat-byt
/radce/vyplati-se-pronajimat-studentum/radce/pronajem-studentum
/radce/prepis-energii/radce/prepis-energii-jak-na-to viz 03·C
Akceptační kritérium

Po nasazení sitemap.xml obsahuje pouze URL se status 200. Verifikace: Screaming Frog v List mode na všech URL ze sitemap, žádná nesmí vrátit 3xx/4xx.

03·C · Tech SEO

Opravit redirect chain /radce/prepis-energii

URL /radce/prepis-energii aktuálně prochází přes dva 301 hopy před dosažením finálního cíle (chain: 301 → 301 → 200). Na každém hopu se ztrácí ~10–15 % autority. Fix: nahradit první 301 přímo na finální target.

Aktuální stav (chain)

/radce/prepis-energii
→ 301 → /radce/prepis-energii-?
→ 301 → /radce/prepis-energii-jak-na-to

→ 200

Cílový stav

/radce/prepis-energii
→ 301 → /radce/prepis-energii-jak-na-to
→ 200

Akceptační kritérium

Jediný 301 hop. Curl test:
curl -IL /radce/prepis-energii
vrací sekvenci 301 → 200 (žádné dva 301).

03·D · Bug fix

Typo v meta title · ČB cenová mapa

Stránka cenové mapy nájemného pro České Budějovice má v <title> a pravděpodobně i v H1 překlep „Česjké" místo „České". Jde o čistě obsahový bug, nemá SEO dopad žádný velký, ale je vidět v SERPu.

URL

/cenova-mapa-najemneho/cenova-mapa-najemneho-ceske-budejovice

Co opravit

Najít text „Česjké Budějovice" v title, H1 (případně dalším obsahu) a nahradit za „České Budějovice".

Akceptační kritérium

Title stránky: „Cenová mapa nájemného České Budějovice – Ideální nájemce". Po nasazení Google během 1–3 dnů aktualizuje SERP snippet.

03·E · Hreflang

Hreflang tagy pro CZ/EN páry

Dvě dvojice stránek mají českou i anglickou verzi, ale chybí hreflang tagy. Bez nich Google může českým uživatelům servírovat EN verzi a naopak. Implementace je triviální — pár řádků do <head> obou stránek.

Pár 1
  • /stehovani-krok-za-krokem (CS)
  • /stehovani-krok-za-krokem-en (EN)
Pár 2
  • /podklady-pro-urady (CS)
  • /podklady-pro-urady-en (EN)
Akceptační kritérium

Obě stránky v páru obsahují vzájemně se odkazující hreflang tagy v <head> + x-default.

Kód k vložení do <head> obou stránek
<link rel="alternate" hreflang="cs" href="https://idealninajemce.cz/stehovani-krok-za-krokem" />
<link rel="alternate" hreflang="en" href="https://idealninajemce.cz/stehovani-krok-za-krokem-en" />
<link rel="alternate" hreflang="x-default" href="https://idealninajemce.cz/stehovani-krok-za-krokem" />

(Pro druhý pár analogicky s URL /podklady-pro-urady & -en.)