Code splitting loads code only when needed instead of shipping one big bundle. `next/dynamic` lets you lazy-load heavy components (and optionally disable SSR for them), improving initial load performance.