Soluciona los errores de datos estructurados Falta: entry-title Falta: author Falta: updated en tu tema WordPress

Hace unas semanas revisando la Search Console de Google específicamente en la sección Apariencia en el buscador > Datos estructurados.

Panel de gestión herramienta search console google
Panel Search Console

Tenia una buena colección de errores de tipo hentry y hatom.

elementos con errores de datos estructurales
Número de elementos con errores Falta: author Falta: updated

Donde faltaban elementos de microformats author y updated.

Search Console datos estructurados detectados
Propiedades obligatorias faltantes de datos estructurados: Author y Updated.

Y me pregunte ¿por qué? si las entradas tienen su autor y fecha.

Usando el buscador de Google para investigar el error encontré información y el problema es muy común de lo que parece sobre todo en paginas web que usan algunos temas premium o gratis del gestor de contenidos WordPress.

Ya que la mayoría de los desarrolladores que diseñan las plantillas deciden usar el mismo código para generar el HTML básico, obteniendo como resultado el usuario final del tema un soporte parcial de datos estructurados que no se adapta a las necesidades de su proyecto o sitio web.

Como WordPress usa la funcion post_class() en las plantillas y esta genera uno o más de los siguientes valores para el atributo class:

  • post-[id]
  • [post-type]
  • type-[post-type]
  • status-[post-status]
  • format-[post-format] (predeterminado a ‘estándar’)
  • post-password-required
  • post-password-protected
  • has-post-thumbnail
  • sticky
  • hentry (páginas de microformato hAtom)
  • [taxonomy]-[taxonomy-slug] (incluye categoría)
  • tag-[nombre-etiqueta]

Cuando el robot de Google rastrea las paginas del sitio web y detecta entre ellas la clase hentry (páginas de microformato hAtom) generada por la función mencionada anteriormente espera encontrar metadatos completos o obligatorios cuando visita las paginas, si faltan propiedades obligatorias el resultado conlleva a que Google nos muestre errores en la herramienta Search Console.

La acumulación de estos errores en la herramienta Search Google puede afectar negativamente nuestro SEO.

A pesar de investigar y notar que existen algunos post sobre este tema también note que algunos blogger solo colocaban códigos y las soluciones eran poco o nada explicables y por ende los resultados eran negativos.

Seguía por el camino con el mismo problema falta author, falta updated en la herramienta Search Google, teniendo en cuenta que la información era muy vaga decidí editar el tema que uso de tal manera que los errores falta author, falta updated se fueron solucionando.

Ahora a continuación te muestro como solucionar estos errores falta author, falta updated y también el menos común falta entry-title requeridos por Google independientemente de la plantilla de WordPress que uses.


Solución 1: Instalar un plugin de marcado de datos estructurados

La manera más facil de solucionar este y otros problemas en plantillas de WordPress, como siempre es instalar un plugins para este caso necesitamos un plugin que genere automáticamente los datos estructurados para cada página donde hagan falta los datos obligatorios requeridos por Google.

Existen unos cuantos que ofrecen este soporte de ayuda para generar estos datos, te recomiendo Schema App Structured Data o el plugin Schema.

El primero tiene alrededor de 9 mil instalaciones hasta el momento, es uno de los más completos que he encontrado y es semi-automatico.

Al activarlo ya genera de forma predeterminada el marcador de datos, cada vez que edites una nueva entrada o página encontraras una caja de Schema App Structured Data donde podrás confirmar que datos se crearan al publicar el post, generalmente debajo del plugin Yoast SEO si lo usas.

Plugins de datos estructurados para WordPress

Para personalizar o configurar el plugin basta con ir a la sección Ajustes > Schema App > Settings y seleccionar que tipo de marcador de datos queremos que se generen.

El segundo y no menos importante tiene unas 30 mil instalaciones, me gusta mucho este plugin Schema porque su interfaz visual es simple nada complicado.

Plugins de datos estructurados para WordPress
Plugins Schema

