Skip to content
Full Page Screenshot

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: relative and 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.

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