Why Is Google Sheets So Slow? (And How to Fix It)
If typing into your sheet has a half-second delay and the green loading bar never goes away, this is for you. The real causes of a slow Google Sheet and how to fix each one.
Jake Bennatt
I work in google sheets and stuff. Built XLkeys to make my job easier. You should try it, its free.
Every big model I’ve built in Google Sheets eventually hits the same wall: typing has a half-second delay, scrolling stutters, and the green loading bar in the top right just sits there spinning. The first time it happened to me I assumed it was my laptop. It wasn’t — it’s almost never your computer. Sheets runs in your browser and recalculates on every edit, and there are a handful of specific things that make that recalculation slow.
I’ve had to clean up a lot of slow workbooks at this point (mine and other people’s), so here’s the list of what actually causes it, roughly in order of how often it’s the culprit. Most slow sheets have two or three of these stacked on top of each other, and fixing just the worst one usually gets you most of the speed back.
First, Figure Out Which Kind of Slow You Have
Before you start ripping out formulas, take 30 seconds to figure out what kind of slow you’re dealing with. Different symptoms point to different causes:
- Slow to open, fine once loaded → too many cells, or IMPORTRANGE-type formulas refreshing on load.
- Lag on every edit (typing feels delayed, green bar shows up after each change) → heavy formulas recalculating: full-column references, volatile functions, or big ARRAYFORMULA / QUERY ranges.
- Slow scrolling, but edits are fine → conditional formatting pileup, or lots of charts and images.
- Slow everywhere, including other websites → it’s your browser, not your sheet. Too many tabs, too many extensions, or Chrome eating all your RAM.
One more quick test worth doing: open the same sheet in an Incognito window. If it’s way faster there, a browser extension is the problem and you can skip straight to the browser section at the bottom.
Fix #1: Stop Referencing Entire Columns (A:A)
This is the most common one and the easiest to fix. When you write SUM(A:A) or VLOOKUP(x, A:F, 2, 0), Sheets has to check the entire column — every row in the sheet, including the thousands of empty ones at the bottom. One of these is fine. A model with hundreds of them, each scanning full columns every time you make an edit, is how you end up with typing lag.
- Replace open ranges with closed ones: SUM(A2:A5000) instead of SUM(A:A). Just size the range to your data plus some buffer.
- This matters most inside lookups — VLOOKUP, MATCH, FILTER, SUMIFS — because those scan their whole range every time the sheet recalculates.
- Conditional formatting rules applied to entire columns count too (more on that below).
Fix #2: Hunt Down Volatile Functions
NOW(), TODAY(), RAND(), and RANDBETWEEN() are what’s called “volatile” functions — they recalculate on every single edit, and so does every cell that depends on them. One TODAY() feeding a date header is harmless. A TODAY() inside a formula that’s been filled down 5,000 rows means 5,000 recalculations every time you type anything, anywhere in the workbook.
- Put the volatile function in exactly one cell (e.g., TODAY() in A1), then have every other formula point at that cell with an absolute reference ($A$1).
- If the value doesn’t actually need to update — a “data as of” date, a one-time random sample — just replace the formula with its value: copy the cell, then paste values only (Ctrl+Shift+V).
- INDIRECT() and OFFSET() have a similar problem — Sheets can’t cache their results because the references are dynamic. If you can rewrite them as direct references or INDEX(), do it.
Fix #3: Tame IMPORTRANGE and Friends
IMPORTRANGE, GOOGLEFINANCE, IMPORTXML, and IMPORTDATA all pull data over the network. They re-fetch when you open the file and periodically while it’s open, so a workbook with a dozen of them spends a lot of time just waiting on data to come back. This is the usual reason a sheet takes 30+ seconds to open. It gets even worse when sheets import from sheets that import from other sheets — every link in the chain adds more waiting and another place for #REF! errors to break things.
- Consolidate: do one IMPORTRANGE per source file into a dedicated “data” tab, then have everything else reference that tab. Ten formulas reading a local tab is way faster than ten separate imports.
- Flatten the chain: if file A imports from B which imports from C, just point A directly at C.
- Freeze what doesn’t change: if you’re importing last quarter’s actuals, they’re not changing. Copy the imported range and paste values only over it (drop the original formula in a note if you want to keep the source handy).
- Same thing for GOOGLEFINANCE price history you’ve already pulled — paste it as values and stop re-fetching it every time you open the file.
Fix #4: Clean Up Conditional Formatting
This one sneaks up on you. Every time you copy-paste a range or duplicate a tab, the conditional formatting rules come along for the ride. After a few months, a sheet can have dozens of overlapping rules — a bunch of duplicates, a bunch applied to entire columns — and every one of them re-checks as you scroll and edit. If your edits are fine but scrolling stutters, this is almost always it.
- Open Format → Conditional formatting with nothing selected and look at the rule list for each tab. You’ll probably be surprised how many are in there. Delete the duplicates and anything you don’t recognize.
- For the rules you keep, shrink the range to your actual data instead of whole columns.
- If a rule uses a custom formula across a big range, do the calculation once in a helper column and point the rule at that instead.
Fix #5: Replace the Heaviest Formulas
Some formulas are just slow when you have a lot of them. If you’ve done the fixes above and edits are still laggy, these are the usual remaining suspects:
| Slow pattern | Faster alternative |
|---|---|
| VLOOKUP filled down thousands of rows | INDEX/MATCH on closed ranges, or one QUERY/FILTER that returns the whole block at once |
| Dozens of separate SUMIF/COUNTIF over the same data | One QUERY or pivot table that does all the aggregation in one pass |
| ARRAYFORMULA over entire columns | ARRAYFORMULA over a closed range sized to your data |
| Long chains where A2 reads A1, A3 reads A2, etc. | Point every cell at the source directly with an absolute reference so nothing has to wait on the chain |
| INDIRECT / OFFSET for dynamic references | INDEX with a row/column number — same flexibility, much faster |
The hard part is usually figuring out which formulas feed what before you rip anything out. Tracing through a big model by eye is miserable — I wrote a separate guide on how to trace formulas in Google Sheets that makes this part way less painful.
Fix #6: Archive Old Tabs and Shrink the File
Sheets caps a spreadsheet at 10 million cells, but things get slow way before that — most files start feeling heavy around a few hundred thousand cells of real data. The fix is boring but it works: make the file smaller.
- Move dead tabs (old versions, scratch work, last year’s monthly detail) to a separate archive spreadsheet. If something live still references them, paste values first.
- Delete the empty rows and columns padding out every tab, like I covered in Fix #1.
- Convert finished analysis to values. A tab with 50,000 formulas whose answers are never going to change is just slowing down every recalc for no reason — select it, copy, paste values only.
- Watch the charts and images too. A dashboard tab with 15 charts is fine — charts sprinkled across every working tab is not.
Fix #7: Check Your Browser
If the sheet is still slow after all of the above — or other websites feel slow too — the problem is on your end, not in the spreadsheet:
- Close some tabs. Chrome keeps every tab in memory and Sheets needs a decent chunk of it. Fifty open tabs and a giant spreadsheet don’t mix.
- Test in Incognito. If the sheet is fast there, one of your extensions is the problem — disable them one at a time until you find it. Grammar checkers and screen recorders are the usual offenders.
- Update Chrome and actually restart it once in a while. A browser that’s been running for two weeks straight gets slow, period.
- If you’re on a locked-down work laptop with antivirus scanning everything, that can slow Sheets down too — good to know it’s not your formulas before you spend an afternoon rewriting them.
The Quick Checklist
- Closed ranges instead of A:A, especially in lookups.
- One volatile function per workbook, and point everything at it with an absolute reference.
- One IMPORTRANGE per source file, into a dedicated data tab. Paste values over anything historical.
- Clean out duplicate conditional formatting rules and shrink their ranges.
- Replace piles of SUMIFs and VLOOKUPs with one QUERY or pivot table.
- Delete empty rows and columns, archive dead tabs, convert finished work to values.
- Test in Incognito, close some tabs, restart Chrome.
Once the Sheet Is Fast, Make Yourself Fast Too
One thing you’ll notice doing this cleanup: it’s a ton of repetitive keyboard work. Paste values over a range, re-border a section you rebuilt, autofit columns after moving data around. Doing all of that through menus takes forever. I built XLKeys, a free Chrome extension that brings Excel-style shortcuts into Google Sheets — Alt+E,S,V for paste values, Alt+H,O,I for autofit, trace precedents so you can see what feeds a formula before you delete it, and a lot more. Your sheet will be faster after the fixes in this post — XLKeys makes you faster while you’re doing them. Give it a shot, it’s free.
Related Google Sheets shortcuts
Make Google Sheets feel like Excel
Install XLKeys to use Excel-style shortcuts, Alt-key sequences, formula auditing, Goal Seek, and Sensitivity Tables in Google Sheets.
Add XLKeys to Chrome