Features
xSpeed Hub Pricing Docs Blog Scan
Appearance
Get Plugin
86of 100

proskills.md

Scanned Sun, 20 Sep 2026 10:07:05 GMT · https://proskills.md/ · scanned 2 times — see history

BLevel 4 · Fast
Next.jsCloudflare
Desktop view of proskills.md at scan time. Click for full size
As Lighthouse saw it · click to enlarge
155msTTFB
99Lighthouse desktop · graded
70Lighthouse mobile
737msLCP
0.01CLS
brCompression
MISSCache

Lab data: Lighthouse 13.4.1 desktop run, graded above · Reproduce this run on PageSpeed Insights ↗ · Mobile: 68 (D) —

Why is this different from the score in my browser?

The graded score is the desktop run. Lighthouse 13.4.1 runs at Google through the PageSpeed Insights API on a desktop profile with no CPU or network throttling — close to what Chrome DevTools on a laptop, GTmetrix's default test and the PageSpeed API (which defaults to desktop) all measure, so this is the number you should be able to reproduce: run it yourself on PageSpeed Insights.

Google ranks on mobile. That run happens too, on an emulated mid-range Android with a 4× CPU slowdown and a throttled connection, and the same page routinely scores 30–50 points lower there. Neither number is wrong — they are different tests. On this page the mobile run scored 68 (D) against 86 (B) here — to see every check graded on that run.

Lighthouse also varies a few points run to run on the same URL. Treat a trend across several scans as the signal, never a single digit.

Lab data: Google PageSpeed Insights (Lighthouse, desktop). Server probes (TTFB, compression, cache, headers) are measured separately from Vilnius, Lithuania (EU).

Next.js what actually works on this platform

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.

  • No Next.js cache header on this response, so either the HTML is rendered per request or it is served by something in front that strips the header — worth confirming before you tune anything.
  • A crawler reads about 6,515 characters of text from your HTML.
  • No next/image URLs in the HTML — images look like they are being served raw, which is usually the largest remaining win.
  • Time to first byte measured 155ms 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.

The full instruction set, and a machine-readable copy of this report, live at proskills.md.md — paste that URL into your AI builder's chat and it can work straight from these measurements.

Top fixes ranked by points recovered · desktop

This is a Next.js site — act on the report with your AI assistant

  1. Platform detectedNext.js — every check below links the official guideline for the fix in this stack.
  2. Act on it with your AIThe machine-readable twin of this report gives an agent every failing check with its evidence, remediation and guideline link.
  3. Check the originHosting sets the floor on TTFB. xCloud hosts any stack — agent/MCP access built in, bring-your-own-server pricing.

xSpeed is a WordPress plugin, so it can't automate Next.js fixes — and that's fine. Every check below links its official guideline, and the machine-readable twin of this report gives an AI everything it needs to plan the work (3 checks name a concrete remediation):

Read the speed report at https://xspeedcache.com/scan/r/proskills-md-014169c2ac.md — it lists every failing check with evidence and the official guideline for the fix. Produce a prioritized fix plan for my Next.js site, apply what you can, then re-test by POSTing {"url":"https://proskills.md/"} to https://xspeedcache.com/api/scan and compare the scores.
How the checks are graded Scan another site
Hosting is half of every score. Whatever the stack — Next.js included, the server behind it sets the floor on TTFB. xCloud — from the team behind xSpeed — hosts any platform (this site's own scanner runs on it), with agent/MCP access built in and bring-your-own-server pricing. Explore xCloud.host →

Connect this scanner to your AI assistant

Free. No API key, no sign-up. Scan any public site and get the same graded report as this one, with the fix for every failing check.

Endpoint

https://xspeedcache.com/scan/mcp

Claude Code — one command

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

Claude Desktop, Cursor, or any MCP client — add to your config

{ "mcpServers": { "xspeed-scan": { "type": "http", "url": "https://xspeedcache.com/scan/mcp" } } }
  • run_speed_scan Scan any public URL and return this whole graded report.
  • get_speed_scan Read a scan already run, by its id.
Read the MCP documentation →
A+

Core Web Vitals & lab metrics

5/5 checks passed · 39.8/40 pts earned
99/100
Pass
Lighthouse performance score (desktop) 17.8/18 pts
99/100 (Lighthouse 13.4.1, desktop)
Pass
Largest Contentful Paint ≤ 2.5s 8/8 pts
LCP 737ms
Pass
Cumulative Layout Shift ≤ 0.1 5/5 pts
CLS 0.008
Pass
Total Blocking Time ≤ 200ms 5/5 pts
TBT 49ms
Pass
First Contentful Paint ≤ 1.8s 4/4 pts
FCP 737ms
C

Server response & caching

5/6 checks passed · 23/30 pts earned
77/100
Pass
Time to first byte ≤ 200ms 8/8 pts
TTFB 155ms 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 3ms from its own network — the gap between the two numbers is distance, not your server.
Fail
Page served from cache 0/7 pts
No cache evidence in headers or HTML
Serve HTML from a static cache instead of rebuilding it per visitor.
xSpeed Free Page Cache + Preloader
AI promptUsing my site's xSpeed MCP connection: enable page caching, start the preloader so pages are pre-warmed, and confirm get_cache_status reports hits.
Pass
HTML compression (Brotli/GZIP) 5/5 pts
Content-Encoding: br
Pass
Efficient cache policy on static assets 5/5 pts
Passes the Lighthouse cache-policy audit
Pass
CDN / edge network 3/3 pts
Cloudflare detected
Pass
Clean redirect chain 2/2 pts
No redirects — the URL answers directly
D

Asset optimization

3/5 checks passed · 11/16 pts earned
69/100
Fail
No render-blocking resources 0/5 pts
Fails the Lighthouse audit — 2 files: d005c09894005605.css, css2 (fonts.googleapis.com) · ~450ms of first paint
Inline the critical CSS and defer the rest. Note that one of these comes from another host, so deferring it is the only lever you have.
xSpeed Pro Critical CSS + Unused CSS removal
AI promptUsing my site's xSpeed MCP connection: generate critical CSS for the top pages and enable unused-CSS removal, then re-test.
Pass
Minified CSS and JavaScript 4/4 pts
Passes the Lighthouse audit
Pass
Modern, optimized image formats 4/4 pts
Passes the Lighthouse audit
Info
LCP image discoverable early
Audit not reported for this page
Re-run when Lighthouse is available.
xSpeed Free Resource Hints (preload) + Lazy Load exclusions
AI promptUsing my site's xSpeed MCP connection: preload the LCP image for this page and exclude it from lazy loading, then re-test LCP.
Pass
Total page weight ≤ 1.5MB 3/3 pts
0.8MB transferred

Past scans of proskills.md newest first · every report keeps its link

ScannedScoreGradeGraded onTTFBLighthouse
2026-09-20 10:49 UTC 81 B desktop 327ms 99 View report →
2026-09-20 10:07 UTC this report 86 B desktop 155ms 99

Share your score a card for X, LinkedIn, Slack — anywhere

Every check here has a one-click fix in xSpeed Cache

xSpeed is launching soon — page caching, compression, image optimization and a built-in MCP server so your AI assistant can run this playbook for you. Early users get in first.

Scan proskills-md-014169c2ac · rubric v2026.09.5 · Lab data: Google PageSpeed Insights (Lighthouse 13.4.1), graded on the desktop run; the mobile run is graded on its tab · Server probes from xspeedcache.com. Scores vary run to run; treat trends, not single digits, as the signal. Markdown for AI agents · JSON
Own proskills.md and would rather this report were not public? Email support@wpdeveloper.com and we will remove it.