Quick Answer: Use Next.js build output analysis by generating a bundle report after `next build` and inspecting which pages, shared chunks, and vendor modules dominate your client payload. The fastest signal is to identify large dependencies that appear in shared chunks or repeated across routes, then verify whether they can be replaced, tree-shaken, dynamically imported, or pushed to the server.
Next.js build output analysis is the most reliable way to expose client-side weight before it reaches production users. After running `next build`, use a bundle analyzer to visualize per-route and shared chunk composition, then focus on oversized third-party packages, duplicated modules, and code that leaks into the client bundle unnecessarily. Heavy dependencies usually show up as large vendor chunks, repeated imports across multiple routes, or libraries that are only needed for isolated interactions but are bundled into the initial load. From there, you can reduce payload by moving logic to Server Components, applying dynamic import for non-critical modules, pruning unused package subpaths, and replacing monolithic libraries with smaller alternatives.