cancel
Showing results for 
Search instead for 
Did you mean: 
CommunityJedi22
Community Manager
Community Manager

JSON‑LD Integration Guide for LLM Visibility

✨ Introduction 

Large Language Models (LLMs) do not execute JavaScript, meaning any review content rendered dynamically by PowerReviews’ JavaScript widgets remains invisible to them. 

To ensure that your PDPs expose full product review content to LLMs, the reviews must be placed directly in the server‑rendered HTML source, using schema.org JSON‑LD. 

This guide outlines the technical process, with examples from our PowerReviews Demo Store. 

 

🔍 1. PowerReviews API Details 

You will retrieve review content server‑side using the PowerReviews Display API — the same API the PowerReviews JS widget consumes. 

📘 API Documentation 

https://apidocs.powerreviews.com/docs/powerreviews-read-api/afa7a9e197034-get-reviews-by-product 

🧪 2. Example (PR Demo Store) 

🎯 PDP 

https://www.prdemostore.com/products/dakota-sneakers  

🌐 API Call 

https://display.powerreviews.com/m/932040371/l/en_US/product/6975115165809/reviews?apikey=4e42b676-7...

🔎 Parameter Breakdown 

Parameter 

Meaning 

m/932040371 

Merchant ID 

L/en_US 

Locale selector 

product/6975115165809 

Product identifier 

apikey= 

Merchant API key 

_noconfig=true 

Remove widget config 

🔐 PowerReviews Portal 

Merchant configuration details: 
https://portal.powerreviews.com/account_overview 

🧩 3. High‑Level Integration Strategy 

This is the overall implementation process flow: 

  1. Daily scheduled job pulls reviews for all active products. 
  2. Extract review metadata + full review text. 
  3. Convert into schema.org Product, AggregateRating, and Review JSON‑LD. 
  4. Inject JSON‑LD directly into the raw HTML (server‑side, not through JS). 
  5. Publish updated HTML so LLMs, search engines, and crawlers can ingest it. 

This ensures: 

  • LLM ingestion 
  • SEO improvements 
  • Future‑proof visibility across generative AI and AI search tools 

 

🛠 4. Step‑by‑Step Implementation Plan 

 

🔨 STEP 1 — Build a Daily Scheduled Job (Cron / CMS Job) 

Recommended cadence: Daily, or multiple times daily for high‑velocity sites. 

Inputs needed based on your PowerReviews account credentials: 

  • Merchant ID (MID) 
  • API key 
  • List of product IDs (PAGE_IDs) 

The job should: 

  • Loop through all products 
  • Make a GET request to the Display API 
  • Store results in your CMS/ERP/back‑end for JSON‑LD generation 

 

☎️ STEP 2 — Call PowerReviews Display API for Each Product 

Standardized Format: 

https://display.powerreviews.com/m/[MID]/l/[LOCALE]/product/[PAGE_ID]/reviews?apikey=[API_KEY]&_noco...  

 

🧬 STEP 3 — Transform API Output → JSON‑LD 

JSON‑LD must include: 

Required Entities: 

  • Product 
  • AggregateRating 
  • Review[] (list of reviews) 
{ 

  "@context": "https://schema.org", 

  "@type": "Product", 

  "sku": "12345", 

  "name": "Product Name", 

  "brand": { 

    "@type": "Brand", 

    "name": "Brand Name" 

  }, 

  "aggregateRating": { 

    "@type": "AggregateRating", 

    "ratingValue": "4.6", 

    "reviewCount": "19024" 

  }, 

  "review": [ 

    { 

      "@type": "Review", 

      "author": { 

        "@type": "Person", 

        "name": "Heather Feather" 

      }, 

      "datePublished": "2026-03-08", 

      "reviewRating": { "@type": "Rating", "ratingValue": "5" }, 

      "name": "I would marry this mascara if i could!!", 

      "reviewBody": "This mascara is worth every $; ...etc." 

    } 

  ] 

} 

 

Best Practices: 

  • Escape HTML entities (", &, etc.) 
  • Preserve full review text 
  • Limit to 10–20 reviews per product if performance is a concern 

🏗 STEP 4 — Inject JSON‑LD Server‑Side 

Must Be: 

✔ in <head> or top of <body> 
✔ visible in raw View Source 
✔ server-rendered (templates / CMS / backend) 

Must NOT Be: 

❌ inserted through JavaScript 
❌ loaded lazily 
❌ rendered in client‑side React/SPA layer 
❌ hidden inside comments or attributes 

Required HTML Block: 

<script type="application/ld+json"> 

{ ...JSON-LD from Step 3... } 

</script> 

 

This ensures: 

  • LLMs read it 
  • AI search engines ingest it 
  • Search crawlers treat it as authoritative 

 

🚀 STEP 5 — Publish + Validate 

Once JSON‑LD is injected, verify: 

LLM Visibility Checklist 

✅ “View Source” contains reviewBody 
✅ “@type”: “Review” appears 
✅ JSON‑LD validates at: https://validator.schema.org/ 
✅ Caching/CDN invalidation pushes new HTML 

🗺 6. Implementation Architecture Diagram 

 

Daily Job (Cron) 
      ↓ 
Fetch Product IDs 
      ↓ 
Call PowerReviews Display API 
      ↓ 
Parse & Extract Review Data 
      ↓ 
Generate JSON‑LD (Product + Reviews) 
      ↓ 
Insert JSON‑LD into PDP Template 
      ↓ 
Publish Site / Deploy Build 
      ↓ 
CDN Cache Purge 
      ↓ 
LLMs + Search Engines Consume JSON-LD 

 

🎉 Your LLM‑Optimized Review Pipeline Is Ready 

Once implemented, your sites using PowerReviews will have: 

  • Full LLM‑discovered review visibility 
  • AI‑ready PDPs 
  • Stronger SEO/structured data footprint 
  • Alignment with emerging AI search ecosystems 

Please post your questions in the comments below.  If you need to open a ticket with support, you can do so HERE in the Community.  

Version history
Revision #:
3 of 3
Last update:
3 weeks ago
Updated by:
 
Contributors