Gmail filters not working? Here's what's actually wrong

Filters fail for a small set of predictable reasons. Walk the list from the top and you'll usually find yours in the first three.

When a Gmail filter isn't working, the filter is almost never broken. It's doing exactly what it was told, and the telling is off by a little. These are the causes I see, ordered by how often they turn out to be the answer.

1. The filter only runs on new mail

This is the big one. A Gmail filter applies to messages that arrive after you create it. Everything already in your inbox is untouched, which looks exactly like "my filter does nothing."

The fix: open Settings (gear icon), See all settings, Filters and Blocked Addresses, click edit on the filter, click Continue, and on the actions step tick "Also apply filter to matching conversations." Save. Gmail runs the filter once across your existing mail.

Illustration of Gmail's edit-filter actions with the option to also apply the filter to matching conversations checked and highlighted
The checkbox that makes a filter run on mail you already have.

2. The criteria almost match, but not quite

A filter catches exactly what the same query catches in the Gmail search bar, nothing more. The reliable way to debug criteria: paste them into search and look at what comes back. If the search misses the message, so will the filter. Common near-misses:

  • The sender rotates addresses. You filtered from:news@example.com, and this week's issue came from offers@example.com. Filter the domain instead: from:@example.com.
  • "Has the words" is stricter than it looks. Multi-word phrases match loosely unless quoted. Use "exact phrase" in quotes when the wording matters.
  • Subject lines change. "Weekly digest #41" and "Your weekly digest" won't both match a filter built on one of them. Filter on the sender, not the subject, unless the subject is truly stable.

3. You're not in the To: field

A filter with a to:you@gmail.com condition misses mail where you were BCC'd and mail sent to a group or list, because your address isn't in the visible To: line. Mail forwarded from another account has the same problem: the To: field holds the old address, not your Gmail one. Drop the to: condition unless you specifically need it.

4. Spam got there first

Gmail's spam classifier runs independently of your filters. When it routes a message to Spam, that message never shows up under the label your filter would have applied, and it looks like the filter failed. If mail from a sender you want keeps landing in Spam, add "Never send it to spam" to that filter's actions. That's what the checkbox exists for.

5. Two filters are fighting

Every matching filter runs on a message, and their actions stack. That's fine when the actions are compatible (two labels, say), and confusing when they aren't: one filter stars a message while another archives it, and you never see the star because the mail skipped your inbox. Skim your filter list for pairs that match the same senders, and merge or narrow them.

The same stacking is why a broad filter can look like Gmail's category system breaking: the filter runs first, moves the message, and the tab it should have appeared in ends up empty. Gmail categories not working walks through separating the two.

6. The forwarding address was never verified

A filter that forwards mail only works after the destination address is added and confirmed under Settings, Forwarding and POP/IMAP. Gmail sends a verification link to that address; until someone clicks it, the filter's forward action silently does nothing. If a forwarding filter stopped working, check whether the verification is still in place.

If the filter exists to bury subscription mail, there's a better tool

A lot of broken filters are really coping mechanisms: promotions from one shop, then another, then thirty more, each with its own filter shoveling mail out of sight. The filters multiply, the near-miss problems above multiply with them, and the mail itself keeps arriving and keeps counting against your storage.

For subscription mail, removing the source beats routing it. Our extension scans your Gmail, lists every subscription sender, and unsubscribes from the ones you pick in one batch, using each sender's official unsubscribe mechanism and showing you per-sender results, including failures. The old mail can be archived or deleted in the same pass. Senders that ignore unsubscribes are exactly what blocking is for.

Retire the filter maze. Scan your inbox, see every subscription sender, and get off the lists in one sitting.

Add to Chrome, free

Quick answers

Why isn't my filter working on old emails?

Filters only run on mail that arrives after they're created. Edit the filter and tick "Also apply filter to matching conversations" to run it once over existing mail (cause 1 above).

Why does it miss some emails from the same sender?

Rotating sender addresses, usually. Filter the domain (from:@example.com) rather than one address, and test criteria in the search bar first (cause 2).

Do filters work on spam?

Gmail's spam classifier acts on its own. Mail it sends to Spam bypasses the outcome you expected from your filter, unless the filter includes "Never send it to spam" (cause 4).

Should I filter or unsubscribe?

Filter mail you want to keep but organize. Unsubscribe from mail you don't want at all: a filter hides it, unsubscribing stops it, and Gmail's own subscription tools or our extension handle the leaving.