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/hellobut 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.