The honest guide

Scroll
jacking

Scrolljacking is when a website overrides the browser's native scrolling and decides for itself what your scroll does next — stepping through sections, driving an animation, or holding you in place until a sequence finishes. It is not a bug, and there is no search penalty for it. It is a technique, and like most techniques it is mostly used badly. Here is what it actually does, what it really costs, and the six rules that separate the two.

Start here

Scroll,
hijacked.

The mechanism

What it actually is.

A normal page lets the browser handle scrolling: you push, it moves, and the amount it moves is yours to decide. A scrolljacked page listens for that input first. It cancels the browser's response and spends your gesture on something else — advancing one section, scrubbing a timeline, pinning a panel in place until an animation finishes.

That is the whole trick, and it is neutral. Everything people dislike about scrolljacking comes from what happens next: whether the page gives your controls back, and whether anything of value was left outside the document while it performed. The longer definition is in the blog.

How a scrolljacked page handles your scroll Three stacked panels joined by downward arrows: your input from a wheel, trackpad or arrow keys is intercepted by the page, which then decides how far the view moves. YOUR INPUT wheel, trackpad, arrow keys INTERCEPTED the page listens first THE PAGE DECIDES animation drives position

Say the quiet part

The risks, stated plainly.

Four things go wrong, and only the first one is about taste. Control: the reader loses a behaviour they have trusted for twenty years, and gets motion they cannot predict in exchange. One URL: five topics on a single page means one title tag about nothing, and nothing anyone can deep-link — the real reason scrolljacked sites rank badly, which the SEO post takes apart properly.

Invisible content: anything a script injects on scroll may never be injected for a crawler or a screen reader. Payload: a full-page-scroll plugin and an animation library are main-thread work on exactly the path Core Web Vitals measures. Every one of these is optional. None of them is inherent to the technique.

Four risks of building scrolljacking badly Four crossed-out panels: control is taken from the reader, one URL leaves nothing to rank, hidden content is never crawled, and the payload blocks the main thread. CONTROL taken from you ONE URL nothing to rank HIDDEN CONTENT never crawled PAYLOAD blocks the main thread

The playbook

Six rules, and it costs the reader Nothing

Six rules for using scrolljacking responsibly REAL URLS HTML FIRST REDUCED MOTION KEYBOARD CSS, NOT JS OPT-IN Every screen is a real page. In the document before scripts. Honoured all the way down. Tab, arrows, Home, End. Animate off the main thread. Visible, and remembered.

Miss one and you have built the version everybody complains about.

The upside

What it's genuinely good for.

One idea per screen is a real editorial constraint, and constraints are why the format works: nothing competes for attention, so the thing you came to say actually gets said. Pacing becomes something you design rather than something the reader's trackpad decides. And when every screen is its own page, the structure that makes the story readable is the same structure a crawler rewards.

What it will not do is move your rankings on its own. Anybody promising ranking outcomes from an animation technique is selling something. It earns its place when the content is genuinely sequential — a process, a comparison, an argument built one beat at a time — and nowhere else.

Four things responsible scrolljacking gives you Four ticked panels: one idea per screen, pacing you design, real URLs for every screen, and motion the reader can decline. ONE IDEA per screen, nothing competes PACING designed, not guessed REAL URLS every screen indexed OPT-IN MOTION offered, not imposed

In practice

How we use it here.

You are reading the demonstration. This site moves like one continuous deck, and every screen of it is a separate hand-coded page with its own URL, its own title tag and its own entry in the sitemap — the animation between them is the browser's View Transitions API, not a framework. Nothing is injected on scroll; view the source and every word is already there.

And the motion is an offer. A selector in the corner switches the whole site between experiences, your operating system's reduced-motion setting is honoured before anything else, and whichever you pick is remembered. That is rule six, built in rather than bolted on.

See the full method

ScrolljackingFAQs

What is scrolljacking?

Scrolljacking is when a website overrides the browser's native scrolling and uses your scroll input to drive its own behaviour instead — advancing a section, scrubbing an animation, or pinning a panel. It is also called scroll hijacking. The full definition is in the blog.

Is scrolljacking bad for SEO?

There is no scrolljacking penalty. What hurts is what usually comes with it: one URL for everything, content injected by script, and a heavy animation library. Keep real pages and real HTML and the technique costs you nothing — see the SEO post.

Is scrolljacking bad for accessibility?

It is, in the usual build — keyboard navigation breaks and reduced-motion settings are ignored. Both are fixable: leave the keyboard alone and stand down completely when the OS asks. Accessible scrolljacking walks through it.

When should you use scrolljacking?

When the content is genuinely sequential — a process, a comparison, an argument built one beat at a time — and the reader gains something from seeing one idea at a time. For a page someone came to skim or search, don't.

How do you turn scrolljacking off?

On a site built properly, you shouldn't have to — turning on reduced motion in your operating system is enough, and a visible control should offer the same choice. On this site both work, and the answer is remembered between visits.

Is scrolljacking the same as scroll-driven animation?

No. A scroll-driven animation is tied to where you already are on the page — you stay in control of the scrollbar. Scrolljacking takes the input itself and decides how far the page moves. The first is a visual effect; the second is a navigation change.

That's the theory

Now the
practice.

I wrote this page because the argument only ever seems to have two sides — scrolljacking is either a crime or a personality. It is neither. It is a technique with a short list of rules, and this site follows them in public, which is the only kind of proof worth much. The version with my name on it is the method; the themes are it running live. The blog shows the work, the FAQ handles the rest, I'm here, and home is where the tour starts. Building something that should move like this? Tell me about it.

Adam Hoidahl The Better Website

The Better Website is a one-person web design studio in Raleigh, NC, serving the Triangle and clients nationwide. Adam Hoidahl hand-codes every site in plain HTML, CSS and JavaScript — no WordPress, no page builders, no CMS.