AIReportLighthouseJSONAI AgentsDeveloper Guide

What Is an AIReport? The Stripped-Down Lighthouse JSON Explained

AIReport is PageSpeed Exporter's compact JSON format — under 50KB of prioritized Lighthouse findings with screenshots and passing audits removed. Full schema walkthrough.

PageSpeed Exporter Team··6 min read

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 size
  • domSize — DOM element count
  • networkRequests — number of requests
  • mainThreadWorkBreakdown — JS execution time
  • bootupTime — script evaluation time
  • serverResponseTime — 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:

  1. Opportunities — sorted by estimated milliseconds saved (highest first)
  2. 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-thumbnails
  • final-screenshot
  • full-page-screenshot
  • script-treemap-data

For all other audits:

  • Passing (score >= 1) → removed from issues
  • Informative / manual / N/A → details stripped
  • Failing → kept, with details.items capped at 10 entries

Config settings, category groups, timing metadata, and empty CrUX placeholders are also removed.


How to Use an AIReport

  1. Run an audit at speedexporter.com
  2. Click Download AIReport (JSON) on the results page
  3. Open ChatGPT, Claude, or Cursor
  4. 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

Sources


Further reading

Try it yourself

Run a free Lighthouse audit on any URL and get the full JSON report for your AI agent — no account required.

Analyze a URL for free