web-quality-audit

作者: addyosmani

全面的網站品質審核,涵蓋效能、無障礙性、SEO 及最佳實踐。當被要求「審核我的網站」、「檢查網站品質」、「執行 Lighthouse 審核」、「檢查頁面品質」或「優化我的網站」時使用。

npx skills add https://github.com/addyosmani/web-quality-skills --skill web-quality-audit

Web quality audit

Comprehensive quality review based on Google Lighthouse audits. Covers Performance, Accessibility, SEO, and Best Practices across 150+ checks.

Lighthouse v13 note (Oct 2025+). Lighthouse has migrated the Performance category from per-opportunity audits to Performance Insight Audits (announcement). Several individual audit names this skill historically referenced — First Meaningful Paint, No Document Write, Uses Passive Event Listeners, Uses Rel Preload — have been removed or merged. The underlying advice is unchanged and still applies; only the report format moved. The CLS-related audits ("layout shifts", "non-composited animations", "unsized images") are now consolidated into a single cls-culprits-insight, and image audits are merged into image-delivery-insight. Treat older Lighthouse JSON output as a superset, not a contradiction.

How it works

  1. Analyze the provided code/project for quality issues
  2. Categorize findings by severity (Critical, High, Medium, Low)
  3. Provide specific, actionable recommendations
  4. Include code examples for fixes

Audit categories

Performance (40% of typical issues)

Core Web Vitals — Must pass for good page experience:

  • LCP (Largest Contentful Paint) < 2.5s. The largest visible element must render quickly. Optimize images, fonts, and server response time.
  • INP (Interaction to Next Paint) < 200ms. User interactions must feel instant. Reduce JavaScript execution time and break up long tasks.
  • CLS (Cumulative Layout Shift) < 0.1. Content must not jump around. Set explicit dimensions on images, embeds, and ads.

Resource Optimization:

  • Compress images. Use WebP/AVIF with fallbacks. Serve correctly sized images via srcset.
  • Minimize JavaScript. Remove unused code. Use code splitting. Defer non-critical scripts.
  • Optimize CSS. Extract critical CSS. Remove unused styles. Avoid @import.
  • Efficient fonts. Use font-display: swap. Preload critical fonts. Subset to needed characters.

Loading Strategy:

  • Preconnect to origins. Add <link rel="preconnect"> for third-party domains.
  • Preload critical assets. LCP images, fonts, and above-fold CSS.
  • Lazy load below-fold content. Images, iframes, and heavy components.
  • Cache effectively. Long cache TTLs for static assets. Immutable caching for hashed files.

Accessibility (30% of typical issues)

Perceivable:

  • Text alternatives. Every <img> has meaningful alt text. Decorative images use alt="".
  • Color contrast. Minimum 4.5:1 for normal text, 3:1 for large text (WCAG AA).
  • Don't rely on color alone. Use icons, patterns, or text alongside color indicators.
  • Captions and transcripts. Video has captions. Audio has transcripts.

Operable:

  • Keyboard accessible. All functionality available via keyboard. No keyboard traps.
  • Focus visible. Clear focus indicators on all interactive elements.
  • Skip links. Provide "Skip to main content" for keyboard users.
  • Sufficient time. Users can extend time limits. No auto-advancing content without controls.

Understandable:

  • Page language. Set lang attribute on <html>.
  • Consistent navigation. Same navigation structure across pages.
  • Error identification. Form errors clearly described and associated with fields.
  • Labels and instructions. All form inputs have associated labels.

Robust:

  • Valid HTML. No duplicate IDs. Properly nested elements.
  • ARIA used correctly. Prefer native elements. ARIA roles match behavior.
  • Name, role, value. Interactive elements have accessible names and correct roles.

SEO (15% of typical issues)

Crawlability:

  • Valid robots.txt. Doesn't block important resources.
  • XML sitemap. Lists all important pages. Submitted to Search Console.
  • Canonical URLs. Prevent duplicate content issues.
  • No noindex on important pages. Check meta robots and headers.

On-Page SEO:

  • Unique title tags. 50-60 characters. Primary keyword included.
  • Meta descriptions. 150-160 characters. Compelling and unique.
  • Heading hierarchy. Single <h1>. Logical heading structure.
  • Descriptive link text. Not "click here" or "read more".

