0

HAR File Waterfall Analyzer

Upload a .har file exported from your browser's DevTools to see a real request waterfall built from each request's own timing data, plus checks for missing cache headers, uncompressed responses, and render-blocking scripts.

Drag & drop file here or click to browse

Export a HAR file from your browser's DevTools → Network tab (right-click the request list → "Save all as HAR with content") and drop it here. Everything is parsed and rendered locally — the file is never uploaded anywhere.

Buy Me a Coffee at ko-fi.com
Processing... 0%
Parsing HAR file
Building waterfall
Analyzing requests
Done

Result

A HAR (HTTP Archive) file is a JSON export of everything a browser's DevTools Network panel recorded during a page load: every request and response header, the exact size and MIME type of each response body, and a per-request timing breakdown. You can produce one from Chrome, Firefox, Edge or Safari by opening DevTools, reloading the page on the Network tab, then right-clicking the request list and choosing "Save all as HAR with content". This tool reads that exported file directly — nothing is re-fetched or re-requested.

The waterfall chart is built entirely from data already inside the file: each entry's own timings object breaks a request into blocked, DNS lookup, connect, SSL/TLS negotiation, send, wait (time to first byte), and receive phases, and each phase is drawn as its own colored segment. Per the HAR spec, the SSL time is also included inside connect, so it is subtracted back out first — otherwise the TLS portion would be counted twice and bar widths would no longer add up to the request's real duration. Dashed vertical markers show DOMContentLoaded and Load, read straight from the file's own page timings, so you can see exactly which requests finished before the page became interactive.

Beyond the chart, the tool runs three finding rules over fields the HAR format already records. It flags cacheable responses (status 200, 203 or 206) that carry neither a Cache-Control nor an Expires header, meaning a repeat visit has to re-download them from scratch. It flags textual responses — HTML, CSS, JavaScript, JSON, SVG and similar — larger than 1 KB that were served without a Content-Encoding, an easy compression opportunity most servers can turn on with one config line. And it flags CSS or JavaScript requests that started before the page's own DOMContentLoaded offset, the classic signature of a render-blocking asset.

All of this runs on data that is already sitting in the file you upload — there is no network access, no external lookup service, and no re-fetching of the original page. The HAR file is read, parsed and rendered entirely in your browser tab and is never uploaded anywhere.