Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Diagnose and fix web performance issues including Core Web Vitals (LCP, INP, CLS), bundle size, asset optimization, render performance, and runtime efficiency. Use this skill whenever the user wants to improve page speed, fix Core Web Vitals, optimize assets, reduce bundle size, debug slow renders, or systematically improve a site's performance. Triggers on performance, page speed, Core Web Vitals, LCP, INP, CLS, FID, TTFB, bundle size, code splitting, image optimization, lazy loading, render bl
.claude/skills/rampstackco-performance-optimization/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-20 | ✗→✓ | ▲ Improved | 96% | 0% |
| case-10 | ✗→✓ | ▲ Improved | 115% | 0% |
| case-01 | ✓→✓ | = Same ✓ | 30% | 0% |
| case-02 | ✓→✓ | = Same ✓ | 32% | 0% |
| case-03 | ✓→✓ | = Same ✓ | 89% | 0% |
Diagnose web performance issues and produce a remediation plan. Stack-agnostic. Anchored to Core Web Vitals and standard browser performance patterns.
This skill goes deeper than the performance checks in qa-testing and seo-technical. Use this when performance itself is the goal.
qa-testing)seo-technical)code-review-web)Three metrics carry most of the weight for both user experience and SEO:
What it measures: Time until the largest visible content element finishes rendering.
Targets:
Common causes of poor LCP:
Common fixes:
What it measures: Responsiveness to user interactions. Replaces FID as the standard interactivity metric.
Targets:
Common causes of poor INP:
Common fixes:
scheduler.yield() or setTimeout)What it measures: How much the page jumps around as it loads. Unexpected layout shifts hurt usability.
Targets:
Common causes of poor CLS:
Common fixes:
width and height (or aspect-ratio) on images and videosfont-display: optional or font-display: swap thoughtfullyThe server response time. Bad TTFB makes everything else worse.
Targets: under 800ms ideal.
Common causes:
Fixes:
JavaScript shipped to the browser.
Targets:
Common causes of bloat:
Fixes:
import { fn } from 'lib' not import lib from 'lib')Images are typically 60 to 80 percent of page weight.
Best practices:
srcset for different viewport sizesloading="lazy" for below-the-foldWeb fonts often delay text render and cause CLS.
Best practices:
<link rel="preload" as="font">)font-display: swap for non-critical fontsThird parties (analytics, ads, chat widgets) often dominate performance budgets.
Audit each:
A common pattern: 50 percent of performance issues come from third-party scripts.
Lab tools (run on demand):
Field tools (real user data):
Lab tools are useful for diagnosis. Field tools are the source of truth for what users actually experience.
Default output is a performance report at performance-audit.md.
Structure:
For complex audits, include:
This skill's output depends on data, measurements, or tool results it cannot generate on its own. When a required input, tool, or data source is unavailable or unverifiable, the sanctioned output is the deliverable with the gap stated: what was needed, what was actually obtained or verified, and which parts of the output are affected. Fabricating, estimating, or interpolating a required number to complete the deliverable is never sanctioned. A stated gap is a complete answer.
references/audit-template.md - Full performance audit report template.references/optimization-checklist.md - Quick-reference checklist of common optimizations by priority.references/optimization-playbook.md - Symptom-to-fix playbook for the common Core Web Vitals problems (LCP, INP, CLS).| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-20 | fail→pass | 14,662 | 15,445 | +5% | 1 | 1 | 0% | 2,659 | 5,203 | +96% | 0 | 0 | — |
case-01 | pass→pass | 31,298 | 94,764 | +203% | 1 | 1 | 0% | 5,846 | 7,622 | +30% | 0 | 0 | — |
case-02 | pass→pass | 32,635 | 31,449 | -4% | 1 | 1 | 0% | 6,247 | 8,249 | +32% | 0 | 0 | — |
case-03 | pass→pass | 11,477 | 10,074 | -12% | 1 | 1 | 0% | 2,306 | 4,368 | +89% | 0 | 0 | — |
case-04 | pass→pass | 2,691 | 9,778 | +263% | 1 | 1 | 0% | 385 | 2,886 | +650% | 0 | 0 | — |
case-05 | pass→pass | 2,866 | 4,949 | +73% | 1 | 1 | 0% | 513 | 3,275 | +538% | 0 | 0 | — |
case-06 | pass→pass | 10,392 | 9,822 | -5% | 1 | 1 | 0% | 1,823 | 4,065 | +123% | 0 | 0 | — |
case-07 | pass→pass | 3,454 | 3,802 | +10% | 1 | 1 | 0% | 558 | 2,983 | +435% | 0 | 0 | — |
case-08 | pass→pass | 18,250 | 13,217 | -28% | 1 | 1 | 0% | 3,159 | 4,572 | +45% | 0 | 0 | — |
case-09 | pass→pass | 10,786 | 6,576 | -39% | 1 | 1 | 0% | 1,822 | 3,485 | +91% | 0 | 0 | — |
case-10 | fail→pass | 13,188 | 13,946 | +6% | 1 | 1 | 0% | 2,155 | 4,634 | +115% | 0 | 0 | — |
case-11 | pass→pass | 9,632 | 4,895 | -49% | 1 | 1 | 0% | 1,617 | 3,231 | +100% | 0 | 0 | — |
case-12 | pass→pass | 12,201 | 12,206 | +0% | 1 | 1 | 0% | 2,314 | 4,559 | +97% | 0 | 0 | — |
case-13 | pass→pass | 11,733 | 8,870 | -24% | 1 | 1 | 0% | 1,997 | 3,940 | +97% | 0 | 0 | — |
case-14 | pass→pass | 3,358 | 5,113 | +52% | 1 | 1 | 0% | 553 | 3,261 | +490% | 0 | 0 | — |
case-15 | pass→pass | 16,450 | 14,811 | -10% | 1 | 1 | 0% | 2,660 | 4,934 | +85% | 0 | 0 | — |
case-16 | pass→pass | 6,780 | 5,021 | -26% | 1 | 1 | 0% | 1,135 | 3,238 | +185% | 0 | 0 | — |
case-17 | pass→pass | 12,970 | 9,430 | -27% | 1 | 1 | 0% | 2,266 | 4,086 | +80% | 0 | 0 | — |
case-18 | pass→pass | 9,858 | 7,094 | -28% | 1 | 1 | 0% | 1,707 | 3,537 | +107% | 0 | 0 | — |
case-19 | pass→pass | 3,751 | 3,826 | +2% | 1 | 1 | 0% | 672 | 3,165 | +371% | 0 | 0 | — |
case-21 | fail→fail | 29,029 | 18,753 | -35% | 1 | 1 | 0% | 4,945 | 5,427 | +10% | 0 | 0 | — |
case-22 | fail→fail | 6,298 | 4,843 | -23% | 1 | 1 | 0% | 1,041 | 3,197 | +207% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted. The headline lift of +9 percentage points is the difference between those two pass rates over the 22 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.