Sitemap XML WordPress: perché l'XML sitemap è ancora essenziale nel 2026

Google dice che l'XML sitemap non è più essenziale, ma la realtà è che senza una sitemap ben fatta i contenuti nuovi ci mettono di più a essere indicizzati. Come configurarla, cosa includere, cosa escludere, e perché la sitemap di immagini è il segreto meglio custodito dell'indicizzazione.
Google ha detto più volte che l'XML sitemap non è più essenziale — Googlebot è bravo a trovare i contenuti da solo. È vero, ma è una mezza verità. Googlebot trova i contenuti, sì. Ma li trova prima se glieli indichi. La differenza tra 'Google scopre il tuo articolo in due giorni' e 'Google lo scopre in due settimane' è spesso la sitemap. Su siti con pubblicazione frequente — un magazine, un e-commerce con prodotti nuovi ogni giorno — quella differenza è fatturato. La sitemap non è essenziale per la sopravvivenza, ma è essenziale per la velocità di indicizzazione.
Il secondo malinteso è che WordPress genera la sitemap automaticamente dal 5.5. Vero — ma la sitemap nativa di WordPress è minimale. Include post e pagine, ma non immagini, non i custom post type se non configurati, e non ha opzioni di priorità o frequenza. Per un sito semplice basta. Per un sito serio, serve una sitemap più ricca — e quella la danno i plugin SEO (Yoast, Rank Math) o una configurazione custom.
La sitemap nativa di WordPress (e perché non basta)
Dal 5.5, WordPress genera una sitemap XML su /wp-sitemap.xml. È una sitemap index che punta a sitemap figlie per ogni tipo di contenuto. Funziona, ma è limitata: non include le immagini, non distingue tra contenuti prioritari e non prioritari, e non permette di escludere contenuti specifici. Per la maggior parte dei siti è un punto di partenza, ma non il prodotto finale.
Se vuoi una sitemap più ricca senza plugin, puoi estendere quella nativa con i filtri:
// Aggiungi le immagini alla sitemap nativa di WordPress
add_filter( 'wp_sitemaps_posts_query_args', function( $args, $post_type ) {
// Assicurati che i post con immagine in evidenza siano inclusi
$args['meta_query'] = array(
array(
'key' => '_thumbnail_id',
'compare' => 'EXISTS',
),
);
return $args;
}, 10, 2 );
// Escludi i custom post type che non vuoi nella sitemap
add_filter( 'wp_sitemaps_registered_post_types', function( $post_types ) {
// Rimuovi i tipi di post che non vuoi indicizzare
unset( $post_types['custom_private'] );
unset( $post_types['internal_docs'] );
return $post_types;
} );
// Escludi le tassonomie non rilevanti
add_filter( 'wp_sitemaps_registered_taxonomies', function( $taxonomies ) {
unset( $taxonomies['post_format'] );
return $tax_types;
} );La sitemap con Yoast o Rank Math (la via più ricca)
I plugin SEO generano sitemap più complete: includono le immagini, i custom post type, e permettono di escludere contenuti specifici. La configurazione con Rank Math (più leggero di Yoast) include automaticamente le immagini:
// Rank Math: configura la sitemap con immagini
add_filter( 'rank_math/sitemap/content', function( $content, $post ) {
// Aggiungi l'immagine in evidenza come image:image tag
if ( has_post_thumbnail( $post->ID ) ) {
$image_url = get_the_post_thumbnail_url( $post->ID, 'full' );
if ( $image_url ) {
$content .= "\n<image:image>\n";
$content .= " <image:loc>" . esc_url( $image_url ) . "</image:loc>\n";
$content .= " <image:title>" . esc_html( get_the_title( $post->ID ) ) . "</image:title>\n";
$content .= "</image:image>\n";
}
}
return $content;
}, 10, 2 );
// Escludi pagine specifiche dalla sitemap
add_filter( 'rank_math/sitemap/exclude_post', function( $exclude, $post_id ) {
$excluded_pages = array( 123, 456, 789 ); // ID delle pagine da escludere
if ( in_array( $post_id, $excluded_pages ) ) {
return true;
}
return $exclude;
}, 10, 2 );Cosa escludere dalla sitemap (e cosa no)
Una sitemap non è un elenco di tutte le pagine — è un elenco delle pagone che vuoi indicizzare. Includere tutto diluisce il valore e confonde Google. Escludi: le pagine di tag con un solo articolo, le pagine di autore se hai un solo autore, le pagine di archivio con contenuti duplicati, i risultati di ricerca interni, e le pagine di checkout/account di WooCommerce. Includi: i post pubblicati, le pagone principali, i custom post type con contenuti unici, e le immagini in evidenza.
La sitemap di news (per Google News e Discover)
Se pubblichi contenuti editoriali con frequenza, la sitemap di news è essenziale per Google News e Google Discover. È una sitemap separata con regole specifiche: solo gli articoli degli ultimi due giorni, con il tag news:publication_date. WordPress non la genera nativamente — serve un plugin SEO o una configurazione custom:
// Genera una sitemap di news per Google News/Discover
add_action( 'init', function() {
add_rewrite_rule( '^news-sitemap\.xml$', 'index.php?news_sitemap=1', 'top' );
} );
add_filter( 'query_vars', function( $vars ) {
$vars[] = 'news_sitemap';
return $vars;
} );
add_action( 'template_redirect', function() {
if ( get_query_var( 'news_sitemap' ) ) {
header( 'Content-Type: application/xml; charset=utf-8' );
echo '<?xml version="1.0" encoding="UTF-8"?>' . "\n";
echo '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"' . "\n";
echo ' xmlns:news="http://www.google.com/schemas/sitemap-news/0.9">' . "\n";
$recent = new WP_Query( array(
'post_type' => 'post',
'posts_per_page' => 100,
'post_status' => 'publish',
'date_query' => array(
array( 'after' => '2 days ago' ),
),
) );
while ( $recent->have_posts() ) : $recent->the_post();
$url = get_permalink();
$date = get_the_date( 'c' );
$title = get_the_title();
echo " <url>\n";
echo " <loc>$url</loc>\n";
echo " <news:news>\n";
echo " <news:publication>\n";
echo " <news:name>WP Planet</news:name>\n";
echo " <news:language>it</news:language>\n";
echo " </news:publication>\n";
echo " <news:publication_date>$date</news:publication_date>\n";
echo " <news:title>$title</news:title>\n";
echo " </news:news>\n";
echo " </url>\n";
endwhile;
echo '</urlset>';
exit;
}
} );La sitemap non è glamour, ma è l'infrastruttura SEO che lavora dietro le quinte. Una sitemap ben fatta non ti fa vincere le SERP — ma una sitemap assente o mal fatta ti fa perdere posizioni che già avevi. La regola: genera, invia a Search Console, e verifica che non ci siano errori. Ogni mese. Non una volta sola e mai più.
Verifica lo stato del tuo WordPress con un check-up gratuito.
Analisi di sicurezza, prestazioni e configurazione tecnica senza impegno commerciale.
Articoli correlati

WordPress Multisite: quando conviene gestire più siti da una sola installazione
Leggi
Redirect 301 su WordPress: preservare la SEO quando cambi URL o migri il sito
Leggi
