Průvodce SEO pro React: proč vykreslování na klientovi škodí indexaci, kdy zvolit SSR nebo předrenderování, jak nastavit meta značky v React 19 a zůstat čitelní pro AI.

Na této stránce
Stručně
React se na Googlu umisťovat může, ale běžná jednostránková aplikace odešle téměř prázdný soubor HTML a obsah zobrazuje až díky JavaScriptu, což zpomaluje indexaci a skrývá stránku před většinou AI crawlerů. Spolehlivé řešení je doručovat HTML ze serveru: předrenderovat statické stránky při sestavení nebo použít framework se serverovým vykreslováním (Next.js, React Router). Pak nastavte jedinečný titulek, popis a kanonickou značku pro každou URL, používejte skutečné odkazy a stavové kódy a ověřte, co dostávají roboti.
Chcete jít dál? Zeptejte se
Rychlý kvíz
Hodí se vám SEO a jak začít?
Sorank odpovídá vašim odpovědím
Vyzkoušejte to 3 dny na svém webu a zjistěte, kde stojíte na Googlu, v ChatGPT a v ostatních AI.
Spustit 3denní bezplatnou zkušební verzi3 dny zdarma, poté můžete kdykoli přestat. Garance výsledků nebo vrácení peněz do 90 dnů.
SEO pro React je práce na tom, aby aplikaci v Reactu vyhledávače a AI asistenti dokázali procházet, indexovat a pochopit. Samotný React je neutrální: problémy vznikají tím, že se vše vykresluje v prohlížeči. Google ve své příručce Základy SEO pro JavaScript potvrzuje, že aplikace v JavaScriptu zpracovává ve třech fázích (procházení, vykreslení, indexace) a že „vykreslování na serveru nebo předrenderování je pořád skvělý nápad, protože web zrychluje pro uživatele i crawlery a ne všichni roboti dokážou spouštět JavaScript.“
Aplikace v Reactu vytvořená jako jednostránková aplikace (SPA) odešle soubor HTML, který obsahuje málo víc než prázdný kořenový div a značku script. Prohlížeč stáhne JavaScript, spustí ho a teprve potom sestaví stránku. Crawler, který čte jen HTML, nevidí nic k indexaci: žádné nadpisy, žádný text, žádné odkazy.
Googlebot JavaScript spouští, ale v samostatném kroku: stránka se prochází, zařadí do fronty na vykreslení, vykreslí se v bezhlavém Chromiu a teprve potom se použijí vykreslené odkazy a obsah. Každý další krok je příležitostí k selhání (chyba skriptu, zablokované API, časový limit) a přidává zpoždění, než se nové stránky objeví ve vyhledávání. Náš průvodce SEO pro JavaScript podrobně popisuje tento postup a článek o indexaci v Google ukazuje, jak dostat stránky do indexu rychleji.
Ostatní roboti jsou méně trpěliví. Analýza Vercel z prosince 2024 The rise of the AI crawler zjistila, že „žádný z hlavních AI crawlerů v současnosti nevykresluje JavaScript“, a jmenovala GPTBot, ChatGPT-User, OAI-SearchBot, ClaudeBot a PerplexityBot. Stránka v Reactu vykreslovaná na klientovi je neviditelná pro ChatGPT, Claude a Perplexity, i když ji Google indexuje.
Tým Reactu dnes doporučuje začínat nové aplikace s frameworkem. Když 14. února 2025 ukončil podporu Create React App, napsal ve svém oznámení, že „vykreslování na serveru může zlepšit SEO“, a zároveň zvyšuje výkon, protože uživatelé musí stáhnout méně JavaScriptu, než uvidí obsah. Možnosti od nejslabší po nejsilnější pro vyhledávání:
| Přístup | Co dostanou roboti | Verdikt pro SEO | Typické nástroje |
|---|---|---|---|
| Vykreslování na straně klienta (SPA) | Prázdné HTML, obsah až po JavaScriptu | Slabé: opožděná indexace, neviditelné pro AI crawlery | Vite + React, staré projekty Create React App |
| Dynamické vykreslování | Předrenderované HTML jen pro roboty | Obejití, které Google nedoporučuje | Služby pro předrenderování, proxy s bezhlavým prohlížečem |
| Statické předrenderování při sestavení | Úplné HTML pro každou známou URL | Velmi dobré pro obsah, který se mění zřídka | Předrenderování v React Routeru, generátory statických webů, statický export Next.js |
| Vykreslování na serveru | Úplné HTML při každém požadavku, poté hydratace | Nejlepší pro velké nebo často aktualizované weby | Next.js, React Router (režim frameworku, dříve Remix) |
K dynamickému vykreslování je dokumentace Google jasná: byla „řešením, nikoli dlouhodobým řešením“ a Google místo ní doporučuje vykreslování na serveru, statické vykreslování nebo hydrataci. Pokud vybíráte framework, náš průvodce SEO pro Next.js podrobně popisuje režimy vykreslování, Metadata API a mapy webu.
Pokud migrace možná není, lze jednostránkovou aplikaci Google indexovat i tak, s péčí. Náš průvodce SEO pro jednostránkové aplikace uvádí podmínky; zbytek tohoto článku platí pro oba případy.
Od Reactu 19 (stabilní od 5. prosince 2024) mohou komponenty vykreslovat značky title, meta a link přímo a React je přesune do hlavičky dokumentu. Poznámky k vydání React 19 uvádějí, že tato nativní podpora funguje „s aplikacemi pouze na klientovi, streamovaným SSR a Server Components“. Před Reactem 19 dělaly totéž knihovny jako react-helmet nebo react-helmet-async a zůstávají užitečné pro přepsání výchozích hodnot pro jednotlivé trasy.
function ProductPage({ product }) {
return (
<>
<title>{`${product.name} | Shop`}</title>
<meta name="description" content={product.summary} />
<link rel="canonical" href={`https://example.com/p/${product.slug}`} />
<h1>{product.name}</h1>
</>
)
}Tři pravidla platí bez ohledu na metodu:
Pozor
V aplikaci běžící jen na klientovi existují značky vykreslené Reactem až poté, co se spustí JavaScript. Google je může přečíst po vykreslení; AI crawlery a většina robotů náhledů sociálních sítí ne. Vykreslování na serveru nebo předrenderování je vloží do HTML odpovědi pro všechny.
Google uvádí, že „může objevit vaše odkazy, jen pokud jsou to prvky HTML a mají atribut href“, a nedoporučuje používat fragmenty URL k načítání jiného obsahu. Většina problémů s SEO v Reactu pochází z detailů routování:
| Chyba | Účinek | Oprava |
|---|---|---|
| Navigace přes onClick na div nebo button | Google nenajde odkaz, který by sledoval | Použijte komponentu Link z routeru, která vykreslí a s href |
| Hashové trasy (/#/products) | Všechny stránky sdílejí jednu URL pro Google | Použijte trasy založené na historii (/products) s BrowserRouter nebo frameworkem |
| Zobrazení „nenalezeno“ vrácené se stavem 200 | Soft 404 v Search Console | Vraťte skutečnou chybu 404 ze serveru, nebo v čistém SPA přidejte noindex pomocí JavaScriptu |
| Přesměrování jen na straně klienta | Pomalá nebo přehlédnutá přesměrování | U přesunutých stránek použijte serverová přesměrování 301 nebo 308 |
| Obsah načítaný při kliknutí nebo posunu | Text pro crawler nikdy nevykreslen | Vykreslete hlavní obsah při načtení; stránkujte seznamy skutečnými URL |
| JavaScript nebo API blokované v robots.txt | Google vykreslí prázdnou stránku | Povolte skripty a koncové body API, které stránka potřebuje |
Abyste viděli, co Google vykresluje, použijte nástroj Kontrola URL v Search Console a zobrazte HTML testované stránky, nebo na klíčových šablonách spusťte kontrolu indexovatelnosti.
React nemá mapu webu zabudovanou. Generujte sitemap.xml při sestavení z tras a dat (nebo pomocí funkce mapy webu vašeho frameworku), uvádějte jen kanonické URL, které vracejí 200, a odkažte na ni v robots.txt. Generátor XML mapy webu funguje pro menší statické weby.
Strukturovaná data se řídí stejným pravidlem jako metadata: vykreslujte skript JSON-LD se stránkou, ze stejných dat, ideálně na serveru. Google může přečíst JSON-LD vložený JavaScriptem až po vykreslení, ale značkování chybějící v počátečním HTML chybí i u crawlerů, kteří nevykreslují. Použijte Article pro příspěvky, Product pro e-commerce, Organization pro celý web a BreadcrumbList pro hluboké stránky.
Tip
Spusťte curl na URL stránky a v jeho výstupu hledejte H1 a větu z textu. Pokud chybí, Google může stránku zaindexovat až po vykreslení, ale AI crawlery neuvidí nic.
Velké balíčky JavaScriptu zhoršují Core Web Vitals: prohlížeč musí kód stáhnout, zpracovat a hydratovat, než stránka začne reagovat, což tíží Largest Contentful Paint a Interaction to Next Paint, zejména na mobilu. Oznámení Create React App od týmu Reactu uvádí, že vykreslování na serveru posílá méně JavaScriptu a kompletní dokument HTML, což dává rychlejší First Contentful Paint a může snížit INP. Praktické páky: dělte kód podle tras pomocí React.lazy, u obrázků uvádějte rozměry, komponenty pod záhybem načítejte líně a kontrolujte skripty třetích stran.
GEO (optimalizace pro generativní vyhledávače) začíná přístupem. Protože AI crawlery stahují surové HTML, musí stránka v Reactu bez JavaScriptu doručit svůj text, nadpisy a JSON-LD, aby mohla být přečtena, shrnuta a citována. AI audit procházitelnosti webu ukáže, co tito roboti z vašich stránek dostávají. Druhou podmínkou je obsah, který stojí za citování: stránky, které odpovídají na jednu otázku v každé sekci, se zdroji, čísly a jasnými definicemi.
Obsahovou stránku automatizuje Sorank, náš produkt. Sorank je SEO a GEO software na autopilotu: jeho generátor článků pro blog napíše a publikuje 20, 60 nebo 120 článků měsíčně se zdroji, interními odkazy a obrázky a připojí se k vlastním technologiím, jako je web v Reactu nebo Next.js, přes webhook. Jeho SEO chat odpovídá v konverzaci na otázky o výkonu vašeho webu ve vyhledávání.

Stručně: posílejte HTML ze serveru, dejte každé URL vlastní titulek, popis a kanonickou značku a používejte skutečné odkazy. React se pak umisťuje jako každý jiný web a AI asistenti ho umějí přečíst. Chcete-li takový web zásobovat články psanými pro Google i AI, podívejte se na tarify Sorank, od $49 měsíčně s 3denní bezplatnou zkušební verzí.
Ne. React je knihovna uživatelského rozhraní a jeho SEO závisí na tom, jak se stránky vykreslují. Jednostránková aplikace vykreslovaná na klientovi odešle prázdné HTML a spoléhá na krok vykreslení u Google, což zpomaluje indexaci a skrývá obsah před AI crawlery. Stejný kód v Reactu podávaný s vykreslováním na serveru nebo statickým předrenderováním se umisťuje jako klasický web.
Ano. Googlebot vykresluje JavaScript pomocí aktuální verze Chromia, takže dokáže indexovat obsah, který aplikace v Reactu sestavuje v prohlížeči. Vykreslení probíhá až po procházení a může být opožděno nebo selhat, pokud skripty hlásí chyby nebo jsou blokována API. Kontrola vykresleného HTML nástrojem Kontrola URL v Search Console ukáže, co Google vidí.
V základních případech ne. React 19 vykresluje značky title, meta a link z libovolné komponenty a přesouvá je do hlavičky dokumentu. Knihovny jako react-helmet-async zůstávají užitečné, když potřebujete přepsat výchozí hodnoty pro celý web po jednotlivých trasách nebo podporovat starší verze Reactu.
VYZKOUŠELI SORANK PŘED VÁMI
