Why does my Mac stutter scrolling Safari?

Smooth scrolling in Safari should feel effortless. When it judders, the cause is usually one of three things: heavy ad-laden pages, an extension misbehaving, or your Mac running close to a memory pressure ceiling that drops Safari's frame rate. Each has a different fix.

Safari is supposed to be one of the smoothest browsers on macOS. Apple spends considerable effort optimising it for their own hardware and their own display technology. When it stutters, something specific has gone wrong. The good news is that "something specific" usually falls into one of three categories, and each one is diagnosable in a few minutes.

The three causes of Safari scroll stutter

Most Safari scroll stutter traces back to one of these:

The page itself is doing too much. News sites, content aggregators, and ad-heavy pages load dozens of embedded scripts, autoplay videos, and third-party ad trackers simultaneously. Each of those can intercept scroll events, trigger repaints, or hog CPU time. The page renders fine at first, but as more scripts initialise in the background, scrolling slows or stutters.

An extension is interfering. Extensions run code on every page you visit. A single poorly written or outdated extension can add enough overhead to scroll handling that even light pages become jerky. This is easy to rule in or out, and we'll cover how below.

Memory pressure is dropping Safari's frame rate. This is the least obvious cause but often the most important one. When your Mac is running low on free memory, macOS reduces what it allocates to WindowServer, the system process responsible for drawing the screen. Less budget for WindowServer means it can't sustain the frame rate needed for fluid scrolling. See what memory pressure means on Mac for the full picture.

The page itself: ads, video, and JavaScript-heavy news sites

Open a page that stutters and check what it contains. A newspaper homepage with a hero video, three ad slots, a cookie consent script, a live feed ticker, and comment section widgets is a genuinely heavy page. Each of those elements competes for CPU and GPU time every frame you scroll.

The quickest test is Reader Mode. Click the Reader button on the left side of Safari's address bar (it looks like a paragraph of lines), or press Command-Shift-R. Reader strips the page down to text and images, removing almost all third-party scripts and ads. If scrolling becomes immediately smooth in Reader Mode, the page is the problem, not your Mac.

For sites you visit regularly, you can enable Reader Mode automatically. Go to Safari › Settings › Websites › Reader and set the domain to "On". Safari will load that site in Reader Mode every time.

If Reader Mode isn't available on a page (it doesn't work on web apps, dashboards, or heavily structured pages), try opening the same URL in a new Private window. Private windows block some trackers by default. If it's smoother there, you've confirmed the page content is the issue rather than an extension, since extensions are also disabled in Private mode. Apple's own Safari support page has more detail on using Reader and Private Browsing.

The extension that secretly broke

Extensions are a common culprit that people don't think to check because they installed them months ago and stopped thinking about them. An extension that worked fine on an older version of macOS or Safari can behave unexpectedly after an update, injecting scripts that block scroll events or triggering repaints on every pixel moved.

