DevTools has more surface area than anyone uses. Most of us learn the Elements panel, the Console and the Network tab, then stop. These are the things worth adding, grouped by what you're trying to do rather than by panel.
The command menu is the one to learn first
Ctrl+Shift+P (Cmd+Shift+P) opens a fuzzy search over every DevTools command. If you remember nothing else, remember this — it makes memorising the rest optional.
Type a few letters and go:
screenshot— capture the full page, a single node, or an area, at full resolutiondisable javascript— the toggle covered in the disabling JavaScript guidecoverage— see which CSS and JS is actually used on this pagerendering— paint flashing, layout shift regions, FPS meter,prefers-color-schemeemulationnetwork conditions— custom throttling and user agent overridesensors— geolocation and device orientationanimations— inspect and slow down CSS animations
The full-page screenshot alone justifies learning the shortcut. Capture node screenshot, taken from the Elements panel context menu, gives you a clean image of a single component with no cropping.
Console tricks worth knowing
$('.card') // document.querySelector
$$('.card') // querySelectorAll, returns a real Array
$0 // the element selected in Elements ($1 is the previous one)
$_ // result of the last expression
copy($0.outerHTML) // straight to the clipboard
monitorEvents($0, 'click') // log every click on that element
getEventListeners($0) // what's actually attached
console.table(arrayOfObjects)
console.dir(el) // the object view, not the HTML view
// Group and time a noisy block
console.group('render');
console.time('paint');
// …
console.timeEnd('paint');
console.groupEnd();monitorEvents is the one people are most pleased to discover. When you can't work out why a click does nothing, it tells you whether the event is firing at all, which splits the problem in half immediately.
Also: console.log with %c takes CSS, which is genuinely useful for making one log line findable in a busy console. And the filter box accepts a regex, so /^\[api\]/ cuts everything else out.
Breakpoints beyond the line number
Clicking a line number is the version everyone knows. The others solve problems that are otherwise very hard:
| Type | Where | Use when |
|---|---|---|
| Conditional | Right-click a line number | The bug only happens on the 400th iteration |
| Logpoint | Right-click → Add logpoint | You want a log without editing the source |
| DOM change | Right-click a node → Break on | Something is modifying an element and you don't know what |
| Event listener | Sources → Event Listener Breakpoints | You can't find which handler runs |
| XHR/fetch | Sources → XHR Breakpoints | You need the stack that produced a request |
| Exception | The pause-octagon icon in Sources | Something throws and the stack is gone by the time you look |
The DOM change breakpoint is the standout. "Break on attribute modifications" on an element that keeps getting an unexpected class will take you straight to the offending line, including inside a minified vendor bundle you didn't know was involved.
Editing without a rebuild
Local Overrides
Sources → Overrides → select a folder → tick "Enable". From then on, edits you make to any file in the Sources panel persist across reloads, served from your local folder instead of the network.
This works on any site, including production and including sites you don't own. It's the fastest way to test a fix against a real environment, and the fastest way to prototype a change against a live page before writing the ticket.
Editing CSS live
In the Styles pane, arrow keys nudge numeric values by 1, Shift+arrow by 10, Alt+arrow by 0.1. Tab moves between property and value. Clicking the colour swatch opens a picker with an eyedropper that samples anything on screen.
For larger changes, Web Developer Tools has a Pro CSS Editor with syntax highlighting that writes against the live DOM, and Reload Linked Stylesheets re-fetches external CSS without reloading the page. Keeping page state while iterating on styles is the whole point — it saves the twenty clicks it took to get the page into the state you're debugging.
Network panel details people miss
- Preserve log — keeps requests across navigations, essential for debugging redirects and form posts
- Right-click → Block request URL / domain — measure a third party's cost by removing it
- Filter syntax —
status-code:404,larger-than:1M,mime-type:application/json,-domain:*.google.comto exclude - Copy as fetch / cURL — replay a request outside the browser
- Custom columns — right-click the header row and add Protocol, Priority and Waterfall detail
- Import a HAR — drag a HAR file into the panel to inspect someone else's session
The blocking feature deserves emphasis. Blocking a domain and reloading gives you a real measurement of what that vendor costs, which is a much stronger argument than a general opinion about third-party scripts. More on this in the performance checklist.
Finding things across the whole page
Ctrl+Shift+F opens a global search across every loaded resource: HTML, CSS, JavaScript, source maps. Searching for a magic string, a class name or an error message will find it wherever it lives, including inside a bundle.
In the Elements panel, Ctrl+F accepts CSS selectors and XPath as well as plain text, which is a quick way to count matches for a selector you're about to write.
Rendering and emulation
Open the Rendering drawer from the command menu. Four settings pay for themselves:
- 1Paint flashing — highlights repainted regions in green. If an entire panel flashes on every scroll, you've found a performance problem.
- 2Layout Shift Regions — flashes blue wherever a shift occurs, which makes CLS concrete rather than abstract
- 3Emulate CSS `prefers-color-scheme` — test dark mode without changing your OS setting
- 4Emulate `prefers-reduced-motion` — check your motion fallbacks actually exist
The Coverage panel is worth a mention here too. It shows unused bytes per file, which is how you find out that most of your CSS framework never runs on the page. Treat it as a hint rather than a verdict — coverage is per page load, and code that runs on interaction shows as unused.
Where a second toolkit helps
DevTools is deep and precise, and it's built around inspecting one thing at a time. That's exactly right when you're debugging a specific element and slightly wrong when your question is about the whole page.
"Which images are missing alt text?" "Which elements are causing horizontal overflow?" "Which of these links are nofollow?" "What's my heading hierarchy?" Each of those is answerable in DevTools with a Console snippet or a lot of clicking, and each is a single click in an extension built for whole-page annotation.
That's the gap Web Developer Tools fills: 555 utilities across 22 categories that annotate, audit and report on the current page. It doesn't replace the debugger, the profiler or the network waterfall, and it isn't trying to. It sits next to them for the class of question DevTools answers slowly.

Shortcuts worth committing to memory
| Shortcut | Does |
|---|---|
F12 / Ctrl+Shift+I | Open DevTools |
Ctrl+Shift+C | Open with element picker active |
Ctrl+Shift+P | Command menu |
Ctrl+Shift+M | Toggle device mode |
Esc | Toggle the drawer (Console, Rendering, Coverage) |
Ctrl+Shift+F | Search all loaded resources |
Ctrl+Shift+R | Hard reload, bypassing cache |
Ctrl+P | Open a file in Sources |
F8 / F10 / F11 | Resume / step over / step into |
H | Hide the selected element (Elements panel) |
H is a small one that gets used constantly: select an element, press H, it disappears. Perfect for working out what's underneath an overlay, or which container is producing a gap.
Two settings to change today
- 1Settings → Preferences → Network → Disable cache (while DevTools is open). Stops half of all "but I fixed that" confusion.
- 2Settings → Preferences → Sources → Enable JavaScript source maps. Then check your framework is emitting them in development, or you'll be stepping through minified code for no reason.
Two places these tips pay off immediately: debugging CSS, where live editing and the box model overlay do most of the work, and inspecting client-side storage, where the Application panel hides more than it shows.