LocalBusiness Schema WordPress: Guida SEO Locale 2026

28 giugno 20267 minSEO
In breveAI

Guida tecnica per implementare LocalBusiness schema su WordPress: markup JSON-LD, plugin consigliati, gestione multi-location e validazione. Dati reali: +28% impression locali in 45 giorni.

Perché LocalBusiness schema è fondamentale per la SEO locale

Il markup schema LocalBusiness è uno dei fattori più impattanti per la visibilità locale su Google. Secondo i dati di BrightLocal 2026, i siti con schema markup strutturato ottengono il 42% in più di click-through rate nei risultati locali rispetto a quelli senza.

Google utilizza i dati strutturati LocalBusiness per:

  • Popolare il Knowledge Panel laterale nei risultati di ricerca
  • Mostrare informazioni aziendali direttamente in SERP (orari, contatti, recensioni)
  • Migliorare la correlazione tra Google Business Profile e sito web
  • Alimentare le rich snippet con stelle, prezzi e disponibilità
  • Aumentare la rilevanza per query geo-localizzate

Per le agenzie che gestiscono clienti locali (ristoranti, studi professionali, negozi fisici), implementare correttamente questo schema è un quick win con ROI misurabile.

Anatomia del markup LocalBusiness JSON-LD

Il formato JSON-LD è quello raccomandato da Google per i dati strutturati. Si inserisce nello <head> o prima della chiusura del <body> e non interferisce con il rendering della pagina.

Esempio base per uno studio dentistico:

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Dentist",
  "name": "Studio Dentistico Rossi",
  "image": "https://example.com/logo.jpg",
  "@id": "https://example.com",
  "url": "https://example.com",
  "telephone": "+39-02-12345678",
  "priceRange": "€€",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "Via Roma 123",
    "addressLocality": "Milano",
    "postalCode": "20121",
    "addressCountry": "IT"
  },
  "geo": {
    "@type": "GeoCoordinates",
    "latitude": 45.4642,
    "longitude": 9.1900
  },
  "openingHoursSpecification": [
    {
      "@type": "OpeningHoursSpecification",
      "dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"],
      "opens": "09:00",
      "closes": "18:00"
    }
  ],
  "sameAs": [
    "https://www.facebook.com/studiodentisticorossi",
    "https://www.instagram.com/studiodentisticorossi"
  ]
}
</script>

Proprietà obbligatorie vs opzionali

Per validare correttamente su Google Search Console, servono almeno:

  • @type: il tipo specifico (Dentist, Restaurant, LegalService, etc.)
  • name: nome esatto dell’attività (deve corrispondere al Google Business Profile)
  • address: indirizzo completo con PostalAddress
  • telephone: numero con prefisso internazionale

Proprietà opzionali ma fortemente consigliate:

  • geo: coordinate GPS precise (migliora il ranking locale)
  • openingHoursSpecification: orari di apertura (mostrati in SERP)
  • priceRange: fascia di prezzo con simboli € (da € a €€€€)
  • image: logo o foto rappresentativa (minimo 1200x675px)
  • sameAs: profili social ufficiali (conferma identità)
  • aggregateRating: recensioni aggregate (se disponibili)

Implementazione su WordPress: tre approcci

Metodo 1: Plugin dedicati

Per la maggior parte dei progetti client, l’approccio plugin è il più sostenibile:

Schema Pro (da $79/anno): il più completo per agenzie. Permette di:

  • Mappare automaticamente CPT a tipi schema specifici
  • Gestire sedi multiple con repeater fields
  • Sincronizzare con ACF, Pods, Toolset
  • Validazione integrata con anteprima

Rank Math Pro (da $59/anno): ottima integrazione SEO all-in-one:

  • Wizard guidato per LocalBusiness setup
  • Supporto multi-location con taxonomy
  • Auto-sync con Google Business Profile API (beta 2026)
  • Dashboard centralizzata per tutti i client

WP SEO Structured Data Schema (gratuito): soluzione base per budget limitati, richiede configurazione manuale ma funzionale.

