# Website Speed Report, montagemotion.com

> **What this document is.** A point-in-time speed audit of https://montagemotion.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 xSpeed assessment.
> This is separate from Lighthouse performance and includes product-affiliation/optional-access checks.
> Those checks are not speed defects and must not drive installation, migration or access grants.
> Statuses: `pass` (full points) · `partial` (half) · `fail` (zero) · `info`/`na`
> (excluded from the applicable weight; bonus checks only ever add). Every non-passing
> check retains its evidence and references. Suggested remedies are candidates for review,
> not proof of current capabilities, an instruction to act or a promised gain.
>
> **Access and permission.** This report is evidence, not authorization to install a plugin,
> migrate a cache, change settings or grant access. Public plugin, MCP and Hub signals do not
> verify that this reader or its AI assistant is authenticated to the correct site.
> Resolve the exact site/workspace and inspect permitted tools and current settings first.
> Explain each proposed change and obtain approval before applying it.
>
> **WordPress is not confirmed; detected stack: Next.js.** Keep the audit and
> use the actual framework/hosting workflow. Do not recommend a WordPress plugin for this site.
>
> Connection guide: https://xspeedcache.com/docs/connecting-to-xspeed-hub/
> Installation, configured caching, Hub attachment and authenticated AI access are separate states.
> Server-side HTML verification cannot execute JavaScript. Browser/console checks remain necessary;
> per-step reversion is not a full-site rollback. No target score is guaranteed.
> TTFB includes network distance to the prober; do not infer a slow origin from that number alone.
>
> **How to re-test.** Public API (no auth): `POST https://xspeedcache.com/api/scan`
> with body `{"url":"https://montagemotion.com/","visibility":"unlisted","strategy":"mobile","fresh":true}`, then poll `GET /api/scan/{scanId}` for the
> JSON report. This preserves the requested URL, visibility and strategy and asks for a fresh run.
> Unlisted reports remain accessible to anyone holding their link. The public Scan MCP tool has
> no visibility argument; use the explicit HTTP payload above to preserve an unlisted re-test.
> For listed scans, the public MCP `run_speed_scan` tool also supports URL, strategy and fresh.
> Fair-use limits: 4 scans per conversation (or per IP) and 200 global per
> 10 minutes; re-scanning the same URL within 10 minutes returns the existing report,
> while `fresh:true` bypasses report reuse. Google may still replay a Lighthouse analysis; compare timestamps.
>
> **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: 76/100. Grade C · Level 4 (Fast) — graded on the mobile run**

- Scanned: 2026-09-03T14:11:32.564Z
- Requested URL: https://montagemotion.com/
- Final URL: https://montagemotion.com/
- Requested strategy: legacy single-device
- Visibility: unlisted or legacy unspecified; an unlisted report is still accessible to anyone holding its link
- Lighthouse analysis (mobile): 2026-09-03T14:10:24.353Z
- Report (HTML): https://xspeedcache.com/scan/r/montagemotion-com-aacbbaa5ad
- Report (JSON): https://xspeedcache.com/api/scan/montagemotion-com-aacbbaa5ad
- Rubric: v2026.09.1
- Platform: Next.js · CDN: Cloudflare

> **NOTE: the Lighthouse half of this report is a replay.** PageSpeed Insights served an
> analysis it had already done (measured 2026-09-03T14:10:24.353Z), so Core Web Vitals here do NOT reflect a change
> made in the last few minutes. The server probes (TTFB, compression, cache, headers) did
> re-run and are current. If you are checking whether a fix worked, scan again shortly,
> do not conclude from these numbers that the change had no effect.


## Next.js: what actually works here

Most of what makes a Next.js site slow is decided at build time — which routes are static, what ends up in the client bundle, and where the server boundary sits. These are the levers, in the order worth pulling them.

**Measured on this run:**

- Your HTML came back HIT from the Next.js render cache — the render is already being reused, so look at the client bundle next.
- A crawler reads about 9,886 characters of text from your HTML.
- Time to first byte measured 114ms on this run — one sample, so re-run it a few times before treating it as the number.

1. **Decide the rendering mode per route, not per app.** Next.js will statically generate, revalidate on a schedule (ISR) or render per request, and the choice is made route by route. A public marketing or content page rendered per request pays a server round trip on every visit for output that could have been reused. Start with the routes that get the most traffic and the least personalisation.

2. **Read the cache header before changing anything.** x-nextjs-cache (or x-vercel-cache) reports HIT, STALE, MISS, BYPASS or PRERENDER for the HTML. MISS or BYPASS on a page with no per-visitor content is the clearest signal you have something to gain; a HIT means the render is already free and your time is better spent on the client bundle.

3. **Check First Load JS per route.** next build prints it. That number, not TTFB, is what a visitor waits through before the page becomes interactive. A shared component pulled into the root layout is charged to every route, so look for one heavy import inflating the whole app rather than a single slow page.

