Problema, kurią daugelis ignoruoja iki paskutinės minutės
Jei turi naujienų portalą ant SPA (Single Page Application) architektūros – React, Vue, Angular, nesvarbu – ir stebi, kaip tavo straipsniai tiesiog nepasirodo „Google News” arba pasirodo po kelių dienų, žinok: tai ne atsitiktinumas. Tai konfigūracijos problema, kurią galima išspręsti.
„Google News” robotas nėra toks kantrus kaip pagrindinis Googlebot. Jis nenori laukti, kol JavaScript suras, sugeneruos ir atvaizduos turinį. Jis nori HTML. Dabar. Iš karto.
SSR arba prerendering – tai ne pasirinkimas, tai būtinybė
Pirmas ir svarbiausias žingsnis – server-side rendering (SSR) arba bent jau dinaminis prerendering. Jei naudoji Next.js ar Nuxt – puiku, turi viską iš dėžutės. Jei ne, reikia galvoti apie sprendimus kaip Prerender.io arba savarankiškai sukonfigūruotą puppeteer-based prerendererį.
Esmė paprasta: kai „Google News” robotas atkeliauja į tavo straipsnio URL, serveris turi grąžinti pilnai sugeneruotą HTML su visu turiniu, antrašte, data, autoriumi. Ne tuščią div’ą, laukiantį JavaScript.
Kaip patikrinti? Naudok curl -A "Googlebot" https://tavodomenas.lt/straipsnis ir žiūrėk, ką gauni atgal. Jei matai turinį – gerai. Jei matai tik JavaScript bundle nuorodas – problema akivaizdi.
Struktūrizuoti duomenys, kurie iš tikrųjų veikia
„Google News” myli NewsArticle schema markup. Tai ne kažkoks papildomas bonusas – tai signalas, kad tavo turinys yra žurnalistinis, aktualus ir vertas indeksavimo naujienų sraute.
Kiekvienas straipsnis turi turėti JSON-LD bloke:
headline– straipsnio antraštė (iki 110 simbolių)datePublishedirdateModified– tikslūs ISO 8601 formataiauthor– realus žmogus, ne „Redakcija”image– bent vienas aukštos kokybės paveikslėlispublisher– su organizacijos logotipu
SPA kontekste svarbu, kad šis JSON-LD būtų renderinamas serverio pusėje, o ne įterpiamas per JavaScript po puslapio užkrovimo. Priešingu atveju robotas jo tiesiog nematys.
Sitemap – ne tik failas, o greičio įrankis
Naujienų portalams reikia atskiro Google News Sitemap – ne paprasto sitemap.xml. Šis failas turi būti atnaujinamas realiu laiku, kiekvieną kartą, kai publikuojamas naujas straipsnis.
Naujienų sitemape galioja griežta taisyklė: įtraukiami tik per paskutines 48 valandas publikuoti straipsniai. Tai reiškia, kad tavo sistema turi automatiškai generuoti šį failą dinamiškai – ne kartą per dieną, o iš karto po publikavimo.
Taip pat nepamirštama detalė – <news:publication_date> turi atitikti tikrąjį publikavimo laiką, o ne puslapio generavimo laiką. Šis skirtumas kartais kainuoja indeksavimą.
Canonical, hreflang ir kitos smulkmenos, kurios nėra smulkmenos
SPA dažnai kenčia nuo duplicate content problemų – tas pats straipsnis pasiekiamas per kelis URL variantus. Canonical tagų valdymas turi vykti serverio pusėje, kiekvienam URL generuojant teisingą canonical nuorodą.
Jei portalas daugiakalbis – hreflang atributai taip pat turi būti HTML <head> dalyje nuo pat pirmo serverio atsakymo. Ne po sekundės, kai JavaScript apsisprendžia, kokia kalba rodomas puslapis.
Kai viskas sukonfigūruota – kaip žinoti, kad veikia?
Google Search Console turi atskirą „News” sekciją. Ten matysi, kurie straipsniai indeksuoti, kokie klaidos pranešimai rodomi ir ar tavo sitemap tinkamai nuskaitomas. Tai tavo pagrindinis monitoringo įrankis.
Papildomai verta stebėti indeksavimo greitį – nuo publikavimo iki pasirodymo „Google News” idealiu atveju turėtų praeiti ne daugiau kaip 15–30 minučių. Jei laukiama ilgiau, kažkur yra kliūtis.
Greitis sprendžia viską – ir tai tiesiogine prasme
Naujienų žaidimas yra greičio žaidimas. Straipsnis apie įvykį, kuris pasirodo „Google News” po 6 valandų, jau nėra naujiena – tai istorija. Teisingai sukonfigūruotas SPA su SSR, realiu laiku atnaujinamais sitemapais ir tiksliais struktūrizuotais duomenimis gali konkuruoti su bet kokiu tradiciniu CMS. O kartais – ir jį aplenkti.
Techninė pusė čia nėra kliūtis. Ji yra pranašumas, jei žinai, kaip ją panaudoti. Ir dabar žinai.