
🔒 Come nascondere una categoria in WordPress: 4 metodi passo passo
La home page di WordPress per impostazione predefinita mostra tutto: i post di ogni categoria creata si mescolano in un unico feed. Per un blog è normale. Ma se stai lanciando un negozio online, un portfolio o un sito aziendale, alcune categorie semplicemente non dovrebbero apparire in home page.
Peggio ancora, i bot dei motori di ricerca indicizzano tutto, incluse le categorie di servizio e quelle per le bozze. Il risultato: pagine duplicate nei risultati di ricerca, un indice diluito e un calo del posizionamento. E un visitatore che si imbatte in una sezione riservata si trova davanti una pagina vuota invece di contenuti.
Per fortuna, puoi nascondere una categoria in WordPress in 5-10 minuti, e non ti serve uno sviluppatore. Ecco quattro metodi funzionanti: da un plugin che richiede due clic a codice pulito in functions.php. Scegli quello più adatto al tuo obiettivo.
💡 Panoramica rapida:
- Installa Ultimate Category Excluder e seleziona le categorie da nascondere.
- Configura WP Categories Widget per nasconderle selettivamente nella sidebar.
- Aggiungi l'hook pre_get_posts a functions.php ed escludi la categoria tramite ID.
- Usa il plugin Members con uno snippet per nascondere in base ai ruoli utente.
Perché mai nascondere le categorie?
WordPress non fa distinzione tra una categoria "pubblica" e una "tecnica". Tutto ciò che hai creato in "Post → Categorie" appare automaticamente nel feed principale e negli archivi. In alcuni casi è comodo, in altri crea problemi:
- Le categorie di servizio (ad esempio, "Bozze" o "Per redattori") vengono indicizzate e compaiono nei risultati di ricerca.
- Le categorie con contenuti vecchi o superati diluiscono l'impressione del sito.
- Le sezioni riservate (articoli premium, materiali per clienti) diventano visibili a tutti i visitatori.
Un punto importante: non cercare di risolvere il problema con i CSS. display: none nasconde la categoria visivamente, ma i motori di ricerca vedono comunque il contenuto e potrebbero interpretarlo come cloaking. Una penalizzazione da parte di Google in questi casi è quasi garantita. Il modo corretto è escludere la categoria a livello di query del database, non mascherarla con gli stili.
Metodo 1. Ultimate Category Excluder, nascondi una categoria in un minuto
Il metodo più semplice e affidabile è il plugin Ultimate Category Excluder. A giugno 2026 conta oltre 50.000 installazioni attive, una valutazione di 4,2/5 e compatibilità con WordPress 6.5+. Lo sviluppatore aggiorna il plugin con costanza, l'ultima release è di dicembre 2025.

Procedura passo passo:
- Nel pannello di WordPress, vai su Plugin → Aggiungi nuovo.
- Nel campo di ricerca, digita "Ultimate Category Excluder", clicca su Installa, poi su Attiva.
- Dopo l'attivazione, nel menu "Impostazioni" compare la voce Category Exclusion, vai lì.
- Seleziona le caselle per le categorie che vuoi nascondere dalla home page, dagli archivi, dal feed RSS e dalla ricerca.
- Clicca su Aggiorna.

Fatto. Apri il tuo sito in modalità incognito e verifica che i post delle categorie selezionate siano spariti dalla home page. Il plugin lavora a livello di WP_Query: modifica la query del database, non nasconde i blocchi tramite CSS. Per la SEO è quindi completamente sicuro.
Pro: zero codice, adatto ai principianti, esclusione selettiva (home, archivi, RSS, separatamente). Contro: se devi nascondere una categoria solo in un widget specifico, questo plugin non aiuta, per quello serve uno strumento più preciso.
Metodo 2. WP Categories Widget, nascondi una categoria in un widget
Se il tuo compito è più circoscritto, rimuovere una categoria specifica dalla sidebar o dal footer anziché dall'intero sito, usa WP Categories Widget. A febbraio 2026, il plugin è alla versione 2.8.1, ha piena compatibilità con l'attuale WordPress e oltre 3.000 installazioni attive.
Cosa può fare:
- Visualizzare le categorie da qualsiasi tassonomia (non solo le categorie standard, ma anche tag e tassonomie personalizzate).
- Nascondere il titolo del widget.
- Attivare o disattivare il contatore dei post per ogni categoria.
- Mostrare o nascondere selettivamente qualsiasi categoria direttamente dalle impostazioni del widget.
Come si usa:
- Installa e attiva il plugin da Plugin → Aggiungi nuovo.
- Vai su Aspetto → Widget.
- Trova il widget "WP Categories Widget" e trascinalo nell'area desiderata (barra laterale, footer).

