Most Matomo vs GA4 round-ups pretend search is a channel in the on-site product. It is not. Google Search Console is a separate ledger: impressions, clicks, CTR and position. On-site analytics is a second ledger: pageviews, visitors, events, goals. Pick a web analytics tool without a Search Console plan and you have a half-stack.
What each product is for
| GA4 | Matomo | SiteLine | |
|---|---|---|---|
| On-site model | Events, cookies by default | Pageviews + events; self-host or cloud | Cookieless pageviews and events |
| Unique visitors | Client ID / User ID | Cookie or cookieless config | Daily hash of truncated IP + UA + salt |
| Search Console | Linked charts, no warehouse | Optional plugin; Google's limits apply | 16-month backfill, kept while subscribed |
| History you control | 2–14 months UI; BigQuery extra | As long as you store it | GSC past 16 months while you subscribe |
| Agent access | None native | None native | MCP for GSC and analytics |
| Sites | Property sprawl | You run the stack | Unlimited sites on every plan |
| Price shape | Free product, paid expertise | Hosting or cloud licence | $4.99 / $19.99 / $99.99 |
GA4 is good at event taxonomies, ads stitching and BigQuery. It is a poor Search Console archive. Linking a property surfaces a few GSC charts. It does not import daily query and page rows, keep days after Google drops them, or stop you averaging a position that is already impression-weighted.
Matomo is the privacy workhorse. Self-hosting keeps on-site history; cookieless mode exists. You still need a Search Console strategy: CSVs, the API, or a plugin that reads the same 16-month window. The 1,000-row UI cap is still Google's. Matomo does not turn GSC into a warehouse with site totals separated from dimension tables.
SiteLine is the other shape: Search Console as a first-class dataset, cookieless analytics beside it, MCP so an agent can query both. It is not Matomo for session recordings, and it is not GA4 for ads and BigQuery. If those are the job, keep those tools.
The numbers that do not transfer
A GA4 "Organic Search" session is not a Search Console click. Neither is a Matomo visit with a Google referrer. A GSC click is a SERP click; a session is a load of your site. Between them: Discover and News, bounces before the script, ad blockers and GA4 consent banners, branded visits that never appear as queries.
Read organic traffic vs Search Console and Search Console clicks vs analytics sessions before you reconcile a dashboard.
Two more traps that survive every tool:
Do not average position or CTR. Position on a GSC row is already an impressions-weighted mean for that slice. CTR is clicks ÷ impressions. AVG(position) across days or queries is wrong. AVG(ctr) is wrong. Re-weight position with impressions; recompute CTR from the sums.
Do not sum the query table and call it the site. Google anonymises rare queries, so query totals run below site totals. SiteLine also caps 25,000 rows per day per report. Headline clicks and impressions come from site totals, not from adding up the dimension tables.
Cookies, consent, and what you actually install
GA4's default is a first-party cookie plus a consent banner in the UK, EU and anywhere GDPR is treated as real. Matomo can run with cookies or without; cookieless is a setting, not the default story. SiteLine's tracker is cookieless: unique visitors are a server-side daily hash. No analytics cookie, no cross-site identity. Install: script docs and privacy model.
Search Console does not use your cookies. Combining GSC with consent-gated GA4 means the on-site side is a subset of people who clicked. Combining it with cookieless analytics shrinks that filter, but the gap remains: GSC lags about two days, analytics is same-day, and a click is not a pageview.
Search Console: the part the usual comparison skips
Google's Search Console interface is a look, not an archive.
- About 16 months, then each day disappears.
- About 1,000 rows in the UI and CSV export.
- About two days of publishing lag, with later revisions.
- No way for an agent to query it.
SiteLine connects with webmasters.readonly, backfills those 16 months, re-imports the last 7 days every night, and keeps the history while you subscribe. Query, page, query+page, country, device, search appearance — up to 25,000 rows per day per report. Site totals live in their own table so a long-tail query report cannot pretend to be the site.
Matomo-plus-a-plugin and GA4-plus-a-link do not do that. If Search Console is how you decide what to write and what to fix, the on-site tool is the second half, not the first.
When to keep Matomo or GA4 anyway
Keep GA4 if you live in Google Ads, need BigQuery, or already have an event schema you will not rebuild. Keep Matomo if you need session replay, tag manager, or data that never leaves your VPC. Add SiteLine for Search Console history past 16 months, cookieless on-site numbers next to it, and MCP access.
Plans are Starter $4.99, Growth $19.99, Scale $99.99. Unlimited Search Console sites and unlimited analytics domains on every tier; you pay for billable events, not properties. Quotas are in /docs/billing. Create an account at /register.
The useful question is whether search data and on-site data will still be in the same conversation in 18 months.
FAQ
Does SiteLine replace Matomo or GA4?
No. It replaces the awkward middle: CSV dumps from Search Console, a 16-month ceiling, and an on-site tool that cannot see queries. Keep Matomo or GA4 if you need their specialised features. Use SiteLine for GSC plus cookieless analytics.
Can I average GA4 organic CTR with Search Console CTR?
You should not average either CTR, and you should not mix the two. Search Console CTR is clicks ÷ impressions on Google. GA4 has no impressions. If you need a blended figure, say so in the footnote and compute it from sums, never from AVG(ctr).
Does Matomo's Search Console plugin keep data after 16 months?
It can store what you imported, if you configured it that way. It cannot fetch days Google has already dropped. SiteLine backfills the 16 months Google still holds, then keeps every later day for as long as you subscribe.