Skip to content

Schema.org structured data

Datos estructurados JSON-LD automáticos (Schema.org) en las páginas de producto. Ayudan a los buscadores a mostrar rich snippets en los resultados.

Los datos estructurados se generan automáticamente en las páginas de producto. No es necesario instalar plugins de SEO adicionales para los datos estructurados de producto - Polski for WooCommerce se encarga de ello de forma independiente.

Si utilizas un plugin de SEO (Yoast, Rank Math, SEOPress), Polski for WooCommerce se integra con él y complementa los datos en lugar de duplicarlos.

En cada página de producto se genera un objeto Product que contiene:

{
"@context": "https://schema.org",
"@type": "Product",
"name": "Premium Cotton T-shirt",
"description": "T-shirt made from certified organic cotton, sizes S-XXL.",
"image": [
"https://yourstore.com/wp-content/uploads/tshirt-1.jpg",
"https://yourstore.com/wp-content/uploads/tshirt-2.jpg"
],
"sku": "TSH-001",
"gtin13": "5901234123457",
"brand": {
"@type": "Brand",
"name": "MyBrand"
},
"manufacturer": {
"@type": "Organization",
"name": "Producer XYZ Sp. z o.o.",
"address": {
"@type": "PostalAddress",
"streetAddress": "ul. Fabryczna 1",
"addressLocality": "Warsaw",
"postalCode": "00-001",
"addressCountry": "PL"
},
"email": "[email protected]",
"url": "https://xyz.pl"
},
"countryOfOrigin": {
"@type": "Country",
"name": "PL"
},
"offers": { ... },
"aggregateRating": { ... }
}
Campo Schema.orgFuente de datosObligatorio
nameNombre del producto en WooCommerce
descriptionDescripción corta del producto
imageImagen principal + galería
skuSKU del productoNo
gtin13 / gtin8Campo GTIN/EAN de PolskiNo
brandFabricante/marca de PolskiNo
manufacturerDatos del fabricante de GPSRNo
countryOfOriginPaís de origen de GPSRNo
categoryCategoría del productoNo
materialAtributo “material” (si existe)No
colorAtributo “color” (si existe)No
weightPeso del producto en WooCommerceNo

Cada producto contiene un objeto Offer anidado con información de precio y disponibilidad:

{
"@type": "Offer",
"url": "https://yourstore.com/product/cotton-tshirt/",
"price": "89.00",
"priceCurrency": "PLN",
"priceValidUntil": "2026-12-31",
"availability": "https://schema.org/InStock",
"itemCondition": "https://schema.org/NewCondition",
"seller": {
"@type": "Organization",
"name": "My Store"
},
"shippingDetails": {
"@type": "OfferShippingDetails",
"deliveryTime": {
"@type": "ShippingDeliveryTime",
"handlingTime": {
"@type": "QuantitativeValue",
"minValue": 1,
"maxValue": 2,
"unitCode": "d"
},
"transitTime": {
"@type": "QuantitativeValue",
"minValue": 1,
"maxValue": 3,
"unitCode": "d"
}
},
"shippingDestination": {
"@type": "DefinedRegion",
"addressCountry": "PL"
}
},
"hasMerchantReturnPolicy": {
"@type": "MerchantReturnPolicy",
"merchantReturnDays": 14,
"returnPolicyCategory": "https://schema.org/MerchantReturnFiniteReturnWindow",
"returnMethod": "https://schema.org/ReturnByMail"
}
}
Campo Schema.orgFuente de datos
pricePrecio del producto
priceCurrencyMoneda de WooCommerce
priceValidUntilFecha de fin de la oferta
availabilityEstado del stock
itemConditionSiempre NewCondition
sellerNombre de la tienda de los ajustes
deliveryTimePlazo de entrega de Polski
hasMerchantReturnPolicyDerecho de desistimiento de Polski
Estado de WooCommerceSchema.org
instockhttps://schema.org/InStock
outofstockhttps://schema.org/OutOfStock
onbackorderhttps://schema.org/BackOrder

