Keeping Your Own Visits Out of Google Analytics (GA4)
Short answer: In GA4 you exclude your own visits in two steps: define which IP addresses count as internal in your web data stream, then create an Internal Traffic data filter that excludes them. Leave the filter in Testing for a few days to check it catches the right visits, then switch it to Active, because an active filter permanently deletes the matching data. If your team works from home or on mobile data, IP rules won't catch everyone, so add a second method.
Why it's worth doing on a small site
On a busy site, a handful of staff visits disappear in the noise. On a small business site they don't. If three people check the booking page every morning, edit the menu page, and test the contact form after every change, your "most visited pages" and "conversions" reports describe your team, not your customers. The fix takes about fifteen minutes.
One thing you don't need to do: filter known bots. Google's help page says GA4 automatically excludes traffic from known bots and spiders, and that you can't switch that off.
Before you start
You need the Editor role (or higher) on the GA4 property; Google's help page says that's required for both steps. You also need your office's public IP address. The quickest way to find it is the "What's my IP address?" link inside the internal traffic screen itself, opened from the office network.
Write down every location that should count as internal: the shop or office, a second branch, the owner's home if they work from there regularly.
Step-by-step setup
Step 1: Tell GA4 what internal traffic looks like
- Open Admin. Under Data collection and modification, click Data streams.
- Click your website's stream. A panel opens showing the stream URL and measurement ID.
- Scroll down and click Configure tag settings.
- In the Settings list, click Show more, then Define internal traffic.
- Click Create. A form appears with a rule name, a
traffic_typevalue and IP conditions. - Name the rule, for example "Galway office".
- Leave the
traffic_typevalue asinternal, the default. Google allows a custom value (such as one per location), but a single value keeps the filter simple. - Under IP address, choose a match type and enter the address. "IP address equals" suits a single fixed address. "IP address is in range" takes CIDR notation if your provider gave you a block.
- Click Add condition for each extra address. Google's help page notes the conditions are OR conditions, so any match counts as internal.
- Click Create.
From now on, GA4 adds traffic_type=internal to every event from those addresses. Nothing is removed yet.
Step 2: Create the data filter
- Back in Admin, under Data collection and modification, click Data filters.
- Click Create Filter and choose Internal Traffic.
- Give it a name (letters, numbers, underscores and spaces, up to 40 characters).
- Choose Exclude, and make sure the parameter value matches the one in Step 1 (
internal). - Set the state to Testing and click Create.
Step 3: Test before you activate
In Testing state, GA4 doesn't remove anything. It tags matching events with a "Test data filter name" dimension so you can check the filter works. Google suggests a free-form exploration with Test data filter name and Event name as rows, Event count as the value, filtered to your filter's name.
Google says a data filter can take 24 to 36 hours to apply, so visit the site from the office, wait a day and a half, then look. You should see your own visits tagged. If you see nothing, recheck the IP address; if you see far more than your team could produce, the range is too wide.
Step 4: Switch it to Active
Edit the filter and change the state to Active. Read Google's warning before you click: once a data filter is active, its effect is permanent. Excluded data is never processed and isn't available later in Analytics or BigQuery. That's why the testing step matters.
When IP filtering won't work
IP rules assume your team sits behind a known address. Plenty of small businesses don't.
| Situation | Why IP filtering fails | What to do instead |
|---|---|---|
| Home broadband with changing addresses | Many home connections don't keep the same public IP, so yesterday's rule misses today's visits | Use the opt-out add-on on those browsers, or tag staff visits another way (below) |
| Staff checking the site on mobile data | Mobile networks share and rotate addresses | Use the opt-out add-on on staff browsers where possible; otherwise accept a little noise |
| Your developer or agency | They work from their own network and test constantly | Developer traffic filter (below) |
| Multiple branches | Several addresses to maintain | One rule per site with OR conditions; review twice a year |
The opt-out browser add-on
Google publishes the Google Analytics Opt-out Browser Add-on for Chrome, Safari, Firefox and Edge. Installed on a staff member's browser, it stops that browser sending data to Google Analytics on any site. It's blunt but reliable for people who mostly use one laptop. The catch: it applies to every site they visit, and it doesn't help on phones.
Tag internal visits yourself
Google's internal traffic help page notes that you can also add the traffic_type parameter to events manually. In practice, a developer can set traffic_type to internal through Google Tag Manager or your site code when a condition is met, such as a staff member being logged in to the website's admin, or a cookie set by visiting a private URL once on each staff device. Your existing Internal Traffic filter then excludes those events too, wherever the person is.
Developer traffic
Data filters also come in a Developer traffic type, which, according to Google's data filter overview, removes activity from developers using debug mode. Ask whoever builds or maintains your site to test with debug mode on, and add this filter, so their testing doesn't pollute your reports.
FAQ
Will the filter remove my past visits?
No. Google describes an active filter as applying to incoming data, so the visits your team made before you switched it on stay in your reports.
Can I see how much traffic was excluded?
Only while the filter is in Testing, through the Test data filter name dimension. Once active, excluded data is gone.
Does this work for our mobile app?
No. Google's help page says you can't filter out internal traffic from app users with this IP method.
Should I hide internal traffic with a report filter instead?
If you're unsure or want to keep the data, yes. Google points to report filters for hiding data from reports without deleting it. The trade-off is that you have to apply them each time.
If your team works from three places and the numbers still look inflated, we can help you pick the method that fits how you actually work.