Technical SEO:

  • Mobile-friendly. Responsive design. Tap targets ≥ 48px.
  • HTTPS. Secure connection required.
  • Fast loading. Performance directly impacts ranking.
  • Structured data. JSON-LD for rich snippets (Article, Product, FAQ, etc.).

Best practices (15% of typical issues)

Security:

  • HTTPS everywhere. No mixed content. HSTS enabled.
  • No vulnerable libraries. Keep dependencies updated.
  • CSP headers. Content Security Policy to prevent XSS.
  • No exposed source maps. In production builds.

Modern Standards:

  • No deprecated APIs. Replace document.write, synchronous XHR, etc.
  • Valid doctype. Use <!DOCTYPE html>.
  • Charset declared. <meta charset="UTF-8"> as first element in <head>.
  • No browser errors. Clean console. No CORS issues.

UX Patterns:

  • No intrusive interstitials. Especially on mobile.
  • Clear permission requests. Only ask when needed, with context.
  • No misleading buttons. Buttons do what they say.

Severity levels

LevelDescriptionAction
CriticalSecurity vulnerabilities, complete failuresFix immediately
HighCore Web Vitals failures, major a11y barriersFix before launch
MediumPerformance opportunities, SEO improvementsFix within sprint
LowMinor optimizations, code qualityFix when convenient

Audit output format

When performing an audit, structure findings as:

## Audit results

### Critical issues (X found)
- **[Category]** Issue description. File: `path/to/file.js:123`
  - **Impact:** Why this matters
  - **Fix:** Specific code change or recommendation

### High priority (X found)
...

### Summary
- Performance: X issues (Y critical)
- Accessibility: X issues (Y critical)
- SEO: X issues
- Best Practices: X issues

### Recommended priority
1. First fix this because...
2. Then address...
3. Finally optimize...

Quick checklist

Before every deploy

  • Core Web Vitals passing
  • No accessibility errors (axe/Lighthouse)
  • No console errors
  • HTTPS working
  • Meta tags present

Weekly review

  • Check Search Console for issues
  • Review Core Web Vitals trends
  • Update dependencies
  • Test with screen reader

Monthly deep dive

  • Full Lighthouse audit
  • Performance profiling
  • Accessibility audit with real users
  • SEO keyword review

References

For detailed guidelines on specific areas:

來自 addyosmani 的更多技能

accessibility
addyosmani
根據 WCAG 2.2 指南審核並改善網頁無障礙性。當被要求「改善無障礙性」、「無障礙審核」、「WCAG 合規」、「螢幕閱讀器支援」、「鍵盤導航」或「使其無障礙」時使用。
developmenttestingcode-review
seo
addyosmani
針對搜尋引擎能見度與排名進行優化。適用於被要求「改善SEO」、「針對搜尋優化」、「修正中繼標籤」、「加入結構化資料」、「網站地圖優化」或「搜尋引擎優化」時使用。
marketingresearchdevelopment
performance
addyosmani
優化網頁效能以加快載入速度並提升使用者體驗。當被要求「加快網站速度」、「優化效能」、「減少載入時間」、「解決載入緩慢」、「改善頁面速度」或「效能審核」時使用。
developmenttesting
code-review-and-quality
addyosmani
執行多維度程式碼審查。在合併任何變更前使用。在審查自己、其他代理或人類撰寫的程式碼時使用。當需要在程式碼進入主分支前從多個面向評估程式碼品質時使用。
developmentcode-review
frontend-ui-engineering
addyosmani
建立生產級、可存取、響應式的使用者介面。適用於建置或修改介面與頁面、建立元件、實作版面配置、滿足 WCAG 無障礙需求、管理狀態,或當輸出需要呈現生產級品質而非 AI 生成感時使用。
developmentdesign
security-and-hardening
addyosmani
強化程式碼以抵禦漏洞。適用於處理使用者輸入、驗證、資料儲存或外部整合時。適用於建構任何接受不可信資料、管理使用者工作階段或與第三方服務互動的功能。
spec-driven-development
addyosmani
在編寫程式碼之前先建立規格。適用於啟動新專案、功能或重大變更,且尚無規格時。當需求不明確、模糊不清,或僅以模糊概念存在時使用。
developmentdocumentproject-management
performance-optimization
addyosmani
優化應用程式在前端、後端、查詢與資料庫的效能。適用於存在效能需求時、懷疑有效能衰退時、需要改善Core Web Vitals或載入時間時、需要修正N+1查詢模式時,或效能分析顯示瓶頸時。
developmentdatabasedata-analysis