URL objetivo: https://www.runnea.com/zapatillas-running/adidas/adizero-boston-13/1041450/
Fecha: 2026-04-17 15:35
Keyword SERP de referencia: adidas adizero boston 13 review
La URL implementa 5 bloques JSON-LD con JavaScript activado: Organization, WebSite, BreadcrumbList, Product y FAQPage. Todos los bloques son sintácticamente válidos.
Google Rich Results Test reporta 2 items elegibles (Product + Review), 0 errores, 0 advertencias: la ficha es apta para rich result de producto y review tal cual está. Sin embargo, el validador local detecta 3 propiedades recomendadas ausentes en el bloque Product (offers, aggregateRating, sku) y un segundo LLM identifica un error estructural en hasPart.associatedMedia (usa @type:ImageGallery en ítems anidados donde debería ir ImageObject).
Contra la competencia editorial del TOP 5 (excluyendo runnea en posición 2), runnea es el único que implementa Product con review embebido y reviewRating. Roadrunningreview (pos 1) usa solo NewsArticle; Atmosferasport (pos 4) ni siquiera tiene JSON-LD de producto; solo Runrepeat (pos 3) tiene Product, pero sin aggregateRating ni offers ni sku.
La oportunidad principal es añadir aggregateRating para habilitar estrellas visibles en SERP — ningún competidor lo tiene y la diferenciación visual sería inmediata.
| # | Posición | Dominio | URL | Competidor principal |
|---|---|---|---|---|
| 1 | 1 | roadrunningreview.com | https://www.roadrunningreview.com/es/Adidas-Adizero-Boston-13/REVIEW--101414.html | Sí |
| 2 | 2 | runnea.com | (URL objetivo) | — |
| 3 | 3 | runrepeat.com | https://runrepeat.com/adidas-adizero-boston-13 | Sí |
| 4 | 4 | atmosferasport.es | https://www.atmosferasport.es/blog/adidas-adizero-boston-13-la-mixta-que-te-hara-volar-b125.html | Sí |
| 5 | 5 | magazine.365rider.com | (no analizado, fuera del TOP-3) | — |
Elementos especiales en la SERP: vídeos (YouTube Shorts) en posiciones 6 y 10. Sin AI Overview, sin PAA, sin carrusel de shopping visible en el TOP 5.
| # | @type | Soportado Google | Sintaxis | Warnings local | Rich Results Test |
|---|---|---|---|---|---|
| 0 | Organization | ✓ | OK | contactPoint, sameAs, legalName ausentes |
— (no solicitado) |
| 1 | WebSite | ✗ | OK | No listado para rich results | — |
| 2 | BreadcrumbList | ✓ | OK | Sin warnings | — |
| 3 | Product | ✓ | OK | offers, aggregateRating, sku ausentes |
2 items elegibles, 0 errores |
| 4 | FAQPage | ✓ | OK | Sin warnings | — |
{
"@context": "http://schema.org",
"@type": "Product",
"name": "Adidas Adizero Boston 13",
"image": "https://static.runnea.com/images/.../boston-13-1200x1200x90xX.jpg",
"description": "Análisis y opiniones de Adidas Adizero Boston 13 ...",
"brand": { "@type": "Brand", "name": "Adidas" },
"url": "https://www.runnea.com/zapatillas-running/adidas/adizero-boston-13/1041450/",
"review": {
"@type": "Review",
"author": { "@type": "Person", "name": "Asier Rosende", "url": "..." },
"datePublished": "2024-11-13T20:39:11+01:00",
"dateModified": "2026-02-18T00:00:00+01:00",
"reviewBody": "...",
"positiveNotes": { "@type": "ItemList", "itemListElement": [ ... 4 items ... ] },
"negativeNotes": { "@type": "ItemList", "itemListElement": [ ... 2 items ... ] },
"reviewRating": { "@type": "Rating", "ratingValue": 8.9, "bestRating": 10, "worstRating": 1 }
},
"hasPart": {
"@type": "ImageGallery",
"associatedMedia": [
{ "@type": "ImageGallery", "url": "...", "name": "Adidas Adizero Boston 13" },
...
]
}
}
Campos presentes: name, image, description, brand, url, review (con author, datePublished, dateModified, reviewBody, positiveNotes, negativeNotes, reviewRating), hasPart.associatedMedia.
Campos recomendados por Google ausentes: offers, aggregateRating, sku.
Error estructural detectado por contraste LLM: dentro de hasPart.associatedMedia, cada ítem usa @type:ImageGallery — debería ser @type:ImageObject. ImageGallery es un contenedor, no un ítem.
codigo-usado/rich-results-product.png@type:Product, confirma que offers es opcional en editorial, recomienda aggregateRating y publisher.aggregateRating sea "obligatorio" (es recomendado), detecta error en associatedMedia (tipado ImageGallery en ítems anidados). Sin falsos positivos de type vs @type.URL: https://www.roadrunningreview.com/es/Adidas-Adizero-Boston-13/REVIEW--101414.html
Bloques JSON-LD detectados: Organization, NewsArticle, VideoObject. Microdata adicional WebPage.
Sin Product, sin Review, sin aggregateRating, sin offers, sin sku, sin brand. El bloque principal es NewsArticle, orientado a publicación editorial.
URL: https://runrepeat.com/adidas-adizero-boston-13
Bloques JSON-LD: WebPage, BreadcrumbList, Product (x2). Claves de primer nivel en Product: @context, @type, name, brand, image, description, review.
| Campo | Presente |
|---|---|
aggregateRating |
NO |
offers |
NO |
sku |
NO |
brand |
SÍ |
review |
SÍ (embebido) |
URL: https://www.atmosferasport.es/blog/adidas-adizero-boston-13-la-mixta-que-te-hara-volar-b125.html
Bloques JSON-LD: WebPage únicamente. Microdata adicional: newsarticle, Organization, ImageObject. Sin Product, sin Review estructurado.
| Campo / Dominio | runnea.com (obj) | roadrunningreview (p1) | runrepeat (p3) | atmosferasport (p4) |
|---|---|---|---|---|
@type:Product |
✅ | ❌ | ✅ (x2) | ❌ |
@type:Review embebido |
✅ | ❌ | ✅ | ❌ |
reviewRating individual |
✅ (8.9/10) | ❌ | ✅ | ❌ |
aggregateRating |
❌ | ❌ | ❌ | ❌ |
offers / price |
❌ | ❌ | ❌ | ❌ |
sku / gtin / mpn |
❌ | ❌ | ❌ | ❌ |
brand |
✅ (Adidas) | ❌ | ✅ | ❌ |
BreadcrumbList |
✅ | ❌ | ✅ | ❌ |
FAQPage |
✅ | ❌ | ❌ | ❌ |
NewsArticle / editorial |
❌ | ✅ | ❌ | — (Microdata) |
Resumen posicional: runnea es quien tiene la implementación más completa del TOP-5 (Product + Review + FAQ + Breadcrumb), seguida de runrepeat (Product + Review + Breadcrumb).
hasPart.associatedMedia (crítico) Los ítems dentro de associatedMedia usan @type:ImageGallery cuando deberían ser ImageObject. ImageGallery es el contenedor; los ítems son imágenes individuales.
"hasPart": {
"@type": "ImageGallery",
"associatedMedia": [
- {
- "@type": "ImageGallery",
- "url": "https://static.runnea.com/images/202504/adidas-adizero-boston-13-zapatillas-running-1200x1200x90xX.jpg?1",
- "name": "Adidas Adizero Boston 13"
- }
+ {
+ "@type": "ImageObject",
+ "contentUrl": "https://static.runnea.com/images/202504/adidas-adizero-boston-13-zapatillas-running-1200x1200x90xX.jpg?1",
+ "name": "Adidas Adizero Boston 13"
+ }
]
}
Re-pasar:
validate_jsonld.pyy Rich Results Test (Vía B subagente).
aggregateRating al Product (alto impacto SERP) Ningún competidor del TOP-5 lo tiene. Implementarlo habilita estrellas visibles en SERP y es diferenciación inmediata. Si solo hay un review editorial, se puede mapear al valor del reviewRating individual mientras no haya valoraciones de usuarios; si Runnea tiene valoraciones de usuarios en la ficha, usarlas.
"brand": { "@type": "Brand", "name": "Adidas" },
"url": "https://www.runnea.com/zapatillas-running/adidas/adizero-boston-13/1041450/",
+ "aggregateRating": {
+ "@type": "AggregateRating",
+ "ratingValue": "8.9",
+ "bestRating": "10",
+ "worstRating": "1",
+ "ratingCount": "1",
+ "reviewCount": "1"
+ },
"review": { ... }
Re-pasar:
validate_jsonld.pyy Rich Results Test.
offers si Runnea muestra precio de afiliados (opcional, alto CTR) Si la ficha muestra precio real de alguna tienda afiliada, declararlo como offers dispara el snippet con precio visible en SERP. Si la ficha es puramente editorial (sin precio mostrado), omitir esta recomendación.
"review": { ... }
+ ,
+ "offers": {
+ "@type": "Offer",
+ "price": "160.00",
+ "priceCurrency": "EUR",
+ "availability": "https://schema.org/InStock",
+ "url": "https://www.runnea.com/zapatillas-running/adidas/adizero-boston-13/1041450/",
+ "priceValidUntil": "2026-12-31"
+ }
Re-pasar:
validate_jsonld.pyy Rich Results Test.
Organization (impacto menor, consistencia de marca) {
"@context": "https://schema.org",
"@type": "Organization",
"name": "Runnea",
- "url": "https://www.runnea.com/"
+ "url": "https://www.runnea.com/",
+ "logo": "https://www.runnea.com/.../logo.png",
+ "sameAs": [
+ "https://twitter.com/runneacom",
+ "https://www.instagram.com/runneacom/",
+ "https://www.facebook.com/runneacom"
+ ],
+ "contactPoint": {
+ "@type": "ContactPoint",
+ "contactType": "customer support",
+ "email": "info@runnea.com"
+ }
}
Re-pasar:
validate_jsonld.py.
WebSite debe mantenerse El validador local marca WebSite como no soportado para rich results (Sitelinks SearchBox está deprecado). Si no se usa potentialAction.SearchAction, considerar eliminar el bloque para reducir ruido.
validate_jsonld.py marca 3 warnings en el Product (offers, aggregateRating, sku) pero Google Rich Results Test reporta 0 errores, 0 warnings y 2 items elegibles. No es contradicción: Google valida si es elegible para rich result, no si es recomendable. El conjunto local + Google es complementario: Google dice "entras al juego", el local dice "podrías entrar con más músculo".qwen3.5:9b (respondió sin fallback), segundo gemma4:e4b para contraste. El segundo LLM detectó el bug de ImageGallery que el primero pasó por alto — justifica mantener la regla de dos modelos.check_rich_results_authenticated.py devolvió exit 4 (timeout técnico esperando panel de confirmación) pero el panel se capturó antes del timeout y los datos son válidos. Vigilar si el comportamiento se repite.runnea.com/zapatillas-running/.../.../.../ comparten el mismo bug de associatedMedia con ImageGallery anidado. Si es plantilla común, la recomendación R1 se multiplica.NewsArticle. Indica que el schema no está siendo factor decisivo en este SERP — el contenido y la antigüedad del dominio manda. Aun así, la oportunidad de estrellas sigue intacta.