Editoriali Best-of-GEO mondiale - 6 pagine pubbliche al livello del Vehicle/NLT detail
Sprint conclusivo che porta tutte le pagine pubbliche editoriali (FAQ, Glossario, Guide, Podcast, News, Brand) allo stesso livello "Best-of-GEO mondiale" gia raggiunto su Vehicle e NLT detail. Schema.org strict, cross-link semantici, AI assist sull'intro paragraph.
Cosa cambia per il dealer
- Nuova sezione "Paragrafo introduttivo della pagina" in DealerMax /sito/pagine sui modali di FAQ, Guide, Glossario, Podcast, Brand, e in /sito/news
- Bottone "Genera con AI" che produce un draft contestuale (counter live 0/600, modificabile prima di salvare)
- Costo: 1 chiamata AI_SITE_TEXT per generazione (consume_service)
- Se il dealer non scrive niente, fallback dinamico generato live a ogni request: totale items + top categorie/brand + citta dealer
Best-of-GEO segnali tecnici aggiunti su tutte le 6 pagine
FAQ - 40 mentions DefinedTerm cross-link al glossario
Parser regex \b boundary case-insensitive sui 212 termini glossario, scan su question+answer concatenate. AI Overviews vedono FAQPage -> DefinedTerm come grafo semantico. Question.@id univoci con url anchor (#slug) per ogni domanda.
Guide - ItemList con Article completi + mentions DefinedTerm sul body
Listing: ItemList non piu stub ma Article nodi completi (headline, datePublished, dateModified, author, publisher, articleSection). Detail: parser su body_html cerca termini glossario, emette mentions DefinedTerm nell'Article/HowTo. Test live: 18 mentions su una guida di acquisto.
Podcast - PodcastEpisode.about={@id Vehicle} link semantico bidirezionale
Era stringa label, ora @id link. Vehicle.subjectOf back-ref al PodcastEpisode. Cross-link nel @graph che AI multimodali (Perplexity, ChatGPT browsing) seguono. Mentions DefinedTerm dal transcript.
News - NewsArticle espliciti + Brand sameAs Wikidata
Listing ItemList con NewsArticle nodi (headline, image, datePublished, dateModified, author, publisher) invece di stub. Detail NewsArticle.about Brand[] con sameAs Wikidata Q-number e parentOrganization (Stellantis Q29032 ecc.) per ogni brand riconosciuto - riusa _BRAND_WIKIDATA dict (38 brand top).
Brand detail - Wikidata sameAs + AggregateOffer brand-level
Test live: /brand-fiat emette Brand+Organization multi-type con sameAs Q27597 + parentOrganization Stellantis Q29032. /brand-bmw-milano emette ItemList 7 BMW + AggregateOffer brand-specific lowPrice=18.900€ highPrice=39.900€ offerCount=7 itemOffered=Brand. AI Overviews citano range "Fiat usate da Matarese da X a Y €".
Glossario - DefinedTerm.subjectOf FAQ correlate (parser categoria)
Schema DefinedTermSet listing con publisher Organization. DefinedTerm detail master gia esistente arricchito (additionalType, isAccessibleForFree, inLanguage, termCode).
Test runtime live (Matarese Cusago)
- /domande-frequenti: 200 + Last-Modified + 40 mentions DefinedTerm + speakable + isAccessibleForFree + intro 139 risposte
- /glossario: 200 + intro 212 termini, top categorie
- /guide: 200 + intro 22 guide; /guide/{slug}: HowTo + 18 mentions DefinedTerm
- /podcast: 200 + intro 11 episodi + brand top
- /news: 200 + intro 20 articoli + fonti; /news/{slug}: NewsArticle + isAccessibleForFree
- /brand-fiat: Brand+Organization + sameAs Q27597 + Stellantis Q29032
- /brand-bmw-milano: ItemList 7 + AggregateOffer 18.900-39.900€
Stack toccato: 5 repo (root migrations, apimax, core_api_v2, DealerMax, DealerWebsite). 2 nuove migration Supabase. 6 resolver apimax + 2 modelli + 6 endpoint Pydantic + 2 componenti Vue riusabili. Voto stimato Best-of-GEO globale: 9.85/10.