
How to take a full-page screenshot
of any website, without the gaps
Capturing a whole page sounds like one button. In practice it is where screenshots most often come out wrong: blank images halfway down, a header repeated every screen, a cookie banner sitting over the hero. Here is how to take one, and why each of those happens.
· 10 min read
What a full-page screenshot is
An ordinary screenshot records the viewport: the part of the page that fits in the window before you scroll. A full-page screenshot records the whole document, from the top of the page to the footer, as one tall image.
That is the version people want for design reviews, for client reports, for an archive of what a page said on a given day, and for anything that might end up as evidence. A viewport capture of a pricing page shows the headline. A full-page capture shows the plan table, the small print under it and the FAQ that qualifies both.
Taking one in Chrome and Firefox
Both browsers can do it without an extension.
Chrome (and other Chromium browsers)
- Open DevTools: F12, or Cmd + Option + I on a Mac.
- Open the command menu: Ctrl + Shift + P (Cmd + Shift + P on a Mac).
- Type
screenshotand choose Capture full size screenshot. The PNG goes to your downloads folder.
Firefox
- Right-click an empty part of the page and choose Take Screenshot, or press Ctrl + Shift + S.
- Choose Save full page, then download or copy the result.
For a one-off capture of a simple page, that is all you need. If you want the same result without opening DevTools, our free full-page screenshot tool does it in a real browser with no account, with ads and pop-ups blocked by default.
Resize or scroll: the two ways it is done
Almost every problem below comes from which of these a tool uses.
Resizing makes the browser's window as tall as the document and takes one picture. It is fast and produces no seams. But the page now believes it is being viewed on a screen thousands of pixels tall, and some pages react badly to that.
Scrolling and stitching moves down the page one screen at a time, the way a visitor would, and joins the screens into one image. It is slower, but the page behaves as it does for a real visit: lazy content loads, scroll-triggered sections appear, and the hero is the size it is meant to be. It is the method our captures use.
Six things that break a long capture
- Blank or grey images further down. Lazy loading: images are only fetched as they approach the viewport, and the capture ended before they arrived. The classic symptom is a crisp top third and empty boxes below it.
- Sections that are simply missing. Scroll-triggered animations keep content invisible until it scrolls into view. A resize-style capture never scrolls, so that content is never revealed.
- A header repeated every screen. Fixed and sticky elements, such as navigation bars, chat bubbles and promotion strips, are drawn at their position in every screen a stitched capture takes.
- A hero section thousands of pixels tall. Sections sized to the window (
height: 100vh) grow to the full document height when the window is resized to fit the page. - Someone else's marketing over the content. Cookie banners, newsletter modals, "open in the app" bars and advertising, sometimes different on every load.
- A page with no bottom. Infinite feeds load more as you scroll. A capture that follows them either never finishes or produces an image too large to open.
The settings that fix them
Each problem above has a matching control. These are the ones on a Web Profile.
| Problem | Setting | What to do |
|---|---|---|
| Blank lazy images | Scrolling delay | Raise it from the 2,000 ms default; up to 10,000 ms per step. |
| Heavy page cut short | Page timeout | Raise it from 30,000 ms; up to 60,000 ms. |
| Cookie banners and modals | Dismiss pop-ups, Press Escape | Dismiss pop-ups is on by default; add Press Escape for stubborn modals. |
| Advertising | Block ads | On by default; it also makes captures finish faster. |
| Repeated sticky header | Hide these elements | Point it at the header or chat bubble on the Auto Schedule. |
| Infinite feeds | Maximum height | Turn off "Grow to the full page height" and set a ceiling. |
The two timing fields fix most captures people describe as "blank" or "half loaded", and a slower profile does not use more of your plan. The full reference is in capture mode and timing and blocking ads and pop-ups.
When a full page is the wrong choice
Full-page captures are the right record of what a page said. They are not always the right way to watch a page over time. Their height changes whenever the content does, so a month of them is hard to flick through and much larger to store.
- Watching the first impression? A viewport capture is a fixed-size, comparable record of what a visitor sees before scrolling.
- Watching one block, such as a price table? Capture just that element, so that unrelated changes elsewhere on the page are not mistaken for changes to it.
- Building an evidence pack? Take the full page, and consider a PDF alongside the image.
A checklist for clean captures
- Capture from a clean browser, not your own signed-in session.
- Use a capture that scrolls the page, so lazy content and animations run.
- Leave ad blocking and pop-up dismissal on unless the ads are what you are recording.
- Hide fixed elements that repeat, by selector, on the schedule that needs it.
- Set a maximum height for feeds and very long pages.
- Pick a format that can hold the height: PNG or PDF for very long pages.
- Keep the width and device fixed, so captures taken months apart can be compared.
FAQ
How do I take a full-page screenshot in Chrome without an extension?
Open DevTools (F12, or Cmd+Option+I on a Mac), open the command menu with Ctrl+Shift+P (Cmd+Shift+P on a Mac), type "screenshot" and choose "Capture full size screenshot". Chrome saves a PNG of the whole page to your downloads.
How do I take a full-page screenshot in Firefox?
Right-click an empty part of the page, choose "Take Screenshot", then "Save full page". Ctrl+Shift+S (Cmd+Shift+S on a Mac) opens the same tool.
Why are images missing halfway down my full-page screenshot?
They are lazy-loaded: the page only fetches them when they scroll into view, and the capture finished before they arrived. A capture that scrolls through the page and pauses at each step gives them time to load.
Why does the header appear several times down the screenshot?
It is fixed or sticky, so it is drawn at the top of every screen the capture scrolls through. Hide the element for the capture, or use a tool that handles fixed elements while stitching.
Is there a maximum height for a full-page screenshot?
Yes. Image formats have limits of their own (WebP stops at 16,383 pixels, JPEG at about 65,500), and pages with infinite scroll have no bottom at all, so a sensible ceiling is part of any reliable setup.
TL;DR
For a quick one-off, Chrome's "Capture full size screenshot" or Firefox's "Save full page" will do. For a capture you can rely on, scroll the page rather than resizing it, give lazy content time to load, keep banners and ads out, hide what repeats, and cap the height. Then let a schedule take the same capture every day.