- Nelle impostazioni del widget, imposta un titolo e nascondilo se lo desideri. Nel menu a tendina "Mostra", seleziona Tutte le categorie oppure specifica le categorie che devono essere visualizzate.

- Salva le modifiche.
Tutto ciò che non è incluso nell'elenco "visualizzato" viene automaticamente nascosto da questo widget. Nota: il plugin controlla la visibilità solo all'interno del proprio widget. Non influisce sul feed della home e sugli archivi; per quello torna al metodo 1.
Metodo 3. Hook pre_get_posts, nascondere una categoria tramite codice
Se non vuoi installare un plugin aggiuntivo per una sola funzione, puoi cavartela con un paio di righe nel functions.php. Questo metodo modifica il loop principale di WordPress prima di eseguire la query: la categoria viene esclusa a livello di database, non mascherata.
Importante: prima di modificare functions.php, fai un backup completo del sito. Un errore in questo file manda in crash l'intero sito e ripristinarlo senza backup sarà difficile.
Ecco uno snippet funzionante. Usa l'hook pre_get_posts e specifica quale categoria escludere dalla home page:
1 /** 2 * Excludes the specified category from the home page. 3 * Replace -5 with your category ID (with a minus sign). 4 */ 5 function sdstudio_exclude_category_from_home( $query ) { 6 if ( ! is_admin() && $query->is_home() && $query->is_main_query() ) { 7 $query->set( 'cat', '-5' ); 8 } 9 return $query; 10 } 11 add_action( 'pre_get_posts', 'sdstudio_exclude_category_from_home' );
Nella riga 'cat', '-5', il numero 5 è l'identificativo della categoria che devi nascondere. Il segno meno significa "escludi". Come trovare l'ID della categoria che ti serve:
- Nel pannello di WordPress, apri Post → Categorie.
- Passa il mouse sul nome della categoria.
- In fondo allo schermo (nella barra di stato del browser), apparirà un URL del tipo
...taxonomy=category&tag_ID=6, il numero dopotag_ID=è l'ID.

Nello screenshot, l'ID della categoria "Paesi" è 6. Sostituisci il tuo numero, salva il file e i post di questa categoria spariranno dalla home page.
Dove inserire il codice:
- Via FTP: connettiti al server, vai in
/wp-content/themes/your-theme/, scaricafunctions.php, aggiungi il codice alla fine del file (prima di?>se presente) e ricaricalo. - Via pannello di amministrazione: apri Aspetto → Editor del tema, seleziona il tema attivo, trova
functions.phpnella colonna di destra, inserisci il codice e clicca "Aggiorna file".

Alcuni provider di hosting bloccano l'accesso all'editor del tema per motivi di sicurezza. In questo caso, usa solo FTP oppure torna al plugin del metodo 1, che risolverà il problema senza accesso ai file.
Cosa è stato migliorato rispetto alla ricetta originale delle vecchie guide: aggiunto il controllo ! is_admin() (per non rompere il pannello di amministrazione) e $query->is_main_query() (per non influenzare le query secondarie di widget e menu). Senza questi controlli, il codice può rompere i filtri nel pannello di amministrazione o la visualizzazione dei menu, verificato nella pratica.
Metodo 4. Nascondere categorie per ruoli utente
Immagina questa situazione: hai articoli premium disponibili solo per abbonati paganti. Oppure documentazione interna per i dipendenti. O una sezione riservata ai clienti wholesale. I metodi standard nascondono la categoria a tutti, ma qui serve che l'amministratore e gli utenti privilegiati la vedano, mentre ospiti e abbonati base no.
In passato si usava il plugin CaPa Protect per questo compito, ma è stato rimosso dal repository WordPress. È stato sostituito da una combinazione più potente: il plugin Members (oltre 300.000 installazioni, valutazione 4.7/5, versione 3.2.22 a giugno 2026) e un piccolo pezzo di codice.

