Toate articolele
·de · Manilla Services·SEOStructured DataJSON-LDSchema.orgRich Results

Cum elimini duplicate JSON-LD: WebPage ×2, CollectionPage ×2, FAQPage ×2

Un audit de schema.org a arătat WebPage și CollectionPage duplicate pe zeci de pagini — invizibil în cod, vizibil în Rich Results Test. Cum le-am centralizat într-un singur @graph.

Cum elimini duplicate JSON-LD: WebPage ×2, CollectionPage ×2, FAQPage ×2

Problema

Rich Results Test a semnalat pe fiecare pagină internă un WebPage suplimentar în plus față de cel emis explicit. Pe /proiecte apărea CollectionPage de două ori. Pe /despre-noiAboutPage de două ori. Pe paginile de serviciu apărea și FAQPage de două ori.

Nu era o problemă vizibilă în cod. Fiecare pagină avea un JsonLd explicit, curat, cu structura @graph. Duplicarea venea din altă parte.

Cauza (patru surse comune)

Sursa 1: siteGraph global emis în layout

Layout-ul RO și EN emit un @graph comun cu Organization, WebSite și — asta era greșeala — un WebPage generic cu @id: pageUrl (unde pageUrl era URL-ul home). Layout-ul rulează pe fiecare pagină, deci WebPage-ul home era emis pe /proiecte, /despre-noi, /blog, orice.

Fix: scot WebPage din siteGraph.ts complet. Emit WebPage explicit doar acolo unde e nevoie (home RO, home EN), cu @id local (/#webpage sau /en#webpage).

Sursa 2: multi-type [WebPage, CollectionPage] + un al doilea CollectionPage separat

Pe /proiecte, JSON-LD-ul avea trei noduri: un WebPage tipizat multi-type ca [WebPage, CollectionPage], un BreadcrumbList, și un al doilea CollectionPage cu @id: #collection care ținea hasPart. Rich Results Test le vedea ca două CollectionPage-uri (chiar dacă @id-urile difereau).

Fix: colapsez în două noduri — un singur CollectionPage cu hasPart inline, plus BreadcrumbList. Elimin nodul #collection duplicat.

Sursa 3: multi-type [WebPage, AboutPage] + un al doilea AboutPage

Aceeași greșeală ca (2), doar pe /despre-noi. Nodul principal era [WebPage, AboutPage], iar aboutLd de la sfârșitul graf-ului adăuga un al doilea AboutPage cu @id fără fragment.

Fix: reduc la un singur AboutPage (care e subtype de WebPage, deci nu am nevoie de multi-type). Elimin aboutLd.

Sursa 4: componente cu auto-emit

Componente ca <FaqList> și <Breadcrumb> emiteau default JSON-LD propriu (FAQPage, BreadcrumbList) chiar dacă graf-ul centralizat al paginii îl definea deja.

Fix: pattern emitSchema={false} pe componente atunci când pagina definește schema în @graph centralizat.

Verificare

Rich Results Test (search.google.com/test/rich-results) — încarcă URL-ul, verifică că fiecare @type apare o singură dată. Search Console → Enhancement arată eventualele erori după re-indexare (5-14 zile pentru re-crawl).

Rezultatul


Asta e exact tipul de audit tehnic pe care îl facem în Audit & fix SEO / AI-SEO — audit real cu Rich Results Test și fix-uri direct în cod, nu PDF-uri de recomandări. Vezi și retainerul de SEO continuu pentru monitoring continuu.