Schema.org JSON-LD

Markup strutturato · rich snippet · WordPress

Seleziona il tipo di schema, compila i campi e ottieni il JSON-LD per HTML o functions.php. Include note sui conflitti con Yoast e RankMath e come evitarli.

Tipo di schema

Come aggiungere JSON-LD a WordPress

Il modo più pulito è agganciare wp_head in functions.php e stampare il tag <script type="application/ld+json"> con json_encode(), così lo schema usa dati reali del post o della pagina.

Schema statico (test rapido)

Per una prova veloce puoi incollare lo script nel template PHP:

<!-- es. header.php -->
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "WebSite",
  "name": "Nome sito",
  "url": "https://tuosito.it"
}
</script>

Schema dinamico da functions.php

add_action( 'wp_head', 'mio_tema_schema_article' );

function mio_tema_schema_article() {
    if ( ! is_single() ) return;

    $schema = [
        '@context' => 'https://schema.org',
        '@type'    => 'Article',
        'headline' => get_the_title(),
        'url'      => get_permalink(),
        'author'   => [
            '@type' => 'Person',
            'name'  => get_the_author(),
        ],
        'datePublished' => get_the_date( 'c' ),
        'dateModified'  => get_the_modified_date( 'c' ),
    ];

    if ( has_post_thumbnail() ) {
        $schema['image'] = get_the_post_thumbnail_url( null, 'large' );
    }

    echo '<script type="application/ld+json">'
       . json_encode( $schema, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT )
       . '</script>';
}

Schema con ACF Pro

// Esempio LocalBusiness con campi ACF
$schema = [
    '@context'  => 'https://schema.org',
    '@type'     => 'LocalBusiness',
    'name'      => get_field( 'nome_azienda' ),
    'telephone' => get_field( 'telefono' ),
    'address'   => [
        '@type'           => 'PostalAddress',
        'streetAddress'   => get_field( 'indirizzo' ),
        'addressLocality' => get_field( 'citta' ),
        'postalCode'      => get_field( 'cap' ),
        'addressCountry'  => 'IT',
    ],
];
Verifica il markup con lo strumento Rich Results di Google: i requisiti per ogni tipo di schema possono cambiare.
Non inserire due volte lo stesso tipo di schema nella stessa pagina. Se usi Yoast, Rank Math o simili che già emettono JSON-LD, disabilita i tipi duplicati prima di aggiungere markup custom.

I dati strutturati Schema.org permettono a Google di comprendere meglio il contenuto di una pagina e mostrare rich result nella SERP: stelle di valutazione, FAQ espandibili, breadcrumb e markup evento aumentano la visibilità organica e il CTR.

Questo generatore supporta:

  • Article: autore, data di pubblicazione, immagine, editore
  • LocalBusiness: nome, indirizzo, orari, contatti, coordinate
  • BreadcrumbList: struttura di navigazione gerarchica
  • FAQPage: domande e risposte strutturate per rich snippet

Produce il tag <script type="application/ld+json"> pronto per HTML e lo snippet PHP per wp_head() con variante per campi ACF dinamici. Include note su conflitti con Yoast e RankMath.

Perché usare JSON-LD

  • Chiarezza per i motori di ricerca: comunica titolo, date, autore, prezzo, FAQ in modo esplicito.
  • JSON-LD nel <head>: formato consigliato; evita di duplicare lo stesso tipo di schema già emesso da plugin SEO.
  • Test: dopo il deploy verifica con lo strumento Rich Results di Google e aggiorna i campi se cambiano le linee guida.