Tiene una Guía Paso a Paso que te ayuda a elegir marcado Schema adecuado para su sitio web, totalmente compatible los plugins Yoast SEO y AMP.

Solo tienes que instalarlo seguir la guía rellenando los campos que se te indiquen y listo, se solucionaran tus problemas de datos estructurados.


Solución 2: Editar la plantilla del tema WordPress

Esta solución es mi preferida, como mencionaba en algunos de los post no me decanto por usar muchos plugins, solo los necesarios.

A pesar de ser una solución un poco complicada para los que no les gusta editar el código de su plantilla WordPress, tratare de ser lo más claro posible para que no cometas ningún error.

Este artículo supone que ya está familiarizado con la funcionalidad básica de WordPress y con la edición de ficheros en su hosting

Ahora volviendo al asunto, cada tema creado para WordPress es un mundo, ¿por qué? la razón es que, hay temas que hacen uso extensivo de templates para definir la plantilla cada una de sus partes que la componen.

Por ejemplo, el fichero de nombre content-single.php dentro de su código encontramos la función post_class(); y en su caso una llamada a una función /template-part-postmeta.php que contiene el nombre del autor, categoría, fecha de publicación, etc. Y se encarga específicamente del renderizado de la plantilla añadiendo las clases author y updated entre otras en los post.

Estoy casi seguro que no todos los temas hacen una llamada a otra template donde se encuentran los metadatos, pero para localizar donde se encuentra el error debemos encontrar la función post_class(); en los ficheros que por lo general son:

single.php o content-single.php (Si el error está en las entradas)

page.phpcontent-page.php (Si el error está en las paginas)

archive.phploop.php o content-loop.php (Si el error está en archivos o loop)

Y localizar en ellas si las clases metadatos están añadidas allí con etiqueta <div> o la plantilla llama a otra template que por lo general tienen el nombre de template-tags.php postmeta.php  o entry-meta.php sirva a modo de ejemplo debes encontrar un código similar a los siguientes:

<?php tema_entry_meta(); ?>

<?php get_template_part( 'content', 'single' ); ?>

Cuando ya identifiques la plantilla donde se encuentra el error por falta de datos obligatorios lo siguiente es solucionarlo.

Solucionar el error falta author

A pesar de que probablamente tu tema muestre el autor en las publicaciones y solo deseas solucionar este error que muestra Search Console.

La propiedad author en teoria debe tener formato de hCard por lo que si haces clic en inspeccionar en el nombre de author de tu sitio web es probable que la etiqueta que engloba author sea similar a la siguiente imagen.

class author faltan propiedades

Dando como resultado falta de información cuando el robots de google rastrea la pagina.

Por que debe tener formato de hCard con las siguientes class=»vcard author» y class=»fn» en la etiqueta que engloba al autor.

Etiqueta microformats correcta class author

Para añadir las clases mencionadas en la función  <?php the_author_posts_link(); ?> que es la genera el enlace de author te enseño dos métodos.

Método 1: Añadiendo el siguiente filtro al fichero functions.php de nuestro tema:

/* Filtro solución Falta Author */

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');

Este método, la función no es más que reemplazar el típico rel=»author» que genera la función  <?php the_author_posts_link(); ?> por  rel=»author» class=»fn».

Nota: A pesar de que esta solución es fácil y sencilla de aplicar, puede ocasionar problemas futuros dependiendo de los código que estés añadiendo constantemente al fichero functions.php de su tema.

Método 2: Reemplazar la función <?php the_author_posts_link(); ?>

Este método es el que utilizo en mi tema, es necesario localizar primero la plantilla donde se genera el error falta author y reemplazar la función <?php the_author_posts_link(); ?> correspondiente al author por las siguientes lineas:

</span><span> Publicado por </span><span class="vcard author"><?php printf( __( '%s', 'nombredeltema' ), '<a href="' . esc_url( get_author_posts_url( get_the_author_meta( 'ID' ) ) ) . '" title="Entradas de ' . esc_attr( get_the_author() ) . '" rel="author"' . ' class="fn">'. get_the_author() . '</a></span>' ); ?> </span>

