Seleccionar página

Errores de datos estructurados en Search Console con WordPress

por | Feb 28, 2017 | SEO

Índice de contenidos

Corrección errores de datos estructurados

Ayuda para usuarios de páginas WordPress: solución a los errores de datos estructurados en Search Console, falta author, updated… tipo de datos hentry.

Microformats-hentry

Vamos a la herramienta para Webmaster de Google, Search Console y pulsamos sobre Apariencia en el buscador >> Datos Estructurados.

SearchConsole-DatosEstructurados

Cuándo termine el rastreo de tu página se mostrará un resumen con los errores de datos estructurados en Search Console.

Errores tipo de datos hentry en microformats.org

hentry-errores

En este ejemplo los errores se producen en el microformato de tipo  hentry. Esto quiere decir que estamos utilizando el formato de datos semánticos o estructurados de microformats.org. 

Para entender que error estamos cometiendo, lo más lógico es que conozcamos las propiedades de este microformato. Toda la información la encontrarás en la página: http://microformats.org/wiki/hCard

Lo más importante es conocer las propiedades obligatorias que hay que implementar para el título, autor y fecha de cada entrada del blog. La estructura del microformato hentry está compuesta de propiedades opcionales y obligatorias que si no son detectadas provocan errores de datos estructurados en Search Console.

Volviendo a nuestro ejemplo, vamos a hacer click sobre la palabra «hentry» para que nos muestre todas las páginas con errores:

Paginas-con-errores-en-datos-estructurados

Si nos fijamos en la última columna nos está indicando el error de datos estructurados que detecta, en mi caso si observo las URL veo que en todas las entradas de mi blog falta author y updated y en las páginas falta author, entry-title y updated. 

Para solucionar este error vamos a modificar las plantillas de WordPress o el archivo functions.php:

1.- Si el error es en entradas individuales del blog tenemos que modificar la plantilla single.php.  

2.- Si el error es en páginas modificaremos archive.php o la plantilla que carga las páginas.

3.- Si las etiquetas html se crean en funciones debemos trabajar con el archivo functions.php

Herramienta de pruebas de datos estructurados

Vamos a comprobar los datos estructurados que nos faltan, author y updated de nuestras entradas del blog:

1.- Selecciona una URL de un post de tu lista de errores y pulsa sobre la URL: en este caso seleccionamos una entrada del blog en la que falta author y updated.

ComprobarDatosEstructurados

Se abrirá una ventana emergente con un botón: Probar datos activos, pulsa sobre él para abrir la Herramienta de prueba de datos estructurados.

2.- En la columna de la izquierda verás el código fuente de tu página, aquí tienes que localizar la parte de código que hace referencia al título, autor y a la fecha de la entrada. 

Dentro de la etiqueta <article class=»hentry»> 

Herramienta de pruebas de datos estructurados

Los errores de datos estructurados en Search Console para esta URL concreta son: Falta author y updated. Analizando el código observamos lo siguiente:

1.- El título (entry-title) está correcto. Efectivamente el formato para el título sólo obliga a implementar una etiqueta HTML con class:»entry-title» y contenido de texto (el título de la entrada). CORRECTO

2.- El autor se agrupa en una etiqueta span HTML con la clase author vcard. CORRECTO

3.- El enlace a la URL de author: dentro del enlace de la etiqueta author es obligatoria la propiedad de class=»fn». Lo correcto es: <a href=»urlautor» class=»fn»…> ERROR

Debemos añadir la clase fn a todos los enlaces de autor

4.- La fecha: el esquema hentry obliga a tener un formato fecha con la class=»updated». En mi caso brilla por su ausencia. ERROR

Solución falta author, updated en los datos estructurados de WordPress

Ya hemos detectado los problemas que provocan los errores de datos estructurados en Search Console en nuestra página WordPress. Tenemos dos posibilidades para solucionarlos que dependen de cómo se crean las etiquetas HTML en nuestra página.

En algunos temas de WordPress las etiquetas se crean directamente en los archivos single.php, archive.php e index.php. En este caso al abrir el archivo encontrarás las etiquetas referentes a título, autor… y puedes modificar directamente el código para añadir los datos que te faltan. Sin embargo en otros temas es una función la encargada de crear estas etiquetas, en este caso la solución no es tan sencilla y depende del tema.

Vamos a ver esto con más detalle.

Solución 1: Modificaciones en archivos single.php, archive.php, index.php

Nos vamos a nuestra carpeta wp-content/themes y abrimos el archivo single.php. Localiza en el archivo las etiquetas: entry-title, author vcard y alguna que haga referencia a la fecha.

