Large JavaScript bundles slow initial load. Reduce what you ship.
Code splitting: Break bundle into chunks loaded on demand.
const Modal = lazy(() => import('./Modal'));
Tree shaking: Remove unused code during build.
Analyze your bundle: Use webpack-bundle-analyzer or similar tools.
Strategies:
- Route-based splitting: Each route loads its own chunk
- Component-based splitting: Heavy components load on demand
- Remove unused dependencies
- Use lighter alternatives (date-fns vs moment)