An AIReport is the JSON file PageSpeed Exporter gives you when you click "Download AIReport (JSON)." It is not the raw PageSpeed Insights response — it is a stripped, restructured export built specifically for AI coding agents.
Where raw PSI JSON runs 500KB–2MB, an AIReport is typically under 50KB. Every byte that remains is something ChatGPT, Claude, or Cursor can act on.
AIReport vs. Raw Lighthouse JSON
| | Raw PSI JSON | AIReport |
|---|---|---|
| Typical size | 500 KB – 2 MB | Under 50 KB |
| Screenshots | Included (base64) | Removed |
| Passing audits | All ~150+ | Removed |
| Failing audits | Yes, unstructured | Yes, prioritized by impact |
| CrUX field data | Nested in loadingExperience | Flat fieldData.url / fieldData.origin |
| Stack pack hints | In stackPacks array | In stackPacks with hints map |
| Performance weights | Buried in auditRefs | On each issue as performanceWeight |
| Dual mobile + desktop | Two separate API calls | Merged in one file (Both strategy) |
Same Lighthouse engine. Same audit scores. Different packaging.
Top-Level Structure
{
"meta": { ... },
"scores": { ... },
"metrics": { ... },
"resourceSummary": { ... },
"fieldData": { ... },
"stackPacks": [ ... ],
"issues": [ ... ]
}
Six sections. No nested lighthouseResult.audits object with 150 keys — just the data your AI agent needs.
meta — Run Context
{
"meta": {
"url": "https://example.com",
"finalUrl": "https://example.com/",
"strategy": "mobile",
"fetchTime": "2026-06-23T10:00:00.000Z",
"lighthouseVersion": "12.0.0",
"environment": {
"formFactor": "mobile",
"locale": "en-US",
"networkThrottling": "Simulated 4G (Moto G4, 150ms RTT, 1.6Mbps down)"
},
"runWarnings": []
}
}
Tells your AI agent which URL was tested, on what device, with what throttling. Critical context — a desktop score of 95 and a mobile score of 42 require completely different fixes.
scores — Category Scores
{
"scores": {
"performance": 62,
"accessibility": 91,
"best-practices": 96,
"seo": 100
}
}
Integer scores 0–100. When using the Both strategy, keys are prefixed: mobile_performance, desktop_performance, etc.
metrics — Core Web Vitals
{
"metrics": {
"first-contentful-paint": {
"value": "2.1 s",
"score": 0.75,
"numericValue": 2100,
"unit": "millisecond"
},
"largest-contentful-paint": {
"value": "4.8 s",
"score": 0.22,
"numericValue": 4800,
"unit": "millisecond"
}
}
}
Includes FCP, LCP, TBT, CLS, Speed Index, and TTI. Both human-readable value strings and numericValue for precise calculations.
resourceSummary — Page Composition
High-level stats pulled from key audits:
totalByteWeight— total transfer sizedomSize— DOM element countnetworkRequests— number of requestsmainThreadWorkBreakdown— JS execution timebootupTime— script evaluation timeserverResponseTime— TTFB
These help AI agents distinguish "too much JavaScript" from "slow server response."
fieldData — Real-User CrUX Data
{
"fieldData": {
"url": {
"LARGEST_CONTENTFUL_PAINT_MS": {
"percentile": 3200,
"category": "AVERAGE",
"distributions": [ ... ]
}
},
"origin": { ... },
"overallCategory": "AVERAGE"
}
}
Lab data tells you what Lighthouse measured in a simulated test. CrUX field data tells you what real Chrome users experience. An AI agent that sees lab LCP at 2.1s but field LCP at 4.8s knows to investigate caching, CDN, or geographic latency — not just render-blocking CSS.
Raw PSI JSON includes this data too, but nested inside loadingExperience.metrics with a different key format. AIReport flattens it.
stackPacks — Framework-Specific Hints
When Lighthouse detects WordPress, React, Next.js, Shopify, or other platforms:
{
"stackPacks": [
{
"id": "wordpress",
"title": "WordPress",
"hints": {
"render-blocking-resources": "Use WP Rocket or Autoptimize to defer CSS...",
"unused-javascript": "Consider Asset CleanUp to disable unused plugin scripts..."
}
}
]
}
These hints dramatically improve AI output quality. Instead of generic "defer JavaScript" advice, your agent recommends the specific plugin or framework pattern.
issues — Prioritized Action List
The most important section. Each issue is a failing audit with:
{
"id": "render-blocking-resources",
"title": "Eliminate render-blocking resources",
"description": "Resources are blocking the first paint...",
"score": 0,
"category": "opportunity",
"performanceWeight": 0,
"displayValue": "Est savings of 1,200 ms",
"numericValue": 1200,
"details": {
"type": "opportunity",
"items": [
{ "url": "https://example.com/style.css", "totalBytes": 45000, "wastedMs": 780 }
]
}
}
Issues are sorted by impact:
- Opportunities — sorted by estimated milliseconds saved (highest first)
- Diagnostics — sorted by worst score
Only failing audits appear. Passing audits are stripped entirely — your AI agent does not need to read 100 green checkmarks.
Each issue includes performanceWeight when the audit affects the performance score, so your agent knows which fixes move the needle most.
What Gets Stripped
PageSpeed Exporter removes these audit IDs entirely:
screenshot-thumbnailsfinal-screenshotfull-page-screenshotscript-treemap-data
For all other audits:
- Passing (
score >= 1) → removed fromissues - Informative / manual / N/A → details stripped
- Failing → kept, with
details.itemscapped at 10 entries
Config settings, category groups, timing metadata, and empty CrUX placeholders are also removed.
How to Use an AIReport
- Run an audit at speedexporter.com
- Click Download AIReport (JSON) on the results page
- Open ChatGPT, Claude, or Cursor
- Attach the file and use a prompt like:
I'm attaching my AIReport for example.com (mobile strategy).
From the issues array, identify the top 3 fixes by estimated ms savings.
For each, explain the root cause and give me the exact code change.
Reference stackPacks hints if available.
Check fieldData to see if lab vs. real-user data diverge.
PageSpeed Exporter includes four built-in prompt templates (Full Analysis, Quick Wins, Code Diffs, Performance Score) on the results page — click Copy Prompt to get the JSON bundled with a tuned prompt.
Further Reading
- Why Raw Lighthouse JSON Is Too Big for AI Agents
- Stripped Lighthouse JSON vs. Raw PageSpeed Insights
- How to Fix Core Web Vitals Using ChatGPT
- Lighthouse JSON for ChatGPT workflow
- Core Web Vitals glossary