К основному содержанию
скилл CX Codex

web-performance-optimization · secondsky — скилл для Claude Code: ускоряет

Скилл для оптимизации загрузки веб-приложений: разбивка бандла, ленивая загрузка, кэширование и мониторинг Core Web Vitals.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add secondsky/claude-skills --skill web-performance-optimization -a claude-code
Открыть на GitHub

Что делает web-performance-optimization

Скилл подсказывает агенту, как разложить тяжёлый фронтенд на части и ускорить первую отрисовку. Внутри — готовые приёмы: React.lazy и Suspense для маршрутов, splitChunks в конфиге webpack, адаптивные картинки через <picture> и srcset, service worker с кэшем статики.

Отдельный блок — замер Core Web Vitals. Агент добавляет PerformanceObserver для LCP, CLS и INP, а метрики уходят в вашу аналитику через функцию-заглушку sendToAnalytics, которую придётся дописать под свой эндпоинт. В таблице целей указаны пороги: LCP меньше 2.5s, INP меньше 200ms, CLS меньше 0.1. INP заменил FID как Core Web Vital в марте 2024 — если вы всё ещё следите за FID, это повод обновить дашборды.

Есть примеры сжатия для Nginx и чеклист из семи пунктов. Дополнительные материалы лежат в references/compression-monitoring.md и references/typescript-advanced.md — там конфиг Apache, TTFB и автоматизация замеров через Puppeteer. Скилл не запускает оптимизацию сам: он даёт агенту шаблоны, а решения по архитектуре остаются за вами.

Какие задачи решает

  • разбить бандл по маршрутам и вынести вендоров в отдельный чанк
  • настроить ленивую загрузку компонентов ниже первого экрана
  • подключить service worker с кэшированием статики
  • снять метрики LCP, CLS и INP и отправить их в аналитику
  • включить gzip в Nginx и уменьшить размер ответа

Примеры запросов агенту

  • Разбей маршруты приложения на ленивые чанки через React.lazy и Suspense
  • Настрой splitChunks в webpack, чтобы node_modules ушли в отдельный vendors-чанк
  • Добавь замер LCP, CLS и INP через PerformanceObserver и отправь метрики в аналитику

Как установить web-performance-optimization

1Через Skills CLI (Vercel)

npx skills add secondsky/claude-skills --skill web-performance-optimization -a claude-code

2Вручную: положить файлы

~/.claude/skills/web-performance-optimization/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/web-performance-optimization/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Вопросы о web-performance-optimization

Как установить web-performance-optimization в Claude?

Выполните npx skills add secondsky/claude-skills --skill web-performance-optimization -a claude-code. Скилл появится в ~/.claude/skills/web-performance-optimization/SKILL.md.

Что делает web-performance-optimization?

Даёт агенту шаблоны для разбивки кода, ленивой загрузки, кэширования и сжатия, а также код для замера Core Web Vitals.

Какие метрики отслеживает скилл?

LCP, CLS и INP. INP заменил FID как Core Web Vital в марте 2024, поэтому старые замеры по FID уже не отражают отзывчивость страницы.

Исходный текст

SKILL.md · MIT
---
name: web-performance-optimization
description: Optimizes web application performance through code splitting, lazy loading, caching strategies, and Core Web Vitals monitoring. Use when improving page load times, implementing service workers, or reducing bundle sizes.
license: MIT
---

# Web Performance Optimization

## Overview

Implement performance optimization strategies including lazy loading, code splitting, caching, compression, and monitoring to improve Core Web Vitals and user experience.

## When to Use

- Slow page load times
- High Largest Contentful Paint (LCP)
- Large bundle sizes
- Frequent Cumulative Layout Shift (CLS)
- Mobile performance issues

## Code Splitting (React)

```javascript
import { lazy, Suspense } from 'react';
import { Routes, Route } from 'react-router-dom';

const Home = lazy(() => import('./pages/Home'));
const Dashboard = lazy(() => import('./pages/Dashboard'));
const Settings = lazy(() => import('./pages/Settings'));

function App() {
  return (
    <Suspense fallback={<Loading />}>
      <Routes>
        <Route path="/" element={<Home />} />
        <Route path="/dashboard" element={<Dashboard />} />
        <Route path="/settings" element={<Settings />} />
      </Routes>
    </Suspense>
  );
}
```

## Webpack Bundle Optimization