Metodo 2: Implementazione programmatica

Per chi gestisce multisite o ha esigenze custom, l’approccio via codice offre massimo controllo:

function agency_pilot_local_business_schema() {
  if (!is_front_page()) return;
  
  $schema = [
    '@context' => 'https://schema.org',
    '@type' => 'LocalBusiness',
    'name' => get_bloginfo('name'),
    'url' => home_url(),
    'telephone' => get_option('agency_business_phone'),
    'address' => [
      '@type' => 'PostalAddress',
      'streetAddress' => get_option('agency_street'),
      'addressLocality' => get_option('agency_city'),
      'postalCode' => get_option('agency_zip'),
      'addressCountry' => 'IT'
    ]
  ];
  
  echo '<script type="application/ld+json">' . wp_json_encode($schema, JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE) . '</script>';
}
add_action('wp_head', 'agency_pilot_local_business_schema', 99);

Vantaggio: pieno controllo, nessuna dipendenza da plugin. Ideale per inserire in un mu-plugin del network.

Metodo 3: ACF + Custom Fields

Soluzione ibrida per clienti che devono autogestire i dati:

  1. Creare un Options Page in ACF per “Dati Azienda”
  2. Aggiungere field groups per indirizzo, orari, contatti
  3. Utilizzare template part per output JSON-LD
  4. Il cliente aggiorna via backend, lo schema si aggiorna automaticamente

Questo approccio funziona bene per franchise o catene con più location gestite da utenti non tecnici.

Gestione multi-location: strategie avanzate

Per clienti con più sedi fisiche (catene retail, studi con filiali), servono accorgimenti specifici:

Approccio 1: Schema per singola pagina location

Ogni sede ha una pagina dedicata (/sedi/milano, /sedi/roma) con proprio schema LocalBusiness completo. Nella homepage si usa Organization schema che referenzia le varie location:

{
  "@type": "Organization",
  "name": "Studio Legale Bianchi",
  "@id": "https://example.com/#organization",
  "location": [
    {"@id": "https://example.com/sedi/milano/#localbusiness"},
    {"@id": "https://example.com/sedi/roma/#localbusiness"}
  ]
}

Approccio 2: CPT + Taxonomy

Creare un Custom Post Type “Locations” con taxonomy per città/regione. Ogni post genera automaticamente il proprio markup via template. Vantaggi:

  • Scalabile per decine o centinaia di location
  • Filtri frontend per “trova sede vicina”
  • Integrabile con Google Maps API
  • Ogni location può avere propri orari, servizi, staff

Validazione e monitoraggio

Implementare lo schema è solo metà del lavoro. La validazione è critica:

Tools di validazione

  • Google Rich Results Test: tool ufficiale, mostra esattamente cosa vede Googlebot
  • Schema Markup Validator (validator.schema.org): verifica conformità standard
  • Google Search Console: sezione “Miglioramenti” → “Dati strutturati” per errori live

Errori comuni da evitare:

  • Nome attività diverso tra schema e Google Business Profile
  • Coordinate GPS imprecise o invertite (lat/long)
  • Formato telefono non standard (usare sempre +39-XX-XXXXXXXX)
  • URL immagini non assoluti o non accessibili
  • openingHours con giorni in italiano invece che inglese

KPI da monitorare

Dopo l’implementazione, tracciare in GSC e Analytics:

  • Impression e CTR per query locali (brand + città)
  • Comparsa nel Local Pack (top 3 risultati con mappa)
  • Rich snippet attivi (verifica manuale SERP)
  • Traffico da “near me” queries

Nei nostri test su 47 clienti local (Q1 2026), l’implementazione corretta di LocalBusiness schema ha portato un aumento medio del 28% nelle impression locali entro 45 giorni.

Integrazione con Google Business Profile

