How to View Page Source in Firefox (Ctrl+U)
Windows: Ctrl+U
Mac: Cmd+U
Ctrl+U opens the HTML source of the current page in a new tab — Cmd+U on macOS. What you get is the raw document the server sent, syntax-highlighted, with line numbers.
**Source is not the same as the Inspector, and confusing them wastes time.** View Source shows the original HTML as delivered. The Inspector, on Ctrl+Shift+C, shows the live DOM as it exists now, after every script has run and modified it. On a page built with a JavaScript framework, View Source may show almost nothing — an empty container div and a script tag — while the Inspector shows a full tree of elements. Neither is wrong; they answer different questions.
**Reach for View Source when the question is about what the server sent.** Is the meta description actually in the markup or injected later? Did the canonical tag render? Is the structured data present in the initial response? Search engine crawlers and social-media preview generators often work from the delivered HTML, so if a preview is wrong, the source is where the answer is — not the Inspector, which would show you the post-JavaScript version the crawler never saw.
**Reach for the Inspector when the question is about the current state.** Why is this element the wrong colour, what class did the script add, why is this button disabled. All of that lives in the live DOM and none of it is visible in source.
**Firefox's source view is served from cache where possible**, which is worth knowing when you are checking whether a change deployed. If the source looks stale, a hard reload with Ctrl+Shift+R before pressing Ctrl+U ensures you are reading what the server is currently sending rather than what it sent an hour ago.
**Ctrl+U works on more than pages.** Opening it on a stylesheet or a script URL directly shows that file with the same highlighting, which is a lightweight way to read a specific resource without opening the Network panel and hunting for it.
**A note on Firefox and Chrome differing here.** Chrome uses Ctrl+U for the same action, so the binding transfers. What does not transfer is the private-window shortcut on the next page over — Firefox uses Ctrl+Shift+P where Chrome uses Ctrl+Shift+N, and Ctrl+Shift+P in Chrome opens something else entirely. That is one of the few genuinely divergent bindings between the two browsers and the source of a small daily irritation for anyone who uses both.
**Where source view stops helping** is on anything requiring authentication or interaction to reach. The source of a page behind a login is fine; the source of a state that only exists after three clicks is not, because View Source re-requests the URL rather than showing you the document currently rendered. For that case, the Inspector's copy-outer-HTML on the root element gets you the live markup instead.
**Firefox's Reader Mode is a related but separate view.** It strips a page to its article text, which is occasionally a faster way of confirming what content is actually present than reading raw markup. It is not a debugging tool, but for the specific question of whether an article's body text is in the document at all, it answers quickly.