Si has detectado que falta entry-title entonces tienes que añadir también esta tag HTML:

<h1 class="entry-title"><?php the_title(); ?></h1>

Debajo de title busca author vcard y dentro del enlace añade la clase fn:

<span class="author vcard">
<a href="https://laprogramaciondehoy.com/author/" class="fn" title="Lph by Nerea Liébana" rel="author">
Lph by Nerea Liébana</a>
</span>

Por último nos falta modificar o añadir a la etiqueta de fecha la clase updated:

<span class="updated"><?php the_time('j F,Y'); ?></span>

Debes repetir estos pasos para los archivos index.php y archive.php si has detectado errores de datos estructurados en el index de tu WordPress o en las páginas.

Solución 2: Modificaciones en el archivo functions.php

Si después de revisar los archivos de tu tema, no has encontrado las etiquetas HTML es porque se generan mediante funciones de WordPress. En este caso debemos añadir filtros para modificar estas funciones.

add_filter the_author_post

‘the_author_posts_link’ es la función  encargada de crear el código HTML para vcard author. Vamos a añadir un filtro sobre esa función para que incluya en la etiqueta la clase fn.

Nos vamos abrir el archivo functions.php de nuestro tema y añadimos el siguiente código: el filtro reemplaza dentro del link rel=»author» por rel=»author» class=»fn»

//añadir class fn a la función auto 
function add_class_to_author_link($link) {
    return str_replace( 'rel="author"', 'rel="author" class="fn"', $link);
}
add_filter('the_author_posts_link', 'add_class_to_author_link');

Quitar hentry en las páginas que no sean entradas del blog 

Si quieres eliminar los datos estructurados para las páginas que no sean entradas individuales del blog, tienes que añadir el siguiente código en tu archivo functions.php.

/* Remove Hentry
/* ------------------------------------ */
function remove_hentry( $classes ) {
   if( !is_single() ) {
      $classes = array_diff($classes, array('hentry'));
      return $classes;
   } else {
   return $classes;
   }
}
add_filter( 'post_class', 'remove_hentry' );

Si analizas el código verás que eliminando el if(!is_single()) eliminarás los datos estructurados en toda tu web.

Si además quieres eliminar los datos estructurados en Custom Post Types (ejemplo CPT: trabajo-realizado y servicio) utiliza el siguiente código:

function remove_hentry( $classes ) {
   if( !is_single() || is_singular('trabajo-realizado') || is_singular('servicio')) {
      $classes = array_diff($classes, array('hentry'));
      return $classes;
   } else {
   return $classes;
   }
}
add_filter( 'post_class', 'remove_hentry' );

Personalmente creo que la mejor opción para solucionar el problema es hacer un mix de las soluciones que se aportan en esta entrada. Como los microdatos están pensados para aportar información semántica que se supone que ayuda al SEO de la página, opino que tienen sentido con entradas tipo post, eventos, noticias… pero no están pensados para contenido de páginas estáticas.

En definitiva yo he optado por eliminarlos de todas las páginas que no sean entradas del blog y corregir los problemas en las páginas de entradas individuales (single.php)

Más información soporte WordPress.

Comprobar que los errores se han solucionado

Google Search Console volverá a rastrear tu sitio en unas semanas y podas comprobar de nuevo si has solucionado los problemas que tenías con los datos estructurados. 

Si quieres ir comprobando las URL de cada página de error utiliza la: Herramienta test datos estructurados de Google

Información completa sobre microformato hentry: http://microformats.org/wiki/hentry

 

 

 

5 Comentarios

  1. carlos

    Uso el theme Divi , pero nunca encontre el Class=»author» en ninguna de las opciones.
    Interesante el artículo.

    Responder
  2. Daniel Informatico

    Buenas.. tengo una Duda.. me salen los mismos errores pero cuando voy a buscar los Codigos en las carpetas… no los consigo…. no veo nada que se parezca a «author» que puedo hacer??

    Responder
    • Lph by Nerea Liébana

      Hola Daniel, veo que ya lo has conseguido.
      Código fuente de la web consejosparalavida.net
      Lo único la palabra Lph se refiere a el nombre de mi web «la programación de hoy», no tiene nada que ver con la estructura del rel author.
      Feliz día y hasta la próxima!

      Responder
  3. Perla

    Interesante vamos aprobarlo, muchas gracias por tu ayuda

    Responder
    • Lph by Nerea Liébana

      Buenos días, si puede ayudarte el artículo ha merecido la pena el trabajo.
      Hasta la próxima!

      Responder

Enviar un comentario

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