How to Read a HAR File and Find Slow Network Requests
Read a HAR export, identify slow or failed requests, and distinguish response body size from page-load timing.

A HAR file is a JSON record of network activity captured during a browser session. It is useful when a page feels slow on another machine or an API request fails intermittently. Start by identifying the capture window and the action being recorded. A log from initial navigation answers a different question from a log captured after a button click. Our local analyzer produces a shortlist for investigation without replaying requests or contacting the captured hosts.
Capture a useful reproduction
Open the browser Network panel before reproducing the problem. Decide whether preserving navigation requests or disabling the browser cache matches the issue you want to investigate. Repeat the exact action once and export the relevant requests. Browser exports may offer sanitized and sensitive variants, but even sanitized URLs can contain identifiers in paths or queries. Review the file before sharing it with a colleague. A minimal capture makes it easier to connect each request with the user action that triggered it.
Rank requests without summing overlapping time
Inspect request URLs, methods, response statuses and recorded durations. A long duration identifies a candidate, not automatically the cause of the visible delay. Requests run concurrently, and some resources are fetched after the main content is already usable. Adding all durations therefore does not produce a meaningful page-load duration. Use the DevTools waterfall and its dependency information to establish which requests block the interaction. Compare failed statuses with application behavior, since a deliberately missing resource and a failed essential API call have different consequences.
Interpret size fields and missing measurements
HAR bodySize records response-body bytes when the exporter knows them; negative values indicate unavailable measurements. That field is not a complete transfer-cost measurement. Headers, compression, caching and exporter behavior can change what a capture reports. Our analyzer totals known nonnegative body sizes and reports how many sizes are unknown. It removes credentials, queries and fragments from report URLs, but a path can still be sensitive. Keep the original capture available locally when deeper timing or header inspection is required.
Worked example
{"request":{"method":"GET","url":"https://example.com/api/users"},
"response":{"status":503,"bodySize":120},"time":850}Does the slowest request always explain a slow page?
No. A request may run in parallel or after the visible interaction completes. Check its dependency and timing in the waterfall before treating it as the bottleneck.


