Signal Check
Analytics & SEO — AstroMatrix

Signal Check

This week's traffic report reads as growth. It isn't. Here's the real split, why it's not a new problem, and the two access decisions blocking a clean number.

PREPARED SEP 2026 SOURCES — GA4 (Sep audit), CLOUDFLARE STATUS — RECONCILIATION PENDING
01

The headline vs. the signal

Active users are up 37.6% week over week. Engagement is down at the same time. That combination doesn't happen on a site that's actually growing — it happens when the denominator gets diluted with traffic that isn't reading anything.

Blended headlinemisleading
+37.6%
28,495 vs 20,712 active users
Real organic signalstable
~flat w/w
US · UK · CA · AU · IN · DE
Avg. session duration−19.7%
90.7s
vs 113.0s prior week
Pages / session−6.1%
1.24
vs 1.32 prior week

These five figures are as reported — no GA4 API access in this pass to reconcile them against the Sep audit's numbers directly. Treated as directionally reliable, not exact, until §5 is resolved.

02

Where the swing actually lives

Breaking sessions out by channel and country isolates it precisely — two rows account for essentially the entire week-over-week gain, and both look nothing like a visitor:

Channel · CountrySessionsAvg. durationPages / sessionEngagement rate
flagged
Direct — Singapore
15,810 2.4s 0.99 —
flagged
Direct — China
2,110 0.68s — 1.7%
clean
Organic — US / UK / CA / AU / IN / DE
— 150–225s — 60%+

This is the same signature the Sep 2026 audit already identified and named — not a new problem, a larger wave of an old one. That audit found a landing page in the raw data reading /horoscopes/synastry in houses/juno in 8th house — literal spaces where every real URL on the site has hyphens. No browser produces that. It means a script is building URLs directly from the Category/Component fields in the database, not crawling rendered links — Singapore and China share the identical pattern at different scale.

It also explains why GA4 never caught it on its own: it presents as an ordinary Chrome/Windows desktop user-agent, not a known spider signature, so GA4's built-in bot filter — which only matches the IAB/ABC spider list — is blind to it. Only edge-level blocking actually stops it.

This has already been fought once

The audit's daily trend shows this traffic ramping from ~7,683 sessions in March to a 61,560 peak in June/July, then stepping down to an ~800–2,300/day baseline starting Aug 2–4 — coinciding with Cloudflare throttling going live. That throttling is capping it, not eliminating it. Whether this week's pasted numbers are a real reacceleration above that baseline, or just noise within it, is the open question in §5 — not something to guess at.

03

Immediate actions

Throttling is already live from the Sep audit — it capped this at an ~800–2,300/day baseline, it didn't eliminate it. The next moves are gated on two access decisions, not more Cloudflare tuning in the dark.

1

Re-establish GA4 read access

The service-account credential from the Sep audit was written to a session-scoped path and didn't persist — nothing currently has API access to this property. Every other item below depends on this being redone first.

GCP service account → ga-readonly, re-issued + stored durably
2

Pull the 30-day daily trend for Direct + SG/CN

Confirms whether this week is a real reacceleration above the post-throttle baseline or just noise within it. That answer decides whether anything below is urgent.

GA4 — once access above exists
3

If reaccelerating: tighten by ASN, not geo

The traffic presents as an ordinary Chrome/Windows user-agent, so generic Bot Fight Mode heuristics are unlikely to be why the baseline is non-zero. Check Security Analytics for the actual ASN behind it — a targeted WAF rule won't catch real visitors from Singapore/China the way a geo-block would.

Cloudflare → Security → Analytics
04

The reporting engine

The 20–50% growth target only means something if it's measured against a number that can't be padded by bot noise. That starts with the baseline, then a fixed cadence of reports that would have caught this week's swing on its own.

Baseline

Set the target against this week's clean organic figure — the US/UK/CA/AU/IN/DE segment above — not the blended total. That's the only number in this report that wasn't touched by the bot wave.

Standing cadence

Weekly

  • Search performanceGSC clicks / impressions / CTR / position, clean-country split
  • Engaged sessions & conversionsGA4, app-download goal, bot segment excluded
  • Indexation coverageGSC Coverage — indexed vs. excluded vs. errors, tracked against the ~13k-page total
  • Bot traffic trendCloudflare Analytics — catches the next wave in days, not a week

Monthly

  • Rank trackingFixed query set from the competitor research pass
  • Content-gap rescanRe-check the ranking set (biddytarot, astro-seek, astrology.com, etc.)
  • Sitemap healthMalformed-URL check — generated at this scale, worth re-verifying

What's already in place

GA4 pageviews
Live, tagged sitewide — needs the bot-exclusion segment from §3
have
GA4 API access
Credential from the Sep audit didn't persist — nothing can query this property right now
re-issue
Conversion events
outbound_click + app_cta_click written this week — uncommitted, not deployed, no key event marked in GA4 Admin yet
not deployed
Search Console
Verification for this domain couldn't be confirmed from the codebase
confirm
Cloudflare Analytics
Already fronting the site and already throttling this exact traffic — no new setup, just a standing check
have
Rank tracker
Nothing in place yet for the monthly query-set check
needed
05

Open questions

Three decisions, none of them code — nothing further in this report should be acted on until these are resolved.

A

Re-issue and durably store GA4 API access

Without this, §1's numbers stay unreconciled, §2's reacceleration question stays unanswered, and the weekly cadence in §4 can't run at all. This is the one blocker everything else sits behind.

B

Deploy the conversion tracking, or hold it?

outbound_click and app_cta_click are written but sitting uncommitted in a working tree — nothing ships without a decision to commit, push, and mark app_cta_click as a GA4 key event.

C

Is Search Console actually verified for astromatrix.org?

Half of the weekly cadence in §4 depends on it, and it's the one piece of this plan that can't be checked from the codebase — it has to be confirmed directly in Search Console.