Storage Test
Check your browser's available storage quota, then measure localStorage capacity and IndexedDB read/write throughput, with automatic cleanup.
Storage quota
navigator.storage.estimate() is not available in this browser, so quota cannot be shown.
Read/write benchmark
Tests localStorage capacity and latency, then IndexedDB throughput. Everything written is deleted automatically afterward.
Quick guide: how to use the Storage Test
Takes under a minute- 1Click Run benchmark to write and read a temporary test payload.
- 2Compare localStorage and IndexedDB results.
- 3Quota shows how much the browser will let this site store.
- 4Everything written during the test is deleted when it finishes.
Overview
Browsers don't just render pages, they also store data locally so sites can remember preferences, cache data for offline use, and avoid re-downloading the same information repeatedly. This local storage lives in a few different systems with very different size limits and speed characteristics, and this test measures the two most common ones directly: localStorage and IndexedDB.
The page starts by calling navigator.storage.estimate(), a standard browser API that reports how much storage this site is currently using and roughly how much it's allowed to use in total. From there, running the benchmark writes a small amount of test data into localStorage to find its practical capacity limit and measure write and read latency, then writes and reads a larger set of records into IndexedDB to measure throughput in megabytes per second. Every byte written during the test is deleted automatically once the benchmark finishes.
Understanding these numbers matters more than it might seem. Slow local storage can make web apps that rely on offline caching, like email clients, note-taking apps, or progressive web apps, feel sluggish when saving or syncing data, even if your network connection and CPU are both fast.
How to read your results
Storage quota bar
The bar shows how much of your estimated quota is currently used by this site specifically, not your whole browser or device. A small used amount relative to a large quota is normal for most sites, since few websites need to store large amounts of data locally.
localStorage capacity and latency
Most browsers cap localStorage at 5 to 10 MB per site, so seeing the capacity test stop somewhere in that range is expected and not a sign of a problem. Write and read latency are measured in milliseconds per operation; localStorage is synchronous, meaning the page pauses while each write completes, so higher latency here can actually make a page feel less responsive if a site overuses it.
IndexedDB throughput
These numbers are reported in megabytes per second and reflect how quickly your browser can commit larger chunks of data to its database layer and read them back. Faster numbers generally mean a snappier experience in any web app that relies on local caching, offline support, or storing larger files client-side.
Troubleshooting
The test fails immediately with an error
This usually means IndexedDB is blocked or restricted, which commonly happens in private or incognito browsing windows, or when a browser extension aggressively blocks storage APIs for privacy. Try running the test in a normal browsing window, and temporarily disable strict privacy extensions if the issue persists.
Quota shows as unsupported
navigator.storage.estimate() isn't available in every browser and requires a secure context (HTTPS), which this site already uses. If it's still unsupported, your browser version may simply predate this API; updating to the latest version usually resolves it.
I'm worried the test left data behind
Open your browser's developer tools, go to the Application or Storage tab, and check localStorage and IndexedDB entries for this site. The cleanup step runs automatically at the end of every successful test and explicitly deletes the IndexedDB database and the localStorage test key, so nothing should remain after a completed run.
localStorage vs IndexedDB, in plain terms
localStorage is the simpler of the two: it only stores strings, every operation is synchronous, meaning your page waits for it to finish before continuing, and it has a hard size ceiling in every browser. It's well suited to small things like a theme preference or a login token, but poorly suited to anything larger or performance-sensitive.
IndexedDB is a proper client-side database. It stores structured data including binary blobs, works asynchronously so it doesn't block the page while reading or writing, and supports much larger amounts of data, often hundreds of megabytes or more depending on available disk space and browser policy. Most modern offline-capable web apps use IndexedDB for exactly this reason.
- Use localStorage only for small, simple values under a few kilobytes.
- Use IndexedDB for anything larger, structured, or performance-sensitive.
- Both are separate from cookies, which are sent with every network request and have their own, smaller limits.
What affects your storage speed
The underlying disk type matters, an SSD will generally outperform a mechanical hard drive for this kind of random small-write workload, but it isn't the only factor. The browser's own storage engine, how full your disk currently is, whether disk encryption is active, and even how many other tabs are simultaneously reading or writing to storage all influence the numbers you'll see here.
If you're trying to diagnose whether a specific web app feels slow because of your device or because of the app itself, running this test alongside the CPU and memory benchmarks on this site gives you a fuller picture. A device that scores well across all three but still runs one particular app slowly likely has an issue with that app's code rather than your hardware.
Frequently asked questions
Does this test measure my hard drive or SSD speed directly?
No, it measures how fast your browser can write to and read from its own storage systems (localStorage and IndexedDB), which sit on top of your operating system's file system and your browser's storage engine. Actual disk speed influences the result, but so does the browser's own overhead, so the numbers won't match a dedicated disk benchmark tool.
Will running this test fill up my storage or leave files behind?
No. The test writes a small, fixed amount of test data, generally a few megabytes, and includes an explicit cleanup step at the end that deletes everything it created from both localStorage and IndexedDB. You can confirm this by checking your browser's storage usage in developer tools before and after.
What does navigator.storage.estimate() actually tell me?
It reports an approximate amount of storage currently used by this site and an approximate quota available to it, both of which are estimates rather than exact figures by design. Browsers intentionally round these numbers to reduce how precisely a site can fingerprint your available disk space.
Why is my localStorage capacity limited to only a few megabytes?
localStorage has a hardcoded per-site limit in every major browser, typically 5 to 10 MB, regardless of how much free disk space you actually have. This is a deliberate design limit from when localStorage was introduced, meant to keep it usable for small settings and tokens rather than large data storage.
Why is IndexedDB throughput different from localStorage throughput?
IndexedDB is designed for larger amounts of structured data and uses asynchronous transactions backed by a proper database engine, while localStorage is synchronous and stores everything as plain strings. IndexedDB is typically much faster for larger payloads and doesn't have the same tight size ceiling.
My quota shows a huge number like hundreds of gigabytes. Is that real?
Browsers report a theoretical quota based on available disk space and internal policies, but they rarely let a single site actually use that much before prompting for permission or applying additional limits. Treat the quota figure as an upper ceiling rather than a guarantee you can use all of it immediately.
Why did the storage test fail or show an error in private/incognito mode?
Many browsers restrict or completely disable persistent storage APIs like IndexedDB in private browsing mode as a privacy measure, or clear it aggressively between operations. If you need accurate storage testing, run this test in a normal browsing window instead.
Does clearing my browser cache affect these results?
Clearing cache alone typically doesn't touch localStorage or IndexedDB, which are stored separately from the HTTP cache. If you specifically clear 'site data' or 'cookies and other site data' for this site, that will remove localStorage and IndexedDB content, which could very slightly change fresh benchmark numbers by starting from an empty state.
Why are write speeds sometimes slower than read speeds?
Writing typically involves more overhead than reading because the browser needs to persist the data safely, sometimes flushing it to disk or a write-ahead log to guard against data loss if the browser crashes. Reads can often be served faster from memory-resident caches.
Is a low storage score a sign my drive is failing?
Not on its own. Browser storage speed is affected by many software layers above the physical disk, so a low score here is not a reliable indicator of drive health. If you suspect a failing drive, use your operating system's built-in disk health tools (like SMART status) instead.
Can I use this test to check if a website is likely to run offline features well?
It's a reasonable proxy. Progressive web apps and offline-capable sites rely heavily on IndexedDB for caching data locally, so a device with healthy IndexedDB write and read throughput will generally handle offline-capable web apps smoothly.