Buenos días,
Ayer recibí email de Google Search Console en el que me indicaba que debía incluir en los productos de Woocommerce ciertos campos:
La web comercializa la venta de clases online de español y en ese sentido existen una serie de productos creados que define el tipo de clases y sesiones asociadas. Todo son productos virtuales por lo que no existe envío asociado del producto. He estado buscando cómo hacerlo y he encontrado estos 2 post de Jhon:
- Campos personalizados en productos de WooCommerce: https://decodecms.com/campos-personalizados-en-productos-de-woocommerce/
- Agregar Microdatos en campos de productos en WooCommerce: https://decodecms.com/agregar-microdatos-en-campos-de-productos-en-woocommerce/
He revisado el código en la páginas de los productos y efectivamente no se indican estos 4 campos. Entiendo entonces que el proceso consiste en:
- Instalarme el plugin Advanced Custom Fields y crear los 4 campos que me requieren.
- Después incluir en Functions.php el código para agregar Microdatos adicionales al Producto, repetido 4 veces y ajustado a los 4 campos que debo cumplimentar.
add_filter( 'woocommerce_structured_data_product', 'dcms_product_microdata', 10, 2 );
function dcms_product_microdata( $markup, $product ){
if ( function_exists('get_field')){
if ( get_field('marca')!='' ){
$markup['brand'] = get_field('marca');
}
}
return $markup;
}
En el caso del campo marca (brand) lo tengo claro pero respecto del resto de campos, revisando https://schema.org/docs/search_results.html?q=product no sé qué valor debo indicar para los campos:
- GTIN: Entiendo que es un valor numérico de 14 dígitos que debo asignar a cada uno de los productos que comercializo. ¿Es correcto?
- review: Valor que indica la revisión del producto. No he encontrado cuantos dígitos debo indicar, pretendo poner un valor como "00001" por ejemplo. ¿Sería correcto?
- aggregateRating: Indica la valoración general en base a un número de reseñas. ¿Qué hago con el valor para este campo? En Woocommerce-Ajustes-Productos tenía desactivada las valoraciones de los productos. He probado a activarlas y luego he ido a cada producto y en la pestaña de Avanzado he activado las valoraciones pero, por tanto, de momento no tengo ninguna. ¿Qué valor debo indicar en el campo? ¿Se actualizará de forma automática cuando se realicen las valoraciones?
Gracias
Contenido solo visible a usuarios registrados
Hola Gabriel.
Son datos que son opcionales no tienes por que añadirlos si no quieres, ni te penaliza ni tendras problemas con el SEO:
En la prueba de lso datos estructurados tampoco vemos problemas:
_> https://search.google.com/test/rich-results?utm_campaign=sdtt&utm_medium=message&id=H4c5jQL6r2vKd7fMvqWy0 Q" target="true">generar resultados enriquecidos
Puedes añadir esos datos en el siguiente plugin:
-> https://es.wordpress.org/plugins/all-in-one-schemaorg-rich-snippets/
Una vez instalado accedes al plugin y en al opción " WooCommerce Configuration " selecciona "
Cuando tengas eso edita los productos, veras que tienes un nuevo apartado " Configurar Rich Snippets "
En el desplegable superior seleccionas " Producto " y añades los datos.
Actualizas el producto y ya lo tendrías.
Un saludo
@pepesoler Gracias Pepe. Sí, soy consciente de que no son errores pero preferiría evitar también esos warning.
He instalado el plugin que me recomiendas -> https://es.wordpress.org/plugins/all-in-one-schemaorg-rich-snippets/ y con eso consigo resolver 2 de los 4 warning, me sigue faltando identificar el GTIN y el brand. He visto que los 2 campos que me resuelve son los que corresponden con los comentarios y valoraciones por lo que, tras habilitar los comentarios en los productos, ya quedan igualmente resueltos sin el plugin.
Hola Gabriel,
Entiendo con esto que haz logrado solucionarlo? si es así coméntanos si podemos dar el tema como cerrado
Un Saludo
He instando resolverlo de la forma que comenta @jmarreros
- Instalando Advanced Custom Fields y creando 2 campos para incorporarlos a los productos (Marca y gtin)
Después he incluido en Functions.php el código para agregar Microdatos adicionales al Producto, repetido 2 veces y ajustado a los 2 campos que debo cumplimentar.
/* Agregar Microdatos adicionales al Producto BRAND */
add_filter( 'woocommerce_structured_data_product', 'dcms_product_microdata', 10, 2 );
function dcms_product_microdata( $markup, $product ){
if ( function_exists('get_field')){
if ( get_field('marca')!='' ){
$markup['brand'] = get_field('marca');
}
}
return $markup;
}
Este código para incluir el brand funciona correctamente y ya se elimina el warning del brand, sólo queda el de GTIN:
Pero al añadir en functions seguidamente el mismo código pero ajustado al campo gtin8 que es que pretendo informar, se rompe la web por lo que lo tengo entre comentarios actualmente.
/* Agregar Microdatos adicionales al Producto gtin8 */
add_filter( 'woocommerce_structured_data_product', 'dcms_product_microdata', 10, 2 );
function dcms_product_microdata( $markup, $product ){
if ( function_exists('get_field')){
if ( get_field('gtin')!='' ){
$markup['gtin8'] = get_field('gtin');
}
}
return $markup;
}
Por favor, ¿podéis indicarme qué estoy haciendo mal? muchas gracias
Hola
Lo que sucede es que estas usando la función dcms_product_microdata dos veces
Una solucion rápida sería cambiarla de nombre la segunda vez, por ejemplo: dcms_product_microdata_gtin
Tu código quedaría:
add_filter( 'woocommerce_structured_data_product', 'dcms_product_microdata_gtin', 10, 2 );
function dcms_product_microdata_gtin( $markup, $product ){
if ( function_exists('get_field')){
if ( get_field('gtin')!='' ){
$markup['gtin8'] = get_field('gtin');
}
}
return $markup;
}
Saludos.
@jmarreros Perfecto, muchas gracias por tu ayuda y por los post! Muy buenos!