What Manifest V3 changed, and why it broke uBlock Origin
For a decade, Chrome extensions blocked requests using the webRequest API. An extension could inspect every outgoing request in real time and decide, in its own code, whether to allow it. Manifest V3 replaces that with declarativeNetRequest: the extension registers a ruleset in advance, and the browser applies it. The extension never sees the requests.
Google's argument is genuine, an extension that reads every request is an enormous privacy surface, and declarative rules are faster and auditable. The capability loss is equally genuine. Rules must be declared ahead of time, they are capped in number, and the dynamic, page-aware decision-making that made a good blocker good is gone.
The limits, in numbers
Chrome's documented declarativeNetRequest ceilings are the whole story of why Chrome blocking is worse than Firefox blocking:
- An extension may declare up to 100 static rulesets, of which only 50 can be enabled at once.
- Those rulesets are guaranteed at least 30,000 rules collectively, drawn from a global pool shared with other installed extensions.
- Dynamic rules are capped at 30,000, of which at most 5,000 may be "unsafe", anything beyond simple block, allow, allowAllRequests and upgradeScheme actions.
- 5,000 session rules, and no more than 1,000 regular-expression rules of each type.
For context, EasyList alone runs to tens of thousands of rules, and a well-configured uBlock Origin install on Firefox routinely carries several times the Chrome ceiling across combined lists. The cap is not theoretical; it is the reason you cannot tick every list in a Chrome blocker.
Google's published timeline
The dates matter because a lot of advice online is written against an earlier stage of the rollout:
- June 2024, warning banners appear on the extensions page.
- October 2024, Manifest V2 extensions start being disabled in Chrome stable, with a user override.
- 31 March 2025, disabled by default for all users on all channels.
- 24 July 2025, the user override is removed.
- 31 August 2026, all remaining Manifest V2 extensions leave the Chrome Web Store.
The enterprise escape hatch, the ExtensionManifestV2Availability policy, ended with Chrome 139. There is no supported route back.
The practical consequence is that "which ad blocker is best" is no longer a browser-independent question, and any guide that answers it without asking which browser you use is out of date.
uBlock Origin vs uBlock Origin Lite: not the same product
These share a name and an author and almost nothing else architecturally, which causes a great deal of confusion.
uBlock Origin is the Manifest V2-era blocker. It is free, open source, has no monetisation of any kind, and remains the most capable content blocker in existence, on browsers that still support it. That now means Firefox and Firefox derivatives.
uBlock Origin Lite (uBOL) is a separate, ground-up Manifest V3 extension by the same developer, available for Chrome, Edge, Firefox and Safari. It is not a stripped build of uBO; it is a different design that ships declarative rulesets and runs no permanent background process at all. Its default configuration uses uBlock Origin's built-in filter lists plus EasyList, EasyPrivacy and Peter Lowe's ad and tracking server list.
What you gain with uBOL
- No broad host permissions by default. uBOL filters using declarative rules and asks for per-site permission only when you raise the filtering level on a specific site. Compared with the classic model, where a blocker reads every page you visit, this is a real privacy improvement and it is rarely given enough credit.
- Lower idle resource use. No persistent background process means nothing running when you are not loading pages.
What you lose
- Filter list breadth. The rule ceilings above mean you cannot enable everything simultaneously.
- The logger. uBO's request logger is how you diagnose a broken site in thirty seconds. uBOL cannot offer an equivalent because it does not observe requests.
- Advanced dynamic filtering. uBO's per-site, per-request-type matrix, the medium and hard blocking modes power users rely on, has no MV3 analogue.
- Scriptlet and cosmetic depth. Reduced, though not absent; uBOL raises what it can do on sites you explicitly grant.
The honest recommendation: for most people on Chrome, uBOL blocks the advertising they care about and costs nothing in money, memory or privacy. If you tune filters, use the logger, or block aggressively per site, uBOL is a downgrade and the real answer is to move that browsing to Firefox, where the full extension is unaffected.
Worth stating plainly, because the naming invites the mistake: installing uBOL on Chrome is not "keeping uBlock Origin". It is switching to a different, more limited product that happens to share an author. Everything below about how uBlock Origin compares with Adblock Plus is describing the full version.
Adblock Plus vs uBlock Origin: the Acceptable Ads question
This is the comparison people search for most, and the substantive difference has never been technical. It is a business model.
Adblock Plus, made by eyeo, ships an Acceptable Ads allowlist that is enabled by default. Advertising meeting the programme's published criteria, non-intrusive placement, size limits, clear labelling, no interference with content, is permitted through while the blocker is running. eyeo states that the criteria are governed by an independent Acceptable Ads Committee drawn from companies and non-profits, and that any user can switch the feature off in settings within two clicks on every platform it supports.
uBlock Origin has no equivalent. There is no allowlist programme, no advertiser revenue, and no commercial entity behind it. Its author has consistently declined the monetisation routes that other blockers took.
What this means in practice
- Out of the box, Adblock Plus lets more advertising through. Not because it is worse at blocking, but because it is configured not to block some of it.
- The first thing to do after installing Adblock Plus, or the separate AdBlock extension which runs a comparable allowlist, is to open settings and untick Acceptable Ads. Afterwards the gap in what gets blocked narrows substantially.
- If you would rather not have to know that, install something whose defaults already match what you want.
There is a defensible argument on eyeo's side, that a web funded entirely by nothing is not a web, and that a standards-based allowlist is better than an arms race. Whether you find that convincing is a values question, not a technical one. What is not defensible is the defaults being set for you silently. The Adblock Plus vs uBlock Origin comparison covers the rest of the feature differences.
The old secondary argument, that uBlock Origin was dramatically lighter on memory and CPU, was true and important under Manifest V2. Under MV3 the architectures have converged and it matters far less than it did.
Including exactly what Acceptable Ads lets through, and how to turn it off.
AdGuard: the strongest case that Manifest V3 did not have to mean surrender
AdGuard is the most credible commercial option in the category, and it is really two separate products that people conflate.
The AdGuard browser extension is free and was substantially rebuilt for Manifest V3. Its defaults block advertising outright, with no allowlist programme, which makes it a closer like-for-like replacement for uBlock Origin's out-of-the-box behaviour than Adblock Plus is. It is more configurable than uBlock Origin Lite and has a friendlier interface than either.
The AdGuard application is a system-level filtering product for Windows, macOS, Android and iOS. It filters traffic outside the browser, which is the thing an extension structurally cannot do: advertising inside other applications, tracking from non-browser software, and, the important part, it is completely unaffected by Manifest V3, because it is not an extension. Licences are sold as a personal tier covering three devices and a family tier covering nine, available either as an annual subscription or as a one-off lifetime purchase, with a money-back period.
The Safari story is different again
Safari has always used a declarative content-blocking API, so the Manifest V3 transition changed comparatively little there, but Safari has its own ceiling. Each content blocker extension may carry up to 150,000 filtering rules, raised from an earlier 50,000 limit. AdGuard works around this by splitting its rules across six separate content blockers, which multiplies the available budget. If you activate too many language-specific or custom filters and exceed the limit, rules past the ceiling are silently dropped, which produces the confusing symptom of blocking that works inconsistently rather than failing visibly.
The honest verdict on paying: on a desktop browser, the free options are as good as the paid ones. AdGuard's paid tier earns its money only when you need filtering on mobile, inside apps, or on a device where you cannot install an extension at all.
Ghostery: better as an instrument than as a blocker
Ghostery occupies a genuinely different niche and is frequently misfiled because of it. As a pure ad blocker it is competent rather than class-leading. As a tracker inventory it is the best consumer tool available.
What it does that others do not: it names the trackers. Load a news site with Ghostery running and you get a categorised list of every tracking entity the page attempted to contact and, crucially, who owns each one. That turns an abstract privacy concern into a specific, countable observation about a specific page.
Two situations where that is worth more than raw blocking strength:
- Auditing. If you need to know what a site is doing, evaluating a vendor, checking your own company's pages, or documenting a complaint, an inventory beats a block count. Ghostery is the only mainstream extension that produces one readable enough to paste into a report.
- Persuading someone. Nothing changes a sceptic's mind about tracking faster than showing them the list on a site they use daily.
Ghostery has been Manifest V3-compatible for some time, so Chrome users are not facing a cliff with it. Running it alongside a serious blocker is reasonable if you treat it as an instrument. Relying on it as your only blocker is a waste of its actual strength, see Ghostery vs uBlock Origin for where the blocking capability actually lands.
Filter lists are the real product, not the extension
An underappreciated fact: almost every blocker in this article blocks the same things, because almost all of them subscribe to the same filter lists. EasyList removes most advertising from international pages; EasyPrivacy handles tracking scripts, web bugs and information collectors; Peter Lowe's list covers ad and tracking servers at the hostname level. These are used by Adblock Plus, uBlock Origin, AdBlock, AdGuard, Brave, Opera and Vivaldi alike.
Two things follow from this that change how you should evaluate blockers.
First, the lists are maintained by a small number of volunteers. EasyList's core is maintained by a handful of named authors with a forum community around them. That is a remarkable public good and also a real fragility, and it means the differences between extensions are mostly about how many rules they can carry and how fast they can ship an update, not about who has the better blocklist.
Second, update latency is now a differentiator. A Manifest V2 blocker could fetch new filter rules directly, within hours of a site changing its ad delivery. A Manifest V3 blocker's static rulesets ship inside the extension package, so a new rule requires an extension update reviewed and published through the store. When a large site actively fights blocking, YouTube being the standing example, that latency difference is the difference between a fix arriving today and arriving next week. Dynamic rules partially close the gap, but they are capped, and only 5,000 of them may be "unsafe".
So the real question to ask about a Chrome blocker is not "does it block" but "how quickly can it change what it blocks", and MV3 made that answer worse for everyone.
What your browser already blocks, and what it does not
Before installing anything, know what you already have, because two of the most common assumptions here are wrong.
Firefox's Enhanced Tracking Protection blocks trackers, not advertising. Its strict mode stops known tracking content, including tracking code embedded in ads, videos and other in-page content. That is valuable, and it is on by default. It is not an ad blocker, and an ad with no tracking in it will render normally. People who switch to Firefox for privacy and then wonder why they still see banner ads have hit exactly this distinction.
Brave's shields do block ads, by default. Brave ships blocking in the browser itself rather than as an extension, which means Manifest V3 does not constrain it in the same way. For a lot of people this is sufficient on its own.
Safari blocks cross-site tracking by default through Intelligent Tracking Prevention, and again this is a tracking control rather than an ad blocker.
Where built-in blocking is enough
If your entire complaint is "I do not want to be followed around the web", strict-mode Firefox or default Brave genuinely answers it and you may not need an extension at all. If your complaint is "I do not want to see advertising", only Brave's shields address that without an extension.
Neither removes the case for a dedicated blocker on desktop, but both raise the floor considerably, and both are worth knowing about before you grant a third-party extension permission to read every page you visit.
DNS and network-level blocking: covering the devices you cannot install on
An extension protects one browser on one device. If you want coverage for phones, smart TVs, consoles and guests, filtering has to move down the stack to DNS.
| Option | Runs where | Cost | Best for |
|---|---|---|---|
| Pi-hole | Self-hosted on a Raspberry Pi or any always-on Linux box | Free, open source | A home network you control, with tinkering appetite |
| AdGuard Home | Self-hosted, same idea | Free, open source | Same, with easier setup and built-in encrypted DNS |
| NextDNS | Hosted, no hardware | Free below a monthly query allowance, inexpensive above it | Phones on cellular data, and anyone who does not want a server |
| Browser extension | One browser, one device | Free | Cosmetic removal and same-domain ads, which DNS cannot touch |
| AdGuard app | System-wide on one device | Paid, 3 or 9 device licences | In-app advertising on mobile |
The critical limitation, and the reason DNS blocking is a complement rather than a replacement: DNS filtering works on hostnames. It cannot remove an ad served from the same domain as the content, which is precisely what first-party ad serving and most anti-adblock work is designed to produce, and it cannot hide the empty space where a blocked ad used to be, so pages end up with holes in them. It also breaks in ways that are hard to attribute, because a failure looks like a site being broken rather than like an extension misbehaving.
Run both layers. DNS for coverage across devices, an extension for cosmetic quality and same-domain cases on the browser you actually work in.
Anti-adblock, YouTube, and why your blocker keeps losing
Any honest guide has to say this plainly: ad blocking is an adversarial system, and the state of play changes weekly. Some sites detect blockers and refuse to serve content, some serve ads from the same domain as the article so hostname filtering cannot see them, and some, YouTube most visibly, actively iterate against blocking as an ongoing programme.
The dynamics to understand:
- Detection is cheap; evasion of detection is expensive. A site can check whether an element was hidden in a couple of lines. The counter-measure has to be written, tested and shipped per site.
- Update speed decides these fights. This is where Manifest V3 hurts most. A blocker that can pull a new filter rule the same day beats one that must ship an extension update through store review, which is why the same nominal blocker performs differently on Firefox and Chrome during an active escalation.
- Nothing here is stable enough to promise. Any article, this one included, that tells you a specific blocker definitively defeats a specific site's advertising is writing a claim with a shelf life of days.
The counter-example: when you should just not block
There is a category of site where running a blocker is the wrong call, and it is worth saying so on a directory that makes money from software recommendations.
Small independent publishers, forums and single-maintainer projects run on advertising revenue measured in tens of dollars a month. Blocking there does not inconvenience an advertising network; it removes the site's entire income. Every serious blocker has a per-site allowlist for exactly this reason, and using it on the handful of small sites you actually value costs you nothing and is the difference between them existing next year and not. If you would rather not see ads at all, most of those sites also take direct support, which is worth more to them than the advertising was.
Both uBlock Origin and Adblock Plus put per-site allowlisting on the toolbar popup, one click away, so this costs you nothing but the decision.
What to install, by browser
| Browser | Install | Why |
|---|---|---|
| Firefox (desktop) | uBlock Origin | Runs in full, free, no business model, nothing is better. This is the strongest remaining reason to use Firefox |
| Chrome / Edge | uBlock Origin Lite, or the AdGuard extension | Both block by default with no allowlist programme; AdGuard is more configurable, uBOL asks for fewer permissions |
| Safari (Mac) | uBlock Origin Lite or AdGuard for Safari | Safari's API was always declarative, so less was lost; AdGuard splits rules across six blockers to beat the 150,000-rule cap |
| Brave | The built-in shields | Blocking is in the browser, not an extension, so MV3 does not constrain it. Add something only if a specific thing gets through |
| Firefox for Android | uBlock Origin | The only mainstream mobile browser where a full-strength blocker is available free |
| iOS / Chrome on Android | DNS filtering, or AdGuard's paid app | Extensions are unavailable or too limited; filtering has to happen below the browser |
Three rules that apply everywhere
- Run one content blocker, not three. Stacked blockers with overlapping lists do not block meaningfully more, and they make breakage almost impossible to diagnose because you cannot tell which extension caused it. One blocker plus DNS is the only stack worth running.
- If you already use Adblock Plus and like it, do not switch, untick Acceptable Ads. That single checkbox closes most of the gap, and the muscle memory you have with an interface has real value.
- Check what the extension asks for. A content blocker needs to see or modify every page you visit, which is among the most powerful permissions a browser grants. Prefer open source, prefer well-known, and be suspicious of a blocker you found because it was advertised to you.
If you want to work through a specific pair rather than a category, start from the comparison index, or browse the whole category in the software directory.
What to set up alongside a blocker
A content blocker is one control among several, and a few of the others are cheaper wins than upgrading from a good blocker to a marginally better one.
- DNS-level filtering. Covered above, and the single biggest coverage gain available, because it reaches the devices where no extension can run.
- Encrypted DNS. DNS-over-HTTPS or DNS-over-TLS stops your resolver queries being read in transit. AdGuard Home and NextDNS both support it directly; most browsers can enable it independently.
- A tracker inventory, occasionally. Running Ghostery for a week tells you which of your daily sites are worth allowlisting and which you would rather stop visiting.
- Per-site allowlisting as a habit, not an exception. Decide deliberately which small publishers you fund.
- Dark mode extensions, if you are already granting page-modification permissions. The permission model is the same one, so it is worth reading our guide to dark mode extensions with the same scepticism you applied here: prefer open source, prefer well known, and install one rather than three.
The overall shape of a sensible setup: one trusted blocker in the browser you work in, DNS filtering for everything else on the network, encrypted DNS underneath it, and a short allowlist of sites you have decided to support. That configuration is free, takes an evening, and outperforms any single paid product.
Same permission model, same "prefer open source" logic.
Questions people ask
- Is uBlock Origin still available for Chrome?
Not the full version. Google disabled Manifest V2 extensions by default for all users on 31 March 2025, removed the user override on 24 July 2025, and removes the last remaining Manifest V2 extensions from the Chrome Web Store on 31 August 2026. The enterprise policy exemption ended with Chrome 139.
Chrome users can install uBlock Origin Lite, a separate Manifest V3 extension by the same developer, or switch to Firefox where full uBlock Origin still works without restriction.
- What is the difference between uBlock Origin and uBlock Origin Lite?
uBlock Origin Lite is a ground-up Manifest V3 extension that uses declarative rulesets rather than inspecting requests in real time. It requests no broad host permissions by default and runs no persistent background process, which is a genuine privacy improvement.
The cost is capability. Chrome limits an extension to at least 30,000 static rules across a maximum of 50 enabled rulesets, so you cannot enable every filter list at once, and the request logger and advanced dynamic filtering of classic uBlock Origin have no Manifest V3 equivalent.
- Is Adblock Plus worse than uBlock Origin?
Out of the box it lets more advertising through, because Adblock Plus enables the Acceptable Ads allowlist by default, permitting ads that meet the programme's published criteria on placement, size and labelling. That is a configuration difference rather than a capability gap.
Turning Acceptable Ads off in the settings, which eyeo says takes two clicks on any platform, closes most of it. uBlock Origin has no allowlist programme and no advertiser revenue at all, so its defaults simply match what most people expect. The full comparison goes through the rest.
- Do I need to pay for an ad blocker?
Not for desktop browsing. uBlock Origin, uBlock Origin Lite and the AdGuard browser extension are all free and block effectively, and Brave includes blocking in the browser at no cost.
Paying makes sense only when you need filtering outside the browser, advertising inside mobile apps, smart TVs, or devices where extensions cannot be installed. That is what AdGuard's system-level application, sold as a 3-device personal or 9-device family licence, and hosted DNS services such as NextDNS provide.
- Can an ad blocker block YouTube ads?
Sometimes, and the answer changes week to week. YouTube runs an active programme to detect and defeat blocking, and filter list maintainers respond, so this is a continuous escalation rather than a settled question.
Blockers that can fetch new filter rules dynamically respond faster than Manifest V3 blockers, whose static rulesets ship inside the extension package and therefore need a store-reviewed update to change. That is why the same blocker can perform differently on Firefox and Chrome during an active round.
- Should I run more than one ad blocker?
No. Two content blockers with overlapping filter lists do not block meaningfully more than one, and they make site breakage far harder to diagnose because you cannot tell which extension caused it.
The one sensible combination is a single in-browser blocker plus DNS-level filtering such as Pi-hole, AdGuard Home or NextDNS, because those operate at a different layer and cover devices where no extension can run.
- Does Firefox block ads without an extension?
No. Firefox's Enhanced Tracking Protection blocks known tracking content, including tracking code embedded in ads and videos, and its strict mode goes further, but it targets trackers, not advertising as such, so ads without tracking will still render.
Brave is the mainstream browser that does block advertising by default, through shields built into the browser rather than an extension, which also means Manifest V3 does not constrain it.
- Is DNS blocking like Pi-hole enough on its own?
No, though it covers devices nothing else can. DNS filtering works on hostnames, so it cannot block an ad served from the same domain as the content, and it cannot hide the empty space a blocked ad leaves behind, which is why pages filtered only at DNS level often look broken.
Use it as the network-wide layer for phones, TVs and guest devices, and keep a content blocker in the browser you actually work in.
- Is Ghostery a good ad blocker?
It is competent at blocking but its real strength is different: it names and categorises every tracker a page loads and tells you who owns each one, which no other consumer extension does as well.
That makes it an excellent auditing and teaching tool. If pure blocking strength is what you want, uBlock Origin outperforms it; running Ghostery alongside a dedicated blocker, as an instrument rather than a defence, is the better use of it.
- Why do some websites break when I use an ad blocker?
Usually because a filter rule removed something the page needed, or because the site detects the blocker and deliberately withholds content. Aggressive third-party filter lists cause more of this than the default lists do.
The fix is almost always to allowlist the single site rather than to disable the blocker globally, and to avoid stacking multiple blockers, which makes it impossible to work out which one is responsible.
- Is it wrong to block ads on small websites?
It is a real trade-off rather than a settled question. For a large publisher, blocking is a rounding error; for a small independent site or single-maintainer project running on tens of dollars a month, it removes the entire income.
Every serious blocker includes per-site allowlisting for this reason. Allowlisting the handful of small sites you genuinely value costs you almost nothing, and direct support is usually worth more to them than the advertising was.
