Blog sobre desarrollo WordPress en Español Desarrollo WordPress en Español
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:

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:

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:

¿Qué opinas?

Puede que también te interese

Cómo crear un formulario de registro personalizado en WordPress
Cómo crear un formulario de registro personalizado en WordPress
En entradas anteriores hemos visto cómo crear formularios de log-in / log-out personalizados, y cómo agregar campos personalizados al perfil de usuario de WordPress tanto…
WP-CLI Parte 1, instalación y primeros pasos
WP-CLI Parte 1, instalación y primeros pasos
Con esta entrada comienzo una serie de artículos sobre WP-CLI (WordPress Command Line Interface). WP-CLI es una herramienta que nos permite realizar acciones como instalar…
Cómo crear una página de error de acceso a base de datos personalizada
Cómo crear una página de error de acceso a base de datos personalizada
En alguna ocasión nos podemos encontrar con un error de acceso a la base de datos por diversos motivos, y en estos casos nos aparece…
Seguridad WordPress: proteger wp-config.php
Seguridad WordPress: proteger wp-config.php
El archivo wp-config.php es uno de los más críticos en cuanto a seguridad se refiere ya que es el que contiene la información sobre la…




  • 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

    • 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