DOMContentLoaded, or DCL, fires the moment the browser has finished parsing the page's HTML into a full DOM tree, without necessarily waiting for images, stylesheets, or external resources to finish loading. It marks the point where the page's structure and content exist and scripts can safely interact with it, even if some visual pieces are still arriving.
That's a narrower milestone than "the page is done loading" (the load event, which does wait for everything), which is why DCL alone isn't a great stand-in for how fast a page feels to a visitor. It's more useful as a diagnostic marker: a long gap between navigation start and DCL usually points to a bloated HTML document, render-blocking scripts placed before the content they gate, or heavy inline processing happening before the DOM can finish building. Pairing it with metrics that measure actual visible progress, First Contentful Paint, Largest Contentful Paint, gives a fuller picture than DCL can on its own.
