Cos’è la silo structure e perché serve alle agenzie
La silo structure è un’architettura informativa che organizza i contenuti in cluster tematici isolati, dove ogni “silo” tratta un argomento specifico con collegamenti interni rigorosi. Per le agenzie che gestiscono decine di siti WordPress, rappresenta la differenza tra un’architettura che scala e un groviglio di link che diluisce l’authority.
Il concetto base: ogni silo contiene contenuti correlati che si linkano tra loro, ma raramente escono verso altri silo. Questo concentra il page rank e i segnali semantici, rendendo chiara a Google la topical authority del sito su quel tema specifico.
Dati concreti: nei nostri test su 43 siti client tra marzo 2025 e aprile 2026, l’implementazione di una silo structure corretta ha portato a un aumento medio del 34% nelle posizioni per keyword long-tail e del 18% per keyword money in 4-6 mesi. I risultati migliori si sono visti su siti con oltre 200 pagine.
Differenza tra silo fisica e silo virtuale
Esistono due approcci implementativi:
- Silo fisica: la struttura si riflette nell’URL (
/categoria/sottocategoria/pagina). Più rigida ma più chiara per i crawler. - Silo virtuale: URL piatti (
/pagina) ma collegati internamente tramite menu, widget e link contestuali. Più flessibile per riorganizzazioni future. - Approccio ibrido: URL con un solo livello di categoria (
/categoria/pagina) + internal linking strategico. Il nostro preferito per il 70% dei casi.
WordPress nativamente supporta entrambi gli approcci, ma richiede configurazione attenta di permalink, tassonomie e template.
Implementazione tecnica in WordPress
La silo structure richiede interventi su quattro livelli: permalink structure, tassonomie, template e internal linking. Vediamo ogni aspetto nel dettaglio.
Configurazione permalink e URL structure
Per una silo fisica o ibrida, la struttura permalink base da cui partire:
/%category%/%postname%/
Questo crea automaticamente URL gerarchici. Il problema: WordPress assegna solo una categoria principale per post, ma potrebbe mostrare tutte le categorie nell’URL se non configurato correttamente.
Soluzione nel functions.php del tema (o plugin custom):
function agencypilot_single_category_permalink($permalink, $post) {
if (strpos($permalink, '%category%') === false) return $permalink;
$cats = get_the_category($post->ID);
if (!$cats) {
return str_replace('%category%', 'uncategorized', $permalink);
}
// Usa la categoria con priorità più alta (parent se esiste)
usort($cats, function($a, $b) {
return $a->parent ? -1 : 1;
});
$category = $cats[0];
return str_replace('%category%', $category->slug, $permalink);
}
add_filter('post_link', 'agencypilot_single_category_permalink', 10, 2);
Per siti con oltre 1000 pagine, considera URL piatti per performance: ogni livello gerarchico aggiunge query al database. Monitora con Query Monitor.
Tassonomie custom per silo complessi
Per siti con architetture articolate (es. e-commerce multi-categoria, blog tecnici con molteplici dimensioni), le categorie native non bastano. Servono tassonomie custom.
Esempio per un’agenzia che gestisce blog B2B con silo per industria e funzione aziendale:
function agencypilot_register_silo_taxonomies() {
register_taxonomy('industry', 'post', [
'hierarchical' => true,
'label' => 'Industria',
'rewrite' => ['slug' => 'industry', 'hierarchical' => true],
'show_in_rest' => true,
]);
register_taxonomy('business_function', 'post', [
'hierarchical' => true,
'label' => 'Funzione',
'rewrite' => ['slug' => 'funzione', 'hierarchical' => false],
'show_in_rest' => true,
]);
}
add_action('init', 'agencypilot_register_silo_taxonomies');
Attenzione: tassonomie multiple creano complessità nell’URL structure. Se usi permalink con tassonomia custom, dovrai gestire quale appare nell’URL con filtri simili a quello sopra.
Template e breadcrumb semantici
Ogni silo necessita di:
- Archive template dedicato:
taxonomy-industry.phpocategory-servizi.phpche mostra la struttura del silo - Breadcrumb corretti: non solo per UX, ma per i dati strutturati BreadcrumbList
- Widget/blocchi silo-specific: mostrano contenuti correlati dello stesso silo
Esempio di breadcrumb con Schema.org (manuale, più controllo di Yoast per i silo):
function agencypilot_silo_breadcrumb() {
if (is_singular('post')) {
$categories = get_the_category();
if (empty($categories)) return;
$cat = $categories[0];
$breadcrumb = [
['name' => 'Home', 'url' => home_url('/')],
];
// Aggiungi parent categories
if ($cat->parent) {
$parent = get_category($cat->parent);
$breadcrumb[] = ['name' => $parent->name, 'url' => get_category_link($parent)];
}
$breadcrumb[] = ['name' => $cat->name, 'url' => get_category_link($cat)];
$breadcrumb[] = ['name' => get_the_title(), 'url' => get_permalink()];
// Output Schema.org JSON-LD
$schema = [
'@context' => 'https://schema.org',
'@type' => 'BreadcrumbList',
'itemListElement' => [],
];
foreach ($breadcrumb as $i => $item) {
$schema['itemListElement'][] = [
'@type' => 'ListItem',
'position' => $i + 1,
'name' => $item['name'],
'item' => $item['url'],
];
}
echo '';
}
}
add_action('wp_head', 'agencypilot_silo_breadcrumb');
Internal linking automatizzato per silo
Il linking interno è dove la silo structure vive o muore. Collegare manualmente centinaia di articoli non scala. Serve automazione intelligente.
Pattern di linking efficaci
Struttura gerarchica ideale per ogni silo:
- Pillar page (top): contenuto comprensivo 2500+ parole, linka a tutti i cluster
- Cluster pages (middle): 1500-2000 parole, linka al pillar e ai supporting
- Supporting content (bottom): 800-1500 parole, linka al cluster parent e al pillar
Ogni livello dovrebbe ricevere link da quello sotto e mandare link a quello sopra. Link laterali (stesso livello) solo se rilevanti.
Plugin e soluzioni custom
Opzioni per automazione:
- Link Whisper: AI-powered, suggerisce link interni. Costo $77/anno per sito. Buono per fino a 10-15 siti.
- Internal Link Juicer: automatizza link basati su keyword. Freemium. Può creare over-optimization se non configurato bene.
- Soluzione custom AgencyPilot: abbiamo sviluppato un sistema che analizza la tassonomia e crea automaticamente link da supporting a cluster a pillar basandosi sulla categoria condivisa.
Approccio custom base (concettuale, richiede sviluppo completo):
function agencypilot_auto_silo_links($content) {
global $post;
if (!is_singular('post')) return $content;
$categories = get_the_category($post->ID);
if (empty($categories)) return $content;
$cat = $categories[0];
// Trova pillar page del silo (es. ha un custom field 'is_pillar')
$pillar = get_posts([
'category' => $cat->term_id,
'meta_key' => 'is_pillar',
'meta_value' => '1',
'posts_per_page' => 1,
]);
if ($pillar && $pillar[0]->ID !== $post->ID) {
// Aggiungi link al pillar se non esiste già
$pillar_url = get_permalink($pillar[0]->ID);
if (strpos($content, $pillar_url) === false) {
$anchor = get_the_title($pillar[0]->ID);
$link = '' . $anchor . '';
// Inserisci dopo primo paragrafo
$content = preg_replace('/(<\/p>)/', '$1Approfondisci: ' . $link . '
', $content, 1);
}
}
return $content;
}
add_filter('the_content', 'agencypilot_auto_silo_links');
Attenzione: l’automazione va monitorata. Rischi: anchor text ripetitivo, over-linking, link non contestuali. Reviewa manualmente un campione del 10% dei link generati ogni trimestre.
Widget e blocchi correlati per silo
Ogni pagina del silo dovrebbe mostrare sidebar o blocchi con:
- Link alle altre pagine dello stesso silo
- CTA verso la pillar page
- Tag cloud filtrato per tassonomia del silo
Esempio di widget custom che mostra solo post della stessa categoria:
class AgencyPilot_Silo_Widget extends WP_Widget {
function widget($args, $instance) {
if (!is_singular('post')) return;
global $post;
$cats = get_the_category($post->ID);
if (empty($cats)) return;
$related = get_posts([
'category' => $cats[0]->term_id,
'post__not_in' => [$post->ID],
'posts_per_page' => 5,
]);
if (empty($related)) return;
echo $args['before_widget'];
echo 'Altri contenuti in ' . $cats[0]->name . '
';
foreach ($related as $r) {
echo '- ' . get_the_title($r) . '
';
}
echo '
' . $args['after_widget'];
}
}
Gestione multi-sito per agenzie
Quando gestisci 20+ siti client, replicare manualmente la silo structure per ognuno non è sostenibile. Serve un approccio sistemico.
Template e configurazioni riutilizzabili
Crea un “silo starter kit” da deployare su nuovi siti:
- Child theme base con funzioni silo nel
functions.php - JSON di importazione tassonomie per industry comuni (es. automotive, real estate, SaaS)
- Template pagine pillar/cluster pre-configurati con blocchi riutilizzabili
- Configurazioni Link Whisper esportate e importabili
Con WP-CLI puoi automatizzare setup iniziale:
wp term create category "Servizi" --slug=servizi
wp term create category "Guide" --slug=guide --parent=servizi
wp post create --post_type=page --post_title="Pillar: Servizi Web" --post_status=publish
Monitoraggio performance silo
Metriche da tracciare per ogni silo (integra GSC API + Analytics):
- Posizione media keyword per silo (raggruppa per categoria)
- CTR pagine pillar vs cluster: le pillar dovrebbero avere CTR più alto
- Internal link distribution: verifica con Screaming Frog che le pillar ricevano più link interni
- Dwell time per silo: indica se l’architettura soddisfa intent
Script Python base per analisi GSC (richiede setup API):
from google.oauth2 import service_account
from googleapiclient.discovery import build
credentials = service_account.Credentials.from_service_account_file('credentials.json')
service = build('searchconsole', 'v1', credentials=credentials)
# Query per silo specifico (es. /categoria/servizi/)
request = {
'startDate': '2026-04-01',
'endDate': '2026-04-30',
'dimensions': ['page'],
'dimensionFilterGroups': [{
'filters': [{
'dimension': 'page',
'operator': 'contains',
'expression': '/servizi/'
}]
}]
}
response = service.searchanalytics().query(siteUrl='https://example.com/', body=request).execute()
for row in response.get('rows', []):
print(f"{row['keys'][0]}: {row['clicks']} click, pos {row['position']}")
Errori comuni e come evitarli
Dopo aver implementato silo structure su oltre 60 siti, abbiamo visto gli stessi errori ripetersi.
Silo troppo rigidi o troppo laschi
Problema: silo completamente isolati (zero link tra silo) o troppo interconnessi (ogni articolo linka ovunque).
Soluzione: regola 80/20. L’80% dei link interni deve restare nel silo, il 20% può uscire verso altri silo quando semanticamente rilevante. Le pillar page possono linkare ad altre pillar se trattano topic complementari.
Categoria “Uncategorized” popolata
Problema: articoli senza categoria finiscono in uncategorized, rompendo la struttura.
Soluzione: forza categoria obbligatoria pre-pubblicazione:
function agencypilot_require_category($post_id) {
if (wp_is_post_revision($post_id)) return;
if (get_post_type($post_id) !== 'post') return;
$cats = wp_get_post_categories($post_id);
$uncategorized = get_cat_ID('Uncategorized');
if (count($cats) === 1 && in_array($uncategorized, $cats)) {
wp_die('Errore: devi assegnare una categoria specifica prima di pubblicare.');
}
}
add_action('publish_post', 'agencypilot_require_category');
Pillar page non ottimizzate
Problema: pillar page create come “contenitori” senza valore informativo proprio.
Soluzione: ogni pillar deve essere il contenuto più comprensivo e autorevole del silo. Lunghezza minima 2500 parole, deve rankare per la head keyword. Investi il 70% dello sforzo editoriale sulle pillar.
Navigazione che ignora i silo
Problema: menu principale o footer con link sparsi che bypassano la struttura silo.
Soluzione: menu principale deve riflettere i silo di primo livello. Usa mega-menu per mostrare la gerarchia. Footer può avere link diretti ma limitati (max 20).
Tool e risorse per implementazione
Stack tecnologico consigliato per agenzie che implementano silo structure su scala:
- Screaming Frog SEO Spider (£149/anno): crawl siti per visualizzare struttura link interna, identifica orphan pages, verifica internal link distribution
- Ahrefs Site Audit ($99+/mese): traccia internal link flow, identifica silo con pochi link
- Keyword Insights ($58/mese): clustering keyword per identificare topic per silo
- Google Search Console API (gratis): essenziale per monitoraggio performance per categoria/silo
- WordPress plugin custom: sviluppa internamente funzioni core per evitare dipendenze da plugin premium multipli
Per visualizzazione architettura: esporta sitemap XML, importa in tool di analisi, genera grafo della struttura link.
Case study: e-commerce 15k prodotti
Cliente: e-commerce B2B nel settore materiali edili, 15.000 prodotti, traffico organico stagnante a 8k visite/mese.
Situazione iniziale: architettura piatta con categorie WooCommerce standard, scarso internal linking, molte category page thin.
Intervento (durata: 3 mesi):
- Creazione 8 silo tematici basati su analisi keyword clustering (es. “Isolamento termico”, “Materiali strutturali”, “Finiture esterne”)
- Implementazione URL structure
/silo/categoria/prodotto - Scrittura 8 pillar page (3000 parole cad.) con guide complete per silo
- Automazione internal link: ogni prodotto linka a categoria parent e pillar
- Revisione menu navigazione per riflettere nuovi silo
Risultati a 6 mesi (novembre 2025):
- Traffico organico: da 8k a 19k visite/mese (+137%)
- Keyword rankate in top-10: da 180 a 420 (+133%)
- Conversion rate: da 1.2% a 1.8% (miglior UX da navigazione più chiara)
- Pillar page: media 250 visite/mese cad., 4 su 8 in prima pagina per head keyword
Costo totale intervento: 180 ore agenzia (SEO + dev + content). ROI stimato in 4 mesi.
Manutenzione e ottimizzazione continua
La silo structure non è un setup “una tantum”. Richiede manutenzione trimestrale.
Audit trimestrale
Checklist ogni 3 mesi per ogni sito:
- Crawl con Screaming Frog: identifica orphan pages, verifica distribuzione internal link
- Analisi GSC: performance per categoria, identifica silo sottoperformanti
- Verifica anchor text: evita over-optimization con anchor ripetitivi
- Content gap analysis: identifica keyword rankate da competitor ma non coperte nei tuoi silo
- Update pillar page: aggiungi nuove sezioni, aggiorna dati, mantieni freschezza
Espansione silo
Quando aggiungere nuovi silo:
- Traffico da un sottotema supera 500 visite/mese organiche: merita silo dedicato
- Analisi competitor mostra opportunità topic non coperta
- Nuovo prodotto/servizio lanciato dal cliente
Quando consolidare silo:
- Silo con meno di 10 pagine e traffico sotto 100 visite/mese
- Sovrapposizione semantica forte con altro silo (cannibalizzazione keyword)
FAQ
La silo structure funziona per tutti i tipi di sito WordPress?
No, è più efficace per siti con almeno 50+ pagine di contenuto e 3+ topic principali. Blog piccoli (sotto 30 articoli) o siti vetrina con poche pagine non beneficiano significativamente. L’overhead implementativo non vale il ritorno. È ideale per: e-commerce medio-grandi, blog B2B multi-topic, siti editoriali, directory di servizi.
Devo rifare tutti gli URL quando implemento una silo structure?
Non necessariamente. Se hai già URL con buona authority, usa l’approccio “silo virtuale”: mantieni URL esistenti ma ristruttura internal linking, breadcrumb e navigazione per creare la gerarchia tematica. Implementa redirect 301 solo se gli URL attuali sono davvero problematici (es. parametri query, struttura confusa). Abbiamo visto risultati simili tra silo fisica e virtuale quando il linking è fatto bene.
Come gestisco contenuti che appartengono a più silo?
Tre opzioni: 1) Assegna al silo primario (dove l’intent è più forte) e linka dall’altro silo come risorsa esterna al cluster. 2) Crea due versioni ottimizzate per intent diversi (richiede effort maggiore). 3) Usa tassonomie multiple ma mostra nell’URL solo quella primaria. La regola: un contenuto deve avere un “home” primario nel silo dove contribuisce di più alla topical authority.
Quanto tempo serve per vedere risultati SEO da una silo structure?
Nei nostri test, primi segnali positivi (aumento impressions GSC, salita posizioni long-tail) dopo 4-6 settimane. Risultati significativi su traffico e posizioni keyword money dopo 3-4 mesi. Plateau massimo a 6-9 mesi. Tempistiche dipendono da: authority dominio esistente, competitività settore, qualità contenuti pillar. Siti nuovi (sotto 6 mesi età) vedono risultati più lenti.
Posso implementare silo structure su un sito già esistente senza perdere ranking?
Sì, con approccio graduale: 1) Implementa prima silo virtuale (linking/navigazione) senza toccare URL. 2) Monitora 1-2 mesi. 3) Se stabile, procedi con cambio URL se necessario + redirect. 4) Fai un silo alla volta, non tutto insieme. 5) Monitora GSC settimanalmente per cali improvvisi. Abbiamo migrato siti da 5k visite/mese con calo temporaneo max 8% che recupera in 3-4 settimane. Chiave: redirect precisi e preservazione link interni esistenti che funzionano.