Algoritmo:
- Installa e attiva Members da "Plugin → Aggiungi nuovo".
- Vai a Utenti → Ruoli. Crea un ruolo, ad esempio "Abbonato Premium", oppure usa quelli esistenti.
- Assegna questo ruolo agli utenti necessari.
- Aggiungi uno snippet a
functions.phpche verifica il ruolo dell'utente corrente ed esclude la categoria per tutti tranne quelli autorizzati:
1 /** 2 * Hides category with ID 5 from everyone except administrators 3 * and users with the premium_subscriber role. 4 */ 5 function sdstudio_hide_category_by_role( $query ) { 6 if ( is_admin() || ! $query->is_main_query() ) { 7 return $query; 8 } 9 10 $restricted_cat_id = 5; // replace with your category ID 11 12 if ( current_user_can( 'administrator' ) 13 || current_user_can( 'premium_subscriber' ) ) { 14 return $query; 15 } 16 17 $query->set( 'cat', '-' . $restricted_cat_id ); 18 return $query; 19 } 20 add_action( 'pre_get_posts', 'sdstudio_hide_category_by_role' );
Come funziona: la funzione verifica il ruolo dell'utente corrente tramite current_user_can(). Amministratori e abbonati premium passano il filtro, per loro la categoria è visibile. Tutti gli altri ricevono una query modificata con la categoria esclusa. Lo stesso hook pre_get_posts, ma legato ai permessi, non alla pagina.
Il vantaggio di Members è che non è solo un "escamotage per categorie", ma un editor completo di ruoli e permessi. Dopo l'installazione, potrai controllare la visibilità di qualsiasi elemento del sito: blocchi Gutenberg, pagine, voci di menu, tutto tramite ruoli.
Video tutorial
Guarda una guida visiva per tutti e quattro i metodi, dall'installazione del plugin alla modifica del codice:
⁉️🤔 Domande frequenti
Perché non posso semplicemente nascondere la categoria con i CSS?
display: nonerimuove il blocco visivamente, ma i bot dei motori di ricerca leggono comunque il contenuto. Google considera questa discrepanza tra contenuto visibile e indicizzabile come un tentativo di manipolazione (cloaking). La penalità è il declassamento manuale o l'esclusione delle pagine dall'indice. La soluzione corretta è l'esclusione a livello diWP_Query, non CSS.
Come nascondo una categoria non solo dalla home page, ma anche dal feed RSS?
Ultimate Category Excluder (metodo 1) può farlo nativamente. Nelle impostazioni del plugin, nella scheda "Category Exclusion", seleziona le categorie necessarie e spunta la casella accanto a "RSS Feeds". Se lavori con il codice (metodo 3), sostituisci la condizione
$query->is_home()con$query->is_home() || $query->is_feed(), e la categoria sparirà anche dal feed.
Cosa succede alla SEO dopo aver nascosto una categoria?
Se hai nascosto la categoria correttamente (via plugin o
pre_get_posts), le pagine categoria stesse e i loro articoli restano accessibili tramite URL diretti e vengono indicizzati. Cambiano solo la home page e gli archivi, i duplicati spariscono e i contenuti utili restano nell'indice. Per sicurezza, dopo le modifiche, invia la sitemap in Google Search Console per una nuova scansione.
Posso nascondere una categoria a un utente specifico, non a un ruolo?
WordPress non ha strumenti nativi per questo. Il metodo 4 è pensato specificamente per i ruoli, è un limite architetturale del sistema di permessi. Come workaround, puoi creare un ruolo separato per un utente specifico tramite Members e applicare il codice del metodo 4. Tecnicamente, sono due click nell'interfaccia del plugin.
Plugin o codice, cosa scegliere per la manutenzione del sito a lungo termine?
Dipende dal numero di modifiche. Nascondere una categoria una tantum, il codice in
functions.php(metodo 3) è più leggero e non aggiunge carico extra. Diverse categorie con condizioni differenti (home, RSS, ricerca), Ultimate Category Excluder (metodo 1) è più facile da gestire. La regola principale: non installare un plugin per una casella di controllo che si può risolvere con tre righe di codice.
Cosa scegliere per il tuo progetto
I quattro metodi coprono tutti gli scenari reali. Una semplice matrice ti aiuta a orientarti:
- Serve in fretta e senza codice → Ultimate Category Excluder. Un paio di click, risultato immediato, adatto alla maggior parte dei siti tipici.
- La categoria dà fastidio solo nella sidebar → WP Categories Widget. Una soluzione mirata, senza effetti collaterali.
- Il sito ha già un minimo di plugin, vuoi mantenerlo leggero → hook
pre_get_postsinfunctions.php. Tre righe di PHP, zero codice extra. - Contenuti con restrizioni di accesso per ruoli → Members + snippet del metodo 4. Un sistema di permessi flessibile, utile anche per altre esigenze.
Prova il metodo più vicino alla tua situazione. Se qualcosa va storto, torna al backup (lo hai fatto, vero?) e prova il successivo. E nei commenti, raccontaci quale metodo ha funzionato per te e per che tipo di progetto stavi nascondendo le categorie.