Los productos variables generan un AggregateOffer con un rango de precios:

{
"@type": "AggregateOffer",
"lowPrice": "69.00",
"highPrice": "129.00",
"priceCurrency": "PLN",
"offerCount": 6,
"availability": "https://schema.org/InStock",
"offers": [
{
"@type": "Offer",
"price": "69.00",
"sku": "TSH-001-S",
"availability": "https://schema.org/InStock"
}
]
}

Si un producto tiene reseñas, se genera un objeto AggregateRating:

{
"@type": "AggregateRating",
"ratingValue": "4.5",
"bestRating": "5",
"worstRating": "1",
"ratingCount": 23,
"reviewCount": 18
}

Los datos se recogen del sistema de reseñas de WooCommerce. Si el módulo Reseñas verificadas está activo, solo se incluyen las reseñas de compras confirmadas.

Las reseñas individuales se generan como objetos Review:

{
"@type": "Review",
"author": {
"@type": "Person",
"name": "Jan K."
},
"datePublished": "2025-05-20",
"reviewRating": {
"@type": "Rating",
"ratingValue": "5",
"bestRating": "5"
},
"reviewBody": "Excellent material quality, highly recommend."
}

Productos alimenticios - NutritionInformation

Section titled “Productos alimenticios - NutritionInformation”

Para los productos del módulo de alimentos se genera un objeto NutritionInformation:

{
"@type": "NutritionInformation",
"calories": "250 kcal",
"fatContent": "12 g",
"saturatedFatContent": "3 g",
"carbohydrateContent": "30 g",
"sugarContent": "5 g",
"proteinContent": "8 g",
"sodiumContent": "0.8 g",
"fiberContent": "2 g",
"servingSize": "100 g"
}
add_filter('polski/schema/product', function (array $schema, WC_Product $product): array {
// Add a custom field
$schema['award'] = 'Product of the Year 2025';
return $schema;
}, 10, 2);
add_filter('polski/schema/offer', function (array $offer, WC_Product $product): array {
// Add warranty information
$offer['warranty'] = [
'@type' => 'WarrantyPromise',
'durationOfWarranty' => [
'@type' => 'QuantitativeValue',
'value' => 24,
'unitCode' => 'MON',
],
];
return $offer;
}, 10, 2);

Desactivar Schema.org para productos seleccionados

Section titled “Desactivar Schema.org para productos seleccionados”
add_filter('polski/schema/enabled', function (bool $enabled, int $product_id): bool {
// Disable for products in the "temporary" category
if (has_term('temporary', 'product_cat', $product_id)) {
return false;
}
return $enabled;
}, 10, 2);

Prueba los datos estructurados de tu tienda con:

En el modo de depuración de WordPress (WP_DEBUG = true), el plugin registra avisos sobre campos obligatorios de Schema.org que faltan en debug.log.

Polski for WooCommerce detecta los plugins de SEO más populares y ajusta su comportamiento:

PluginComportamiento
Yoast SEOComplementa el esquema de Yoast existente con campos de Polski
Rank MathComplementa el esquema de Rank Math con campos de Polski
SEOPressComplementa el esquema de SEOPress con campos de Polski
NingunoGenera el esquema completo de forma independiente

En caso de conflicto (duplicación de datos estructurados), usa el filtro:

add_filter('polski/schema/standalone', '__return_false'); // Disable standalone generation

Google no muestra rich snippets - los rich snippets pueden aparecer varias semanas después de la indexación. Asegúrate de que los datos pasen la validación en el Rich Results Test.

Duplicación de datos estructurados - si otro plugin genera el esquema Product, usa el filtro polski/schema/standalone para desactivar la generación independiente.

Sin valoraciones en Schema.org - el producto debe tener al menos 1 reseña con valoración por estrellas.

Notificar problemas: github.com/wppoland/polski/issues

Esta página tiene únicamente carácter informativo y no constituye asesoramiento legal. Consulta a un abogado antes de la implementación. Polski for WooCommerce es software de código abierto (GPLv2) proporcionado sin garantía.