Znalostní wiki OKF
struktura / content-model
Kapitola

Obsahový model a redakční postup

Obsah se modeluje jako entity s poli a vztahy, ne jako screenshot stránky v CMS. Model podle podoby stránky duplikuje a brání publikování do víc kanálů.

strukturaobsahový modelcmsheadlessentityredakční postupCOPENaposledy aktualizováno 14. června 2026

Editor otevře v CMS typ „Stránka O nás". Vyplní pole hero-nadpis, nahraje hero-foto, napíše blok-1, blok-2, přidá CTA. Hotovo. Za týden píše článek na blog a chce u něj fotku autora, kterou nahrával minulý měsíc do jiné stránky. Nahraje ji znovu. Pak se autor přejmenuje, a editor obíhá osm stránek a opravuje jméno na každé zvlášť.

Tahle scénka je celý problém v malém. Web je modelovaný jako sada stránek, kde každá stránka vlastní svůj obsah. Foto, jméno, bio nejsou samostatné věci, jsou to políčka uvnitř jedné konkrétní stránky. A protože tam bydlí, musí se duplikovat všude, kde jsou potřeba znovu. Obsahový model je rozhodnutí to obrátit. Obsah není stránka, je to entita s poli a vztahy, a stránka je jen jeden způsob, jak ji zobrazit.

Tahle kapitola je technický protějšek teze, že web je produkt, ne sada stránek. O úroveň níž to platí dál: produkt ≠ stránky, takže obsah ≠ stránky. Pojmy jako headless nebo typ obsahu tu znovu nevysvětlujeme, jednovětou definici má společný slovník. Tady jde o to, jak obsah modelovat.

Entita má pole, stránka má layout

Typ obsahu je kontejner složený z polí. Každé pole má datový typ: text, formátovaný text, číslo, datum, pravda/nepravda, mediální podklad, JSON, a hlavně reference, která vytváří vztah mezi dvěma typy. Když modelujete blog, nemodelujete „stránku článku". Modelujete entitu článek s poli titulek, perex, tělo, datum, autor, a entitu autor s poli jméno, bio, foto. Stránka je až vykreslení té entity.

Model podle stránky dělá pravý opak. Typ „homepage" má pole pro hero, sekci s benefity a CTA blok, všechno svázané dohromady, protože model zrcadlí layout. Layout vlastní obsah. To je důvod té duplikace ze scénky výš: foto autora není entita, je to políčko uvnitř stránky, takže žije tolikrát, na kolika stránkách se objeví.

Modulární model to obrací. Místo typů, které reprezentují stránky, máte malé znovupoužitelné typy, které se do stránek skládají. Obsah je nezávislý na tom, kde se zobrazí. Sara Wachter-Boettcher tomu v Content Everywhere dala jméno. Obsah naformátovaný ve WYSIWYG editoru je navržený k zobrazení jediným způsobem, na desktopu. Vezměte mu formát a rozpadne se na nesouvislé bloky textu. Foto a popisek, které spolu na desktopu vyprávěly příběh, se na mobilu rozpadnou na nesouvisející obrázek a kus textu. Strukturovaný obsah má naopak zřetelné části, konzistentní kus od kusu. Ta samá vlastnost je předpokladem přístupnosti: alt text jako pole, semantické části místo jednoho blobu.

Reference, nebo komponenta

Jakmile modelujete entitami, narazíte na rozhodnutí, které se v každém schématu opakuje: tohle má být reference, nebo komponenta?

Reference je vztah na sdílenou entitu, jeden zdroj pravdy. Contentful to ukazuje na učebnicovém příkladu: typ post s poli titulek, tělo, metadata, a typ author se jménem, biem a fotem. Do post přidáte referenční pole „Author info", a každý článek napořád odkazuje na téhož autora místo aby si jeho jméno a bio kopíroval. Přejmenuje se autor? Opravíte ho na jednom místě a propíše se do všech článků. To je přesně to, co scénka na začátku neměla.

Komponenta je naopak znovupoužitelný blok, který se skládá do stránky a žije uvnitř ní. CTA blok, carousel, citace. Nemá vlastní život mimo stránku, nikdo na něj neodkazuje jako na entitu, je to stavební kámen layoutu. Pravidlo zhruba zní: co má existovat samostatně a sdílet se napříč obsahem, je reference (autor, produkt, lokalita). Co je kus skládačky konkrétní stránky, je komponenta. Splést si to bolí oběma směry. Z autora komponenta nadělá zase tu duplikaci. Z CTA bloku reference nadělá zbytečnou entitu, kterou nikdo nespravuje.

Sem patří i pole pro SEO: titulek, meta description, canonical jsou pole typu obsahu, ne dodatečně nalepená vrstva. A média jsou současně typ pole (mediální podklad) i vlastní typ obsahu s referencí do knihovny podkladů, což rozvádí média a podklady.

Obsah jako data, ne jako layout

Všechno tohle se dá shrnout do jednoho hesla: „treat content like data". Když zachytíte obsah nezávisle na prezentaci, přestane být majetkem jedné stránky a dá se použít kdekoli. NPR z toho udělalo princip jménem COPE, Create Once, Publish Everywhere. Vytvoříte a spravujete obsah na jednom místě a distribuujete ho všude přes API.

