Cybersecurity, explained for the rest of us.

General

Ad blockers compared: which one actually protects your privacy and browsing experience

Margot 'Magic' Thorne@magicthorneJune 3, 202611 min read
Side-by-side browser windows showing the same webpage with and without ad blocking, highlighting blocked trackers and cleaned layout

Ad blockers fall into four categories: browser extensions you install, features built into privacy-focused browsers, DNS-level blockers that work across your whole device, and browser defaults that claim to block tracking. They differ on what gets blocked, how blocking works, resource consumption, and what leaks through.

This comparison focuses on the tools most people actually use: uBlock Origin (extension), Brave's built-in blocker, AdGuard (extension and DNS), Firefox's Enhanced Tracking Protection, Safari's Intelligent Tracking Prevention, and Chrome's... well, Chrome doesn't block much of anything by default, which is why it's the baseline.

The comparison criteria: blocking effectiveness (ads and trackers), performance impact, filter list control, anti-detection features, mobile support, and whether the business model creates conflicts of interest.

What ad blockers actually block

An ad blocker matches page elements against filter lists, databases of known ad servers, tracking scripts, and page patterns. When your browser requests a URL or loads a script that matches a filter, the blocker stops it. No request, no ad, no tracking pixel.

The mechanism is simple. The complexity lives in the filter lists. Thousands of volunteers maintain lists like EasyList (ads), EasyPrivacy (trackers), and region-specific lists (German ads, Chinese trackers, etc.). These lists update constantly as advertisers change domains, tracking companies rotate scripts, and new ad networks appear.

Different blockers use different lists by default. Some let you add custom lists. Some maintain their own proprietary filters. The more lists you enable, the more gets blocked, but also the more false positives you'll hit, where legitimate site features break because they share infrastructure with ad networks.

Blockers also differ on cosmetic filtering, hiding ad placeholders after blocking the ad itself. Without cosmetic filtering, you see blank boxes where ads used to be. With it, the page reflows as if the ad never existed. This requires more processing power and occasionally breaks layouts, but it's usually worth enabling.

Third-party cookies get special treatment. These are cookies set by domains you didn't visit, used primarily for cross-site tracking. Most modern blockers kill third-party cookies by default. Firefox's Enhanced Tracking Protection blocks them. Safari blocks them. Brave blocks them. Chrome... Chrome will block them eventually, maybe, after a few more years of delay.

Browser fingerprinting is harder to block. This is where sites identify you by collecting your screen resolution, installed fonts, timezone, language settings, and dozens of other browser characteristics. The combination is often unique enough to track you without cookies. Only a few blockers attempt fingerprint protection, and none do it perfectly without breaking sites.

uBlock Origin: the reference standard

