Installing a WordPress analytics plugin takes two minutes. What stops people is the four years of history sitting in Google Analytics that the new plugin knows nothing about.
So you run both. The plugin tracks from today, Google keeps the past, and every time you want to know whether a post is doing better than it did last spring you go back to the GA tab. A year later you’re still paying the tax you installed the plugin to avoid.
What Disappears When the Property Goes
Google has already deleted a decade of people’s analytics once. Starting the week of July 1, 2024, Universal Analytics data went away: “You will not have access to any current or historical Universal Analytics data,” and “all data will be deleted.” Anyone who hadn’t exported by then lost it.
GA4 has its own clock. A free property gives you two choices for how long it keeps event-level data: two months, or fourteen. That’s the entire menu. Standard reports hold aggregated numbers for longer, but anything you’d build in Explorations stops at your retention window, and that window doesn’t stretch past fourteen months on a property you’re not paying for.
The blunter risk is the account itself. Delete the property, or let the Google login it hangs off go stale, and the history goes with it. It was never in your database to begin with.
Most WordPress Analytics Plugins Can’t Bring It With You
Burst Statistics says so in its own FAQ: “Historical data from other plugins can’t be imported, but you can run both side-by-side during a transition period.” Independent Analytics answers the question just as directly: “No, it is not possible to import stats from Google Analytics, Jetpack Stats, or other analytics tools at this time.”
Koko Analytics does import, and its list is long: Jetpack Stats, Plausible, Burst, Statify, WP Statistics, Independent Analytics, SlimStat. Google Analytics isn’t on it. I went through how those three compare in more detail separately.
Matomo can do it. There’s a Google Analytics Importer plugin on the Matomo marketplace and it works with Matomo for WordPress. If you want a full Matomo install running inside your site, that’s a real route, and it’s the heavier one.
Vireo Analytics reads GA4 directly, with nothing else to install. I wrote it, which you should factor in, and the importer is in the free version.
What Comes Across, and What Doesn’t
The import pulls five shapes out of the Analytics Data API and writes them into the same tables your own traffic goes into: daily pageviews and visitors, your pages, your referrers, countries, and browser, OS and device. Imported pages are matched back to post IDs, so a post’s history lines up with the post instead of sitting in a separate list of URLs.
What it doesn’t pull: sessions, bounce rate, events, conversions, user journeys, demographics. Those are GA4 shapes and Vireo has no table for them. If your reason for keeping GA4 is funnel analysis, an import won’t change your mind, and it shouldn’t. That’s a different question from whether GA4 is the right tool for a content site in the first place.
Setting Up the Key
This is the slow part, and it’s Google’s fault rather than WordPress’s. Vireo authenticates with a service account instead of OAuth, so there’s no redirect dance and nothing to re-authorize later. The cost is a detour through the Google Cloud Console.
- Create a project, or open one you already have.
- Under APIs and services, enable the Google Analytics Data API. The plain Analytics API is a different product and won’t work here. Both are listed, with near-identical names.
- Under IAM and admin, then Service accounts, create a service account. Its address ends in
.iam.gserviceaccount.comand you’ll need that address in a moment. - Open the service account, go to Keys, add a key, choose JSON. The file downloads once and Google won’t hand it to you again.
- Open Admin, then Property access management, and add the service account address with Viewer access. Grant it on the property, not on the account.
- Find your property ID under Admin, then Property details. It’s digits only. The G- string is your measurement ID and it isn’t the same thing.
Running the Import
Open the downloaded JSON in a text editor, copy all of it, braces included, and paste it into the key box on Vireo’s import screen. Add the property ID, set the range, and start. The range defaults to the last 365 days, and you can push it back as far as your property still holds data.
The import runs in fourteen-day chunks and walks backwards from the end of your range, so the most recent and most useful months land first. Close the tab halfway through and what already landed stays landed.
Imports are additive. Running the same dates twice adds the numbers twice, and there’s no undo. Vireo keeps a record of every range you’ve brought across and makes you tick a box before it will run an overlapping one, but the box exists because the mistake is easy to make. If a run stops partway, narrow the range to what’s missing rather than starting again from the beginning.
After It Finishes
Remove the saved key. It’s only needed while importing, and taking it out doesn’t touch the data that came across, so there’s no reason to leave a Google credential sitting in your options table.
Then set the dashboard to a range that predates the import and look at the shape of the line. You’ll usually see a step where GA4’s numbers end and your own tracking begins, in one direction or the other. That’s expected. GA4 counts users its way and drops traffic that declined consent, Vireo counts visitors its way and filters bots its way. The imported months are Google’s numbers copied faithfully, not a recount.
So an import gives you continuity rather than a clean audit trail. What it buys you is the ability to close the GA tab and not open it again, which was the point.

Leave a Reply