# Website Speed Report — tandmfence.com

> **What this document is.** A point-in-time speed audit of https://tandmfence.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, mobile).
>
> **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 Shopify).** 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 Shopify 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/mcp`. Fair-use limits: 4 scans per IP 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.

**Score: 51/100 — Grade F · Level 2 (Slow)**

- Scanned: 2026-08-30T14:13:33.581Z
- Report (HTML): https://xspeedcache.com/scan/r/tandmfence-com-2a4d254725
- Report (JSON): https://xspeedcache.com/api/scan/tandmfence-com-2a4d254725
- Rubric: v2026.08.1
- Platform: Shopify · CDN: Cloudflare

## Shopify — what actually works here

On Shopify the server is not yours to tune — Shopify runs it, and its TTFB is what it is. What you control is the theme and the apps, and on most stores the apps are the problem.

**Measured on this run:**

- Time to first byte measured 445ms, which is Shopify's to control rather than yours — do not spend effort there.

1. **Audit the apps before touching the theme.** Every installed app that injects a script costs every page, including the ones it has nothing to do with. Uninstalled apps often leave their snippets behind in the theme. This is the largest and least glamorous win on most stores — count the third-party scripts on a product page and ask which are earning their place.

2. **Prefer theme app extensions to injected script tags.** Extensions load through Shopify's own pipeline and can be removed cleanly; script tags injected into the theme cannot, and are what accumulates over years of installing and uninstalling.

3. **Serve images at the size they are displayed.** Liquid can request an exact width from Shopify's CDN. A 2000px hero scaled down in CSS is paid for at full size by every visitor on a phone.

4. **Defer what does not paint the page.** Reviews, chat widgets, popups and analytics rarely need to run before the product is visible. Loading them after interaction keeps the main thread free when it matters.

5. **Do not chase TTFB.** It is Shopify's number. Measure what a visitor waits for — when the product image and price appear — and optimise that instead.

## Headline measurements

| Metric | Value |
|---|---|
| Time to first byte | 445ms |
| Lighthouse performance (mobile) | 62/100 |
| Largest Contentful Paint | 8.5s |
| Cumulative Layout Shift | 0.000 |
| Total Blocking Time | 0ms |
| HTML compression | br |
| Served from cache | no (MISS) |
| Redirects before final URL | 0 |

## Dimension scores

| Dimension | Score | Grade | Points |
|---|---|---|---|
| Core Web Vitals & lab metrics | 53/100 | F | 21.2/40 |
| Server response & caching | 56/100 | D | 14/25 |
| Asset optimization | 21/100 | F | 1.5/7 |

## Core Web Vitals & lab metrics — 53/100 (F) · 21.2/40 pts

### [PARTIAL] S1 · Lighthouse performance score (mobile) (11.2/18 pts)

- Evidence: 62/100 (Lighthouse 13.4.1, mobile)
- 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)

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

- Evidence: LCP 8.5s
- Remediation: Serve the hero content faster: cache the page, preload the LCP image, and ship critical CSS.
- xSpeed fix (Free): **Page Cache + Preloader (Critical CSS in Pro)**
- AI prompt: `Using my site's xSpeed MCP connection: enable page caching, start the preloader, and (on Pro) generate critical CSS for this page; then re-test LCP.`
- 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.000
- Guidelines: [web.dev — Cumulative Layout Shift](https://web.dev/articles/cls)

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

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

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

- Evidence: FCP 3.7s
- Remediation: First paint is gated on server response and render-blocking CSS.
- xSpeed fix (Free): **Page Cache + CSS Minify**
- AI prompt: `Using my site's xSpeed MCP connection: enable page caching and CSS minification, then re-test First Contentful Paint.`
- Guidelines: [web.dev — First Contentful Paint](https://web.dev/articles/fcp)

## Server response & caching — 56/100 (D) · 14/25 pts

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

- Evidence: TTFB 445ms (best of 2 requests from our scanner)
- 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)

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

- Evidence: Needs the Lighthouse audit
- Remediation: Re-run when Lighthouse is available.
- Guidelines: [Lighthouse — Efficient cache policy](https://developer.chrome.com/docs/lighthouse/performance/uses-long-cache-ttl)

### [PASS] D5 · CDN / edge network (3/3 pts)

- Evidence: Cloudflare detected
- 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 — 21/100 (F) · 1.5/7 pts

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

- Evidence: Audit not reported for this page
- Remediation: Re-run when Lighthouse is available.
- 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)

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

- Evidence: Lighthouse audit score 0%
- Remediation: Ship minified assets — whitespace and comments are pure transfer waste.
- xSpeed fix (Free): **HTML/CSS/JS Minify**
- AI prompt: `Using my site's xSpeed MCP connection: enable HTML, CSS and JS minification, purge the cache, and re-test.`
- Guidelines: [Lighthouse — Minify CSS](https://developer.chrome.com/docs/lighthouse/performance/unminified-css) · [Minify JavaScript](https://developer.chrome.com/docs/lighthouse/performance/unminified-javascript)

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

- Evidence: Audit not reported for this page
- Remediation: Re-run when Lighthouse is available.
- 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] A4 · Offscreen images lazy-loaded (0/4 pts)

- Evidence: Audit not reported for this page
- Remediation: Re-run when Lighthouse is available.
- xSpeed fix (Free): **Lazy Load**
- AI prompt: `Using my site's xSpeed MCP connection: enable lazy loading for images and iframes, then re-test.`
- Guidelines: [Lighthouse — Defer offscreen images](https://developer.chrome.com/docs/lighthouse/performance/offscreen-images)

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

- Evidence: 2.3MB transferred
- Remediation: Heavy pages are slow on every connection — compress, lazy-load, and trim.
- xSpeed fix (Free): **Minify + Lazy Load + Image Converter (Pro)**
- AI prompt: `Using my site's xSpeed MCP connection: enable minification and lazy loading (and image conversion on Pro), then re-check page weight.`
- Guidelines: [Lighthouse — Total byte weight](https://developer.chrome.com/docs/lighthouse/performance/total-byte-weight)

## 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/tandmfence-com-2a4d254725, 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://tandmfence.com/"}`

---
Scan tandmfence-com-2a4d254725 · rubric v2026.08.1 · xSpeed Scan — https://xspeedcache.com/scan
