Lokální schémata pro SEO optimalizaci

Proč řešit lokální schémata a čeho tím dosáhnete

Lokální schémata LocalBusiness, Service a vlastnost areaServed jsou klíčovými prvky GEO – lokální a geografické optimalizace. Umožňují strojům (vyhledávače, LLM, mapové systémy, asistenti) porozumět, kdo jste, co nabízíte a kde to nabízíte. Správně navržená datová vrstva zvyšuje pravděpodobnost zobrazení rozšířených výsledků (rich results), přesnější směrování uživatelů a citovatelnost dat v odpovědích AI.

Architektura dat: vztahy mezi LocalBusiness, Service a AreaServed

  • LocalBusiness popisuje fyzickou entitu (provozovnu, pobočku) s pevnou vazbou na místo: adresa, otevírací hodiny, telefon, geolokace.
  • Service popisuje nehmotnou nabídku (diagnostika, doručení, montáž), která může, ale nemusí být vázána na fyzickou provozovnu.
  • areaServed (na LocalBusiness, Service nebo Offer) definuje geografický rozsah pokrytí – město, okres, stát, PSČ, polygon, případně jazyková nebo segmentová omezení.

Doporučený přístup: modelujte LocalBusiness jako „kořen“ lokální entity a Service jako „poduzly“ nabídky. areaServed definujte na nejnižší úrovni, kde se rozsah skutečně liší (často přímo na Service nebo Offer).

Kritické prvky LocalBusiness (minimální pole)

  • Identita: name, legalName, sameAs (autoritatativní profily), url.
  • Kontakty a NAP: address (PostalAddress), telephone (formát E.164), email (pokud relevantní).
  • Čas a dostupnost: openingHoursSpecification s validFrom/validThrough pro sezónnost.
  • Geografie: geo (GeoCoordinates), areaServed (pokud se liší od adresy), hasMap.
  • Kvalita a důvěryhodnost: image (alespoň 1200 px kratší hrana), priceRange, aggregateRating (pokud je ověřitelné), review (transparentní).
  • Typizace: specifikujte subtype (např. AutoRepair, Bakery, MedicalClinic) pro přesnější sladění s vertikálami.

Modelování Service: skládání nabídky a propojení na poptávku

  • Jádro služby: name, description, serviceType, termsOfService (pokud existují), isRelatedTo/isSimilarTo (pro interní propojování).
  • Cenotvorba: přes offersOffer/AggregateOffer s price, priceCurrency, availability, validFrom.
  • Dostupnost v prostoru: areaServed přímo na Service nebo Offer, případně serviceArea (pokud používáte ServiceChannel).
  • Kanály plnění: availableChannel (např. ServiceChannel s serviceUrl, servicePhone, serviceLocation).

areaServed: granularita a formáty

Vlastnost areaServed je polymorfní. Podporuje několik typů – vyberte ten, který nejlépe vystihne reálné pokrytí:

  • Text/ISO kód: „SK“, „Bratislavský kraj“, „811 01“.
  • AdministrativeArea/City/PostalAddress: vázáno na Place nebo PostalAddress s addressLocality, addressRegion.
  • GeoShape: circle, box, polygon (např. distribuční zóna). V náročných případech kombinujte s hasPart/isPartOf.

Praktická taktika: pro městské služby použijte AdministrativeArea nebo City; pro doručování s pevným rádiem použijte GeoShape.circle; pro specifické čtvrti použijte polygon s dokumentovaným zdrojem hranic.

Nejčastější modelové situace a řešení

  1. Jedna provozovna = jedno LocalBusiness, více služeb = více Service, sdílejí stejný areaServed.
  2. Více poboček ve stejném městě: každá pobočka má vlastní LocalBusiness (unikátní NAP/geo), služby mohou být shared (stejný @id) nebo duplicated with context (pokud se liší cenou či oblastí).
  3. Field-service bez provozovny (pouze výjezdy): použijte LocalBusiness s address (administrativní sídlo), ale klíčovou geodostupnost řešte přes Service.areaServed + GeoShape.
  4. Jazykové/legislativní rozdíly: doplňte inLanguage v textových uzlech a udržujte verze nabídky podle applicableLegislation/audience.

Kontrolní seznam kvality dat

  • Nevynechávejte NAP konzistenci (Name–Address–Phone) mezi webem, mapami a schématem.
  • Souřadnice (WGS84) ověřte vůči centrálnímu bodu provozovny; vyhněte se středu ulice nebo budovy nesprávného vchodu.
  • Otevírací hodiny uvedte jako strukturu (den–čas), nikoli jako volný text.
  • areaServed držte co nejblíže vrstvě, kde se mění – nepublikujte jej globálně, pokud to není pravda.
  • Obrázky musí být reprezentativní, s poměrem stran vhodným pro náhledy (např. 4:3 nebo 16:9).

Příklad: LocalBusiness pro servis jízdních kol (jedna pobočka)

{ "@context":"https://schema.org", "@type":"BicycleStore", "@id":"https://example.sk/pobocka/stare-mesto#id", "name":"CYKLOFIX Staré Město", "url":"https://example.sk/pobocka/stare-mesto", "image":["https://example.sk/img/fasada.jpg"], "telephone":"+421212345678", "priceRange":"€€", "address":{ "@type":"PostalAddress", "streetAddress":"Suché mýto 1", "addressLocality":"Bratislava", "postalCode":"811 03", "addressRegion":"Bratislavský kraj", "addressCountry":"SK" }, "geo":{ "@type":"GeoCoordinates", "latitude":48.1486, "longitude":17.1077 }, "openingHoursSpecification":[ { "@type":"OpeningHoursSpecification", "dayOfWeek":["Monday","Tuesday","Wednesday","Thursday","Friday"], "opens":"09:00", "closes":"18:00" }, { "@type":"OpeningHoursSpecification", "dayOfWeek":"Saturday", "opens":"10:00", "closes":"14:00" } ], "sameAs":["https://g.page/r/CYKLOFIX","https://www.facebook.com/cyklofix"], "areaServed":{ "@type":"City", "name":"Bratislava" } }

