This post explains what working tracking means, how to check it by hand with free tools, which failures turn up most often, and how to keep checking after the site changes. It also covers what an automated scan such as the Tracking Health Check can confirm from your public pages and what only you can verify inside your own accounts.
What it means for tracking to be working
A tag being installed is only the first condition. Tracking works when the tag is present on every page that should have it, fires once per page view, fires on the right pages and nowhere else, records the events you care about with sensible values, and respects the visitor's consent choice. If any one of those fails, the numbers in your reports are wrong in a way that is hard to see from the reports themselves.
Take a lead form. The Google tag loads on every page, so page views look healthy. The thank you page fires a form submission event, so GA4 shows leads. Both can be true while the same event also fires when someone only opens the form page, which doubles your lead count and tells ad platforms to find more people who do nothing.
It helps to separate two questions. Does the browser send data to the right destination? You can test that on your own site in minutes. Does the destination record it correctly? Only the analytics or ad account can answer that. The manual checks below cover both.
Start with the browser developer tools network tab
Every analytics and pixel tag works by sending requests from the visitor's browser. Open your site in a fresh browser window, open the developer tools, switch to the Network tab, and reload the page. Filter the list by the words collect, gtag, facebook or fbevents. You are looking for requests going to Google Analytics and to Meta, and you should be able to count them.
Counting matters more than finding. One page view should produce one GA4 page_view request. Two identical requests mean the tag is installed twice, often once in the theme and once through a plugin or Tag Manager. If you see none, the tag is missing, blocked by your ad blocker (test in a clean profile with extensions off) or waiting for a consent choice. Click a request and read its payload. The measurement ID that starts with G- should match the property you report from, and the Meta pixel ID should match the one in your Events Manager.
Timing matters too. If tags load only after a long delay, a visitor who leaves quickly never gets counted, and a tag that fails to load looks identical to one that was never installed. Test one page of each type: home page, a service or product page, a blog post, the form page and the thank you page.
Use Tag Assistant as a Google tag checker
Google Tag Assistant is the free Google tag checker. You enter your site address and it opens the site in a session that reports which Google tags it sees, including the Google tag for GA4 and any Google Ads tags, and which Google Tag Manager container is loaded. It lists each tag, the page it fired on, and warnings such as a tag that did not send data.
If you use Tag Manager, its preview mode adds a tag manager debug view. It shows the order in which tags fired, which trigger fired them, and what values sat in the data layer at that moment. This is the fastest way to find out why a tag did not fire: you can see the trigger conditions and which ones failed. Test each important action once, such as submitting the form or clicking the phone number, and watch which tags run.
Tag Assistant shows that tags fired in your browser session. It does not prove the data reached a report, and it will not tell you whether the same event also arrives from somewhere else. Use it for presence and triggers, then move on to the account side.
Confirm events in GA4 with DebugView and Realtime
A short GA4 audit starts in two places inside the property. The Realtime report shows activity from the last half hour, so open your site in another window, click around, and see your own visit appear with its page titles and events. It is the simplest confirmation that data reaches the right property. If the visit appears in a different property than the one you report from, the measurement ID is wrong.
DebugView is the closer look. When debug mode is active for your browser, DebugView lists each event as it arrives, in order, with its parameters. Tag Assistant and Tag Manager preview can switch debug mode on for you. Use it to check that the event names match what you planned, that the form submission appears once and carries the values you expect, and that purchase events include a value and currency when you collect them.
Then confirm the event is marked as a key event, which is the current GA4 name for a conversion, or it will not count in conversion reports. Menus change between releases, so look in the admin area for the events list instead of following a fixed click path. Our GA4 setup guide for small business covers how to create and mark events properly, so this post stays with testing.
Test the Meta pixel with the Meta Pixel Helper and Test Events
The Meta Pixel Helper is a browser extension. On any page it shows an icon with the number of pixels found, and clicking it lists each pixel ID, the events it sent and any warnings. A green result means the pixel loaded and sent an event. Pay attention to the count: two pixels with the same ID on one page, or the same event listed twice, is a duplicate. A pixel that loads on the thank you page with no Purchase or Lead event is also worth noting.
The helper only shows the browser side. To see what Meta received, open Events Manager, choose your pixel and use the Test Events tool. Enter your site address, open the site from the link it provides, perform an action, and the event should appear in the test list within moments. The tool shows whether an event came from the browser pixel or from a server connection, and whether Meta could match it to a user. Events with missing parameters are flagged there.
If you also send events from a server, the same action may be counted twice unless both versions carry a shared event ID. Our Meta Conversions API guide explains deduplication. For this check, run one test lead and confirm Test Events shows a single merged event.
The failures that turn up most often
The most common failure is a tag installed twice. A developer pastes the Google tag into the theme, someone later adds it through Tag Manager, and an SEO plugin adds it a third time. Page views double or triple and bounce rate collapses. The network tab count catches this immediately. The cure is to keep one route for each tag and remove the others.
Next is the tag that vanishes. Changing a theme, switching page builders, or updating a plugin can silently drop code from the header. Checkout and landing page templates are the usual casualties because they often use a different layout. A related fault is the wrong measurement ID, left over from a test property or an old site, which sends data to a property nobody reads. For Google Ads conversion tracking, also confirm the conversion label and ID match the conversion action you bid on, since a mismatch records nothing.
Consent is the one people overlook. If a cookie banner is set up badly, tags may fire before the visitor chooses, which is a compliance risk, or never fire after they accept, which wastes data. Test both paths: reject all, then accept all, and watch the network tab each time. Then there is the conversion event on the wrong page. A form event wired to the form page instead of the thank you page counts every visitor who opens the form. Finally, check whether a pixel event and a server event describe the same action without a shared ID.
What a scan of your public pages can and cannot confirm
Checking every page by hand is slow, so an automated scan covers the part that is visible from outside. The Tracking Health Check loads your public pages and reports which analytics tags, Tag Manager containers and ad pixels appear in the page source, which pages have them, which repeat them, and which tags fail to load. It is fully automated and needs only your URL.
Its limits are the same as any outside view. It reads public pages only, and it never logs in to or reads your Google, GA4 or Meta accounts. That means it cannot confirm that an event arrives in your reports, cannot see your key event settings and cannot look at account-level consent configuration. It also cannot see server-side tracking, because that happens outside the browser. Pages behind a login or a payment step are out of reach as well. The honest reading of a clean report is that the tags look present and sensible on public pages, and that you still need the Test Events and DebugView checks to prove delivery.
Used that way, the scan and the manual tests complement each other. The scan finds the page where the tag is missing or doubled, and you use DebugView or Test Events to verify the one conversion that matters on that page. If you want to look at the wider site first, a Whole-Site Crawl lists every page it can reach, which gives you a list of templates to test. Dynamic Growth has a 7-day free trial with 1 credit, so you can see a report before deciding anything.
Keep checking after every site change
Tracking breaks when something else changes, so tie your checks to those moments: a theme or plugin update, a new landing page template, a checkout change, a consent banner update, a hosting move or a change of page builder. Run the same short list each time: one request per page view, right ID, right pages, key events firing once, consent paths. Note the date and what you saw, so the next change has a baseline.
Between changes, quiet breakage still happens, for example when a plugin updates itself. Recurring checks catch it sooner than a monthly report review will. Weekly Monitoring re-runs the Marketing Audit every 7 days on up to 5 websites and alerts you by email and in the dashboard, which covers the general health of those pages. For the full list of things worth watching, see our post on what to check when monitoring a website. Campaign links need their own discipline, and the UTM parameters guide covers that.
A concrete next step for this week: open your thank you page in a clean browser window with the Meta Pixel Helper on, and with the network tab filtered to collect. Submit a test enquiry, then confirm that exactly one GA4 event and one Meta event appear, and that both show in Realtime and Test Events. If either shows twice or not at all, you have found your first fix.
Frequently asked questions
How do I know if the Meta Pixel is working on my website?
Install the Meta Pixel Helper extension and load a page. It lists the pixel ID and each event sent, with warnings for problems. Then open Test Events in Events Manager, visit your site from the link it gives you, perform an action and confirm the event appears once.
How can I check whether Google Analytics 4 is collecting data?
Open your site in one window and the GA4 Realtime report in another. Your visit should appear within moments with page titles and events. For a closer look, use DebugView, which lists each event and its parameters as it arrives. Check that the property matches your measurement ID.
Why do I see two page views for every visit?
The tag is probably installed twice, for example in the theme and again through a plugin or Tag Manager. Open the browser network tab, reload the page and count the GA4 requests. Remove one of the installs so each tag loads through a single route.
Does Google Tag Assistant show whether conversions are recorded?
It shows which Google tags fired in your session and why, including Tag Manager triggers. It does not show whether a conversion reached your Google Ads or GA4 reports. Confirm that in the account itself, using Realtime, DebugView or the conversion status for your Google Ads conversion action.
Can an automated scan tell me if my tracking is correct?
A scan of public pages can show which tags and pixels load, on which pages, and whether any appear twice or fail. It cannot see inside your analytics or ad accounts, so it cannot confirm events arrive or that settings are right. Use it alongside manual tests.