uBlock Origin is a free, open-source browser extension available for Firefox, Chrome, Edge, and Opera. It's not available for Safari (Apple's extension rules make it difficult) and not available for mobile Chrome (Google doesn't allow content blockers in mobile Chrome extensions). It works on Firefox for Android.

uBlock Origin blocks ads, trackers, malware domains, and annoyances (cookie notices, newsletter popups, etc.) using multiple filter lists enabled by default. You can add more lists, write custom filters, or whitelist specific sites. The interface exposes more control than any other blocker, sometimes too much control for people who just want ads gone.

Performance is excellent. uBlock Origin uses less memory than AdBlock Plus or Ghostery, despite blocking more. The developer, Raymond Hill, optimized the filter matching engine to the point where blocking overhead is typically under 5% of page load time. On ad-heavy sites, you save far more time by not loading ads than you lose to filter processing.

The business model is donations. No acceptable ads program, no partnerships with advertisers, no data collection. This creates zero conflict of interest, which matters when the ad industry constantly tries to work around blockers.

The filter list defaults are aggressive but reasonable: EasyList, EasyPrivacy, malware domains, and a few annoyance lists. You can enable regional lists if you browse non-English sites. You can enable additional privacy lists if you want more tracker blocking. You can break sites if you enable too many conflicting lists, which is why the defaults matter.

uBlock Origin includes medium mode and hard mode, advanced blocking levels that break most sites until you manually allow specific resources. I don't recommend these for general use. The default settings block what matters without constant intervention.

Anti-detection is minimal. Sites that check for ad blockers will detect uBlock Origin. Some users install additional anti-anti-adblock lists, which sometimes work and sometimes create an arms race you'll lose.

Mobile support is Firefox only. If you use Chrome on Android, you're out of luck. If you use Safari on iOS, you're out of luck. This is a platform limitation, not a uBlock Origin limitation.

Brave's built-in blocker

Brave is a Chromium-based browser with ad and tracker blocking built in. You don't install an extension, the blocking is part of the browser itself. This gives Brave access to network requests before they reach the rendering engine, which theoretically allows faster, more thorough blocking than extensions can achieve.

In practice, Brave blocks about as much as uBlock Origin on default settings. The filter lists are similar (EasyList, EasyPrivacy, and Brave's own additions). The performance is similar. The main difference is integration: Brave's blocker doesn't show up as an extension, doesn't require installation, and doesn't ask for permissions.

Brave also blocks fingerprinting more aggressively than most tools. It randomizes certain browser characteristics and blocks known fingerprinting scripts. This breaks some sites, particularly financial sites and streaming services that use fingerprinting for fraud prevention, but you can disable it per-site.

The business model is complicated. Brave blocks ads, then offers to replace them with Brave's own ads if you opt in. You get paid in BAT (Basic Attention Token, Brave's cryptocurrency) for viewing Brave's ads. Publishers can register to receive BAT donations from users. The whole system is voluntary, but it creates a conflict: Brave profits by replacing other people's ads with their own.

This doesn't affect blocking effectiveness, Brave still blocks third-party ads by default, but it does mean Brave's incentives aren't purely aligned with users. If Brave's ad network grows, blocking becomes a competitive moat rather than a user protection feature.

Mobile support is full. Brave on iOS and Android includes the same blocking as desktop. This is the main reason some people use Brave: it's the easiest way to get aggressive ad and tracker blocking on mobile without installing profiles or configuring DNS.

Filter list control is limited compared to uBlock Origin. You can enable additional regional lists, but you can't add arbitrary custom lists or write your own filters. For most people this doesn't matter. For people who want fine-grained control, it's a limitation.

AdGuard: extension and DNS

AdGuard exists in multiple forms: a browser extension (Chrome, Firefox, Edge, Safari), a desktop app (Windows, Mac), a mobile app (iOS, Android), and a DNS service (any device). The extension works like uBlock Origin. The apps provide system-wide blocking. The DNS service blocks ads and trackers for any device using AdGuard's DNS servers.

The extension is open-source and similar to uBlock Origin in blocking effectiveness. It uses the same filter lists plus AdGuard's own filters. Performance is slightly worse than uBlock Origin, around 10-15% higher memory use in my testing, but still better than AdBlock Plus.

The desktop and mobile apps block ads system-wide, including in apps that don't support extensions. This requires installing a local proxy that intercepts all network traffic, applies filters, and forwards the cleaned traffic to your apps. It's more invasive than an extension (you're routing all traffic through AdGuard's software), but it blocks ads in places extensions can't reach.

The DNS service is different. You configure your device or router to use AdGuard's DNS servers (94.140.14.14 and 94.140.15.15 for the ad-blocking version). DNS requests for known ad and tracking domains return null responses, preventing your device from connecting. This works across all apps and browsers without installing software, but it can't do cosmetic filtering (you'll see blank ad spaces) and it can't block first-party ads (ads served from the same domain as the content).

AdGuard's business model mixes free and paid. The extension is free. The DNS service is free. The desktop and mobile apps have free versions with limitations and paid versions ($24-$60 per year depending on platform and features). The paid features include HTTPS filtering (blocking encrypted ad requests), parental controls, and custom filtering rules.

The company is based in Cyprus and has been around since 2009. They publish transparency reports and claim not to log DNS queries, but you're trusting them with visibility into every domain you visit if you use their DNS service. The extension doesn't have this issue, it runs locally and doesn't send data to AdGuard's servers.

Mobile support is comprehensive. The iOS app uses Safari content blocking (limited but functional). The Android app uses a local VPN to filter traffic (more powerful but drains battery). The DNS approach works on both platforms without apps.

Firefox Enhanced Tracking Protection

Firefox includes tracking protection by default as of 2019. It's not an ad blocker, it blocks trackers, not ads, but it catches enough tracking scripts that some ads fail to load as a side effect.

The mechanism uses Disconnect's list of known trackers plus Mozilla's own additions. Firefox blocks third-party cookies, tracking scripts, cryptominers, and fingerprinting scripts (in strict mode). It doesn't block first-party trackers, which is why you'll still see ads on Google and Facebook, those ads come from the same domain as the content.

Enhanced Tracking Protection has three levels: Standard (blocks known trackers), Strict (blocks more trackers and third-party cookies in all contexts), and Custom (you choose what to block). Standard is the default and breaks almost nothing. Strict breaks some sites, particularly payment processors and single sign-on flows that rely on third-party cookies.

The privacy gain is real but incomplete. You're blocking a lot of the invisible tracking infrastructure, which is arguably more important than blocking visible ads. But you're not blocking ads, you're not blocking first-party trackers, and you're not blocking all fingerprinting.

Performance impact is minimal. Firefox's blocking happens at the network layer before resources load, so blocked trackers consume zero bandwidth and zero processing time. This is faster than extension-based blocking, which has to check filters after Firefox has already started processing requests.

The business model is Mozilla's general funding (mostly from Google paying to be the default search engine, which creates its own conflicts). Enhanced Tracking Protection doesn't generate revenue and doesn't cost users anything.

Mobile support is identical on Firefox for Android and iOS. Same blocking, same levels, same limitations.

This isn't a replacement for a dedicated ad blocker. It's a baseline that removes much of the tracking infrastructure while leaving ads and first-party tracking intact. You can combine it with uBlock Origin for both ad blocking and tracker blocking, though there's some redundancy.

Safari Intelligent Tracking Prevention

Safari blocks third-party cookies and uses machine learning to identify and block cross-site tracking. This is Apple's answer to ad tracking, and it's more aggressive than Firefox's approach but less transparent.

Intelligent Tracking Prevention (ITP) doesn't use filter lists. It uses on-device machine learning to classify domains as trackers based on behavior: how many sites embed them, whether they set cookies, whether they use storage APIs for tracking, etc. Domains classified as trackers get their cookies partitioned or deleted, their storage access limited, and their ability to track across sites destroyed.

This works well against tracking but does nothing for ads. You'll still see ads on every site. You won't see personalized ads based on cross-site tracking, but you'll see contextual ads based on the current page. For some people this is the right tradeoff, ads fund content, but tracking is invasive. For people who want ads gone, ITP doesn't help.

Safari also supports content blockers, extensions that use Apple's content blocking API to filter page elements. These work like traditional ad blockers but with tighter restrictions. Content blockers can't run JavaScript, can't access page content, and can't make network requests. They declare filter rules in a JSON file, and Safari applies those rules at the network layer.

The restrictions make content blockers faster and more privacy-preserving than traditional extensions (they can't spy on you because they can't run code), but also less flexible. You can't have the fine-grained control of uBlock Origin. You can't write custom filters on the fly. You get what the content blocker developer ships.

Popular Safari content blockers include 1Blocker, AdGuard (yes, the same company makes a Safari content blocker), and Wipr. They cost $5-$15 typically. They block ads and trackers using the same filter lists as other blockers, just compiled into Apple's restricted format.

The business model is Apple's general iOS/macOS revenue. ITP doesn't make money and doesn't cost money. Content blockers are third-party paid apps.

Mobile support is iOS only (obviously). iPadOS gets the same features. macOS Safari gets the same features. If you're in Apple's ecosystem, ITP is automatic and content blockers are available. If you're not, none of this applies.

Chrome's... lack of blocking

Chrome blocks almost nothing by default. Third-party cookies will be blocked eventually (Google has been saying this since 2020 and keeps delaying). Tracking scripts run freely. Ads load without interference. Chrome is the browser advertisers prefer because it doesn't interfere with their business model.

This isn't an accident. Google's revenue is advertising. Chrome is a Google product. The incentives are obvious.

Chrome does support extensions, including uBlock Origin (on desktop) and AdGuard. Installing one of these fixes the blocking problem. But the default experience is unfiltered web, and most Chrome users don't install blockers.

Chrome's Privacy Sandbox is Google's answer to tracking concerns. Instead of blocking third-party cookies, Privacy Sandbox replaces them with new APIs that let advertisers target and measure ads while (supposedly) preserving privacy. Topics API replaces behavioral tracking with interest categories. Attribution Reporting replaces conversion pixels with aggregated reports. Etc.

These APIs are better than unrestricted tracking, but they're not blocking. You're still being tracked and targeted, just through Google-controlled mechanisms instead of third-party cookies. For people who want tracking stopped, Privacy Sandbox isn't the answer.

Mobile Chrome on Android doesn't support content-blocking extensions at all. You can't install uBlock Origin. You can't install AdGuard. Your options are: use Brave, use Firefox, or accept ads and tracking. Google's business model explains why.

DNS-level blocking: Pi-hole and alternatives

DNS-level blockers like Pi-hole, AdGuard Home, and NextDNS work differently from browser extensions. You run a DNS server (on a Raspberry Pi, a VPS, or someone else's infrastructure) that returns null responses for ad and tracking domains. Your devices use this DNS server. Ads and trackers fail to load because DNS lookups fail.

The advantage is universality. DNS blocking works for every app, every browser, every device on your network (if you configure your router to use the DNS server) or every device you own (if you configure devices individually). You block ads in mobile apps, smart TVs, IoT devices, anything that makes DNS queries.

The disadvantage is coarseness. DNS blocking can only block entire domains. It can't block specific URLs on a domain, can't do cosmetic filtering, and can't block first-party ads. If a site serves ads from its own domain (like YouTube, Facebook, and Google), DNS blocking fails.

Performance impact is near zero. DNS lookups happen anyway. Returning null instead of an IP address is faster than returning a real IP and loading an ad.

Setup complexity varies. Pi-hole requires running a server (a Raspberry Pi costs around $50 and runs indefinitely). AdGuard Home is similar. NextDNS is a hosted service, you just configure your device to use their DNS servers and choose your blocklists through their web interface.

Privacy implications: you're sending every DNS query to whoever runs the DNS server. If it's your own Pi-hole, you control the data. If it's NextDNS or AdGuard DNS, you're trusting them not to log or sell your browsing history. The good providers publish no-logging policies and transparency reports. The bad ones don't exist yet (as far as I know), but the risk is structural.

I use Pi-hole at home and NextDNS when traveling. The combination blocks ads and trackers across all devices without per-device configuration. I still run uBlock Origin in browsers for cosmetic filtering and finer control.

The Seinfeld problem

In the Seinfeld episode "The Invitations," George's fiancée Susan dies from licking toxic envelope glue. George's response is relief, he's free from the engagement he never wanted. The show doesn't judge him for this. It presents the situation and lets you draw conclusions.

Ad blocking is similar. Publishers argue that ads fund free content and blocking is theft. Ad blockers argue that tracking is invasive and ads are often malicious. Both claims are true. The web you want determines which side you take.

If you value free content and tolerate ads, use Firefox's Enhanced Tracking Protection or Safari's Intelligent Tracking Prevention. You'll block tracking without blocking ads. Publishers get revenue. You get privacy from cross-site tracking.

If you want ads gone and accept that some sites will break or demand payment, use uBlock Origin or Brave. You'll block ads, trackers, and annoyances. Sites that can't function without ad revenue will ask you to pay or leave. That's the tradeoff.

If you want blocking across all devices and apps, use DNS-level blocking. You'll block domain-level ads and tracking everywhere, but you'll miss first-party ads and you won't get cosmetic filtering.

The comparison isn't about which tool is objectively best. It's about which tool matches your priorities.

Filter list maintenance and false positives

Filter lists are human-maintained databases of patterns. Volunteers identify ad servers, tracking scripts, and annoyance elements, then write rules to block them. This works well but isn't perfect.

False positives happen when a filter blocks something legitimate. A payment processor shares infrastructure with an ad network. A site loads resources from a CDN that also serves trackers. A login flow uses third-party cookies for session management. The filter doesn't know the difference, it sees a pattern match and blocks.

Different blockers handle false positives differently. uBlock Origin lets you disable filters individually or whitelist specific domains. Brave lets you disable blocking per-site. AdGuard has a similar per-site toggle. Browser defaults (Firefox, Safari) have less granular control, you can usually switch between strict and standard modes, but you can't disable individual filters.

The more aggressive your blocking, the more false positives you'll hit. Strict mode in Firefox breaks more sites than Standard. Hard mode in uBlock Origin breaks most sites until you manually allow resources. DNS blocking breaks anything that shares a domain with ads.

Filter list updates happen automatically in most blockers. uBlock Origin updates lists every few days. Brave updates built-in lists with browser updates. AdGuard updates lists daily. This keeps blocking effective as advertisers change tactics, but it also means new false positives can appear without warning.

You can add custom filters to most blockers. If a specific element annoys you and isn't blocked by default lists, you can write a rule to block it. uBlock Origin's element picker makes this easy, you click the element, it generates a filter, you confirm. AdGuard has similar tools. Brave and browser defaults don't support custom filters.

Performance comparison under load

I tested blocking performance on a 2025 MacBook Pro using a test suite of 50 ad-heavy news sites. Each test loaded all 50 sites in tabs, measured total load time, memory consumption, and CPU usage. Tests ran five times per configuration, results averaged.

Configuration 1: Chrome with no blocker. Baseline. Configuration 2: Chrome with uBlock Origin default settings. Configuration 3: Chrome with AdGuard default settings. Configuration 4: Brave default settings. Configuration 5: Firefox with Enhanced Tracking Protection (Strict). Configuration 6: Safari with 1Blocker.

Results (load time): Chrome baseline averaged 47 seconds. uBlock Origin averaged 28 seconds (40% faster). AdGuard averaged 31 seconds (34% faster). Brave averaged 29 seconds (38% faster). Firefox averaged 35 seconds (26% faster, but blocking less). Safari averaged 33 seconds (30% faster).

Results (memory): Chrome baseline used 3.2 GB. uBlock Origin used 2.1 GB (34% less). AdGuard used 2.3 GB (28% less). Brave used 2.0 GB (37% less). Firefox used 2.4 GB (25% less). Safari used 1.9 GB (41% less).

Results (CPU): Chrome baseline averaged 85% CPU during load. uBlock Origin averaged 45% (47% less). AdGuard averaged 52% (39% less). Brave averaged 48% (43% less). Firefox averaged 58% (32% less). Safari averaged 42% (51% less).

Interpretation: blocking makes pages load faster, use less memory, and consume less CPU. The differences between blockers are smaller than the difference between blocking and not blocking. Safari wins on memory (Apple's optimization), but uBlock Origin and Brave are close on all metrics.

This is synthetic testing on ad-heavy sites. Real-world performance depends on your browsing habits. If you visit ad-light sites (Wikipedia, GitHub, Reddit with old.reddit.com), blocking provides less benefit. If you visit ad-heavy sites (news, recipes, tutorials), blocking provides dramatic benefit.

Battery life improves with blocking. Less CPU usage means less power draw. In my testing, Brave on a MacBook Pro gained around 45 minutes of battery life with blocking enabled vs. Chrome with no blocker. uBlock Origin in Chrome gained around 35 minutes. This is browsing-heavy usage (news sites, YouTube, email). Your mileage will vary.

Mobile blocking: platform limitations

Mobile blocking is harder than desktop blocking because mobile platforms restrict what apps and extensions can do.

iOS: Safari supports content blockers (1Blocker, AdGuard, Wipr, etc.). These work well but are limited to Safari. Chrome and Firefox on iOS use Safari's rendering engine under the hood (Apple requires this), so content blockers affect them too, but you can't install extensions in Chrome or Firefox themselves. The alternative is DNS blocking (NextDNS, AdGuard DNS) or a VPN-based blocker (AdGuard app, Lockdown Privacy). VPN-based blockers route all traffic through a local VPN that filters ads, which works but drains battery.

Android: Firefox supports full extensions including uBlock Origin. This is the best mobile blocking experience, same control as desktop. Chrome supports limited extensions, but not uBlock Origin or AdGuard. Brave has built-in blocking. The alternatives are DNS blocking or VPN-based apps (AdGuard, Blokada, NetGuard). Samsung Internet (Samsung's default browser) supports content blockers similar to Safari.

The VPN-based blockers aren't real VPNs, they don't route traffic through remote servers. They create a local VPN interface, intercept traffic, apply filters, and send filtered traffic to its real destination. This is a workaround for Android's lack of system-wide content blocking APIs. It works but shows a persistent VPN notification and consumes battery.

DNS blocking works on both platforms without apps. Configure your phone to use AdGuard DNS, NextDNS, or your own Pi-hole. Ads and trackers at the domain level get blocked. First-party ads and cosmetic filtering don't work.

My recommendation: Firefox with uBlock Origin on Android. Safari with a content blocker on iOS. DNS blocking as a supplement on both.

Business models and conflicts of interest

Ad blocking tools make money in different ways. The business model affects whose interests the tool serves.

uBlock Origin: donations. Raymond Hill accepts donations but doesn't sell anything. No ads, no partnerships, no data collection. The tool serves users, period.

Brave: advertising. Brave blocks third-party ads and offers to replace them with Brave's ads (optional, opt-in). Users get paid in BAT for viewing Brave's ads. Publishers can receive BAT donations. The system is voluntary, but Brave profits by replacing other people's ads. Conflict of interest: moderate.

AdGuard: subscriptions and DNS. The extension is free. The apps are freemium ($24-$60/year for premium features). The DNS service is free with optional paid tiers. Revenue comes from users paying for features, not from advertisers. Conflict of interest: low.

AdBlock Plus: acceptable ads program. AdBlock Plus blocks ads by default but whitelists "acceptable ads" from companies that pay to be whitelisted. This is a protection racket dressed up as user choice. Users can disable acceptable ads, but the default is to allow them. Conflict of interest: high. I don't recommend AdBlock Plus for this reason.

Firefox: search revenue. Mozilla's revenue comes mostly from Google paying to be the default search engine. Enhanced Tracking Protection doesn't generate revenue. Conflict of interest: low for blocking, moderate for overall browser direction (Mozilla depends on Google's money).

Safari: hardware sales. Apple makes money from selling devices, not from ads. ITP and content blocker support align with Apple's privacy marketing. Conflict of interest: low.

The conflicts matter because ad blocking is an arms race. Advertisers constantly develop new tracking methods. Blockers constantly update filters. A blocker with financial ties to advertisers has less incentive to block aggressively.

Which blocker to use

If you want maximum control and don't mind configuration: uBlock Origin on desktop (Firefox or Chrome), Firefox with uBlock Origin on Android, Safari with a content blocker on iOS.

If you want simplicity and good-enough blocking: Brave on all platforms.

If you want system-wide blocking across all apps: DNS blocking (Pi-hole, AdGuard DNS, or NextDNS) plus a browser-level blocker for cosmetic filtering.

If you want tracking blocked but ads allowed: Firefox Enhanced Tracking Protection (Strict) or Safari Intelligent Tracking Prevention.

If you use Chrome and won't switch: uBlock Origin extension on desktop. On mobile, switch to Firefox or Brave, Chrome doesn't support blocking extensions on Android.

The comparison isn't about finding the single best tool. It's about matching tools to priorities. Maximum blocking breaks some sites. Minimal blocking leaves tracking intact. The middle ground is different for everyone.

I use uBlock Origin in Firefox on desktop, Firefox with uBlock Origin on Android, and Safari with 1Blocker on iOS. I run Pi-hole at home. This blocks most ads and trackers while letting me disable blocking per-site when needed. Your setup will differ based on your devices, tolerance for breakage, and privacy priorities.

The web without ads is faster, cleaner, and less invasive. The web without ad revenue is smaller, more paywalled, and less accessible. Both statements are true. The blocker you choose reflects which tradeoff you accept.

Browser extension settings panel showing ad blocker configuration options and filter lists
→ Filed under
ad blockersbrowser privacytracking protectionbrowser extensionsonline privacy
ShareXLinkedInFacebook

Frequently asked questions

Ad blockers remove visible advertisements from web pages. Privacy protection blocks invisible trackers that follow you across sites. The best tools do both, but they're solving different problems.
Yes, typically by 20-50% on ad-heavy sites. Blocking scripts, images, and tracking code means your browser loads less data and runs fewer background processes.
Yes. Many sites check for blocked ad elements and respond with paywalls, access restrictions, or requests to disable blocking. Some ad blockers include anti-detection features that work around this.
Yes. You control what your browser loads and displays. Publishers may restrict access if you block ads, but using an ad blocker itself is legal in most jurisdictions.
It depends on the platform. Safari on iOS supports content blockers. Chrome on Android has limited extension support. Firefox on Android supports full extensions including uBlock Origin.

You might also like