Nota: Reemplaza  ‘nombredeltema’  por el nombre del paquete de tema que usas dejando las comillas.

Con esto ya el problema de falta author estará solucionado.

Solo hará falta esperar que el robots de Google vuelva a visitar las paginas que presentaban errores que toma entre 3 a 5 días dependiendo de cuantas actualizaciones tiene tu web, luego ir nuevamente a la herramienta search console y ver disminuir los errores.

Solucionar el error falta: updated

Al igual como sucede con el author aquí también debemos ubicar la plantilla donde se genera el error por lo general es la de las entradas single.php o content-single.php o la template que genera los metadatos y buscar el código <?php the_time el error se debe a que el código no contiene una etiqueta con class=»updated» que engloba a la fecha por ende es necesaria añadirla.

Para solucionarlo solo debemos reemplazar el código por este formato:

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

Solucionar el error falta: entry-title

Este error es poco común en temas de WordPress pero si te encuentras con el error en algún tema, debes ubicar la plantilla donde se produce el error ya sea en content-single.php content-page.php o content-loop.php y en la primeras lineas del código <?php post_class localizar la palabras the_title el titulo de la publicación debe estar encerrado en una etiqueta que engloba la clase.

Para solucionar el error solo tenemos que añadir esta propiedad dentro de etiqueta <h1> de <?php the_title(); ?>:

<h1><class="entry-title" rel="bookmark"></h1>

Solución general para los 3 errores

Una solución más simple si se te complica todo esto por verlo muy complejo, es agregar un filtro único al fichero functions.php solo tienes que copiar y pegar el siguiente código.

//add hatom data extra

function add_suf_hatom_data($content) {
 $t = get_the_modified_time('F jS, Y');
 $author = get_the_author();
 $title = get_the_title();
if (is_home() || is_singular() || is_archive() ) {
 $content .= '<div class="hatom-extra" style="display:none;visibility:hidden;"><span class="entry-title">'.$title.'</span> was last modified: <span class="updated"> '.$t.'</span> by <span class="author vcard"><span class="fn">'.$author.'</span></span></div>';
 }
 return $content;
 }
add_filter('the_content', 'add_suf_hatom_data');

El código anterior simplemente añade las clases faltantes Author, Updated, Title, de no encontrarlas en Home, Single, Archive y como extra les añade una etiqueta div oculta para que no se muestre en esas secciones.

Elementos sin errores de datos estructurados
Search Console elementos sin errores de datos estructurados
Importante: Cada cambio que hagas en cualquier plantilla de tu tema y luego guardes no se puede revertir con Ctrl+Z por eso es importante que hagas una copia de seguridad no del sitio web completo solo de la plantilla que estés editando al momento por si cometes algún error.

Si usas un plugin de cache, recuerda también vaciarlo después de que hagas todos los cambios.

Luego de añadir las clases author y updated si google rastrea tu sitio y siguen los errores, tal vez sea por que usas al final de los post (Entradas relacionas o Post relacionados) y allí es donde esta el problema.

Si quieres verificar si los datos añadidos solucionan lo errores antes de que Google rastree el sitio nuevamente puedes comprobar los enlaces en su herramienta online de datos estructurados.

Conclusión

Queda claro que, si queremos mantener un historial de datos estructurados sin errores en la herramienta de google search debemos usar un tema bien escrito donde el código de la plantilla no herede los errores del programador que la diseño.

De lo contrario la solución requiere de experiencia en edición de plantillas WordPress y conocimientos de datos estructurados para tener correctamente puesto los códigos de hatom y hentry obligatorios.

Así como ya lo he dicho en otros post y lo mencione arriba también, no soy fan de usar muchos plugins si el problema se puede resolver agregando un lineas de código a la plantilla de tema, hágalo usted mismo.

Si aún continuas con el problema escribe un comentario y especifica el error, para poder ayudarte.

Similar Post