Methodology & sources.
Every quantified claim on the marketing site links back to the method that produced it. This page documents the sample populations, formulas, and caveats behind each figure so you can decide for yourself how seriously to take it.
The "10,000 US SMB websites" + "64/100 median health score" figures
Source population: a snapshot of 1,149 randomly selected US SMB sites pulled from a public Inc. 5000-style operator list. The headline rounds to "~10,000" because the rule engine has run across that broader universe over the lifetime of the product, but the published Silent Traffic Killers report and the live State of SMB SEO dashboard both compute the median against the 1,149 freshly-scanned snapshot.
Scan method: each site was crawled via its sitemap (max 200 URLs) and evaluated against the same 50-check scanner (39 SEO + 11 AEO) that runs daily on customer projects. The 64/100 median figure reflects the historical SEO core only — AEO scoring was added after the 10,000-site research run, and the public dashboards report it separately as it backfills. No URL filtering or curation beyond the per-scan cap.
Health score formula: max(0, 100 − critical×15 − warning×5 − info×1) per page, then aggregated to the site median. Implementation: backend/app/services/anon_audit_service.py:compute_score.
Where to verify: the Silent Traffic Killers report shows the score histogram, rule prevalence, and percentile breakdown. The State of SMB SEO dashboard re-runs the aggregation daily.
The "150 client posts a month at $1.66 each" Agency-tier figure
Formula: $249 / 150 = $1.66. The Agency tier costs $249/mo and includes 150 AI-generated posts/mo. The "$1.66 each" number is the simple division, not an amortization or attribution model.
What's not included: CMS hosting, domain costs, your own time to review and approve content before publishing, custom-image overage, and any platform fees on the publishing side.
Where to verify: the Agencies page has an interactive ROI calculator that lets you plug in your actual client + cadence + writer cost.
The "$5K/mo writer retainer" segment dossier figure
Reference range: $5,000/mo represents a midpoint for a contract content writer or boutique content shop producing 8–15 long-form posts per month for a B2B SaaS startup. Lower-cost arrangements exist (offshore, junior, AI-assisted) and higher-cost arrangements exist (senior in-house, major agencies). It is not a survey average — it is a segment reference figure used for positioning the one-person marketing team dossier.
How to read it: the dossier is illustrative — the actual savings vs. VectraSEO depend on your current spend and post volume. The Agencies ROI calculator uses your real numbers.
The "50 checks" site monitor figure
Source: the canonical rule list lives in backend/app/services/rules/__init__.py as DEFAULT_RULES. It currently registers 50 checks — 39 SEO rules (R01–R39) plus 11 AEO readiness checks (R40–R50) defined in backend/app/services/rules/aeo.py. Each implements a Rule interface with an evaluate(fetch_result) method; site-level checks can also implement evaluate_batch(results).
Visible inventory: the homepage Ruleset section enumerates all 50 by ID with one-line descriptions, split into the 24-rule SEO core, the 15-rule Lighthouse-inspired HTML/accessibility tier (R25–R39), and the 11-check answer-engine tier (R40–R50). The docs describe the behaviour and severity per rule. SEO health and AEO readiness scores are computed independently — the homepage and this page both update from the same source list.
The "Google's actual indexing verdict" page-indexing panel
Source: Google's URL Inspection API (part of the Search Console API). For each URL on a project's sitemap, VectraSEO records Google's verdict, coverageState, indexingState, userCanonical, googleCanonical, last-crawl time, and robotsTxtState. We surface what Google decided, not what a third-party crawler guessed.
Method: on the same daily cadence as the rest of the GSC refresh, the worker inspects up to 200 URLs per project (within Google's published 2,000/day quota), buckets each into one of 13 indexing states (Indexed, Alternate page with proper canonical, Duplicate without user canonical, Duplicate where Google chose a different canonical, Crawled-not-indexed, Discovered-not-indexed, Excluded by noindex, Redirect, Soft 404, 404, Server error, Blocked by robots.txt, Other), and writes daily rollups so the sparkline trend builds up over time.
Where to verify: after connecting Search Console, the panel renders on /projects/{id}/search with example URLs and a "Validate fix" button that re-inspects on demand. Implementation lives in backend/app/services/gsc_service.py (run_index_refresh, _bucket_from_inspection) and the read endpoint is GET /api/v1/projects/{id}/search/index-coverage. The same FAIL-bucket rows are exposed to coding agents via GET /api/v1/projects/{id}/agent/recommendations under rule_id=gsc_index_*.
"30-day no-card trial · cancel anytime · keep everything we generated"
Trial mechanics: sign-up is via magic link with no payment information collected. After 30 days, the account remains active in read-only mode unless you select a paid plan. All generated posts, images, monitor history, and competitor data remain in your account.
30-day money-back guarantee: applies to the first paid invoice after the trial, monthly or annual. Request it within 30 days of that invoice and receive a refund. Cancellation is one-click from the billing dashboard at any time.
Where to verify: the Terms page documents the trial, billing, and refund mechanics in full.
The "99.98% uptime" status-strip figure
Measurement: the homepage status strip and /integrations top strip display a rolling 30-day uptime figure for the public API surface (health checks at /health and /health/ready). The number is sourced from the same monitoring endpoint that fronts our internal alerting.
What it covers: API and worker availability. It does not cover individual third-party CMS or Gemini outages, which are tracked separately and surfaced as per-job error states inside the dashboard.
This page is updated when the underlying methodology changes. Most recent revision: rule count moved to 50 with the addition of the llms.txt AEO readiness check; the 10,000-site median is still computed against the historical SEO core because AEO scoring postdates that research run.