Why Proton Mail Search Doesn't Find Old Emails (and the Fix)

The short answer
Proton Mail search misses old messages because it can't scan message bodies on Proton's servers — your mail is end-to-end encrypted, so only your browser can decrypt it. Full-text search needs a local, per-browser index that you build by clicking the search box, choosing Enable, and waiting for it to finish. Until then, search only matches subject lines and sender names.
Why Proton Mail search doesn't find old emails: it can't scan encrypted bodies until your browser builds a local index. Here's the fix.
On this page
- 01What this error literally means
- 02Causes table — why your search is coming up short
- 03Fix 1: turn on and finish building the content search index
- 04Fix 2: rebuild the index on every browser and device you actually search from
- 05Fix 3: work around storage limits and mobile gaps
- 06How to tell which cause you have
- 07Troubleshooting: what to do when indexing stalls or won't finish
- 08Preventing it from happening again
You search for a word you know is in an old email, and Proton Mail comes back empty or only matches the subject line. This isn't a bug you can wait out — it's how encrypted search works, and it means an extra step you probably haven't taken yet.
Proton can't search your message bodies the way Gmail does, because Proton never has an unencrypted copy of them to search. The fix is a local index your browser builds and holds itself. This post covers what's happening, the three fixes worth trying, and what search still can't reach even after you're done.
It's worth ruling out the obvious first: typing a query and hitting enter is not the same action as clicking into the search box and choosing to enable content search. Most people who hit this problem have only ever done the first, which explains why the gap feels random — it isn't off some of the time, it was simply never turned on.
What this error literally means#
Gmail's search works because Google's servers hold your mail in a form they can read, so they can build a server-side full-text index once and serve it to every device you own. Proton Mail can't do that. Your messages are end-to-end encrypted, and the encryption keys live on your device, not on Proton's servers.
That means Proton's servers can match a search against metadata they can see — sender address, recipient, and (for most messages) the subject line — but they cannot look inside the encrypted body. To search the actual content of a message, something has to decrypt it first, and the only place that's allowed to happen is your own browser.
So Proton Mail ships a second, separate search path: a local encrypted-search index, built by your browser, stored in your browser's local storage, and used only on that browser. If you've never turned it on, or it hasn't finished, you're only getting the metadata-only search — which looks like search that only checks subjects and senders.
The two search paths also behave differently while you type. The always-on metadata search returns results instantly, because it's a small, always-current index Proton's servers already hold. The moment content search finishes building, the same query silently starts drawing from a much larger, local dataset — nothing in the interface announces the switch, so the jump from 'a few subject matches' to 'every message containing that word' can look like search suddenly started working rather than like a feature finishing its first run.
Causes table — why your search is coming up short#
| Cause | How to confirm | Fix |
|---|---|---|
| Content search never enabled | Click the search box; if you see an option to 'Enable' message content search, it's off | Turn it on and let it index (Fix 1) |
| Index still building | A progress indicator or 'indexing' status shows near the search box | Wait — large mailboxes take longer (Fix 1) |
| Different browser or device than where you indexed | The index works on the browser you built it in, not automatically on others | Enable content search on this browser too (Fix 2) |
| Private/incognito window | Content search is unavailable or resets each session in private mode | Use a normal browser window (Fix 2) |
| Message older than your storage cutoff | Proton shows a date past which content isn't indexed, for very large mailboxes | Free up browser storage or narrow your search window (Fix 3) |
| Searching on mobile | The iOS/Android apps don't offer the same message-body content search as the browser | Search from a browser, or narrow with sender/date/label filters on mobile |
Before you start a fix, it helps to see what the index is actually doing: reading each message one at a time, decrypting it in memory, and writing the searchable text into local storage — never sending any of that back to Proton's servers.

