Vygenerování statických HTML stránek z Reactu (SEO)

Re:Vygenerování statických HTML stránek z Reactu (SEO)
« Odpověď #15 kdy: 07. 11. 2025, 15:44:40 »
Já se příznám, že jsem přesně ten další kus hnoje, co píše Wangarad, nečetl důkladně, po zkušenostech s jeho jinými názory a příspěvky.

A nechce se mi tím zabývat, ale co v podstatě navrhuje ten nabubřelý postiženec Wangarad je, že do mojí vymazlené React.js aplikace, dělané, aby obstála v naprosto těžké konkurenci na Internetu, a na které dělám už čistě 4 člověkoměsíce, si prý mám dát jakési 2 skripty v PHP. Načež já jsem tady podle něj ten blbec, protože jednoduchou věc dělám prý složitě.

Proč bych psal 2 skripty v PHP, když můžu napsat jednu util funkci třeba pro Puppeteer, kde pro každou page, pro kterou to potřebuju, mi to pro crawlera vygeneruje HTML page.

Každopádně, nejlepší kandidát je Next.js, ale já jsem si to důkladně zkoušel, a kromě toho, že bych musel kus věcí přepsat, tak to má sadu issues, které mi vadí, a kvůli kterým jsem se na to vyprdnul, protože tomu nevěřím.

Takže zatím připadá v úvahu spíše Puppeteer, a potom si v Express sám zjistím, jestli je http request od crawlera, a pokud ano, podstrčím mu vygenerovanou HTML verzi. Bude to čistě obezlička pro hloupé crawlery jako má Seznam.cz, user to nikdy neuvidí, ani nemůže - protože když s k té vygenerované HTML verzi přidá React bundle.js, tak ona, logicky, přestane fungovat, protože ani nemá "root" do kterého se chce vyrenderovat.
« Poslední změna: 07. 11. 2025, 15:51:30 od registrovany123 »
Od roku 2005 se zabývám SW Vývojem, načež od roku 2015 je to i mé povolání. Specializuji se na Javu, a v posledních letech i na Python a intranetové aplikace v Reactu. Delám v AWS Cloudu.


Re:Vygenerování statických HTML stránek z Reactu (SEO)
« Odpověď #16 kdy: Dnes v 10:01:50 »
Nemusíte přecházet na Next.js, SSG podporuje i spousta jiných frameworků.

Když budete posílat něco jiného robotům vyhledávače a něco jiného uživatelům, hodně riskujete, že vás vyhledávače úplně zablokují. A je jedno, že výsledek třeba vypadá stejně nebo že to neděláte se špatným úmyslem. Vyhledávač prostě detekuje, že je to rozdílné, tak to vyhodnotí jako pokus o podvod.

Re:Vygenerování statických HTML stránek z Reactu (SEO)
« Odpověď #17 kdy: Dnes v 10:13:10 »
Momentálně to mám řešeno tak, že když detekuju js-capable boty jako Google, Bing a pár dalších, tak vrátím normálně react. Tam po na-cachování fontů a dalších blbin trvá refresh na stránce 250ms, což myslím, že je výborný čas.

Kód: [Vybrat]
const JS_CAPABLE_BOTS = [
  process.env.INTERNAL_CRAWLER_BOT_USER_AGENT.toLowerCase(),
  "googlebot",
  "adsbot-google",
  "google-inspectiontool",
  "bingbot",
  "applebot",
  "petalbot",
  "bravebot",
  "ahrefssiteaudit",
];

A pokud to detekuje jiného bota (používám library isbot pro js), tak se result vyrenderuje přes puppeteer. Response trvá na mini serveru na Rosti.cz, co ma 0.5 jednotek CPU, asi 1.7s, což je dost, ale na druhou stranu, pro Seznam.cz a další boty je to lepší, než kdyby nic nebylo - je to jenom pro ně, pro nikoho jiného.

Případně když na Rosti.cz zapnu Production tier za 200,- Kc /mesic, tak potom response z puppeteer uz trva nejakych 350ms, coz je myslím si už docela dobrý čas.

Nemám motivaci jít do jiného frameworku, než je klaciský React, nevěřím tomu, že to nebude mít problémy.

Když už, tak plánuju přechod na mnohem menší Preact.
« Poslední změna: Dnes v 10:18:34 od registrovany123 »
Od roku 2005 se zabývám SW Vývojem, načež od roku 2015 je to i mé povolání. Specializuji se na Javu, a v posledních letech i na Python a intranetové aplikace v Reactu. Delám v AWS Cloudu.

Re:Vygenerování statických HTML stránek z Reactu (SEO)
« Odpověď #18 kdy: Dnes v 10:17:07 »
Já jsem ovšem nepsal o jiném frameworku, než je React. Existuje spousta frameworků nad Reactem, která to umí. Pochybuju, že nepoužíváte vedle Reactu nic jiného, třeba nějakou knihovnu na routování. A ta knihovna na routování dost možná má už podporu pro SSG v sobě.

Re:Vygenerování statických HTML stránek z Reactu (SEO)
« Odpověď #19 kdy: Dnes v 10:20:12 »
React Router používám, dokonce používám jeho loader, ale nevěřím te knihovně, nejen já si na některé věci stěžuju a to, že používám loader z Routeru, považuju za designovou chybu, kterou budu předělávat, protože je to takříkajíc "chlupaté".

Do této chvíle jsem nenašel řešení, které není oproti čistému reaktu "chlupaté". Nebudu si komplikovat život.
Od roku 2005 se zabývám SW Vývojem, načež od roku 2015 je to i mé povolání. Specializuji se na Javu, a v posledních letech i na Python a intranetové aplikace v Reactu. Delám v AWS Cloudu.