Příklad: Service s nabídkou, cenou a areaServed (radius)

{ "@context":"https://schema.org", "@type":"Service", "@id":"https://example.sk/sluzby/mobilny-servis#id", "name":"Mobilní servis jízdních kol", "serviceType":"On-site repair", "provider":{ "@id":"https://example.sk/pobocka/stare-mesto#id" }, "areaServed":{ "@type":"GeoShape", "circle":"48.1486 17.1077 10km" }, "availableChannel":{ "@type":"ServiceChannel", "servicePhone":" +421212345678", "serviceUrl":"https://example.sk/objednat" }, "offers":{ "@type":"Offer", "price":39.00, "priceCurrency":"EUR", "availability":"https://schema.org/InStock", "validFrom":"2025-01-01" } }

Příklad: Více poboček, jedna sdílená služba s rozdílným areaServed

{ "@context":"https://schema.org", "@graph":[ { "@type":"LocalBusiness", "@id":"https://example.sk/pobocka/ruzinov#id", "name":"CYKLOFIX Ružinov", "address":{ "@type":"PostalAddress", "streetAddress":"Tomášikova 10", "addressLocality":"Bratislava", "postalCode":"821 01", "addressRegion":"Bratislavský kraj", "addressCountry":"SK" } }, { "@type":"LocalBusiness", "@id":"https://example.sk/pobocka/petrzalka#id", "name":"CYKLOFIX Petržalka", "address":{ "@type":"PostalAddress", "streetAddress":"Jiráskova 2", "addressLocality":"Bratislava", "postalCode":"851 01", "addressRegion":"Bratislavský kraj", "addressCountry":"SK" } }, { "@type":"Service", "@id":"https://example.sk/sluzby/sezonne-uskladnenie#id", "name":"Sezónní uskladnění kola", "serviceType":"Storage", "provider":{ "@id":"https://example.sk#org" }, "offers":[ { "@type":"Offer", "price":25, "priceCurrency":"EUR", "areaServed":{ "@type":"City", "name":"Bratislava" } }, { "@type":"Offer", "price":30, "priceCurrency":"EUR", "areaServed":{ "@type":"AdministrativeArea", "name":"Bratislavský kraj" } } ] } ] }

Polygónové zóny a doručování: GeoShape.polygon

Pokud vaše služba pokrývá nepravidelnou oblast (např. doručování v rámci historického centra), použijte GeoShape.polygon. Souřadnice zapisujte v pořadí „long lat“ nebo „lat long“ konzistentně s implementací – udržujte dokumentovaný formát v technické poznámce.

{ "@context":"https://schema.org", "@type":"Service", "name":"Expresní doručení v centru", "areaServed":{ "@type":"GeoShape", "polygon":"48.1469 17.1035 48.1462 17.1120 48.1415 17.1110 48.1421 17.1022 48.1469 17.1035" } }

Vícejazyčnost a regionální varianty

  • Každou jazykovou mutaci URL označte link rel=“alternate“ hreflang. V JSON-LD uvádějte inLanguage tam, kde se obsah mění.
  • Omezení nabídky na zemi/jurisdikci vyjádřete přes areaServed (země) a případně applicableLegislation (odkaz na předpis).

Propojení na entity a ekosystémová ID

Kde je to možné, používejte stabilní identifikátory:

  • @id pro každý uzel (LocalBusiness, Service, Offer) – ideálně kanonické URL s fragmentem #id.
  • sameAs na autoritativní profily (mapy, profesní registry, odvětvové seznamy).
  • identifier pro interní/externí kódy (IČO, DIČ, provozní kód).

Měření, validace a údržba

  • Validace schémat: pravidelně ověřujte strukturu (syntaxi) a logickou konzistenci (otevírací hodiny, geo, dostupnost).
  • Monitoring konzistence NAP: porovnávejte web vs. mapy vs. citace; sledujte „link rot“ u profilů v sameAs.
  • Audit areaServed: minimálně kvartálně kontrolujte soulad s reálnými zónami (změny PSČ, stavební omezení, změny doručovacích partnerů).
  • Experimenty: A/B testujte přesnost dopyt → pobočka vs. dopyt → služba (interní navigace a microcopy v produktových stránkách).

Antivzory a časté chyby

  1. Duplicitní LocalBusiness uzly pro tutéž pobočku (rozbíjí signály autority; řešení: konsolidace a přesměrování 301).
  2. Volný text místo struktury (otevírací hodiny v běžném textu, „celé město a okolí“ bez areaServed).
  3. Nepravdivé pokrytí (globální areaServed = „SK“ při reálném pokrytí jen v okrese; vede k nespokojenosti uživatelů a horšímu mapování).
  4. Bez @id – nemožné stabilně citovat; ztěžuje sdílení schémat mezi stránkami.

Proces zavedení v organizaci

  1. Inventarizace poboček a NAP dat, sladění s mapovými profily.
  2. Definice služeb (katalog Service) s atributy a kanály plnění.
  3. Geografický model: výběr reprezentace (City/AdministrativeArea/GeoShape) pro každou službu/nabídku.
  4. Implementace JSON-LD s kanonickými @id a sameAs.
  5. Validace a monitoring + plán údržby (změny cen, hodin, zón).

Rozšířená propojen