```javascript
// webpack.config.js
module.exports = {
  optimization: {
    splitChunks: {
      chunks: 'all',
      cacheGroups: {
        vendor: {
          test: /[\\/]node_modules[\\/]/,
          name: 'vendors',
          chunks: 'all'
        }
      }
    }
  }
};
```

## Image Optimization

```html
<picture>
  <source srcset="image.webp" type="image/webp">
  <source srcset="image.jpg" type="image/jpeg">
  <img
    src="image.jpg"
    srcset="image-400.jpg 400w, image-800.jpg 800w, image-1200.jpg 1200w"
    sizes="(max-width: 600px) 100vw, 50vw"
    loading="lazy"
    decoding="async"
    alt="Description"
  >
</picture>
```

## Service Worker Caching

```javascript
// sw.js
const CACHE_NAME = 'app-v1';
const ASSETS = ['/', '/index.html', '/main.js', '/styles.css'];

self.addEventListener('install', (event) => {
  event.waitUntil(
    caches.open(CACHE_NAME).then(cache => cache.addAll(ASSETS))
  );
});

self.addEventListener('fetch', (event) => {
  event.respondWith(
    caches.match(event.request).then(cached => {
      return cached || fetch(event.request).then(response => {
        return caches.open(CACHE_NAME).then(cache => {
          cache.put(event.request, response.clone());
          return response;
        });
      });
    })
  );
});
```

## Core Web Vitals Monitoring

```javascript
// Track LCP, CLS, INP (Note: INP replaced FID as of March 2024)
// sendToAnalytics is a placeholder function that sends metrics to your analytics endpoint
// Expected signature: sendToAnalytics({ metric: string, value: number }) => void
// Example implementation:
function sendToAnalytics({ metric, value }) {
  // Replace with your analytics implementation (e.g., Google Analytics, Segment)
  fetch('/api/analytics', {
    method: 'POST',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify({ metric, value, timestamp: Date.now() })
  });
}

// Largest Contentful Paint (LCP)
new PerformanceObserver((list) => {
  for (const entry of list.getEntries()) {
    console.log(`LCP: ${entry.startTime}ms`);
    sendToAnalytics({ metric: 'LCP', value: entry.startTime });
  }
}).observe({ type: 'largest-contentful-paint', buffered: true });

// Cumulative Layout Shift (CLS)
new PerformanceObserver((list) => {
  let cls = 0;
  for (const entry of list.getEntries()) {
    if (!entry.hadRecentInput) cls += entry.value;
  }
  sendToAnalytics({ metric: 'CLS', value: cls });
}).observe({ type: 'layout-shift', buffered: true });

// Interaction to Next Paint (INP) - replaces FID
new PerformanceObserver((list) => {
  for (const entry of list.getEntries()) {
    // INP measures responsiveness - duration of slowest interaction
    const inp = entry.processingEnd - entry.processingStart;
    console.log(`INP: ${inp}ms`);
    sendToAnalytics({ metric: 'INP', value: inp });
  }
}).observe({ type: 'event', buffered: true }); // 'event' captures interaction events
```

## Performance Targets

| Metric | Good | Needs Improvement |
|--------|------|-------------------|
| LCP | <2.5s | 2.5-4s |
| INP | <200ms | 200-500ms |
| CLS | <0.1 | 0.1-0.25 |
| TTI | <3.8s | 3.8-7.3s |

**Note:** INP (Interaction to Next Paint) replaced FID (First Input Delay) as a Core Web Vital in March 2024. INP provides a more comprehensive measure of page responsiveness by capturing the full duration of interactions, not just the input delay.

## Compression (Nginx)

```nginx
gzip on;
gzip_types text/plain text/css application/json application/javascript;
gzip_min_length 1000;
gzip_comp_level 6;
```

## Best Practices

- Minimize bundle size with code splitting
- Optimize images with appropriate formats
- Implement lazy loading strategically
- Use HTTP caching headers
- Enable gzip/brotli compression
- Monitor Core Web Vitals continuously
- Implement service workers
- Defer non-critical JavaScript
- Optimize critical rendering path
- Test on real devices and networks

## Optimization Checklist

- [ ] Enable code splitting for routes
- [ ] Lazy load below-fold components
- [ ] Optimize and compress images
- [ ] Implement service worker caching
- [ ] Enable gzip/brotli compression
- [ ] Monitor Core Web Vitals
- [ ] Minimize render-blocking resources

## Additional Configuration

See [references/compression-monitoring.md](references/compression-monitoring.md) for:
- Webpack compression plugin setup
- Apache .htaccess compression config
- TTFB monitoring implementation
- Puppeteer automation for measurement

