FEP-002 recommended Page Rendering
Core Web Vitals optimized
FCP, LCP, CLS within acceptable thresholds; performance score tracked over time
Question to ask
"Would Google rank you lower than a competitor right now?"
Verification guide
Severity: Recommended
Core Web Vitals (FCP, LCP, CLS) directly impact SEO rankings and user experience. These metrics should be measured and optimized, especially for marketing/SEO-critical pages.
Check automatically:
- Run PageSpeed Insights API (free, no auth required):
# Replace URL with actual production URL
curl -s "https://www.googleapis.com/pagespeedonline/v5/runPagespeed?url=https://example.com&category=performance" | jq '{
performance_score: (.lighthouseResult.categories.performance.score * 100),
FCP: .lighthouseResult.audits["first-contentful-paint"].displayValue,
LCP: .lighthouseResult.audits["largest-contentful-paint"].displayValue,
CLS: .lighthouseResult.audits["cumulative-layout-shift"].displayValue,
TBT: .lighthouseResult.audits["total-blocking-time"].displayValue
}'
- Check for CLS culprits (images without dimensions, dynamic content):
curl -s "https://www.googleapis.com/pagespeedonline/v5/runPagespeed?url=https://example.com&category=performance" | jq '.lighthouseResult.audits["layout-shift-elements"].details.items // empty'
- Check for render-blocking resources:
curl -s "https://www.googleapis.com/pagespeedonline/v5/runPagespeed?url=https://example.com&category=performance" | jq '.lighthouseResult.audits["render-blocking-resources"].details.items | length'
- Test multiple key pages (not just homepage):
# Test landing page, product page, etc.
for url in "https://example.com" "https://example.com/pricing" "https://example.com/product"; do
echo "Testing: $url"
curl -s "https://www.googleapis.com/pagespeedonline/v5/runPagespeed?url=$url&category=performance" | jq '{
url: .lighthouseResult.finalUrl,
score: (.lighthouseResult.categories.performance.score * 100),
LCP: .lighthouseResult.audits["largest-contentful-paint"].displayValue
}'
done
Ask user:
- "Which pages are SEO-critical or marketing landing pages?"
- If scores are low: "Is this a known issue being addressed?"
Pass criteria:
- Performance score ≥ 90 (good), ≥ 50 (acceptable)
- FCP < 1.8s (good), < 3s (acceptable)
- LCP < 2.5s (good), < 4s (acceptable)
- CLS < 0.1 (good), < 0.25 (acceptable)
Fail criteria:
- Performance score < 50
- LCP > 4s
- CLS > 0.25 (significant layout shifts)
- FCP > 3s
Cross-reference with:
- FEP-001 (automated reports should catch regressions)
- FEP-003 (font preloading improves FCP/LCP)
- FEP-004 (CSS preloading improves FCP)
- CACHE-001/002 (caching improves repeat visits)
Evidence to capture:
- Performance score
- All Core Web Vitals values (FCP, LCP, CLS, TBT)
- URLs tested
- Any flagged layout shift elements
- Number of render-blocking resources