Why the header repeats down your full page screenshot
Short answer
A sticky or fixed header sits in the viewport at every scroll position, so it appears in every individual capture and ends up stamped down the joined image. The fix is to neutralise fixed and sticky positioning for the duration of the capture, which puts the header back in the document flow where it appears exactly once.
Updated 8 June 2026Written by the Full Page Screenshot team
This is the most recognisable failure in stitched screenshots, and once you know what causes it the mechanism is obvious: the header is doing exactly what it was built to do.
position: fixed means stay in the viewport. position: sticky with a top offset means stay in the viewport once you have been scrolled past. Either way, when the capture photographs the viewport at position 0, then 800, then 1600, the header is there each time. Joining those captures produces a header every 800 pixels.
What a capture has to do about it
- Hide fixed elements after the first capture
- The first screenful legitimately contains the header, because that is what the page looks like at the top. From the second capture onwards it should not be there, so fixed elements are hidden for the rest of the run and restored afterwards.
- Convert sticky to relative, and clear the offsets
- A sticky element that is simply hidden leaves a gap where it should have appeared in the flow. Converting it to
position: relativeand setting its top, bottom, left and right offsets to auto puts it back at its natural position in the document, which is where it belongs in a full page image. - Leave large elements alone
- Some layouts use a fixed full-height wrapper as the page container. Hiding that blanks the entire capture. Anything covering more than about 80% of the viewport, or containing the element that scrolls, has to be skipped.
- Put everything back
- Every style change is recorded before it is applied and undone at the end, including if the capture is interrupted. This restore step is part of the capture engine.
Related symptoms
The header appears once but in the wrong place
A sticky element was hidden rather than returned to the flow, so the space it occupied collapsed. This is why converting to relative matters more than hiding.
A gap appears where the header was
The opposite problem: the element was hidden but its reserved space was not. Some layouts add padding to the body to compensate for a fixed header.
It repeats in Chrome DevTools capture
DevTools does not neutralise fixed positioning at all, which is one of the main reasons its output differs from an extension's. See the comparison.
Frequently asked questions
How do I stop a header repeating in a scrolling screenshot?
Use a capture that neutralises fixed and sticky positioning during the run. If your tool does not, the manual workaround is to hide the element in DevTools before capturing.
Can I remove the repeated header after the fact?
Only by editing each occurrence, which is tedious and leaves visible joins. It is far easier to recapture with a tool that handles it.
Why does the header appear at the top even in a correct capture?
Because that is what the page looks like at scroll position zero. Removing it entirely would misrepresent the page.
Capture your first full page screenshot
Free, no account, and nothing leaves your computer.
Keep reading
Automatic scrolling and sticky element handling
How the capture handles sticky headers, lazy-loaded images, animations and nested scroll containers so the joined image looks like one page.
Built-in browser capture versus an extension
Chrome can capture a full page without an extension. Where the built-in tool is enough, where it fails, and what an extension adds.
Why images come out blank in a full page screenshot
Grey rectangles where images should be are a lazy loading problem. Why it happens during a scrolling capture and the two ways to fix it.
Full page screenshot: capture an entire webpage in one image
Take a full page screenshot of any webpage, including everything below the fold. Automatic scrolling, sticky header handling, PNG, JPG and PDF export.