category tag seo

Deshabilitar página de categorías o etiquetas

Como sabrás, WordPress por defecto tiene dos taxonomías para las entradas o posts de tu sitio: categorías y etiquetas. Estas taxonomías te permiten categorizar o etiquetar tus entradas o posts para una mejor búsqueda o filtro de contenidos.

Son muy útiles para organizar contenidos. No son exclusivas de los posts, puedes crear tantas taxonomías como quieras para tus Custom Post Types de tipo jerárquico (como las categorías) o sin jerarquía (como las etiquetas).

Por ejemplo y sin ir más lejos, en este blog tengo 4 subcategorías: Entrevistas, Noticias, Plugins y Tutoriales, que pertenecen a la categoría principal Blog. Y varias etiquetas entre las que se encuentran custom fields, hooks, wpo, amp, wp-cli, etc…

Las primeras generan URLs del tipo https://desarrollowp.com/category/blog/tutoriales/ y las segundas del tipo https://desarrollowp.com/tag/wpo/. Si entramos en estas URLs estaremos navegando por las plantillas category.php y tag.php del tema, y en ambas se ofrece un listado de todos los posts categorizados o etiquetados por la categoría o etiqueta correspondiente.

Y aquí es cuando llegamos al quid de la cuestión: Mucha gente piensa que estas páginas con listados de categorías y etiquetas no aportan beneficios para el posicionamiento SEO de nuestra página. Incluso algunos/as afirman que puede llegar a resultar negativo. Sin entrar en el debate de si es bueno o no, lo que está claro es que en algunos casos o para algunos proyectos es probable que quieras o te pidan deshabilitar estas páginas.

Tienes disponibles en internet herramientas como SiteLiner para detectar contenido duplicado, entre otras cosas.

Evitar la navegación por category.php y tag.php en WordPress

Voy a centrarme en las taxonomías por defecto que tiene WordPress (categorías y etiquetas), pero esto es extensible a cualquier taxonomía que quieras crear para tus Custom Post Types. Vamos a añadir una función en el archivo functions.php que engancharemos al hook template_redirect:

<?php

// Evitar mostrar el archivo de etiquetas
function dont_display_tags(){
    if ( is_tag() ) {
        global $wp_query;
        $wp_query->set_404(); //Establecemos la página de error 404
    }
}
add_action( 'template_redirect', 'dont_display_tags' );

El hook template_redirect se ejecuta justo antes de que WordPress determine que plantilla va a cargar. En este ejemplo lo que hago es comprobar a través de los condicionales de WordPress si estoy en una página de etiquetas con la función condicional is_tag(), y en ese caso establecer una página de error 404. De este modo nunca llegaremos a navegar por la plantilla tag.php.

Para hacerlo con las categorías sería simplemente utilizar el condicional is_category(), y evitaríamos la navegación por la plantilla category.php.

Tanto para etiquetas como para categorías podríamos filtrar sólo por algunas de ellas pasando a las funciones is_category() e is_tag() los IDs o Slugs de categorías o etiquetas determinadas, es decir, podemos personalizarlo hasta el extremo que necesitemos.

Así como podemos personalizar el destino, si no te gusta o no quieres forzar un 404 puedes hacer una redirección a una URL o página concreta de tu sitio de la siguiente manera:

<?php

// Evitar mostrar el archivo de etiquetas
function dont_display_tags(){
    if( is_tag() ) {
        wp_redirect( 'la-url-o-pagina-que-quieras' );
        exit;
    }
}
add_action( 'template_redirect', 'dont_display_tags' );

Por último podrías avisar a los robots de búsqueda para que no indexen estás páginas de categorías y etiquetas, teniendo algo así en el robots.txt de tu sitio:

User-agent: *
Disallow: /tag/
Disallow: /category/

¿Qué opinas?

¿Te ha resultado útil esta información? 🍺

Si este post te ha resuelto un problema, invítame a un café o a una cerveza. Con este pequeño gesto me animas a seguir escribiendo.

Comentarios

2 comentarios en Deshabilitar página de categorías o etiquetas

  1. Hola, Pablo,

    Yo estuve un tiempo probando alternativas en mi web para categorías. Al final, lo que mejor resultado me dio, fue dejar el listado de artículos como un listado de una sola página en forma de lista() perteneciente al contenido. De todos modos, no le hice suficiente seguimiento, así que no es algo que pueda dar por seguro a ciencia cierta.

    Saludos

    1. Si, pienso que puede ser una buena solución. Y si tienes muchos artículos en ese listado complementarlo con un scroll infinito.

      Soy un poco agnóstico con el SEO. Aún a riesgo de meterme en algún charco, conozco a muchas personas de perfil SEO y siempre tengo la sensación que hay tendencias o creencias más que una verdad absoluta y única para todos.

      Pero si que es cierto que herramientas como SiteLiner te detectan las páginas de categorías/etiquetas, e incluso la paginación como contenido duplicado.

      Si lo piensas una página con paginación, realmente son dos URLs diferentes con el mismo contenido (title, description…) excepto el listado que pagina… y siendo sinceros…¿quien visita la página 2?

      Creo que una buena solución es tener una única página con scroll infinito

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *:

  • El fin del tratamiento es únicamente la moderación de comentarios para evitar spam
  • La legitimación es tu consentimiento al comentar
  • No se comunicará ningún dato a terceros salvo por obligación legal
  • Tienes derecho al acceso, rectificación y eliminación de los comentarios