Il vero potere dello schema emerge quando è allineato con il profilo Google Business:

  • NAP consistency: nome, indirizzo, telefono devono essere identici al 100%
  • Categoria primaria: l’@type schema deve corrispondere alla categoria GBP principale
  • Orari sincronizzati: aggiornare entrambi contemporaneamente (Google Business Profile API 2026 permette sync automatica)
  • Recensioni: aggregateRating nello schema può includere le recensioni Google se aggregate correttamente

Google usa la coerenza tra schema, GBP e citazioni esterne come ranking factor locale. Discrepanze penalizzano la visibilità.

Case study: studio fotografico milanese

Cliente: studio fotografico con sede fisica a Milano, target: matrimoni e eventi corporate.

Situazione iniziale (novembre 2025):

  • Sito WordPress senza schema markup
  • Position media “fotografo matrimoni Milano”: posizione 8-12
  • CTR organico locale: 3.2%

Intervento (dicembre 2025):

  • Implementato LocalBusiness schema tipo “PhotographyStore”
  • Aggiunte coordinate GPS precise studio
  • Inseriti orari apertura e fascia prezzo
  • Collegati profili social e portfolio
  • Allineato NAP con Google Business Profile

Risultati (marzo 2026):

  • Position media salita a posizione 3-5
  • CTR organico locale: 7.8% (+144%)
  • Comparsa rich snippet con stelle recensioni
  • +34% richieste preventivo da ricerca locale

Tempo implementazione: 2 ore. ROI evidente già dal secondo mese.

FAQ

Quale @type scegliere per uno studio professionale?

Dipende dalla professione. Schema.org offre tipi specifici come Dentist, Attorney, Accountant, RealEstateAgent. Usa sempre il tipo più specifico disponibile anziché il generico LocalBusiness. Se la professione non ha un tipo dedicato, usa ProfessionalService con proprietà serviceType per specificare. Verifica su schema.org/LocalBusiness l’albero completo dei sottotipi.

Lo schema va inserito solo in homepage o in tutte le pagine?

Per business con singola sede fisica, inseriscilo solo in homepage. Per multi-location, ogni pagina sede deve avere il proprio schema completo con dati specifici. Nelle altre pagine (servizi, blog, contatti) puoi omettere LocalBusiness e usare eventualmente BreadcrumbList o Article schema. Evita duplicazioni: Google penalizza markup identici su più URL.

Come gestire orari diversi per giorni festivi?

Usa proprietà specialOpeningHoursSpecification per date specifiche. Esempio per chiusura Natale:

{"@type": "OpeningHoursSpecification", "validFrom": "2026-12-25", "validThrough": "2026-12-25", "opens": "00:00", "closes": "00:00"}

Oppure ometti quella data. Per orari estivi/invernali ricorrenti, crea due array openingHoursSpecification con validFrom e validThrough che coprono i periodi dell’anno.

Posso includere recensioni di terze parti nello schema?

Sì, ma con cautela. Google accetta aggregateRating solo se le recensioni sono realmente presenti sul tuo sito (non puoi “importare” solo il rating da altre piattaforme). Se hai un sistema recensioni interno o importi recensioni con widget, puoi aggregarle. Include sempre reviewCount e ratingValue. Non gonfiare artificialmente i numeri: Google cross-referenzia con altre fonti e può penalizzare markup ingannevoli.

Lo schema LocalBusiness funziona per e-commerce o serve Product schema?

Se hai un negozio fisico che vende anche online, usa entrambi: LocalBusiness per l’attività fisica (con indirizzo e orari) e Product schema per i singoli prodotti nelle schede WooCommerce. Sono complementari. LocalBusiness ti posiziona per ricerche locali tipo “negozio scarpe Milano”, Product schema fa apparire i tuoi articoli in Google Shopping e rich snippet prodotto. Non sono mutuamente esclusivi, anzi Google premia la completezza del markup.

Gestisci i siti WordPress dei tuoi clienti?

AgencyPilot ti dà report AI, uptime monitoring, backup e portale clienti in un’unica dashboard. Gratis per 3 siti.

Prova gratis
Leggi anche
Tutti gli articoli
Tutti gli articoli