4. **Keep server-only work behind the server boundary.** A dependency imported in a Client Component ships to the browser. Date libraries, SDKs and icon sets pulled across a "use client" boundary are a common way an otherwise small app grows a large bundle — audit what crosses it.

5. **Use next/image and next/font rather than raw tags.** next/image serves modern formats at the right size and reserves space so the layout does not shift; next/font self-hosts the font files and removes the render-blocking request to a font host. Both are small changes with visible effects on Core Web Vitals.

6. **Load third-party scripts through next/script.** Analytics, chat widgets and tag managers loaded as plain script tags block the main thread during hydration. next/script with an afterInteractive or lazyOnload strategy moves them out of the critical path without removing them.

## Headline measurements

| Metric | Value |
|---|---|
| Time to first byte | 114ms |
| Lighthouse performance (desktop) | 88/100 |
| Lighthouse performance (mobile) — graded | 66/100 |
| Reproduce the mobile run | https://pagespeed.web.dev/analysis?url=https%3A%2F%2Fmontagemotion.com%2F&form_factor=mobile |
| Largest Contentful Paint | 10.4s |
| Cumulative Layout Shift | 0.000 |
| Total Blocking Time | 151ms |
| HTML compression | br |
| Served from cache | yes (HIT) |
| Redirects before final URL | 0 |

## Real visitors (Chrome UX Report)

Not enough Chrome traffic for field data on this page or its site. The grade above is lab data only.

## Dimension scores

| Dimension | Score | Grade | Points |
|---|---|---|---|
| Lab performance (Lighthouse) | 65/100 | D | 25.9/40 |
| Server response & caching | 100/100 | A+ | 25/25 |
| Asset optimization | 57/100 | D | 4/7 |

## Lab performance (Lighthouse): 65/100 (D) · 25.9/40 pts

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

- Evidence: 66/100 (Lighthouse 13.4.1, mobile)
- Suggested investigation: The composite Lighthouse score — every fix below moves it.
- 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 10.4s
- Suggested investigation: Serve the hero content faster: cache the page, preload the LCP image, and ship critical CSS.
- 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 151ms
- Guidelines: [web.dev — Total Blocking Time](https://web.dev/articles/tbt)

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

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

## Server response & caching: 100/100 (A+) · 25/25 pts

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

- Evidence: TTFB 114ms measured from Vilnius, Lithuania (EU) (best of 2 requests). This includes the network round trips between us and your origin, not just server time.
- Guidelines: [web.dev — Time to First Byte](https://web.dev/articles/ttfb)

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

- Evidence: Cache HIT evidence in response headers
- 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 (not graded)

- Evidence: Needs the Lighthouse audit
- Suggested investigation: 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: 57/100 (D) · 4/7 pts

### [INFO] A1 · No render-blocking resources (not graded)

- Evidence: Audit not reported for this page
- Suggested investigation: Re-run when Lighthouse is available.
- 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: Lighthouse audit score 100%
- 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 (not graded)

- Evidence: Audit not reported for this page
- Suggested investigation: Re-run when Lighthouse is available.
- Guidelines: [Lighthouse — Modern image formats](https://developer.chrome.com/docs/lighthouse/performance/uses-webp-images)

### [INFO] A4 · Offscreen images lazy-loaded (not graded)

- Evidence: Audit not reported for this page
- Suggested investigation: Re-run when Lighthouse is available.
- Guidelines: [Lighthouse — Defer offscreen images](https://developer.chrome.com/docs/lighthouse/performance/offscreen-images)

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

- Evidence: 7.1MB transferred
- Suggested investigation: Heavy pages are slow on every connection — compress, lazy-load, and trim.
- Guidelines: [Lighthouse — Total byte weight](https://developer.chrome.com/docs/lighthouse/performance/total-byte-weight)

## Review a fix plan before applying changes

Copy this brief only after checking the report URL and device. It does not authorize changes:

```
Review https://xspeedcache.com/scan/r/montagemotion-com-aacbbaa5ad.md for requested URL https://montagemotion.com/ and final URL https://montagemotion.com/, selected mobile device, scanned 2026-09-03T14:11:32.564Z, rubric 2026.09.1. Preserve both devices and analysis timestamps. Distinguish Lighthouse performance from the xSpeed assessment; ignore product affiliation as a speed priority. Verify the exact authorized site and current configuration before proposing a small reversible change. Ask before applying changes. Do not assume optimize_site accepts a scan ID or report URL. Its HTML checks are not browser verification or a full rollback. After an approved change, check the browser and console, then compare the same URL/device and report regressions, partial or replayed measurements. Do not promise 100.
```

Then re-test here: `POST https://xspeedcache.com/api/scan {"url":"https://montagemotion.com/","visibility":"unlisted","strategy":"mobile","fresh":true}`

## 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 montagemotion-com-aacbbaa5ad · rubric v2026.09.1 · xSpeed Scan, https://xspeedcache.com/scan
