
Core Web Vitals
Fix LCP, INP, and CLS against Google’s 75th-percentile field thresholds so Page Experience and search rankings stop bleeding on real-user data.
Overview
core-web-vitals is an agent skill most often used in Launch (also Ship, Grow) that guides optimization of LCP, INP, and CLS against Google’s field-data thresholds for Page Experience and rankings.
Install
npx skills add https://github.com/kostja94/marketing-skills --skill core-web-vitalsWhat is this skill?
- Covers LCP loading, INP responsiveness (FID successor since March 12, 2024), and CLS visual stability
- 75th-percentile field targets: LCP ≤2.5s, INP ≤200ms, CLS <0.1
- Threshold table maps Good, Needs Improvement, and Poor bands per Google Page Experience
- Scope aligned to technical SEO; points to google-search-console for GSC CWV views
- First-use intro optional; subsequent runs can go straight to optimization output
- 3 Core Web Vitals metrics: LCP, INP, CLS
- INP replaced FID on March 12, 2024
- 4-band threshold table: Target/Good, Needs Improvement, Poor per metric
Adoption & trust: 726 installs on skills.sh; 586 GitHub stars; 3/3 security scanners passed (skills.sh audits).
What problem does it solve?
Your site fails real-user CWV thresholds and you are unsure which metric—LCP, INP, or CLS—to fix first for SEO impact.
Who is it for?
Solo founders polishing a production URL where mobile and desktop CWV affect SEO and you already have symptoms (slow LCP, poor INP, high CLS).
Skip if: Pure backend API latency work with no rendered page, or users who only need GSC report navigation without remediation steps—use google-search-console instead.
When should I use this skill?
User wants to optimize Core Web Vitals or mentions Core Web Vitals, CWV, LCP, INP, CLS, FID, page speed, page performance, Largest Contentful Paint, Interaction to Next Paint, Cumulative Layout Shift, or Page Experience.
What do I get? / Deliverables
You get prioritized, threshold-aligned fixes for each CWV metric mapped to Good/Needs Improvement/Poor bands so field data can move into the ranking-safe zone.
- Metric-specific remediation plan for LCP, INP, and CLS
- Alignment to 75th-percentile Good/Needs Improvement/Poor thresholds
Recommended Skills
Journey fit
Spans multiple journey phases - primary shelf plus alternate fits below.
Primary shelf is Launch because Core Web Vitals are confirmed ranking factors and this skill is framed as technical SEO tied to search visibility. seo is the right subphase: CWV optimization is Page Experience and SERP competitiveness, not generic unit testing or pre-ship QA alone.
Where it fits
Before a product launch, tune hero image and font loading so field LCP stays at or below 2.5s on mobile.
After a deploy, INP regresses past 200ms on checkout—trace long tasks and input delay fixes.
Marketing reports rising CLS from ad slots; stabilize layouts without sacrificing monetization blocks.
How it compares
Technical SEO performance playbook—not a generic Lighthouse score dump or a one-click hosting preset.
Common Questions / FAQ
Who is core-web-vitals for?
Solo and indie builders owning a marketing site, SaaS landing page, or storefront who need agent-guided CWV fixes tied to Google ranking factors.
When should I use core-web-vitals?
Use in Launch for SEO Page Experience before or after releases; in Ship when perf testing flags LCP/INP/CLS regressions; in Grow when analytics tie bounce or conversions to slow or unstable pages—especially when users say CWV, LCP, INP, CLS, or page speed.
Is core-web-vitals safe to install?
It is guidance-only from the marketing-skills repo; confirm trust via Prism Security Audits on this page and avoid letting an agent apply destructive production changes without your review.
SKILL.md
READMESKILL.md - Core Web Vitals
# SEO Technical: Core Web Vitals Guides optimization of Core Web Vitals (CWV)—Google's user experience metrics that affect search ranking. CWV are confirmed ranking factors for mobile and desktop. **When invoking**: On **first use**, if helpful, open with 1–2 sentences on what this skill covers and why it matters, then provide the main output. On **subsequent use** or when the user asks to skip, go directly to the main output. ## Scope (Technical SEO) - **LCP** (Largest Contentful Paint): Loading performance; time to render largest content element - **INP** (Interaction to Next Paint): Responsiveness; replaced FID on March 12, 2024 - **CLS** (Cumulative Layout Shift): Visual stability; unexpected layout shifts ## Target Thresholds (75th percentile, field data) | Metric | Target | Good | Needs Improvement | Poor | |--------|--------|------|-------------------|------| | **LCP** | ≤2.5s | ≤2.5s | 2.5–4.0s | >4.0s | | **INP** | ≤200ms | ≤200ms | 200–500ms | >500ms | | **CLS** | <0.1 | ≤0.1 | 0.1–0.25 | >0.25 | **Source**: [Google Page Experience](https://developers.google.com/search/docs/appearance/page-experience) ## Initial Assessment **Check for project context first:** If `.claude/project-context.md` or `.cursor/project-context.md` exists, read it for site URL. Identify: 1. **Tools**: GSC Core Web Vitals report, PageSpeed Insights, Chrome DevTools 2. **Metrics**: Which metric is failing (LCP, INP, CLS) 3. **Page type**: Hero, article, product, list—LCP candidate differs ## LCP Optimization LCP measures the time until the largest content element (image, video, or text block) is visible. | Cause | Fix | |-------|-----| | **Slow server response** | Reduce TTFB; use CDN; optimize server | | **Render-blocking resources** | Defer non-critical CSS/JS; inline critical CSS | | **Large images** | WebP/AVIF; compress; `width`/`height` to prevent CLS; see **image-optimization** | | **Client-side rendering** | SSR/SSG for above-fold content; see **rendering-strategies** | | **Third-party scripts** | Load async; defer non-critical | **LCP candidates**: Hero image, large text block, video poster. Ensure above-fold images use `loading="eager"` (default); never lazy-load LCP. ## INP Optimization INP measures responsiveness—time from user interaction to next paint. Replaced FID on March 12, 2024. | Cause | Fix | |-------|-----| | **Long-running JS** | Break tasks >50ms; use `requestIdleCallback`; Web Workers | | **Heavy event handlers** | Debounce/throttle; defer non-critical work | | **Main thread blocking** | Reduce third-party scripts; defer non-critical JS | | **Layout thrashing** | Batch DOM reads/writes; avoid forced reflows | ## CLS Optimization CLS measures unexpected layout shifts. | Cause | Fix | |-------|-----| | **Images without dimensions** | Always set `width` and `height` attributes | | **Dynamic content** | Reserve space for ads, embeds; use `min-height` | | **Web fonts** | `font-display: optional` or `swap`; preload critical fonts | | **Animations** | Use `transform` instead of `top`/`left`/`width` | **Reserve space**: For images, ads, embeds—define dimensions before load. Avoid inserting content above existing content without reserved space. ## Tools & Monitoring | Tool | Use | |------|-----| | **GSC** | Core Web Vitals report; URL grouping; field data | | **PageSpeed Insights** | Lab + field data; mobile + desktop | | **Chrome DevTools** | Performance panel; LCP element; layout shift overlay | ## Output Format - **Current state**: Which metrics fail (LCP, INP, CLS) - **Prioritized fixes**: By i