Není to teorie. COPE postavil Daniel Jacobson, tehdy Director of Application Development v NPR. NPR API šlo živě v roce 2008, princip COPE publikovali 2009. Připisuje se mu 100% růst zobrazení stránek během jednoho roku a zrychlení vstupu NPR do mobilu, jeden strukturovaný obsah dodávaný na web, mobil, sociální sítě i partnerské vydavatele bez duplikace. Jacobson pak odešel budovat Netflix API.

Tady stojí za to oddělit dva pojmy, které se pletou. Headless CMS je architektura dodání. Oddělí prezentační „hlavu" od „těla" obsahu a strukturovaný obsah poskytuje přes API do libovolného kanálu. Tradiční provázané CMS je naproti tomu navržené primárně pro web, jeden kanál. Ale headless a strukturovaný obsah nejsou totéž. Headless je o tom, jak se obsah dodá. Obsahový model je o tom, jak je obsah uvnitř postavený. Jde mít strukturovaný obsah v tradičním CMS, Drupal s COPE je důkaz, i nestrukturovaný blob v headless CMS. Tahle entita je vstupem do renderování, ať je statické, dynamické, nebo hybridní.

Redakční postup má stavy, ne jen tlačítko publikovat

Modelováním typů to nekončí. Obsah žije v čase a prochází fázemi: draft → review → publish → archive. Draft je rozepsaný, review čeká na schválení, publish je živý, archive je stažený z webu, ale nesmazaný. Nejčastěji chybí ten poslední stav. Obsah se buď maže (a mizí historie i URL), nebo zůstává donekonečna živý, protože ho nemá kdo stáhnout. Kdo a kdy stav archive reálně použije, řeší správa a údržba přes politiku vyřazování a datum revize.

Ke stavům patří role a oprávnění: kdo smí editovat, kdo schvaluje, kdo publikuje. A patří sem preview, náhled obsahu před zveřejněním. To je u headless modelu reálná bolest, ke které se hned dostaneme. Strukturovaný obsah s redakčním postupem je taky to, co dělá redesign snesitelným: rozhodnutí, co sloučit, co přesměrovat a co zahodit, je snazší, když je obsah entita se stavem, ne stránka, kterou buď máte, nebo nemáte.

Co se na headless rozbíjí

Strukturovaný obsah má cenu, kterou nesmíme zamlčet. Editor v headless modelu vyplňuje pole ve formuláři a nevidí, jak výsledek vypadá. Ztrácí vizuální kontext, který v tradičním CMS s WYSIWYG měl. A to není estetický nářek. Je to ztráta produktivity: pomalejší tvorba a víc nekonzistencí, protože člověk píše naslepo. Builder.io to pojmenoval bez obalu, „the problem with a headless CMS".

A druhá past hned vedle. Schéma nikdy nepředvídá všechny budoucí potřeby. Buď nadefinujete polí málo, a pak chodí nekonečné žádosti „přidejte pole na nový CTA, na carousel, na jiný layout", a každá je požadavek na vývojáře. Nebo polí moc, a každé je víc kódu, dokumentace, školení a vnořených formulářů. Vývojář se stává úzkým hrdlem, zásobník práce přetéká požadavky na obsah. Není náhoda, že 52 % týmů potřebuje rozsáhlé školení, aby headless CMS zvládlo. Myšlení ve strukturách lidem mimo vývoj nejde přirozeně. Vizuální editace nad strukturovaným modelem je rozvíjející se kompromis, ne hotová odpověď.

Není to zbytečné pro malý web?

„Entity, reference, schémata, to je aparát pro NPR, my máme pětistránkovou vizitku." A je to pravda. Pro pět stránek se stejným vzhledem je tradiční CMS s WYSIWYG efektivnější. Modelovat entity je tam zbytečně těžký aparát, a chybějící preview vás bude jen zdržovat.

Co se neškáluje, je otázka. „Jaké typy obsahu na webu reálně existují a co se opakuje?" platí pro vizitku stejně jako pro NPR. Když máte na webu tři autory a každý píše, jste přesně na hranici, kde se reference vyplatí, i kdyby zbytek modelu zůstal jednoduchý. Stejně jako u informační architektury a webu jako produktu: škáluje se aparát, ne otázka. Které typy obsahu reálně existují, odhalí už inventura v discovery.

Praktický checklist

Tři typické záměny

Zdroje

Obsahový model je technický protějšek webu jako produktu a staví na informační architektuře, která je páteří, na níž typy obsahu visí. Vstup do něj dodává inventura v discovery, pojmy sjednocuje slovník. Média jsou jeden z typů obsahu, viz média a podklady, SEO pole jsou jeho součástí, viz SEO, a hotová entita je vstupem do statického, dynamického nebo hybridního renderování. Redakční postup draft → review → publish má technický protějšek v Gitu a CI/CD: Git-based CMS ukládá nepublikovanou změnu jako commit a PR a vede ji přes preview a review, ne přímo do produkce. A protože jen strukturovaný, na layoutu nezávislý obsah umožní COPE (jeden obsah na web, e-mail, RSS i sociální sítě), začíná marketingová distribuce právě v obsahovém modelu, ne až u tlačítka „sdílet". Stejné rozlišení typů obsahu je předpoklad segmentace reportingu podle typu stránky v analytice: bez rozlišení podle typu stránky v obsahovém modelu ukazuje dashboard jen průměr, který neplatí nikde.