If your WordPress site still loads a tracking code that starts with UA-, that code has not delivered a single visit to Universal Analytics since mid-2023. Google retired Universal Analytics in two stages, and its replacement, Google Analytics 4 (GA4), is now simply called Google Analytics. The question is no longer whether to migrate to GA4. It is whether your GA4 property was set up well enough to trust.
This guide covers the full Universal Analytics to GA4 picture as it stands today: what happened to your old data, how to check which tag your site really runs, a clean GA4 setup through Google Tag Manager, and the settings most migrations skip. It is written for people who run WordPress sites, but every step works on any website.
The short version:
- Standard Universal Analytics properties stopped processing data on July 1, 2023, and Google removed access to every UA property and its data starting the week of July 1, 2024.
- Old UA reports cannot be recovered unless someone exported them before that date.
- A UA- ID in your page source today is a reason to audit your tracking, not proof that it works.
- In Google Tag Manager, the Google tag has replaced the old GA4 Configuration tag.
- New GA4 properties keep event data for Explorations for only 2 months until you change it to 14.
Reviewed by Claudio Pires, co-founder of Visualmodo. Last verified: September 2026, against the current Google Analytics and Google Tag Manager screens.
Table of contents
- What Happened to Universal Analytics and Your Old Data
- How to Check Whether Your Site Still Runs the Old UA Tracking Code
- Why a Proper GA4 Setup Still Matters
- Universal Analytics vs GA4: What Changed in Your Reports
- How to Set Up GA4 With Google Tag Manager
- Seven GA4 Settings Most Migrations Miss
- Tracking WooCommerce Sales in GA4
- Common GA4 Migration Mistakes and How to Spot Them
- Where to Start Today
- Quick Answers on Old UA Data, the Google Tag and GA4 Retention
What Happened to Universal Analytics and Your Old Data
Google announced the Universal Analytics sunset in March 2022 and carried it out over two years. Standard properties stopped processing hits on July 1, 2023. Paid Universal Analytics 360 properties received a one-time extension, and starting the week of July 1, 2024, Google removed interface and API access to every UA property and queued the data for deletion. The dates below come from Google’s official notice that GA4 has replaced Universal Analytics, which is worth bookmarking if a client or manager asks where the old reports went.
| Date | What changed |
|---|---|
| March 2023 | Google started creating GA4 properties automatically for UA properties that had not migrated, often reusing the existing site tag. |
| July 1, 2023 | Standard Universal Analytics properties stopped processing new data. |
| Early March 2024 | Google switched off the remaining Universal Analytics 360 features, including the option to create new UA properties. |
| Week of July 1, 2024 | UA 360 processing ended, and Google removed interface and API access to all UA properties and queued their data for deletion. |
The practical consequence is simple. If nobody exported your UA reports before July 2024, whether as CSV files, to Google Sheets or, for 360 customers, to BigQuery, that history is gone and Google cannot restore it. Your usable history now starts on the day GA4 began collecting data on your site, which is one more reason to confirm that it actually is.
How to Check Whether Your Site Still Runs the Old UA Tracking Code
Three IDs tell you almost everything. A UA tracking code looks like UA-123456-1 and belongs to the retired Universal Analytics. A GA4 Measurement ID looks like G-XXXXXXXXXX. A Google Tag Manager container ID looks like GTM-XXXXXXX and means your tags are managed inside Tag Manager instead of being pasted into the theme.
- Open your homepage, view the page source (Ctrl+U on Windows, Cmd+Option+U on a Mac) and search for UA-, G-, GTM-, analytics.js and gtag.
- Find where each ID comes from: a tracking code field in your theme settings, a header and footer scripts plugin, an analytics plugin, a child theme’s header.php file or your Tag Manager container.
- Load the site through Google Tag Assistant (tagassistant.google.com) to see which tags actually fire, and how many times each one fires.
- Open the Realtime report in GA4 and browse your site in another tab. If your visit never appears, data is not reaching the property.
One trap is worth knowing about. When Google created GA4 properties automatically in 2023, many of them reused the existing UA code through a feature called connected site tags. On those sites GA4 may still receive data even though the page source only shows a UA- ID. It works, but Google recommends replacing it with the Google tag, because legacy tags can produce inconsistent reports and block newer features such as enhanced measurement events. If that describes your site, treat this guide as a rebuild rather than a check-up.
On WordPress, the usual sources of leftover UA code are old analytics plugins and tracking code fields in theme settings. If a plugin added the tag, update it to a version that supports GA4 or switch to one of these free Google Analytics plugins for WordPress that output the current Google tag. Whatever you choose, never run a plugin tag and a Tag Manager tag for the same property at once, or every page view will be counted twice.
Where Old UA Code Hides on WordPress Sites
If the page source still shows a UA- ID after you have checked the obvious places, work through this list. These are the spots where leftover Universal Analytics code usually survives a migration.
- Theme settings. Many themes released before 2023 include a field for tracking or header code in their options panel or the Customizer. A snippet pasted there years ago keeps printing on every page.
- Child theme files. Check header.php and functions.php in your child theme for a hard-coded analytics.js or gtag snippet, including code attached to the wp_head hook.
- Must-use plugins. Code in wp-content/mu-plugins loads on every request and sits in its own Must-Use tab, away from the main plugin list, so it is easy to forget.
- Script manager plugins. Header and footer plugins such as WPCode store snippets in the database. Open their snippet list and look for UA- IDs.
- Analytics plugins. A plugin connected to a UA property years ago may still output that ID. Reconnect it to your GA4 property or remove it.
- Tag Manager containers. Look for paused or forgotten Universal Analytics tags and delete them.
- Page cache and CDN. After you remove the code, purge your caching plugin and CDN. Otherwise visitors, and your own page source check, keep seeing the old HTML.
On sites with shell access, WP-CLI can do the searching for you. Running wp db search “UA-” from the site root lists every table and row that still contains the string. Review each match, because the text can also appear in ordinary content.
Why a Proper GA4 Setup Still Matters
GA4 is no longer an upgrade you can postpone; it is the only version of Google Analytics. But a property that is merely installed and one that is set up properly produce very different data, and the gap shows up every time someone uses a report to make a decision. Here is what a well-configured property gives you that Universal Analytics could not:
- An event-based model. Every interaction, from a page view to a scroll or a file download, is an event with parameters, so a website and an app can report into one property.
- Privacy by default. GA4 does not log or store IP addresses, and it works with consent mode to model part of the data lost when visitors decline cookies.
- Integrations that used to cost money. Integrations that used to cost money. Standard properties can export raw event data to BigQuery, a feature that required a paid 360 license in Universal Analytics. Daily exports on standard properties are capped at 1 million events. A Search Console link also brings organic search queries into your reports.
- A growing planning toolkit. Google keeps building on GA4, with features such as cross-channel budgeting and customizable dashboards rolling out in 2026. All of them depend on clean key events and correct campaign data.
GA4 also has real limits, and it is better to know them before you trust a report. Explorations keep event and user data for 14 months at most on standard properties. Reports can hide small numbers behind data thresholds when Google signals or demographics are involved. The interface also takes time to learn. Some site owners pair GA4 with a privacy-focused tool such as Matomo or Plausible for simple traffic counts, which is a reasonable choice. If you run Google Ads or rely on Search Console data, though, GA4 remains the practical hub.
Universal Analytics vs GA4: What Changed in Your Reports
Most confusion after a GA4 migration comes from metrics that kept their name but changed their definition. Use this table to translate the Universal Analytics vs GA4 differences you will notice first.
| Concept | Universal Analytics | GA4 |
|---|---|---|
| Data model | Sessions made of hits (pageviews, events, transactions) | Events with parameters; sessions are built from events |
| Conversions | Goals, counted once per session | Key events, counted each time they happen by default |
| Bounce rate | Share of single-page sessions | Share of sessions that were not engaged (10 seconds or less by default, no key event and fewer than 2 page views) |
| Report setup | Views with their own filters | Data streams, data filters and comparisons, with no views |
| IP addresses | Masking was an opt-in setting (anonymizeIp) | Not logged or stored |
| Data retention | Long history in standard reports | Explorations limited to 2 or 14 months on standard properties; standard reports unaffected |
| Ecommerce | Enhanced Ecommerce actions | Recommended events such as view_item, add_to_cart and purchase |
| Channel grouping | Editable per view | Default channel group plus custom channel groups |
| Site tag | analytics.js or a UA gtag.js snippet | Google tag (gtag.js) with a G- Measurement ID |
Because of these changes, GA4 totals rarely match old UA numbers. Session counting, bot filtering and consent all work differently, so compare trends inside GA4 instead of trying to reconcile totals with archived UA exports.
How to Set Up GA4 With Google Tag Manager
Tag Manager is the most flexible way to run GA4, because future tracking, from form submissions to WooCommerce purchases, can be added without touching theme files. If you have not used it before, our Google Tag Manager guide explains how to create a container and add it to WordPress. Then follow these steps.
Step 1: Create the property and web data stream
In Google Analytics, open Admin, click Create and choose Property. Set the reporting time zone and currency carefully, because they decide how days and revenue are counted. Next, add a Web data stream with your site’s URL. The stream details show your Measurement ID (G-XXXXXXXXXX). Copy it.
Step 2: Review enhanced measurement
Enhanced measurement is switched on by default in every web data stream. It can record page views, scrolls, outbound clicks, site search, video engagement, file downloads and form interactions without extra tags. Leave it on, but open its settings: form interaction events can be noisy on sites with many forms, and site search must recognize your search parameter. WordPress uses s, which GA4 already detects.
Step 3: Add the Google tag in Tag Manager
In your Tag Manager workspace, create a new tag and choose Google tag. This template replaced the old GA4 Configuration tag in September 2023, so any tutorial that tells you to pick GA4 Configuration is out of date. Enter your Measurement ID as the Tag ID and set the trigger to Initialization – All Pages.
If you use a consent banner, its tag should fire on the Consent Initialization trigger so the default consent state is set before the Google tag loads.
Step 4: Remove the old tracking code
Delete the UA snippet from theme settings, scripts plugins and child theme files, and disable any plugin that injects its own Analytics tag. Two tags sending data to the same property is the most common reason for doubled page views and engagement rates close to 100 percent.
Step 5: Preview, verify and publish
Click Preview in Tag Manager, open your site through Tag Assistant and confirm that the Google tag fires once per page. In GA4, open DebugView (Admin, then Data display) to watch events arrive in real time. When everything looks right, publish the container with a descriptive version name such as “GA4 Google tag, UA code removed” so anyone can trace the change later.
Not ready for Tag Manager? Google’s Site Kit plugin can place the Google tag for you, which is enough for a blog or a brochure site. Move to Tag Manager when you need custom events or ecommerce tracking.
Seven GA4 Settings Most Migrations Miss
A basic install collects data. The settings below decide whether that data is still useful six months from now.
- Extend data retention. New properties set GA4 data retention for event data to 2 months, which limits Explorations to the last two months. Change both event data and user data retention to 14 months under Admin, Data collection and modification, Data retention. Expired data does not come back, so do this on day one.
- Mark your key events. Decide what counts as a result on your site, such as a contact form submission, a quote request, a newsletter signup or a purchase, and mark those events as key events. Google renamed conversions to key events in 2024, so older guides may still use the old term.
- Tag your campaigns. GA4 sorts traffic into channels using UTM parameters. Untagged newsletter and social links fall into Direct, Referral or Unassigned, which makes good campaigns look weak. This guide to tracking marketing campaigns in WordPress shows how to build consistent UTM links.
- Filter internal traffic. Define your office or home IP addresses as internal traffic in the data stream’s tag settings, then turn on the internal traffic data filter. Leave it in Testing mode for a few days first, because an active filter permanently excludes the data it matches.
- List unwanted referrals. On WooCommerce stores, shoppers returning from PayPal or a bank’s card verification page can appear as new referral sessions and take credit away from the real source. Add those domains under Configure tag settings, List unwanted referrals.
- Link Search Console and Google Ads. Under Admin, Product links, connect Search Console to see organic queries next to landing page behavior, and connect Google Ads so your key events can inform bidding.
- Set up consent properly. If you have visitors in the European Economic Area or the UK, Google requires consent signals for its advertising features. Pick a consent banner that supports Google consent mode; our comparison of free WordPress GDPR plugins is a good place to start.
One newer option is worth adding: Google Analytics now supports Include filters for hostnames, which accept data only from domains you approve and keep staging copies and spam hits out of your reports. Google notes the feature may not be available to every property yet, so check under Data filters.
Tracking WooCommerce Sales in GA4
Enhanced Ecommerce from Universal Analytics did not carry over. GA4 uses recommended ecommerce events such as view_item, add_to_cart, begin_checkout and purchase, and each one carries an items array with product details. For GA4 ecommerce tracking on WooCommerce, the practical route is a plugin that pushes those events into the data layer, plus GA4 Event tags in Tag Manager that read them. The free Google Tag Manager for WordPress plugin (GTM4WP), for example, can output the WooCommerce data layer in the GA4 format.
Whatever tool you use, test one real order before you trust the numbers. The purchase event should fire once, on the order confirmation page, with a transaction_id, value and currency that match the WooCommerce order. Always send transaction_id, because Google Analytics deduplicates purchase events that share a transaction ID, which stops a reloaded thank-you page from counting the same order twice. Expect GA4 revenue to sit somewhat below WooCommerce totals, since ad blockers and declined consent remove some orders from analytics.
Common GA4 Migration Mistakes and How to Spot Them
Most GA4 migration mistakes show up as strange patterns in reports long before anyone checks the setup. If you see one of these symptoms, start with the likely cause.
| What you see | Likely cause | What to do |
|---|---|---|
| Doubled page views and an engagement rate near 100 percent | Two tags sending to the same property | Keep one tag source and remove the other |
| Sharp rise in Direct or Unassigned traffic | Untagged campaign links, redirects that strip UTM parameters, or declined consent | Tag links, test redirects and review the consent setup |
| PayPal or a bank listed as a top referrer | Checkout redirects not excluded | Add those domains to unwanted referrals |
| Explorations stop two months back | Default data retention | Switch event and user retention to 14 months |
| No visits in Realtime | Wrong Measurement ID, unpublished container, or tags blocked before consent | Check Tag Assistant, publish the container and test the banner |
| Purchases missing or duplicated | Trigger on the wrong page or no transaction_id | Fire purchase only on the confirmation page with a unique transaction_id |
Where to Start Today
If you only do three things after reading this, confirm which tag your site loads right now, replace any UA code with a single Google tag, and extend data retention to 14 months. Then spend an hour on key events and campaign tagging, because those two decide whether GA4 answers business questions or only counts visits.
Quick Answers on Old UA Data, the Google Tag and GA4 Retention
Only if it was exported before July 2024. Google removed access to every Universal Analytics property starting the week of July 1, 2024, and deleted the data. Earlier exports to CSV, Google Sheets or BigQuery (for 360 customers) are the only copies left.
Not in Universal Analytics, which stopped processing standard property data on July 1, 2023. Some sites still send data to a GA4 property that Google created automatically and connected to the old tag, so check the GA4 Realtime report. In both cases, replace the UA code with the Google tag.
Google replaced it with the Google tag in September 2023 and converted existing configuration tags automatically. For a new setup, create a Google tag, enter your G- Measurement ID as the Tag ID, and use GA4 Event tags for custom events.
New GA4 properties keep event data for Explorations for 2 months by default. Change event and user data retention to 14 months under Admin, Data collection and modification, Data retention. Standard reports are not affected, and data that has already expired cannot be restored.
No. The anonymizeIp setting belonged to Universal Analytics. Google states that GA4 does not log or store IP addresses, so there is nothing to switch on. You still need a valid consent setup for visitors covered by privacy laws such as the GDPR.
Rarely. GA4 defines sessions, bounce rate and conversions differently, and declined consent removes some visitors from the data. Compare trends within GA4 instead of trying to reconcile totals with archived UA exports.
No. A plugin such as Site Kit, or the Google tag added to your theme header, is enough for basic reporting. Tag Manager becomes worth the setup when you need custom events, ecommerce tracking or several marketing tags managed in one place.