Quando un sito cresce per anni, la tassonomia comincia a diventare un problema. Un problema silenzioso, perché passa abbastanza inosservato per molto tempo.
All’inizio non succede nulla. Crei una nuova categoria, aggiungi un tag, ne provi un altro, cambi l’approccio editoriale… e continui a pubblicare.
Ma, man mano che il sito cresce, un giorno l’articolo finisce in senza categoria. Un altro ti dimentichi un tag che gli sarebbe calzato a pennello. E il terzo ti dimentichi se avevi creato o no un certo tag e i motivi per cui lo avevi fatto (sì/no).
Se vuoi farlo bene, arriva un momento in cui classificare un articolo comincia a richiedere più tempo del dovuto. Perché ci sono troppe possibilità e non sempre hai chiaro, o ricordi, quando usarne ciascuna.
È quello che stava succedendo a me e per questo ti ho spiegato poco tempo fa come ho ricategorizzato e ritaggato tutto il mio WordPress.
Non mi metterò a ripeterti qui come ho organizzato il mio sito, salvo il minimo indispensabile per capire meglio questo sistema: tre grandi pilastri: Business, Tecnologia e Intrattenimento e molte sottocategorie di secondo livello in ciascuno di essi, oltre ai tag.
A proposito, se ti perdi un po’ con tutto questo, qui hai un articolo in cui spiego la differenza tra tag e categorie, e quando usare gli uni o le altre.
Índice de Contenidos del Artículo
- L’obiettivo: decidere più in fretta come classificare ogni articolo e non fare casino
- La soluzione: una schermata propria nell’admin di WordPress
- A cosa serve davvero
- Conclusione
- Domande frequenti
- Che cos’è una tassonomia in WordPress?
- A cosa serve una mappa editoriale della tassonomia WordPress?
- Qual è la differenza tra categorie e tag in WordPress?
- Cosa sono i tag strutturali?
- Cosa sono i tag annidati?
- Questa mappa editoriale cambia la tassonomia di WordPress?
- Vale la pena creare una mappa editoriale in un sito piccolo?
- Organizzare meglio categorie e tag aiuta la SEO?
L’obiettivo: decidere più in fretta come classificare ogni articolo e non fare casino
L’idea era costruire un sistema che mi semplificasse la vita quando devo taggare un articolo. Che fosse qualcosa di immediato e con poca possibilità di errore o omissione.
Inoltre, come obiettivo secondario, volevo avere un certo controllo su quanti contenuti avevo creato in ogni categoria o tag.
Una cosa importante qui è che, prima di mettermi al lavoro sulla soluzione, ho definito due tipi di tag:
- Strutturali: Sono quelli che non appartengono a una categoria concreta, ma descrivono il formato o l’intenzione dell’articolo. Per esempio: Tutorial, Recensione, Consigliato, Risparmio o Privacy.
- Annidati: Questi invece hanno una categoria naturale. Per esempio, Google Analytics rientra nella sottocategoria Analytics, Email dentro Marketing, Chromebook dentro Hardware, Console in Videogiochi o Fumetto europeo dentro Fumetti.
Questo facilitava molto la visualizzazione, come vedrai adesso.
La soluzione: una schermata propria nell’admin di WordPress
Avrei potuto montarlo in una mappa mentale, che era la mia prima idea per quanto è visiva.
O in Excel, per la questione dei numeri.
Ma in entrambi i casi gestione e manutenzione sarebbero state manuali, cosa che volevo evitare a ogni costo.
Quindi la soluzione era costruire qualcosa dentro WordPress.
Come l’ho fatto?
Creando una pagina personalizzata dentro l’amministrazione di WordPress tramite codice in functions.php.

Quella schermata funziona come una piccola mappa editoriale divisa in due metà:
Nella parte sinistra appaiono le categorie principali e le loro sottocategorie. Sotto ciascuna vengono mostrati i tag consigliati per classificare gli articoli di quel blocco.
Nella parte destra appaiono i tag, divisi nei due blocchi citati prima: strutturali e annidati.
Inoltre ho aggiunto:
- Un motore di ricerca.
- Link ad archivio e modifica
- Contatori di articoli per tassonomia.
Vi si accede dalla sezione degli articoli:

Il codice
Qui ti lascio il codice che ho aggiunto in functions.php, ma attenzione: devi modificarlo per adattarlo alle tue categorie e ai tuoi tag. Puoi farlo tu stesso o raccontarlo a ChatGPT e fartelo modificare:
/* =========================================================
* MAPA EDITORIAL DE TAXONOMÍAS
* Página interna para visualizar categorías y etiquetas
* ========================================================= */
add_action('admin_menu', 'yg_mapa_editorial_menu');
function yg_mapa_editorial_menu() {
add_submenu_page(
'edit.php',
'Mapa editorial',
'Mapa editorial',
'manage_categories',
'yg-mapa-editorial',
'yg_render_mapa_editorial'
);
}
/**
* Configuración editorial del mapa.
*/
function yg_mapa_editorial_config() {
return array(
'categorias_principales' => array(
'Negocio',
'Tecnología',
'Ocio',
),
// Categorías obsoletas o que no queremos mostrar en el mapa editorial.
'categorias_excluidas' => array(
'Diseño',
'Diseño gráfico',
'Diseño web',
'Ilustración',
'Usabilidad',
'Sin categoría',
),
// Etiquetas transversales: formato, enfoque o intención del contenido.
'etiquetas_estructurales' => array(
'Tutorial',
'Reseña',
'Recomendado',
'Ahorrar',
'Privacidad',
),
// Etiquetas temáticas/anidadas por pilar.
// Productividad queda como anidada de Negocio.
'etiquetas_anidadas' => array(
'Negocio' => array(
'Productividad',
'Google Analytics',
'CRO',
'SEO',
'Email',
'Acumbamail',
),
'Tecnología' => array(
'WordPress',
'Chromebook',
'Gmail',
'Trello',
'Video',
),
'Ocio' => array(
'Consolas',
'Retro',
'Cómic Americano',
'Cómic Europeo',
'Manga',
'Pérez-Reverte',
),
),
// Etiquetas recomendadas bajo cada categoría.
// La clave debe coincidir con el slug habitual de la categoría.
'etiquetas_por_categoria' => array(
// Negocio
'negocio' => array('Productividad', 'SEO', 'CRO', 'Email', 'Acumbamail', 'Google Analytics'),
'analitica' => array('Google Analytics', 'CRO', 'Tutorial'),
'casos-de-exito' => array('Productividad'),
'ecommerce' => array('CRO', 'Email', 'Acumbamail', 'Google Analytics', 'Tutorial'),
'inversion' => array('Ahorrar'),
'marketing' => array('Email', 'Acumbamail', 'SEO', 'CRO', 'Productividad'),
'negocios-online' => array('Productividad', 'SEO', 'CRO'),
// Tecnología
'tecnologia' => array('WordPress', 'Privacidad', 'Tutorial'),
'hardware' => array('Chromebook', 'Tutorial'),
'herramientas' => array('Trello', 'Gmail', 'WordPress', 'Tutorial'),
'inteligencia-artificial' => array('Video', 'Tutorial'),
'software' => array('WordPress', 'Gmail', 'Trello', 'Privacidad', 'Tutorial'),
// Ocio
'ocio' => array('Reseña', 'Recomendado'),
'comics' => array('Cómic Americano', 'Cómic Europeo', 'Manga', 'Reseña'),
'libros' => array('Pérez-Reverte', 'Reseña', 'Recomendado'),
'musica' => array('Video', 'Reseña'),
'peliculas' => array('Reseña', 'Recomendado'),
'series' => array('Reseña', 'Recomendado'),
'videojuegos' => array('Consolas', 'Retro', 'Reseña', 'Recomendado'),
),
);
}
/**
* Recupera término por nombre o slug.
*/
function yg_mapa_get_term_by_name_or_slug($name, $taxonomy) {
$term = get_term_by('name', $name, $taxonomy);
if (!$term) {
$term = get_term_by('slug', sanitize_title($name), $taxonomy);
}
if (!$term || is_wp_error($term)) {
return null;
}
return $term;
}
/**
* Comprueba si una categoría debe ocultarse.
*/
function yg_mapa_categoria_excluida($term, $config) {
if (!$term || is_wp_error($term)) {
return true;
}
return in_array($term->name, $config['categorias_excluidas'], true);
}
/**
* Render de una etiqueta como píldora compacta dentro de tarjetas de categoría.
*/
function yg_mapa_tag_pill($tag_name) {
$term = yg_mapa_get_term_by_name_or_slug($tag_name, 'post_tag');
if (!$term) {
return '<span class="yg-map-pill yg-map-pill--missing">' . esc_html($tag_name) . ' <small>no existe</small></span>';
}
$edit_link = get_edit_term_link($term->term_id, 'post_tag');
$archive_link = get_term_link($term);
$html = '<span class="yg-map-pill">';
$html .= '<strong>' . esc_html($term->name) . '</strong>';
$html .= '<em>' . intval($term->count) . '</em>';
if (!is_wp_error($archive_link)) {
$html .= '<a href="' . esc_url($archive_link) . '" target="_blank">ver</a>';
}
if ($edit_link) {
$html .= '<a href="' . esc_url($edit_link) . '">editar</a>';
}
$html .= '</span>';
return $html;
}
/**
* Render de tarjeta compacta de categoría.
*/
function yg_mapa_category_card($term, $config) {
if (!$term || is_wp_error($term)) {
return;
}
if (yg_mapa_categoria_excluida($term, $config)) {
return;
}
$archive_link = get_term_link($term);
$edit_link = get_edit_term_link($term->term_id, 'category');
$recommended_tags = array();
if (!empty($config['etiquetas_por_categoria'][$term->slug])) {
$recommended_tags = $config['etiquetas_por_categoria'][$term->slug];
}
echo '<article class="yg-map-card yg-map-card--category" data-map-search="' . esc_attr(strtolower($term->name)) . '">';
echo '<div class="yg-map-card__top">';
echo '<h3>' . esc_html($term->name) . '</h3>';
echo '<span class="yg-map-count">' . intval($term->count) . ' artículos</span>';
echo '</div>';
if (!empty($recommended_tags)) {
echo '<div class="yg-map-card__tags">';
echo '<span class="yg-map-label">Etiquetas recomendadas</span>';
echo '<div class="yg-map-pills">';
foreach ($recommended_tags as $tag_name) {
echo yg_mapa_tag_pill($tag_name);
}
echo '</div>';
echo '</div>';
}
echo '<div class="yg-map-card__actions">';
if (!is_wp_error($archive_link)) {
echo '<a href="' . esc_url($archive_link) . '" target="_blank">Ver archivo</a>';
}
if ($edit_link) {
echo '<a href="' . esc_url($edit_link) . '">Editar</a>';
}
echo '</div>';
echo '</article>';
}
/**
* Render de tarjeta compacta de etiqueta.
* No muestra ya las píldoras "Estructural" / "Anidada".
*/
function yg_mapa_tag_card($tag_name) {
$term = yg_mapa_get_term_by_name_or_slug($tag_name, 'post_tag');
if (!$term) {
echo '<article class="yg-map-card yg-map-card--tag yg-map-card--missing">';
echo '<div class="yg-map-card__top">';
echo '<h3>' . esc_html($tag_name) . '</h3>';
echo '<span class="yg-map-count">no existe</span>';
echo '</div>';
echo '</article>';
return;
}
$archive_link = get_term_link($term);
$edit_link = get_edit_term_link($term->term_id, 'post_tag');
echo '<article class="yg-map-card yg-map-card--tag" data-map-search="' . esc_attr(strtolower($term->name)) . '">';
echo '<div class="yg-map-card__top">';
echo '<h3>' . esc_html($term->name) . '</h3>';
echo '<span class="yg-map-count">' . intval($term->count) . ' artículos</span>';
echo '</div>';
echo '<div class="yg-map-card__actions">';
if (!is_wp_error($archive_link)) {
echo '<a href="' . esc_url($archive_link) . '" target="_blank">Ver archivo</a>';
}
if ($edit_link) {
echo '<a href="' . esc_url($edit_link) . '">Editar</a>';
}
echo '</div>';
echo '</article>';
}
/**
* Render principal.
*/
function yg_render_mapa_editorial() {
if (!current_user_can('manage_categories')) {
wp_die('No tienes permisos para ver esta página.');
}
$config = yg_mapa_editorial_config();
echo '<div class="wrap yg-map-wrap">';
echo '<h1>Mapa editorial</h1>';
echo '<p class="yg-map-intro">Consulta de forma rápida las categorías y etiquetas recomendadas para decidir cómo clasificar cada artículo.</p>';
echo '<input type="search" id="yg-map-search" class="yg-map-search" placeholder="Buscar categoría o etiqueta..." />';
echo '<div class="yg-map-layout">';
/* ======================
* CATEGORÍAS
* ====================== */
echo '<section class="yg-map-panel">';
echo '<div class="yg-map-panel__head">';
echo '<h2>Categorías</h2>';
echo '<p>Estructura principal de la web. Debajo de cada categoría se muestran sus etiquetas anidadas recomendadas.</p>';
echo '</div>';
foreach ($config['categorias_principales'] as $parent_name) {
$parent = yg_mapa_get_term_by_name_or_slug($parent_name, 'category');
if (!$parent || yg_mapa_categoria_excluida($parent, $config)) {
continue;
}
echo '<div class="yg-map-category-group">';
echo '<h2 class="yg-map-group-title">' . esc_html($parent->name) . '</h2>';
yg_mapa_category_card($parent, $config);
$children = get_categories(array(
'taxonomy' => 'category',
'hide_empty' => false,
'parent' => $parent->term_id,
'orderby' => 'name',
'order' => 'ASC',
));
if (!empty($children)) {
echo '<div class="yg-map-child-grid">';
foreach ($children as $child) {
yg_mapa_category_card($child, $config);
}
echo '</div>';
}
echo '</div>';
}
echo '</section>';
/* ======================
* ETIQUETAS
* ====================== */
echo '<section class="yg-map-panel">';
echo '<div class="yg-map-panel__head">';
echo '<h2>Etiquetas</h2>';
echo '<p>Separación editorial entre etiquetas estructurales y etiquetas anidadas por pilar.</p>';
echo '</div>';
// Estructurales
echo '<div class="yg-map-tag-block">';
echo '<h2 class="yg-map-group-title">Estructurales</h2>';
echo '<p class="yg-map-help">Transversales: formato, intención o enfoque. Se pueden usar en artículos de distintas categorías.</p>';
echo '<div class="yg-map-tag-grid">';
foreach ($config['etiquetas_estructurales'] as $tag_name) {
yg_mapa_tag_card($tag_name);
}
echo '</div>';
echo '</div>';
// Anidadas
echo '<div class="yg-map-tag-block">';
echo '<h2 class="yg-map-group-title">Anidadas</h2>';
echo '<p class="yg-map-help">Temáticas: deben usarse principalmente dentro de su pilar o categoría natural.</p>';
foreach ($config['etiquetas_anidadas'] as $group_name => $tags) {
echo '<div class="yg-map-nested-group">';
echo '<h3>' . esc_html($group_name) . '</h3>';
echo '<div class="yg-map-tag-grid">';
foreach ($tags as $tag_name) {
yg_mapa_tag_card($tag_name);
}
echo '</div>';
echo '</div>';
}
echo '</div>';
echo '</section>';
echo '</div>'; // layout
echo '</div>'; // wrap
yg_mapa_editorial_styles();
yg_mapa_editorial_scripts();
}
/**
* CSS interno para la pantalla.
*/
function yg_mapa_editorial_styles() {
?>
<style>
.yg-map-wrap {
max-width: 1320px;
}
.yg-map-intro {
margin: 4px 0 18px;
color: #555;
font-size: 14px;
}
.yg-map-search {
width: 100%;
max-width: 520px;
margin: 0 0 22px;
padding: 10px 12px;
border: 1px solid #ccd0d4;
border-radius: 6px;
background: #fff;
}
.yg-map-layout {
display: grid;
grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
gap: 22px;
align-items: start;
}
.yg-map-panel {
background: #fff;
border: 1px solid #dcdcde;
border-radius: 8px;
padding: 18px;
}
.yg-map-panel__head {
margin-bottom: 16px;
}
.yg-map-panel__head h2 {
margin: 0 0 4px;
font-size: 18px;
}
.yg-map-panel__head p,
.yg-map-help {
margin: 0;
color: #666;
font-size: 12px;
line-height: 1.45;
}
.yg-map-category-group,
.yg-map-tag-block {
margin-bottom: 22px;
}
.yg-map-category-group:last-child,
.yg-map-tag-block:last-child {
margin-bottom: 0;
}
.yg-map-group-title {
margin: 0 0 10px;
padding: 0 0 7px;
border-bottom: 1px solid #ececec;
font-size: 15px;
font-weight: 700;
color: #1d2327;
}
.yg-map-child-grid,
.yg-map-tag-grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
gap: 10px;
}
.yg-map-nested-group {
margin-top: 16px;
}
.yg-map-nested-group h3 {
margin: 0 0 8px;
font-size: 14px;
color: #1d2327;
}
.yg-map-card {
background: #fdfdfd;
border: 1px solid #dcdcde;
border-radius: 8px;
padding: 10px;
min-height: auto;
}
.yg-map-card--missing {
opacity: .65;
border-style: dashed;
}
.yg-map-card__top {
display: flex;
gap: 8px;
justify-content: space-between;
align-items: flex-start;
margin-bottom: 7px;
}
.yg-map-card h3 {
margin: 0;
font-size: 13px;
line-height: 1.25;
font-weight: 700;
color: #1d2327;
}
.yg-map-count {
flex: 0 0 auto;
display: inline-flex;
align-items: center;
white-space: nowrap;
padding: 3px 7px;
border-radius: 999px;
background: #fff4ce;
color: #5f4500;
font-size: 11px;
font-weight: 600;
}
.yg-map-card__tags {
margin-top: 8px;
}
.yg-map-label {
display: block;
margin-bottom: 5px;
font-size: 11px;
font-weight: 700;
text-transform: uppercase;
letter-spacing: .02em;
color: #646970;
}
.yg-map-pills {
display: flex;
flex-wrap: wrap;
gap: 5px;
}
.yg-map-pill {
display: inline-flex;
align-items: center;
gap: 5px;
padding: 4px 7px;
border-radius: 999px;
background: #f0f6fc;
border: 1px solid #c5d9ed;
font-size: 11px;
color: #1d2327;
}
.yg-map-pill em {
font-style: normal;
color: #646970;
}
.yg-map-pill a {
text-decoration: none;
}
.yg-map-pill--missing {
background: #fff7f7;
border-color: #f0b8b8;
color: #8a2424;
}
.yg-map-card__actions {
display: flex;
gap: 8px;
flex-wrap: wrap;
margin-top: 7px;
font-size: 11px;
}
.yg-map-card__actions a {
text-decoration: none;
}
@media (max-width: 1100px) {
.yg-map-layout {
grid-template-columns: 1fr;
}
}
</style>
<?php
}
/**
* JS interno para buscador rápido.
*/
function yg_mapa_editorial_scripts() {
?>
<script>
document.addEventListener('DOMContentLoaded', function () {
const input = document.getElementById('yg-map-search');
if (!input) return;
input.addEventListener('input', function () {
const query = this.value.toLowerCase().trim();
const cards = document.querySelectorAll('.yg-map-card');
cards.forEach(function (card) {
const text = card.textContent.toLowerCase();
card.style.display = text.includes(query) ? '' : 'none';
});
});
});
</script>
<?php
}
Inoltre, se vuoi, puoi separare il CSS nello style.css, ma io ho preferito mantenere tutto il codice insieme.
A cosa serve davvero
Questa mappa editoriale non cambia la tassonomia di WordPress, ma ne facilita l’uso.
Prima avevo un elenco di categorie e tag basato su un criterio scelto a suo tempo. Ora ho quel criterio visibile e a portata di mano, il che mi permette di:
- Classificare gli articoli più rapidamente mantenendo coerenza editoriale.
- Evitare la creazione di tag duplicati o inutili.
- Individuare tassonomie con pochi articoli.
- Far scalare correttamente il sito se pubblico più contenuti, che è l’idea.
Conclusione
Organizzare la tassonomia di WordPress non significa solo creare categorie e tag, ma avere un sistema per usarli bene.
Nel mio caso, arrivato a questo punto, avevo bisogno di uno strato editoriale sopra: un sistema semplice che mi proponesse i tag sensati per ogni tipo di contenuto.
Se hai un sito piccolo, forse non ti serve, ma se pubblichi da anni e inizi già a dubitare tra categorie, tag, temi, formati e strumenti, creare una mappa editoriale o un sistema editoriale può risparmiarti parecchio caos, presente e futuro.
Non è una grande rivoluzione tecnica, ma è un miglioramento per risparmiare tempo e pubblicare sempre con lo stesso criterio.
Domande frequenti
Che cos’è una tassonomia in WordPress?
Una tassonomia in WordPress è un modo di organizzare i contenuti. Le più comuni sono categorie e tag, anche se WordPress permette anche di creare tassonomie personalizzate. In pratica servono a classificare gli articoli e ad aiutare un sito a essere più facile da navigare e mantenere.
A cosa serve una mappa editoriale della tassonomia WordPress?
Serve ad avere chiaro quali categorie e tag usare in ogni articolo. Invece di deciderlo a memoria ogni volta che pubblichi, hai una schermata interna dove vedi le categorie, i tag consigliati e la funzione editoriale di ogni termine.
Qual è la differenza tra categorie e tag in WordPress?
Le categorie di solito rappresentano le grandi sezioni di un sito. I tag servono a collegare contenuti per tema, formato, strumento, autore, intenzione o approccio. Per esempio, una categoria può essere “Tecnologia” e un tag può essere “WordPress”, “Tutorial” o “Privacy”.
Cosa sono i tag strutturali?
Sono tag trasversali che possono applicarsi ad articoli di categorie diverse. Per esempio, “Tutorial”, “Recensione”, “Consigliato”, “Risparmio” o “Privacy”. Non appartengono a una sola sezione, ma descrivono il tipo di contenuto o la sua intenzione.
Cosa sono i tag annidati?
Sono tag che hanno una categoria naturale di riferimento. Per esempio, “Google Analytics” rientra in Analytics, “Email” in Marketing, “Console” in Videogiochi o “Fumetto europeo” in Fumetti. Aiutano a mantenere una classificazione più coerente.
Questa mappa editoriale cambia la tassonomia di WordPress?
Non necessariamente. La mappa editoriale non deve per forza modificare categorie o tag da sola. La sua funzione principale è servire come guida visiva dentro l’amministrazione per decidere meglio come classificare ogni articolo.
Vale la pena creare una mappa editoriale in un sito piccolo?
Se hai pochi articoli, probabilmente non è necessario. Comincia ad avere senso quando il sito cresce, ci sono molte categorie o tag, pubblichi su diversi temi o hai bisogno di mantenere un criterio editoriale più chiaro.
Organizzare meglio categorie e tag aiuta la SEO?
Può aiutare in modo indiretto. Una tassonomia più chiara migliora la struttura interna, evita duplicati, facilita i collegamenti e permette di creare archivi di categorie o tag più utili. L’importante è non creare termini senza senso né pagine archivio vuote o troppo povere.

Lascia un commento