What breaks

Why is my website not scrolling down: 3 causes

Visitors reach the first screen and cannot get past it, on a laptop or a phone. Mimiq sends simulated visitors down the page and shows the step where they stopped.

5 visitors try to .
First test free with an accountRun it from your coding agent

Why is my website not scrolling down?

Usually something on the page takes the scroll away from the document. A script can lock scrolling when a panel opens and never release it, a full-screen layer can cancel wheel and touch events, or a box inside the page can capture the scroll and stop it reaching the page. Compare what happens with the arrow keys, the wheel and a finger, because that difference names the cause. A simulated visitor scrolls the page on a phone and a laptop, then reports the step where the scroll stopped and what sat under the pointer.

What this looks like in a report

Who
Ruth, a nurse comparing two continuing education courses
How they arrived
Opened a course page from a link in a newsletter, on her phone
Where they stopped
Course page, on the first screen, looking for the price

“The first screen had an Enroll button and nothing else. I wanted the syllabus and the price before I paid anything, but my thumb slid over the same blank box and the page would not move. I closed the tab.”

The fix. Release the scroll lock when the panel closes, by every route: the close button, a tap outside it and the back button. Then check on a phone that no fixed layer covers the page after the first screen, and scroll the course page down to the price.

An illustration. Run a test to see your own.See a real sample report

Something on the page is taking the scroll before the page does

The visitor scrolls, and the first screen stays put. The page below it is there, and the scroll bar may even be drawn, but the wheel and the finger never move the document. Often a panel opened once and asked the page to stop scrolling behind it, then closed without releasing that request. Or a full-screen layer from an intro animation still covers the screen and swallows every scroll gesture. The owner rarely meets either case, because a reload clears a lock set in script and the owner reloads before every test.

  • Press the arrow keys or Page Down. If the page moves, something is cancelling the wheel and touch.
  • In the Console, run getComputedStyle(document.body).overflow and check whether it says hidden with no panel open.
  • Compare document.documentElement.scrollHeight with window.innerHeight. Equal numbers mean the page has nothing below the first screen to scroll to.
  • Look for a fixed element that covers the whole viewport and stays there after its panel closes.
  • Scroll with the pointer over each box on the page, to see whether one box takes the scroll and holds it.

The lock a closed panel left behind

A cookie panel, a sign-up pop-up or a mobile menu often sets overflow hidden on the html or body element while it is open. That style is meant to last only while the panel is open. Many panels remove it on the close button and miss the other ways out, such as a tap on the dark background or the browser back button. The lock then stays for the rest of the visit, and the document cannot scroll. To check, run getComputedStyle on document.body in the Console and read the overflow value. Hidden while no panel is open means a lock is still on.

Keyboard works, but the wheel and finger do not

Press the arrow keys or Page Down on the page. If the page moves, the document can scroll, and something is cancelling wheel and touch events. Scripts do this when they call preventDefault on those events, often to stop a carousel from moving the page with it. A full-screen layer from an intro animation can do the same by sitting over the page. Keys skip those handlers, so they still work. If the keys do nothing either, the document has no extra height or a lock sits on it, and the scrollHeight check in the Console settles which.

A box inside the page that keeps the scroll

A scrollable box with a fixed height, such as a review list, a chat panel or a table, takes the wheel when the pointer is over it. The page then scrolls only after the box reaches its end, and on a phone a finger may move the box and nothing else. Visitors read this as the page being stuck. Check it by scrolling with the pointer over the box and then over the bare background. If the page moves when the pointer is on the background but not on the box, the box is capturing the scroll, and its height or its overflow setting needs a fix.

What you get with Mimiq

  1. 01

    Run it by hand, or on every pull request

    Paste a link and a task in the app and watch the visitors work. Or run them on every preview deploy: the GitHub Action comments on the pull request, any other CI can call the MCP endpoint, and your coding agent can run it too.

  2. 02

    Bugs and usability problems in one report

    The browser records errors and failed or slow requests on the step they happened. The visitors say where the wording or the steps confused them, and where they left.

  3. 03

    Visitors that behave like your audience

    Each visitor is a different profile with a reason to be there, matched to who the page is for, described by you, or built from your own customers.

  4. 04

    A prompt to fix each problem

    Every problem comes with a fix to paste into Cursor, Claude Code, Lovable or any coding agent, and one prompt hands over the top problems at once. Then send the same visitors through again.

  5. 05

    Follow every visitor

    See each visitor's whole path, step by step with screenshots, and what it was thinking at every step. Ask any visitor a question.

The browser records relevant JavaScript errors and failed or slow app requests encountered during the run, attached to the step where they occurred. The visitors are simulated: they find problems, they do not predict how many real people will convert.

A new modal or sticky panel can lock the page again

A newer cookie tool, a sign-up pop-up or a menu added in the next release can set the same lock on the body, and a new carousel can cancel wheel events. Rerun the same phone visitor after each change, and make sure the scroll reaches the price at the bottom of the guide. With paid credits, visitors can reach a page behind a site password, so the check can run on each preview deploy before the page goes live.

Starter

Try it on one launch

$9 once
120 credits, never expire

About 4 tests of 5 visitors

  • Visitors on your landing page, signup and checkout
  • Where they left and why, with a fix to copy for each problem
  • Run it in the app or on every pull request
  • Ask any visitor a question, included
  • Test accounts and protected previews
Buy 120 credits

Builder

Test every build

$19 a month
500 credits every month

About 20 tests of 5 visitors

  • Everything in Starter
  • Credits refill each month, and what is left rolls over once
  • Cancel anytime
Choose Builder

Pro

Test every release, as a team

$49 a month
1,500 credits every month

About 60 tests of 5 visitors

  • Everything in Starter
  • Credits refill each month, and what is left rolls over once
  • Cancel anytime
Choose Pro

Scale

Test at scale, every day

$149 a month
6,000 credits every month

About 240 tests of 5 visitors

  • Everything in Starter
  • Credits refill each month, and what is left rolls over once
  • Priority support
  • Cancel anytime
Choose Scale
$0for your first test, with a free account (Google sign-in, no card). It includes 50 credits, enough for 10 visitors. After that a visitor uses 5 credits, and packs start at $9 for 120 credits.
See a sample report

Questions

Does this happen on a laptop as well as a phone?

Yes, but it shows differently. On a laptop the mouse wheel is the first thing a lock blocks, and the scroll bar may still look active. On a phone a finger does the same job, and a box that captures touch is easier to miss. Test both, with the same page and the same panel open.

Why does scrolling work after I refresh the page?

A lock set by a script lives only until the page reloads, so a refresh clears it. Then the first panel that opens sets it again. Check whether the panel's open state is restored on load, and whether a script opens it automatically on each visit. A visitor who arrives fresh meets the lock at the same step.

Can a simulated visitor show me where the page stopped scrolling?

It shows the step where the visitor could not reach the next section, with a screenshot taken at that point and any errors recorded on the step. It does not name the lock, the layer or the box, so run the Console check for that. It does not predict how many real visitors would leave at that spot.

Does a sticky header stop the page scrolling?

No. A sticky header stays at the top while the page moves under it. It blocks scrolling only if it is sized to cover the screen, or if it contains a box that captures the wheel. Check its height in the Elements panel before you blame the header.

Should I remove overflow hidden everywhere?

No. A carousel that clips its slides needs overflow hidden on its own box. Remove only the lock a script puts on the html or body element, and only when the panel closes. Then check the close path with a tap, a tap outside the panel and the back button.

Keep reading

Send visitors and see what breaks first.

Your first test is free: sign in with Google and it starts right away. Last checked 2026-11-02.

5 visitors try to .