Pre-built, deduplicated Pi-hole blocklists merged from 35 curated sources — a 2.4M+ domain master list plus advertising, tracking, malware/phishing, suspicious, and NSFW categories. Hosts format, rebuilt weekly.
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
github-actions[bot] 45348bb079 Weekly blocklist update 2026-11-01
- Total domains: 2,455,924
- Duplicates removed: 914,375
- Whitelist entries: 496
- Updated: all_domains.txt advertising.txt tracking.txt malicious.txt suspicious.txt comprehensive.txt nsfw.txt nsfw_abp.txt
2026-11-01 04:51:37 +00:00
.github Weekly blocklist update 2026-11-01 2026-11-01 04:51:37 +00:00
custom feat(blocklist): add nl-gereedschapshop.com and others to malicious list (#163) 2026-10-04 17:30:31 +00:00
lists Weekly blocklist update 2026-11-01 2026-11-01 04:51:37 +00:00
.gitattributes 🎉 Init 2025-03-15 16:40:59 +00:00
.gitignore feat(triage): add evidence bot for block and false-positive issues (#91) 2026-09-23 03:15:20 +01:00
blocklists.conf fix(sources): remove the NextDNS CNAME cloaking list (#171) 2026-10-10 18:00:52 +01:00
CLAUDE.md ci(build): pin the optimizer version and verify its checksum (#174) 2026-10-10 19:03:16 +01:00
CONTRIBUTING.md docs: add sources with licences and fix outdated setup details (#175) 2026-10-10 19:07:51 +01:00
LICENCE refactor: migrate to Rust optimizer binary and conform to template 2026-02-13 00:23:15 +00:00
README.md Weekly blocklist update 2026-11-01 2026-11-01 04:51:37 +00:00
whitelist.txt ci: check lists, sources and whitelist on pull requests (#173) 2026-10-10 18:59:37 +01:00

Pi-hole Optimized Blocklists

Total Domains Updated Weekly License

Pre-optimized, deduplicated blocklists for Pi-hole

Note

New — nsfw_abp.txt, a subdomain-blocking NSFW list. An ABP-format version of nsfw.txt that blocks adult domains and all their subdomains (e.g. cdn.example.com as well as example.com) for more complete filtering. Requires Pi-hole Core ≥ 5.16 / FTL ≥ 5.22. See Available Lists.

Looking for more features? Check out Zach's Lists — a full-featured blocklist platform with custom source selection, smart whitelisting, and multiple output formats.


Available Lists

List Description Domains
all_domains.txt Everything combined (except NSFW) 2,455,924
advertising.txt Ad networks & services 264,553
tracking.txt Analytics & telemetry 18,360
malicious.txt Malware, phishing, scams 1,985,676
suspicious.txt Potentially unwanted 55,547
comprehensive.txt Curated multi-category 500,429
nsfw.txt Adult content (separate) 545,734
nsfw_abp.txt Adult content — ABP format, blocks subdomains too 513,660

Note: nsfw.txt is not included in all_domains.txt because it blocks legitimate adult sites. Add it separately if you want NSFW blocking. nsfw_abp.txt covers the same domains in ABP form (||domain^), so subdomains are blocked too. It leaves out subdomains that one of its rules already blocks, so it has fewer lines than nsfw.txt. Use it instead of nsfw.txt, not alongside it, for more thorough filtering (needs Pi-hole Core ≥ 5.16).

Last updated: November 01, 2026

Quick Start

  1. In the Pi-hole admin interface, open Lists (Pi-hole v6) or Group Management → Adlists (Pi-hole v5)
  2. Add the URL of each list you want from the table above
  3. Run pihole -g, or use Tools → Update Gravity, to load them

The lists may include ABP-style entries (||domain^) that block a domain and all its subdomains. These require Pi-hole Core ≥ 5.16 / FTL ≥ 5.22 (released 2023; standard on current installs). Note that pihole -q won't enumerate the individual subdomains covered by an ABP entry.

Report a Domain

Found a domain that should be blocked or a false positive? Open an issue using one of the templates:

  • Block Domain — request a malicious, ad, tracking, suspicious or adult domain to be blocked
  • False Positive — report a legitimate domain that's being incorrectly blocked
  • Bug Report — report a problem with the lists or automation

A bot posts an evidence report on each block and false-positive issue, and the maintainer makes every decision. An accepted change takes effect at the next weekly update.

FAQ

What's the difference between this and Zach's Lists?

This repository provides static, pre-built blocklists updated weekly. Zach's Lists offers additional features:

  • Custom source selection — pick which blocklists to include
  • Smart whitelisting — regex, wildcards, subdomain patterns
  • Multiple formats — hosts, plain, and Adblock syntax
  • Real-time build progress

Both use the same underlying sources and are maintained by the same person.

How often are these lists updated?

Every Sunday, by a GitHub Actions build scheduled for 00:00 UTC. GitHub often starts scheduled builds a few hours late. Community-reported domains are included once their PR is merged before the next run.

Which list should I use?
  • comprehensive.txt — Good balance for most users
  • all_domains.txt — Maximum blocking (may cause false positives)
  • Individual category lists — If you want granular control
How do community-reported domains work?

Domains reported via issues are added to custom/<category>.txt files in the repo. These are referenced as sources in blocklists.conf via raw GitHub URLs, so the optimizer picks them up on the next weekly run just like any other upstream source.

Sources

The lists are built from these sources, configured in blocklists.conf. Each list keeps its own licence.

Source Lists used Category Licence
HaGeZi DNS Blocklists Pro comprehensive GPL-3.0
Threat Intelligence Feeds, Fake, DynDNS malicious
Pop-Up Ads advertising
Native trackers: Amazon, Apple, Huawei, LG webOS, OPPO/Realme, Roku, Samsung, TikTok, Vivo, Windows/Office, Xiaomi tracking
OISD Big comprehensive GPL-3.0
NSFW nsfw
1Hosts Lite comprehensive MPL-2.0
AdAway Hosts advertising CC BY 3.0
Peter Lowe's list Ad servers advertising Own licence, no commercial use
anudeepND Ad servers advertising MIT
AdGuard DNS filter DNS filter advertising GPL-3.0
Frogeye First-party trackers tracking MIT
Perflyst Smart TV, Android tracking tracking MIT
URLhaus Host file malicious abuse.ch terms of use
Phishing Army Extended malicious CC BY-NC 4.0
Stalkerware indicators Hosts malicious CC BY 4.0
DandelionSprout Anti-Malware List malicious Dandelicence
malware-filter Phishing filter malicious CC BY-SA 4.0
Spam404 Main blacklist malicious CC BY-SA 4.0
ShadowWhisperer Scam, Malware malicious Unlicense
UT1 blacklists (via Firebog) Cryptojacking suspicious CC BY-SA 4.0
KADhosts KADhosts suspicious CC BY-SA 4.0
StevenBlack hosts Porn only nsfw MIT
Community reports (custom/) One list per category all except comprehensive MIT

Contributing

See CONTRIBUTING.md for details on how to report domains, submit PRs, and use the automated workflows.

Sponsors

Thanks to everyone who supports this project.

One-Time

@rnsimmons

Star History

Star History Chart for zachlagden/Pi-hole-Optimized-Blocklists

Live chart, self-hosted (star-history.com's open-source backend) after GitHub restricted the stargazers API in mid-2026.

License

MIT License — see LICENCE for details.