PrestaShop Documentation, PrestaShop Tutorials

PrestaShop Product Schema JSON-LD best practices

Below is a practical, SEO-safe checklist for PrestaShop Product Schema (JSON-LD), aligned with Google Rich Results and schema.org best practices. This also fits well with your earlier preference of using ImageObject for the image property ๐Ÿ‘


โœ… 1. Use JSON-LD Only (Best Practice)

โœ” Always use JSON-LD, not Microdata
โœ” Place schema in:

  • Product page footer, or
  • <head> via theme override or module

โœ” One Product schema per product page


โœ… 2. Mandatory Properties (Google)

Your Product schema must include:

"@type": "Product",
"name": "Product Name",
"image": [...],
"description": "Short product description",
"sku": "SKU123",
"offers": { }

โš  Missing required fields = no rich result


โœ… 3. Image Best Practices (Very Important)

Since you prefer ImageObject, use:

"image": [{
  "@type": "ImageObject",
  "url": "https://example.com/img/product.webp",
  "width": 800,
  "height": 800
}]

โœ” Use absolute URLs
โœ” Minimum 1200px width recommended
โœ” Use WebP if possible
โœ” Match product image exactly

โš  Avoid thumbnail or lazy-loaded placeholders


โœ… 4. Offers (Pricing & Availability)

Use Offer or AggregateOffer:

Single Price

"offers": {
  "@type": "Offer",
  "url": "https://example.com/product-url",
  "priceCurrency": "INR",
  "price": "1499",
  "priceValidUntil": "2025-12-31",
  "availability": "https://schema.org/InStock",
  "itemCondition": "https://schema.org/NewCondition"
}

โœ” Always include:

  • price
  • priceCurrency
  • availability

Multiple Variants (Size / Color)

"offers": {
  "@type": "AggregateOffer",
  "lowPrice": "1299",
  "highPrice": "1799",
  "priceCurrency": "INR",
  "offerCount": "4"
}

โœ… 5. Brand & Identifiers

"brand": {
  "@type": "Brand",
  "name": "Nike"
}

โœ” Add GTIN when available:

"gtin13": "8901234567890"

โœ” OR use:

  • mpn
  • sku

โš  Never fake GTINs


โœ… 6. Reviews & Ratings (High CTR)

Only show if real reviews exist:

"aggregateRating": {
  "@type": "AggregateRating",
  "ratingValue": "4.6",
  "reviewCount": "128"
}

โœ” Rating must match frontend
โœ” No self-generated fake reviews
โœ” Update dynamically


โœ… 7. Variant Handling (PrestaShop Specific)

Best practice:

  • One Product schema
  • Use AggregateOffer
  • Do NOT generate separate Product schema per combination

โœ… 8. Availability Sync (Critical)

Availability must match:
โœ” Stock status
โœ” Delivery message
โœ” Cart availability

Common values:

  • InStock
  • OutOfStock
  • PreOrder
  • BackOrder

โœ… 9. Description Rules

โœ” Use short product description
โœ” Plain text only (no HTML)
โœ” No marketing keywords stuffing


โœ… 10. Avoid Common Mistakes

โŒ Multiple Product schemas on one page
โŒ Mismatch price / stock
โŒ Missing currency
โŒ Using relative URLs
โŒ Fake reviews
โŒ Schema inside iframe


โœ… 11. PrestaShop Implementation Tips

โœ” Use override or custom module
โœ” Hook into:

  • displayFooter
  • displayHeader

โœ” Clear cache after changes
โœ” Regenerate schema on:

  • Price update
  • Stock update
  • Review update

โœ… 12. Validation & Monitoring

Tools:
โœ” Google Rich Results Test
โœ” Schema Markup Validator
โœ” Google Search Console โ†’ Enhancements

Fix:

  • โ€œMissing field โ€˜offersโ€™โ€
  • โ€œInvalid price formatโ€
  • โ€œAvailability mismatchโ€

๐Ÿ”ฅ Ideal Product JSON-LD (PrestaShop Example)

{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "Running Shoes",
  "image": [{
    "@type": "ImageObject",
    "url": "https://example.com/img/shoes.webp",
    "width": 1200,
    "height": 1200
  }],
  "description": "Lightweight running shoes for daily training.",
  "sku": "RUN123",
  "brand": {
    "@type": "Brand",
    "name": "Nike"
  },
  "offers": {
    "@type": "Offer",
    "price": "3499",
    "priceCurrency": "INR",
    "availability": "https://schema.org/InStock",
    "url": "https://example.com/running-shoes"
  }
}

๐Ÿš€ SEO Bonus Tips

โœ” Add BreadcrumbList schema
โœ” Add Organisation schema globally
โœ” Add FAQ schema on product pages
โœ” Use canonical URL in schema


 

About zohaibk

We develop useful addons for #E-Commerce and #CRM software to provide extra features.#PrestaShop,#Magento,#SugarCRM,#Vtiger & #Android #apps
View all posts by zohaibk →