Skip to content
Getting started / Excluding traffic

Getting started

Excluding traffic

Leave out your own visits, internal pages, IP ranges, countries and unwanted hostnames.

PlainAnalytics already discards traffic from known bots and crawlers, headless browsers, automation tools and referrer spam. On top of that you have several ways to keep your numbers clean.

Exclude your own visits

Open your site in each browser you use, open the developer console and run:

localStorage.plausible_ignore = "true"

The script will ignore every visit from that browser to that site. Undo it with localStorage.removeItem('plausible_ignore').

Exclude pages in the script

Pass exclude (or include) to plausible.init() to stop events being sent for certain paths:

plausible.init({ exclude: ['/admin/**', '/preview/*'] })
  • * matches within one path segment: /blog/* matches /blog/hello but not /blog/2026/hello.
  • ** matches anything: /admin/** matches everything under /admin/.
  • With include, only matching pages are tracked.

With the legacy script.exclusions.js script, use data-exclude="/admin/**, /preview/*" or data-include attributes instead.

Shields

Shields drop traffic on our servers, so they work no matter how the script is configured. Find them in Site settings → Shields. Each list holds up to 30 rules.

Shield Example Effect
IP addresses 203.0.113.7 or 203.0.113.0/24 Ignore visits from an address or range (IPv4 or IPv6). The form can fill in your current IP for you.
Countries FR Ignore visits from a country.
Pages /admin/** Ignore visits to matching pages. Same wildcards as above.
Hostnames example.com, *.example.com An allow list: once you add a rule, only traffic from matching hostnames is recorded. Handy for keeping staging sites out.

IP shields are matched in memory when the event arrives — the IP address still isn't stored.

Stop the script on a page

To avoid tracking a page completely, don't include the snippet on it, or use exclude as shown above.

Something unclear or missing? Tell us.