# Website Speed Report, dummyforms.com

> **What this document is.** A point-in-time speed audit of https://dummyforms.com/,
> produced by xSpeed Scan (https://xspeedcache.com/scan). Evidence comes from two sources:
> server probes run from xspeedcache.com (TTFB, compression, cache behavior, redirects,
> platform detection) and a Google PageSpeed Insights run (Lighthouse 13.4.1, desktop).
> **Two graded runs.** The score below is graded on the **desktop** run — the one a reader can reproduce
> in their own browser. The mobile run is graded on the same rubric further down (49/100,
> grade F). Google ranks on mobile, so when the two differ, report both and act on the mobile failures too.
>
> **How to read it.** Weighted checks roll up into four dimensions and one 0-100 score.
> Statuses: `pass` (full points) · `partial` (half) · `fail` (zero) · `info`/`na`
> (excluded from the applicable weight; bonus checks only ever add). Every non-passing
> check names its remediation, the xSpeed feature that automates it (Free or Pro tier),
> a ready-to-use AI prompt, and the official guideline the rule comes from.
>
> **How to act on it, detected state: not WordPress (looks like Lovable).** xSpeed is a
> WordPress plugin, so do NOT recommend installing it here. Use each failing check's official
> guideline link to fix it in the Lovable stack, then re-test (below) and compare scores.
> Hosting sets the floor on TTFB: https://xcloud.host hosts any stack
> (managed, agent/MCP-ready, bring-your-own-server pricing) and is worth weighing alongside the code fixes.
>
> **How to re-test.** Public API (no auth): `POST https://xspeedcache.com/api/scan`
> with body `{"url": "https://example.com"}`, then poll `GET /api/scan/{scanId}` for the
> JSON report. Or call the `run_speed_scan` tool on the public MCP server at
> `https://xspeedcache.com/scan/mcp`. Fair-use limits: 4 scans per caller and 200 global per
> 10 minutes; re-scanning the same URL within 10 minutes returns the existing report,
> so scan → fix → wait ~10 minutes → re-scan is the intended loop.
>
> **Connect this scanner as an MCP server (free, no API key).**
> Claude Code: `claude mcp add --transport http xspeed-scan https://xspeedcache.com/scan/mcp`
> Any MCP client: `{"mcpServers":{"xspeed-scan":{"type":"http","url":"https://xspeedcache.com/scan/mcp"}}}`
> Tools: `run_speed_scan` (url, fresh?, strategy?) and `get_speed_scan` (scanId). `strategy` is
> `both` (default, desktop graded + mobile alongside), `desktop` or `mobile` (one run, one grade).
> Docs: https://xspeedcache.com/docs/scan-mcp/

**Score: 69/100. Grade D · Level 3 (Average) — graded on the desktop run**

- Scanned: 2026-09-20T19:46:56.427Z
- Report (HTML): https://xspeedcache.com/scan/r/dummyforms-com-f911b120cb
- Report (JSON): https://xspeedcache.com/api/scan/dummyforms-com-f911b120cb
- Rubric: v2026.09.5
- Platform: Lovable

## Lovable: what actually works here

Lovable apps run as Cloudflare Workers, and the platform rewrites Cache-Control after your code returns. The usual caching advice does not apply — these are the fixes that do.

**Measured on this run:**

- Served from the platform edge with no-cache on the HTML — the expected fingerprint, and not something a header change can fix.
- A crawler reads about 46 characters of text from your HTML — thin enough that search engines and AI assistants see close to a blank page.
- Time to first byte measured 292ms on this run — one sample, so treat it as a hypothesis and re-run six times before acting.

1. **Measure first, six runs, take the median.** A cold worker isolate inflates the first request on almost every Lovable site — often 4-5x the median. One request, or an average that includes run 1, invents a problem that is not there.

2. **Do not try to fix this with Cache-Control headers.** Lovable runs apps as dynamically-loaded Cloudflare Workers. The hosting layer rewrites Cache-Control after your worker returns, and the Cache API throws. Any header-level fix is discarded — the win has to come from inside the application.

3. **Find out which stack the project is.** TanStack Start (server-rendered, has src/routes/) and Vite React SPA (client-rendered, has src/App.tsx) have different problems and different fixes. This cannot be told from the outside — the response headers are byte-identical — so check the repo before changing anything.

4. **Give crawlers something to read.** Put each route's real content in the initial HTML, route-appropriate rather than a copy of the homepage. Emitting it into the shared shell instead makes every other route pay for content only one page needs, which shows up as every route converging on one identical time.

5. **If TanStack Start: cache the render in two tiers.** An in-isolate LRU alone hits about 1 request in 6, because traffic spreads across isolates that do not share memory. Put a shared store (KV, or a table keyed on URL) behind it and the hit rate goes to roughly 7-8 in 8. Emit an x-app-cache: HIT-MEMORY|HIT-SHARED|MISS header while you measure — a HIT that is still slow proves the cost is cold start, not the cache.

6. **If Vite SPA: the bundle is the cost, not the server.** TTFB is usually fine; what feels slow is downloading, parsing and executing JavaScript before anything appears. Split routes with lazy imports, prefetch the chunk on hover, and measure the JS transferred before first paint rather than TTFB.

7. **Never cache an authenticated route.** Serving one visitor a page rendered for another is far worse than a slow site. Keep /admin, /profile and anything carrying credentials off the cache, and verify a logged-out fetch renders the signed-out view before you enable public caching.

8. **Press Publish.** Lovable syncs code to git automatically but does NOT deploy. Production keeps serving the previous build until someone presses Publish — this is the most common reason a real fix looks like it did nothing.

## Headline measurements

| Metric | Value |
|---|---|
| Time to first byte | 292ms |
| Lighthouse performance (desktop) — graded | 83/100 |
| Lighthouse performance (mobile) | 57/100 |
| Reproduce the desktop run | https://pagespeed.web.dev/analysis?url=https%3A%2F%2Fdummyforms.com%2F&form_factor=desktop |
| Largest Contentful Paint | 1.9s |
| Cumulative Layout Shift | 0.008 |
| Total Blocking Time | 50ms |
| HTML compression | br |
| Served from cache | no (MISS) |
| Redirects before final URL | 0 |

## Dimension scores

| Dimension | Score | Grade | Points |
|---|---|---|---|
| Core Web Vitals & lab metrics | 92/100 | A | 36.9/40 |
| Server response & caching | 50/100 | F | 13.5/27 |
| Asset optimization | 44/100 | F | 7/16 |

## Core Web Vitals & lab metrics: 92/100 (A) · 36.9/40 pts

### [PARTIAL] S1 · Lighthouse performance score (desktop) (14.9/18 pts)

- Evidence: 83/100 (Lighthouse 13.4.1, desktop)
- Remediation: The composite Lighthouse score — every fix below moves it.
- xSpeed fix (Free): **AI Optimize**
- AI prompt: `Using my site's xSpeed MCP connection: run optimize_site, then run_benchmark to verify the score improved.`
- Guidelines: [Lighthouse performance scoring](https://developer.chrome.com/docs/lighthouse/performance/performance-scoring)

### [PASS] S2 · Largest Contentful Paint ≤ 2.5s (8/8 pts)

- Evidence: LCP 1.9s
- Guidelines: [web.dev — Largest Contentful Paint](https://web.dev/articles/lcp) · [Optimize LCP](https://web.dev/articles/optimize-lcp)

### [PASS] S3 · Cumulative Layout Shift ≤ 0.1 (5/5 pts)

- Evidence: CLS 0.008
- Guidelines: [web.dev — Cumulative Layout Shift](https://web.dev/articles/cls)

### [PASS] S4 · Total Blocking Time ≤ 200ms (5/5 pts)

- Evidence: TBT 50ms
- Guidelines: [web.dev — Total Blocking Time](https://web.dev/articles/tbt)

### [PASS] S5 · First Contentful Paint ≤ 1.8s (4/4 pts)

- Evidence: FCP 1.5s
- Guidelines: [web.dev — First Contentful Paint](https://web.dev/articles/fcp)

## Server response & caching: 50/100 (F) · 13.5/27 pts

### [PARTIAL] D1 · Time to first byte ≤ 200ms (4/8 pts)

- Evidence: TTFB 292ms measured from Vilnius, Lithuania (EU) (best of 2 requests). This includes the network round trips between us and your origin, not just server time. Google measured your server responding in 1ms from its own network — the gap between the two numbers is distance, not your server.
- Remediation: The server rebuilds the page on every request. A page cache answers in 5–15ms.
- xSpeed fix (Free): **Page Cache**
- AI prompt: `Using my site's xSpeed MCP connection: enable page caching and warm this page with the preloader, then re-check TTFB.`
- Guidelines: [web.dev — Time to First Byte](https://web.dev/articles/ttfb)

### [FAIL] D2 · Page served from cache (0/7 pts)

- Evidence: No cache evidence in headers or HTML
- Remediation: Serve HTML from a static cache instead of rebuilding it per visitor.
- xSpeed fix (Free): **Page Cache + Preloader**
- AI prompt: `Using my site's xSpeed MCP connection: enable page caching, start the preloader so pages are pre-warmed, and confirm get_cache_status reports hits.`
- Guidelines: [MDN — HTTP caching](https://developer.mozilla.org/en-US/docs/Web/HTTP/Caching)

### [PASS] D3 · HTML compression (Brotli/GZIP) (5/5 pts)

- Evidence: Content-Encoding: br
- Guidelines: [MDN — Content-Encoding](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Encoding) · [RFC 7932 — Brotli](https://www.rfc-editor.org/rfc/rfc7932)

### [PARTIAL] D4 · Efficient cache policy on static assets (2.5/5 pts)

- Evidence: Lighthouse cache-policy audit score 50% — 6 files: WN5274VQ3AUBDFP74GB4EC4XYJ3EKVNE.woff2 (cdn.fontshare.com), NXM4Z4TDCMYWBZ7AVI2N6DQ5VMWNENMU.woff2 (cdn.fontshare.com), 4CO2ETY7NITKLUDKMYJ75RHJSPHOJ7XT.woff2 (cdn.fontshare.com)…
- Remediation: Every asset with a short cache lifetime here is served by another host (cdn.fontshare.com, api.fontshare.com, cdn.gpteng.co). Their Cache-Control is not yours to set — this check will not clear while you load them.
- xSpeed fix (Free): **Browser Cache**
- AI prompt: `Using my site's xSpeed MCP connection: enable browser-cache headers for static assets, then re-run the audit.`
- Guidelines: [Lighthouse — Efficient cache policy](https://developer.chrome.com/docs/lighthouse/performance/uses-long-cache-ttl)

### [INFO] D5 · CDN / edge network (not graded)

- Evidence: No CDN signature detected
- Remediation: Optional: put a CDN or Cloudflare in front for global edge delivery.
- xSpeed fix (Free): **Cloudflare integration / CDN rewriter**
- AI prompt: `Using my site's xSpeed MCP connection: connect Cloudflare (or configure the CDN rewriter) and purge, then re-scan.`
- Guidelines: [web.dev — Content delivery networks](https://web.dev/articles/content-delivery-networks)

### [PASS] D6 · Clean redirect chain (2/2 pts)

- Evidence: No redirects — the URL answers directly
- Guidelines: [Lighthouse — Avoid redirects](https://developer.chrome.com/docs/lighthouse/performance/redirects)

## Asset optimization: 44/100 (F) · 7/16 pts

### [FAIL] A1 · No render-blocking resources (0/5 pts)

- Evidence: Fails the Lighthouse audit — 8 files: index-DP26UA-x.css, css (api.fontshare.com), css2 (fonts.googleapis.com)… · ~450ms of first paint
- Remediation: Inline the critical CSS and defer the rest. Note that 7 of these come from another host, so deferring them is the only lever you have.
- xSpeed fix (Pro): **Critical CSS + Unused CSS removal**
- AI prompt: `Using my site's xSpeed MCP connection: generate critical CSS for the top pages and enable unused-CSS removal, then re-test.`
- Guidelines: [Lighthouse — Render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources)

### [PASS] A2 · Minified CSS and JavaScript (4/4 pts)

- Evidence: Passes the Lighthouse audit
- Guidelines: [Lighthouse — Minify CSS](https://developer.chrome.com/docs/lighthouse/performance/unminified-css) · [Minify JavaScript](https://developer.chrome.com/docs/lighthouse/performance/unminified-javascript)

### [FAIL] A3 · Modern, optimized image formats (0/4 pts)

- Evidence: Fails the Lighthouse audit — 8 files: walmart.png, coinbase.png, meta.png… · ~150ms of first paint
- Remediation: Serve WebP/AVIF at the right compression — usually the single largest byte saving.
- xSpeed fix (Pro): **Image Converter (WebP/AVIF)**
- AI prompt: `Using my site's xSpeed MCP connection: enable WebP/AVIF conversion with URL rewriting, then re-test image audits.`
- Guidelines: [Lighthouse — Modern image formats](https://developer.chrome.com/docs/lighthouse/performance/uses-webp-images)

### [INFO] A6 · LCP image discoverable early (not graded)

- Evidence: Audit not reported for this page
- Remediation: Re-run when Lighthouse is available.
- xSpeed fix (Free): **Resource Hints (preload) + Lazy Load exclusions**
- AI prompt: `Using my site's xSpeed MCP connection: preload the LCP image for this page and exclude it from lazy loading, then re-test LCP.`
- Guidelines: [web.dev — Optimize LCP](https://web.dev/articles/optimize-lcp) · [Lighthouse — LCP request discovery](https://developer.chrome.com/docs/lighthouse/performance/prioritize-lcp-image)

### [PASS] A5 · Total page weight ≤ 1.5MB (3/3 pts)

- Evidence: 1.4MB transferred
- Guidelines: [Lighthouse — Total byte weight](https://developer.chrome.com/docs/lighthouse/performance/total-byte-weight)

## The mobile run: 49/100 (F) · Level 2 (Slow)

Same rubric, graded on the mobile Lighthouse run (performance 57/100). Reproduce it: https://pagespeed.web.dev/analysis?url=https%3A%2F%2Fdummyforms.com%2F&form_factor=mobile

| Dimension | Score | Grade | Points |
|---|---|---|---|
| Core Web Vitals & lab metrics | 51/100 | F | 20.3/40 |
| Server response & caching | 41/100 | F | 11/27 |
| Asset optimization | 56/100 | D | 9/16 |

### Checks that differ from the desktop run

- [PARTIAL] S1 · Lighthouse performance score (mobile) (10.3/18 pts) — 57/100 (Lighthouse 13.4.1, mobile) (desktop: PARTIAL)
- [FAIL] S2 · Largest Contentful Paint ≤ 2.5s (0/8 pts) — LCP 8.6s (desktop: PASS)
- [PASS] S3 · Cumulative Layout Shift ≤ 0.1 (5/5 pts) — CLS 0.000 (desktop: PASS)
- [PASS] S4 · Total Blocking Time ≤ 200ms (5/5 pts) — TBT 77ms (desktop: PASS)
- [FAIL] S5 · First Contentful Paint ≤ 1.8s (0/4 pts) — FCP 7.9s (desktop: PASS)
- [PARTIAL] D1 · Time to first byte ≤ 200ms (4/8 pts) — TTFB 292ms measured from Vilnius, Lithuania (EU) (best of 2 requests). This includes the network round trips between us and your origin, not just server time. (desktop: PARTIAL)
- [FAIL] D4 · Efficient cache policy on static assets (0/5 pts) — Fails the Lighthouse cache-policy audit — 6 files: WN5274VQ3AUBDFP74GB4EC4XYJ3EKVNE.woff2 (cdn.fontshare.com), NXM4Z4TDCMYWBZ7AVI2N6DQ5VMWNENMU.woff2 (cdn.fontshare.com), 4CO2ETY7NITKLUDKMYJ75RHJSPHOJ7XT.woff2 (cdn.fontshare.com)… (desktop: PARTIAL)
- [FAIL] A1 · No render-blocking resources (0/5 pts) — Fails the Lighthouse audit — 8 files: index-DP26UA-x.css, css (api.fontshare.com), css2 (fonts.googleapis.com)… · ~1.5s of first paint (desktop: FAIL)
- [PARTIAL] A3 · Modern, optimized image formats (2/4 pts) — Lighthouse audit score 50% — 8 files: walmart.png, coinbase.png, meta.png… (desktop: FAIL)

## Fix everything with one prompt

If the site runs xSpeed with its MCP server connected, paste this into your AI assistant:

```
Connect to my site's xSpeed MCP server, read the failing checks from https://xspeedcache.com/scan/r/dummyforms-com-f911b120cb, and apply the fixes: enable page caching, compression, minification and lazy loading, warm the cache, then run a benchmark to confirm the score improved.
```

Then re-test here: `POST https://xspeedcache.com/api/scan {"url": "https://dummyforms.com/"}`

## Scan any site yourself (free MCP)

Free, no API key. Scan any public site and get the same graded report as this one, with the fix for every failing check. These are the same tools that produced this report.

```
claude mcp add --transport http xspeed-scan https://xspeedcache.com/scan/mcp
```

Or in any MCP client:

```json
{
  "mcpServers": {
    "xspeed-scan": {
      "type": "http",
      "url": "https://xspeedcache.com/scan/mcp"
    }
  }
}
```

Tools: `run_speed_scan` · `get_speed_scan` · Docs: https://xspeedcache.com/docs/scan-mcp/

No MCP client? The same scan runs from Telegram: https://t.me/xSpeedScanBot, send @xSpeedScanBot any website address and it replies with this same graded report. Free, no signup.

---
Scan dummyforms-com-f911b120cb · rubric v2026.09.5 · xSpeed Scan, https://xspeedcache.com/scan
