Nobody Has Logged Into VWO In 30 Days

A 30-day login gap on your primary VWO seat is the clearest signal that your CRO stack is paying rent on insights nobody reads. Here's the pre-renewal audit that turns that signal into a decision.
Quick answer
If your seat-license report shows 30+ days since the last login for VWO's primary user, treat it as a consolidation trigger — not a fluke. Before renewal, pull the same login report from GA4 and Hotjar, confirm whether one power user is masking wider dormancy, and use the 60-day pre-renewal window to either right-size the plan or migrate the workflow into a single tool.
VWO 30-day dormancy as a consolidation trigger
When the VWO seat-license report shows the primary user hasn't logged in for 30+ days, the tool is paying rent on insights nobody reads.
A 30-day login gap on the seat that's supposed to be driving your experimentation program is the earliest defensible signal that a CRO tool has slipped from active to ornamental. It doesn't automatically mean cancel — a single power user might be running tests headlessly, or the team might be in a reporting-only phase — but it does mean the renewal cannot be a rubber-stamp.
The operational move is to convert that 30-day flag into a structured pre-renewal audit across every seated tool in the stack: GA4, Hotjar, VWO, Optimizely. You're looking for the pattern where paid seats, insight consumption, and test velocity have all decoupled.
Every VWO plan sold to a mid-market store includes a usage dashboard that most admins never open. The seat-license view lists each user, their role, and the timestamp of their last login. When that timestamp on your named primary user drifts past 30 days, something in the workflow has already broken — you just haven't billed yourself for it yet.
The reason this matters more for CRO tools than for, say, your email platform: experimentation tools are consumption-heavy. If nobody's logging in, nobody's reading the reports, and no reports means no shipped tests. The cost per shipped test quietly approaches your entire annual license fee.
Why the 30-day gap happens in the first place
The most common cause on a Shopify or WooCommerce store is a team transition. The CRO specialist who onboarded VWO left, and their replacement defaulted to GA4 explorations because that's what they used at their previous role. The VWO seat stays paid, the login clock stays paused.
The second cause is a mid-year strategic pivot — a peak-season code freeze, a replatform, a rebrand — that pauses experimentation for a quarter. Testing programs rarely restart on schedule. What was meant to be a six-week freeze becomes a five-month coma, and the seat-license report is the only place that records it.
The auto-renewal trap
Most annual VWO contracts auto-renew 30 days before the anniversary date. If you notice the 30-day dormancy on day 25 before renewal, you've already missed the non-renewal window. Set a calendar alert for the 90-day mark, not the 30-day mark.
How to audit login activity before renewal
Start with a same-day pull across all three tools. In VWO, go to Account Settings → Users & Roles → export the CSV with last-login column. In Hotjar, Organization Settings → Team → the members list shows last active date. In GA4, Admin → Account Access Management shows last-seen data for each user, though it's less granular than the other two.
Cross-reference the three CSVs against your current org chart. The output you want is a single table: user, tool, role, last login, current employment status. This is the core deliverable of running a seat-license login audit across GA4, Hotjar, and VWO before renewal — a single defensible artifact you can send to finance.
Two rows in that table cause 80% of the waste: seats belonging to ex-employees or ex-agencies who were never offboarded, and seats belonging to current employees who haven't logged in for 60+ days. The first category is pure ghost seats; the second is the actual dormancy signal.
Dormancy thresholds: 30, 60, and 90 days
Interpreting last-login gaps across CRO tools before renewal
| Days since last login | Signal strength | Recommended action | Renewal implication |
|---|---|---|---|
| 0-14 days | Active | None — tool is in use | Standard renewal |
| 15-29 days | Cooling | Ask the seat holder what they're working on | Renew, flag for next quarter review |
| 30-59 days | Dormant | Trigger the pre-renewal audit | Consider downgrading plan tier |
| 60-89 days | Idle | Interview the team; check for headless usage | Serious consolidation candidate |
| 90+ days | Abandoned | Assume no active workflow depends on it | Do not renew without a written business case |
The 30-day threshold is the earliest defensible flag, not the point of no return. Understanding what counts as a dormant seat across the 30, 60, and 90-day thresholds is what separates a proportionate response from an over-reaction — a 32-day gap over the holidays is different from a 74-day gap during a live sale season.
The one power-user exception
Before you write the non-renewal memo, check for the single-power-user pattern: one contractor or in-house specialist is running the entire test roadmap from one seat, and everyone else's dormancy is expected. The single VWO seat is load-bearing even though the dashboard looks empty.
The tell: shipped tests in the last 60 days is greater than zero, and revenue-attributed wins are landing in the monthly report, but only one login timestamp is recent. That's not dormancy — that's a lean, healthy program. Cancelling here would be a mistake. Reading the usage dashboard's zero-tests-in-60-days number is what disambiguates the two cases.
Turning the audit into a decision
Once the CSV is done, the decision reduces to three options: renew as-is, downgrade the plan tier, or non-renew and migrate. If the audit shows genuine dormancy across seats and zero shipped tests in 60 days, non-renewal is the honest answer — and the 60-day window before auto-renew is your only clean opportunity to execute it.
Package the finding as a one-page dormancy renewal memo for your CFO: seat-count, last-login evidence, shipped-test count, license cost, and a proposed action. Finance will approve a non-renewal with evidence far faster than they'll approve a new tool purchase without one. This is the moment to decide when to consolidate a fragmented CRO stack — a decoupled, dormant tool is the clearest case for merging tracking, heatmaps, and experimentation into a single lightweight snippet.
Frequently asked questions
No — 30 days is a trigger to audit, not a trigger to cancel. Use it as the earliest point at which you start the pre-renewal review. The cancellation decision needs corroborating evidence: zero shipped tests, no active reports being consumed, and no single power user quietly running the program.
Account Settings → Users & Roles. The default view shows each seat with a last-active timestamp. Export as CSV so you can sort by date and cross-reference against your org chart. The same location lets you deactivate ghost seats belonging to ex-employees.
That's why the 30-day flag is a review trigger and not an automatic cancel. If shipped-test count is healthy over the last 60-90 days and only the login timestamp has drifted, treat it as expected variance and re-check at day 60.
Hotjar is consumption-only — dormancy means nobody's watching recordings or reading heatmaps. VWO is consumption plus production — dormancy means neither reports nor tests are happening. A dormant Hotjar seat is easier to cancel because there's no in-flight test that would break on non-renewal.
A ghost seat is a paid license belonging to someone who's no longer at your company — a former employee or an ex-agency that was never offboarded. On a typical mid-market Hotjar or VWO account, ghost seats account for 15-25% of the total license spend. They're the easiest wins in the audit.
Yes, and it's often the right middle-ground when dormancy is real but one workflow still depends on the tool. Move from Growth to Starter, drop the seat count to the actual active users, and re-audit at the next renewal. Downgrading is usually available inside the 60-day window even when full non-renewal isn't.
GA4 login activity is a companion signal — if nobody's logging into VWO but also nobody's opening the GA4 explorations that would inform tests, you're not just tool-dormant, you're program-dormant. That's a bigger conversation than a single renewal.
Roughly, but Optimizely's usage dashboard exposes shipped-test count directly, which is a cleaner signal than login timestamps. Zero tests shipped in 60 days on Optimizely is a stronger dormancy indicator than 30 days without a login on VWO.
Most annual VWO contracts require 30 days written notice before the anniversary date, but some enterprise agreements require 60 or even 90. Check your MSA before you plan the audit timing — the 60-day window is a safe default, not a guaranteed one.
Running tests stop collecting data at contract end, and the container script needs to be removed from your Shopify theme or WooCommerce site to avoid a broken snippet. Plan the migration inside the 60-day window: export historical test results, decide which in-flight tests to conclude early, and stage the replacement snippet before cutover.
Get an AI expert review of your site
Paste your URL — Metricuno's AI runs the same heuristic checks a senior CRO consultant would, scoring your page and prioritising the fixes that'll move conversion fastest.