See [references/typescript-advanced.md](references/typescript-advanced.md) for:
- TypeScript lazyLoad utility
- TypeScript image component
- Advanced service worker with offline fallback
- TerserPlugin configuration
- Complete PerformanceMetrics interface

## Tools

- Lighthouse / PageSpeed Insights
- WebPageTest
- Chrome DevTools Performance tab
- web-vitals npm package

## Resources

- [Web Vitals](https://web.dev/vitals/)
- [Google PageSpeed Insights](https://pagespeed.web.dev/)
- [Lighthouse](https://developers.google.com/web/tools/lighthouse)
- [WebPageTest](https://www.webpagetest.org/)
- [Performance API](https://developer.mozilla.org/en-US/docs/Web/API/Performance)

© secondsky · MIT · secondsky/claude-skills

Похожие скиллы

Всё по теме «Фронтенд и UI» →

Сначала — web-performance-optimization от других авторов.

web-performance-optimization aj-geddes Скилл для оптимизации веб-приложений: разбиение бандла, ленивая загрузка, кэширование, сжатие и мониторинг. Пригодится, когда страницы грузятся медленно. CX Codex +1 482установок web-performance-optimization davila7 Скилл для Claude, который помогает разобрать, почему сайт грузится медленно, и по шагам убрать узкие места. 3 490установок react-performance-optimization NickCrew Помогает находить узкие места в рендере React, настраивать мемоизацию, разделение кода и виртуализацию списков. Пригодится для ускорения медленных экранов и уменьшения бандла. CX Codex +1 1 900установок web-performance-audit aj-geddes Скилл разбирает скорость загрузки страниц, находит узкие места и подсказывает, что чинить. Пригодится после крупных правок или жалоб на медленную загрузку. CX Codex +1 543установок performance-optimization addyosmani Скилл для агентов ИИ-кодинга: сначала замеряет, потом чинит узкое место — от Core Web Vitals до N+1 запросов и индексов в базе. CX Codex +1 65 200установок nextjs-performance giuseppe-trisciuoglio Скилл по оптимизации Next.js: Core Web Vitals, картинки и шрифты, кеширование, стриминг, размер бандла. Пригодится, когда сайт тормозит и надо понять, с чего начать. CX Codex +1 4 900установок vite-bundle-optimization patterns.dev Скилл с паттернами оптимизации бандла и сборки в Vite + React. Пригодится, когда билд тормозит или чанки выходят больше ожидаемого. CX Codex +1 667установок pwa-development alinaqi Скилл для сборки Progressive Web App: манифест, service worker, стратегии кэширования и офлайн-режим. Пригодится, когда приложение должно ставиться на телефон и открываться без сети. CX Codex +1 4 100установок

Из того же набора89

motion Скилл по библиотеке Motion для React: подсказывает, как собрать drag-and-drop, scroll-анимации и переходы макета. Пригодится, когда агент путает пропсы или ломает exit-анимации. CX Codex +1 1 100установок playwright Скилл для браузерной автоматизации и E2E-тестов на Playwright. Сам находит запущенный dev-сервер и пишет скрипты под вашу задачу. CX Codex +1 1 000установок api-testing Скилл учит агента писать тесты HTTP API: Supertest в TypeScript, httpx и pytest в Python. Пригодится, когда нужно закрыть REST, GraphQL и проверку ошибок. CX Codex +1 890установок rest-api-design Скилл задаёт агенту конвенции REST: имена ресурсов, HTTP-методы, коды ответов и формат JSON. Пригодится, когда проектируешь новый API или приводишь к общему виду уже существующий. CX Codex +1 586установок api-authentication Скилл для ИИ-агента, который помогает писать аутентификацию в API: JWT, OAuth 2.0, API-ключи, сессии и защитные заголовки. CX Codex +1 533установок web-performance-audit Скилл для аудита скорости страниц: снимает метрики Core Web Vitals, ищет узкие места и подсказывает, что чинить. Пригодится, когда LCP или CLS вылезают за норму. CX Codex +1 526установок kpi-dashboard-design Скилл помогает выбрать метрики и собрать дашборд: подсказывает вёрстку, типы графиков и цвета статусов. Пригодится, когда делаешь аналитику для руководства. CX Codex +1 507установок bun-sveltekit Подсказывает агенту, как собирать и запускать SvelteKit на Bun: SSR, адаптер, bun:sqlite и работа с файлами. CX Codex +1 499установок

Спонсоры проекта

Компании, которые помогают держать аналитику открытой