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
Zach Lagden 416022b807 fix(whitelist): add Archidekt card-image CDN (false positive)
card-images.archidekt.com (#86) serves Archidekt's MTG card art and
CNAMEs to card-images.archidekt-cloudflare.com — Archidekt's own
Cloudflare CDN domain. The young "-cloudflare.com" domain was flagged,
and CNAME-cloaking detection then blocked the card-images.archidekt.com
alias, breaking card art. Whitelist the CDN domain (covers its
subdomains) plus the card-images host; ads.archidekt.com stays blocked.

Closes #86

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015E6mZn2x7YnvA8FFiN8uxE
2026-09-14 14:21:10 +01:00
.github feat(lists): publish ABP subdomain-blocking nsfw_abp.txt 2026-06-30 01:41:44 +01:00
custom feat(blocklist): add fake-ChatGPT phishing domains to malicious list 2026-09-14 14:19:07 +01:00
lists Weekly blocklist update 2026-09-13 2026-09-13 03:33:13 +00:00
.gitattributes 🎉 Init 2025-03-15 16:40:59 +00:00
.gitignore feat(automation): add Claude-powered issue processing and custom domain lists 2026-04-12 09:49:14 +01:00
blocklists.conf feat(sources): add 9 researched blocklist sources 2026-08-25 12:25:12 +01:00
CLAUDE.md feat(custom): enable abp wildcard entries for custom lists 2026-06-29 20:37:32 +01:00
CONTRIBUTING.md feat(custom): enable abp wildcard entries for custom lists 2026-06-29 20:37:32 +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-09-13 2026-09-13 03:33:13 +00:00
whitelist.txt fix(whitelist): add Archidekt card-image CDN (false positive) 2026-09-14 14:21:10 +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) 3,058,421
advertising.txt Ad networks & services 257,217
tracking.txt Analytics & telemetry 18,189
malicious.txt Malware, phishing, scams 2,573,904
suspicious.txt Potentially unwanted 54,986
comprehensive.txt Curated multi-category 510,661
nsfw.txt Adult content (separate) 517,129
nsfw_abp.txt Adult content — ABP format, blocks subdomains too 517,129

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 contains the same domains in ABP form (||domain^), so subdomains are blocked too — use it instead of nsfw.txt for more thorough filtering (needs Pi-hole Core ≥ 5.16).

Last updated: September 13, 2026

Quick Start

  1. Go to Pi-hole admin → SettingsAdlists
  2. Add the raw URL for your chosen list(s)
  3. Run pihole -g to update

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, or suspicious 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

The maintainer reviews each report, verifies it, and opens a PR. Once merged, the change takes effect on 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 at midnight UTC via GitHub Actions. 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.

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.