Fix 1: turn on and finish building the content search index#
- 1
Open the search box
Click into the search bar in Proton Mail's web app rather than typing directly and hitting enter.
- 2
Choose to enable message content search
Proton prompts you to allow it to download, decrypt, and index your messages locally, in your browser only.
- 3
Let indexing run to completion
For a small mailbox this takes a couple of minutes; for years of mail it can take considerably longer. Keep the tab open — closing the browser mid-index pauses it.
- 4
Re-run your search
Once indexing finishes, the same query should now match text inside message bodies, not just subject lines and senders.
- 5
Check the indexing status if you're not sure it's finished
Proton Mail's settings include a search/content-search panel showing whether indexing is in progress, complete, or paused. If a search still isn't returning body matches after you'd expect it to be done, check there before assuming something else is wrong.
Fix 2: rebuild the index on every browser and device you actually search from#
- 1
Remember the index is local, not synced
Enabling content search on your work laptop's Chrome does nothing for Firefox on the same machine, or for Chrome on your home computer. Each browser profile needs its own index.
- 2
Repeat Fix 1 on each browser/device combination
If you regularly search from two or three places, index all of them once, then let each stay current.
- 3
Avoid private/incognito windows for searching
Private browsing either blocks content search entirely or discards the index at the end of the session, so you're back to metadata-only search every time.
- 4
Don't clear site data for Proton Mail
Clearing your browser's site data or cache wipes the local index along with it, and you'll need to rebuild it from scratch.
Fix 3: work around storage limits and mobile gaps#
- 1
Check for a displayed cutoff date
On very large mailboxes, Proton shows how far back the content index currently reaches, because your browser's local storage has finite room.
- 2
Free up browser storage if you're hitting the ceiling
Clearing space for other sites' storage, or moving to a browser with fewer competing site-storage demands, can extend how far back indexing reaches.
- 3
Narrow searches instead of scrolling further back
Use sender, date range, and label filters to shrink what you're asking search to cover, rather than relying on a full-body match across your entire history.
- 4
Expect a different (weaker) search on mobile
The iOS and Android apps don't currently offer the same message-content indexing as the browser. If you need to find an old message and you're on your phone, sender/subject/date filters will get you further than a body-text guess.
- 5
See how much storage the index is actually using
Every desktop browser exposes per-site storage usage in its own settings (for example, Chrome's chrome://settings/content/all, or Firefox's about:preferences#privacy under 'Manage Data'). Looking up mail.proton.me there shows roughly how much local storage the index has already claimed, which is the fastest way to tell whether you're actually near a ceiling or the cutoff has another cause.
How to tell which cause you have#
If search returns nothing at all for a term you're sure is in the body, and you've never seen an 'enable content search' prompt, start with Fix 1 — content search is simply off.
If it works on one computer but not another, or works on your laptop's Chrome but not Firefox, that's Fix 2 — the index is per-browser and hasn't been built where you're searching from.
If content search works for recent mail but not messages from a couple of years back, and Proton shows a cutoff date, that's Fix 3 — a browser storage ceiling, not a bug.
If you're on the mobile app specifically, that's the platform gap described above, not a setting you're missing.
Troubleshooting: what to do when indexing stalls or won't finish#
Sometimes content search is enabled, indexing has had plenty of time to run, and search results still look incomplete. A few specific things stall the process without producing an obvious error message.
- The tab was closed or the browser slept mid-index. Indexing only runs while a Proton Mail tab is open in the foreground browser session; closing the tab, closing the browser, or letting the laptop sleep pauses it where it stood. Reopen Proton Mail and leave the tab open until the status panel shows complete.
- A privacy extension is blocking local storage writes. Ad blockers, tracker blockers, and some 'clear cookies on close' extensions can interfere with the IndexedDB storage the index depends on. If indexing repeatedly restarts from zero, try disabling extensions for mail.proton.me specifically, then re-enable content search.
- Multiple open tabs are fighting over the same index. Two Proton Mail tabs in the same browser generally share one underlying index, but having several open at once — especially across multiple windows — can slow indexing or interrupt it. Consolidate to a single tab while it finishes an initial build.
- The browser's storage was recently cleared by something other than you. Some 'privacy cleaner' utilities and OS-level low-storage cleanup routines clear site data automatically. If an index that was previously complete resets without you touching browser settings, one of these is the likely cause — check whether such a tool runs on a schedule.
- A very large mailbox is still working through its backlog. There's no fixed time estimate Proton publishes for this, because it depends on message count, mailbox size, and device speed. If the status panel shows steady, ongoing progress rather than being stuck at the same percentage, that isn't a stall — it's just a bigger job.
Preventing it from happening again#
- Enable content search once on every browser and device you actually use to search, right after connecting a new one.
- Keep at least one tab of Proton Mail open occasionally so the index keeps updating with new mail in the background.
- Avoid clearing browser data for Proton Mail's site without expecting to rebuild the index afterward.
- For anything you'll need to find again reliably, use a label or folder at the time you read it rather than relying on a future full-text search to surface it.
Why this trade-off exists
The reason this trips people up is that the index lives entirely in one browser, tied to one device, with no server-side fallback — so every new browser, every cleared cache, and every mobile session starts the search relationship over from zero. AI Emaily takes a different position on that trade-off: search runs across every account you connect, kept current automatically, without you re-triggering an index per device each time you switch machines. We build AI Emaily, and for anyone managing more than one browser or a mix of desktop and mobile, that's the gap it closes.
Frequently asked
See it in AI Emaily
Keep reading
Sources

Written by
Nafiul HasanNafiul Hasan is an entrepreneur and AI automation system builder with 10+ years of experience turning messy, manual workflows into reliable automated systems. He designs and ships AI enterprise solutions end-to-end — the agent logic, the data plumbing, and the product people actually use — and founded AI Emaily to give busy professionals their attention back. He writes here from the builder's seat: what works, what breaks, and how to put AI to work without giving up control.