Find the expensive requests
Export a HAR from your browser’s Network panel, open it here and analyze it. Sort by total duration, body size or status, filter URLs, and show errors only. Wait / TTFB corresponds to the HAR wait measurement. It can include server processing and network latency; it is not a direct measure of database time.
Read timing values carefully
A slow request can spend time queued, establishing a connection, waiting for the response or receiving data. Missing measurements are shown as Unknown. Durations overlap, so adding the time of every request does not give the page load time. The summary totals only known body sizes.
Waterfall bars align with the earliest known request start. A TLS handshake is part of the HAR connect duration and is not added as another phase. Missing phases leave the view incomplete; they are not assumed to take zero time. The first 200 filtered requests are shown in either view. Expand Request details for local header and body previews.
jq '.log.entries[] | {url: .request.url, status: .response.status, ms: .time}' capture.har
jq '[.log.entries[] | select(.response.status >= 400)] | length' capture.har
Redaction preserves structure, not every original field
The exported file rebuilds a core HAR structure, removing unknown/vendor fields where additional secrets may hide. Header values are retained only for a small diagnostic allowlist; Authorization and Set-Cookie values are removed. Query values are redacted in both request URLs and queryString arrays. Request and response bodies are omitted entirely.
URL hosts and paths can themselves contain personal data. Select path redaction when needed and review the file before sharing it. The tool does not store your capture in preferences or offline caches. Files are limited to 25 MB and 50,000 requests.
For header-specific troubleshooting, use the HTTP Header Checker. Look up unfamiliar failures in HTTP Status Codes.
Frequently asked questions
What is a HAR file?
HTTP Archive is a JSON format for browser network requests, responses, timings and metadata. Browser DevTools can export one from the Network panel. A HAR may include credentials and private response data; this tool processes it locally.
What is removed from a redacted export?
Request and response bodies, cookies, all query parameter values, URL credentials and fragments, unknown/sensitive header values, page titles, comments, cache metadata and vendor extension fields. Hostnames, timestamps, request methods, status codes and paths remain; enable path redaction to remove paths too. Review the exported file before sharing.
Why do some sizes or timings say Unknown?
HAR uses -1 or missing fields when a measurement is unavailable. Unknown values are not treated as zero. Body sizes are transfer-body measurements when reported, not a guaranteed total of all network bytes.
Can the tool prove a request came from cache?
No. A 304 status or zero transfer body with non-empty content is a cache indicator, not definitive proof. Browser implementations and service workers can report traffic differently.
How do I read the waterfall?
Choose Waterfall to align requests by their recorded start times. Colored segments show known Blocked, DNS, Connect, Send, Wait and Receive durations. SSL is already part of Connect and is shown separately in details without adding it twice. Unknown start times and missing timings remain unknown. The axis starts at the earliest recorded request, not necessarily navigation start.
What is in Request details?
Expand a request to read phase timings, recorded headers and bounded request/response body previews. Details are parsed locally on demand. Headers show at most 100 entries and 1,000 characters per value; bodies show 4,000 characters. Raw details can include credentials, while the redacted download continues to omit bodies and sensitive header values.