The cleanest way to test this is a Private Browsing window. Press Command-Shift-N. Safari disables extensions by default in Private mode (unless you've specifically granted them permission to run there). Navigate to the page that was stuttering. If it scrolls smoothly, an extension is your problem.

To find which one, go to Safari › Settings › Extensions. Disable every extension by unchecking them all, then re-enable them one at a time, reloading the problem page each time. When stutter returns, you've found the culprit. Check whether there's an update for it in the App Store, or remove it entirely if it's one you don't rely on.

Content blockers deserve a special mention here. Some ad blockers inject substantial amounts of CSS and JavaScript to hide ads. On particularly complex pages this can paradoxically make scrolling worse, even though their stated purpose is to speed things up. If your content blocker is the extension causing stutter, try pausing it on that specific site rather than removing it globally. For more on how Safari memory usage compounds these issues, see Safari memory leaks on Mac.

The memory pressure connection

This is the cause that surprises people most, because it means the problem isn't really Safari at all.

Everything you see on your Mac's screen is drawn by a system process called WindowServer. It composites app windows, renders animations, and handles scrolling at the display layer. WindowServer needs a consistent allocation of GPU memory and CPU time to maintain a smooth frame rate. When your Mac's overall memory pressure is high, macOS starts rationing resources. WindowServer is one of the processes that gets a smaller allocation.

The result is that scrolling in any app can become choppy, but it's most noticeable in Safari because browsers do the most on-screen compositing of anything you use daily. A page with sticky headers, parallax backgrounds, and animated elements requires WindowServer to composite multiple layers simultaneously. With reduced resources, it can't do that at full frame rate.

To check whether this is happening, open Activity Monitor (press Command-Space, type "Activity Monitor", press Return). Click the Memory tab. Look at the Memory Pressure graph at the bottom. Green means the system is comfortable. Yellow means it's starting to compress memory. Red means it's under serious pressure and is likely swapping to disk. If that graph is yellow or red when Safari is stuttering, memory pressure is contributing.

GPU contention plays a role too. On Macs with integrated graphics (which is most Macs), the GPU memory is shared between the system and every app. A background app doing GPU-accelerated work (a video editor, a game, even a browser tab with a WebGL app) can squeeze the allocation available to WindowServer enough to affect scrolling elsewhere.

The fixes in order

Work through these in sequence. Most people find their answer in the first two.

Try Reader Mode first. Press Command-Shift-R on the stuttering page. If scrolling becomes smooth, the page content is the cause. Use Reader Mode on that site going forward, or consider a content blocker that strips autoplay video and heavyweight ad scripts.

Test in a Private window next. Press Command-Shift-N and navigate to the same page. If it's smooth in Private but not in a regular window, an extension is interfering. Follow the disable-and-re-enable process in Safari Settings to identify which one.

Then check memory pressure. Open Activity Monitor and look at the Memory Pressure graph while Safari is open and scrolling. If it's yellow or red, quit apps you're not actively using. Right-click the app icon in the Dock and choose Quit rather than just closing windows. Closing a window doesn't free memory; quitting does. After quitting a few apps, wait 30 seconds and try scrolling again. macOS needs a moment to reclaim and redistribute freed memory.

Restart Safari. If none of the above resolves it immediately, quit Safari entirely and reopen it. Safari accumulates memory over long sessions, and a fresh start often resolves stutter that developed gradually. For more on that pattern, see Safari memory leaks on Mac.

Restart your Mac. A full restart is the nuclear option, but it clears everything: memory, swap files, GPU state, cached process state. If stutter has been building over days and is affecting multiple apps, a restart usually resolves it. A weekly restart is a good habit regardless.

"Smooth scrolling is what your Mac does when it is not under any pressure. The stutter is a signal."

If memory pressure is regularly in the yellow or red when you're just browsing, you may have more tabs open than your Mac's RAM can comfortably hold. Safari's tab management has improved, but each active tab still reserves memory. Closing tabs you haven't read in days is often the single highest-leverage action you can take. See what memory pressure means on Mac for detail on how to read those numbers and act on them.

Common follow-up questions

Why does only Safari stutter and not Chrome?
Safari and Chrome handle scrolling and page rendering differently at a low level. Safari relies more on the GPU and macOS's built-in compositing, so it is more sensitive to GPU contention and memory pressure. Chrome does more of its own compositing in software, which can make it feel smoother under certain kinds of pressure but heavier on overall system resources. If Safari stutters and Chrome doesn't, it's often a sign that GPU memory or macOS compositing resources are being squeezed rather than a problem with Safari specifically.
Can a Safari extension cause scroll stutter?
Yes, and this is more common than most people expect. Extensions run JavaScript on every page load and can intercept scroll events, inject content, or make network requests in the background. A poorly written or outdated extension can add enough overhead to every page interaction that scrolling becomes noticeably jerky. The quickest test is to open a Private Browsing window (Command-Shift-N): extensions are disabled by default in Private mode. If scrolling is smooth there, an extension is your likely culprit.
Does memory pressure affect scrolling?
Yes, directly. When memory pressure is high, macOS reduces the resources available to WindowServer, the system process that draws everything on screen. Lower resource allocation means WindowServer can't maintain 60 or 120 frames per second, and scrolling becomes visibly choppy. The effect is more pronounced on pages with a lot of moving content, parallax, or heavy JavaScript. Checking the Memory Pressure graph in Activity Monitor (the coloured graph at the bottom of the Memory tab) tells you immediately whether pressure is involved.
Will reinstalling Safari help?
Almost never. Safari is a core part of macOS and is not a separately installable app in the traditional sense. Reinstalling macOS would reinstall Safari, but that's a drastic step that won't fix the underlying cause. If scroll stutter is your problem, the cause is almost always the page, an extension, or memory pressure. Work through those three causes first. If the issue persists after ruling all three out, check for a macOS update, since Apple regularly patches Safari rendering issues in point releases.
Is scroll stutter a sign my Mac is dying?
No, not usually. Scroll stutter in Safari is a software and resource problem in almost every case. Hardware failures produce different symptoms: unexpected restarts, kernel panics, display artefacts, or the Mac not powering on at all. If your Mac stutters only in Safari, particularly on busy web pages, it is almost certainly a page, extension, or memory issue rather than failing hardware. If the stutter happens system-wide across every app and gets steadily worse over weeks, that is worth investigating further.