# FAQ



Find answers to common questions about VitalSentinel.

## General [#general]

### What is VitalSentinel? [#what-is-vitalsentinel]

VitalSentinel is **your website's revenue insurance**. It tells you in hours – not weeks – when something breaks your visibility, traffic, or revenue, so you can fix the leak before it shows up in your numbers.

Our monitoring modules:

* **[RUM Monitoring](/features/rum-monitoring)** - Core Web Vitals, user engagement, and JavaScript errors from your visitors' browsers
* **[CrUX Monitoring](/features/crux-monitoring)** - Chrome User Experience Report data Google uses for ranking
* **[Synthetic Monitoring](/features/synthetic-monitoring)** - On-demand Lighthouse tests from a controlled environment
* **[Uptime Monitoring](/features/uptime-monitoring)** - Availability checks, SSL and domain expiration tracking
* **[Robots.txt Monitoring](/features/robots-txt-monitoring)** - Crawl directive validation and change detection
* **[Indexing Monitoring](/features/indexing-monitoring)** - URL inspection status via Google Search Console API
* **[Web Analytics](/features/web-analytics)** - Privacy-focused analytics with automatic e-commerce tracking
* **[Google Search Console](/features/google-search-console)** - Keyword rankings, search performance, and indexing insights
* **[Reports](/features/reports)** - Custom report templates that combine any of the above into stakeholder-ready snapshots

### What's the difference between VitalSentinel and a generic uptime/RUM tool? [#whats-the-difference-between-vitalsentinel-and-a-generic-uptimerum-tool]

Most tools cover one slice: uptime, or RUM, or rank tracking, or analytics. VitalSentinel collects all of them in one workspace and joins them at query time, so you can answer questions like "did this LCP regression cost me search clicks?" or "is the page that just lost rankings also the one with broken JavaScript?". The Correlations and Trends views in GSC are built specifically on top of that joined dataset.

### Who is VitalSentinel for? [#who-is-vitalsentinel-for]

* **Website Owners** - Get a clear picture of your website's health without needing deep technical expertise
* **Web Developers** - Access real user performance data and run on-demand Lighthouse tests to debug issues faster
* **SEO Professionals** - Track technical SEO health and web performance in one dashboard
* **Agencies** - Manage all your client websites from a single account with team collaboration and role-based access

### Is there a free plan? [#is-there-a-free-plan]

Yes! The free plan includes:

* 1 domain
* 25,000 RUM page views/month
* 100,000 analytics events/month
* 5 CrUX URLs, 3 Synthetic URLs (1 location – Google's Servers)
* 5-minute uptime checks
* Daily synthetic tests
* 6-month data retention

### Do I need a separate workspace per client, or can one workspace cover all of them? [#do-i-need-a-separate-workspace-per-client-or-can-one-workspace-cover-all-of-them]

Either works. One workspace can hold many domains and team members, and you can group domains for clients using [Domain Groups](/workspace/domain-groups). Use separate workspaces when clients need separate billing, isolated team access, or different plans per client. See [Managing Workspaces](/workspace/managing-workspaces#when-to-use-multiple-workspaces) for guidance.

### What languages and currencies are supported in the dashboard? [#what-languages-and-currencies-are-supported-in-the-dashboard]

The dashboard UI is in English. Currency is configured per-domain for the Web Analytics e-commerce display – set it on the domain edit page so revenue displays with the correct currency symbol. Billing currency is set during checkout and matches your account region in Stripe.

## Scripts & Installation [#scripts--installation]

### Do I need to install scripts? [#do-i-need-to-install-scripts]

Many monitoring features work immediately without any scripts:

* **[CrUX Monitoring](/features/crux-monitoring)** - Chrome User Experience Report data
* **[Synthetic Monitoring](/features/synthetic-monitoring)** - Lighthouse performance tests
* **[Uptime Monitoring](/features/uptime-monitoring)** - Availability checks
* **SSL Monitoring** - Certificate status and expiration
* **Domain Expiration Monitoring** - Registration expiry tracking
* **[Robots.txt Monitoring](/features/robots-txt-monitoring)** - Crawl directive validation
* **[Indexing Monitoring](/features/indexing-monitoring)** - URL inspection via Google Search Console API
* **[Google Search Console](/features/google-search-console)** - Search performance data (requires GSC connection)

Scripts are only needed for:

* **[RUM Monitoring](/features/rum-monitoring)** - Real user performance data from visitors' browsers ([installation guide](/installation/rum-script))
* **[Web Analytics](/features/web-analytics)** - Privacy-focused traffic analytics ([installation guide](/installation/analytics-script))

### Will the scripts slow down my website? [#will-the-scripts-slow-down-my-website]

No. Both scripts are:

* Lightweight (\~13KB gzipped each)
* Loaded asynchronously
* Non-blocking
* Optimized for performance

### Do the scripts use cookies? [#do-the-scripts-use-cookies]

By default, no cookies are used. If you set the Web Analytics script to `persistent` storage, it stores a visitor identifier in the browser's local storage, and also as a first-party cookie when you set `data-cookie-domain`. Both `session` and `persistent` store an identifier on the visitor's device, so you must obtain your visitors' consent before you enable either. See [Data & Privacy](/others/data-privacy).

### Are the scripts GDPR compliant? [#are-the-scripts-gdpr-compliant]

That depends on the storage mode you choose, your jurisdiction, and the rest of your tooling, so we describe what the scripts do rather than reach the conclusion for you.

In the default storage mode:

* No cookies
* No persistent identifiers
* No cross-site tracking

Visitor data is pseudonymous, not anonymous.

If you switch the Web Analytics script to `session` or `persistent` storage, an identifier is stored on the visitor's device and you must obtain valid consent before you enable that mode. See [Data & Privacy](/others/data-privacy).

### Can I install both scripts on the same site? [#can-i-install-both-scripts-on-the-same-site]

Yes – they're independent and intentionally split so you can opt into one without the other. Most sites install both: RUM for performance, Web Analytics for traffic. They can sit next to each other in `<head>` and don't conflict.

### Do the scripts work on staging/preview environments? [#do-the-scripts-work-on-stagingpreview-environments]

Yes, but only if the staging environment uses the production tracking ID. We recommend using a separate VitalSentinel domain for staging so staging traffic doesn't pollute production metrics. See [RUM Script Installation](/installation/rum-script) for the installation pattern.

### How do I exclude internal team traffic from analytics? [#how-do-i-exclude-internal-team-traffic-from-analytics]

The Web Analytics script supports `optOut()` for visitor-level exclusion. It applies to the current page load only and is not remembered between page loads, so your own code has to call `window.VitalSentinelAnalytics.optOut()` on every page load for the visitors you want to exclude. See [Data & Privacy](/others/data-privacy#opt-out-for-visitors) for the snippet.

### Why are page paths showing query strings I don't want? [#why-are-page-paths-showing-query-strings-i-dont-want]

By default, query parameters are preserved in the path. Add `data-filter-query-params="true"` to the RUM and Analytics script tags to strip them. UTM parameters are still captured separately for traffic-source attribution.

## Data & Privacy [#data--privacy]

### What data do you collect? [#what-data-do-you-collect]

**RUM Script (Real User Monitoring):**

* Core Web Vitals (LCP, CLS, INP, TTFB, FCP)
* Navigation timing and resource loading times
* JavaScript errors
* Session data (pseudonymous ID, page URLs, timestamps)
* Device data - browser, OS, and device type in every mode, worked out on our servers from information the browser sends with each request, plus the window size rounded to the nearest 50 pixels; screen size, pixel ratio, device memory, processor, touch capability, and connection speed only when the domain's RUM consent mode is set to Consent given
* Engagement metrics (scroll depth, time on page, click patterns)

**Web Analytics Script:**

* Page views, referring domain (hostname only), UTM parameters
* Traffic source classification
* Session data (pseudonymous ID, pages per session, duration)
* Device data - browser, OS, device type and browser language in every mode, worked out on our servers from information the browser sends with each request; screen size, pixel ratio, touch capability and connection type only in the `persistent` storage mode
* E-commerce events (product views, cart actions, purchases – no payment details)

### What data do you NOT collect? [#what-data-do-you-not-collect]

* Names, emails, or personal identifiers - our scripts do not read them from your pages or your forms
* IP addresses - used in memory to determine the visitor's country and to detect automated traffic and abuse, then discarded, not stored with your analytics data
* Passwords or sensitive form data
* Payment card information
* Health or financial data - our scripts do not read it from your pages or your forms
* Precise location - geography from the tracking scripts is country-level only, with no city and no state or province stored

That list is what our scripts go looking for. It is not what **your** site hands them: page paths, query strings, page titles, UTM values, and custom event properties are your own content, and we store what your site sends. Redaction is pattern-based, so it catches an email address or a card number but not a plain name or a search term. See [Data & Privacy](/others/data-privacy).

### Where is data stored? [#where-is-data-stored]

Data is stored securely in cloud infrastructure with:

* Encryption at rest and in transit
* Access controls and audit logging

For detailed privacy information, see [Data & Privacy](/others/data-privacy).

### How long is data retained? [#how-long-is-data-retained]

Depends on your plan:

* Free: 6 months
* Starter: 12 months
* Lite: 16 months
* Standard: 24 months
* Advanced: 24 months

### Can I delete my data? [#can-i-delete-my-data]

Yes. You can:

* Delete individual domains (removes all associated data)
* Cancel your workspace subscription (data deleted after grace period)
* Request full account deletion via support

## Monitoring [#monitoring]

### How often do uptime checks run? [#how-often-do-uptime-checks-run]

Minimum interval depends on your plan:

* Free/Starter/Lite/Standard: Every 5 minutes
* Advanced: Every 1 minute

### What is the difference between RUM and CrUX? [#what-is-the-difference-between-rum-and-crux]

**[RUM (Real User Monitoring)](/features/rum-monitoring):**

* Your tracking script
* All browsers
* Real-time data
* 100% of your visitors (adjustable)

**[CrUX (Chrome User Experience Report)](/features/crux-monitoring):**

* Google's data from Chrome users
* 28-day aggregates
* Updated weekly
* Used for search ranking

### What is Synthetic Monitoring? [#what-is-synthetic-monitoring]

[Synthetic Monitoring](/features/synthetic-monitoring) runs Lighthouse tests from a controlled environment. Unlike RUM, which measures real users, synthetic tests are consistent and reproducible.

### Why don't I have CrUX data? [#why-dont-i-have-crux-data]

CrUX requires:

* Significant Chrome traffic
* Publicly accessible pages
* Time to collect data (28 days)

Low-traffic pages may not have CrUX data.

### Why is my LCP different in RUM vs. CrUX vs. Synthetic? [#why-is-my-lcp-different-in-rum-vs-crux-vs-synthetic]

Each source measures a different population:

* **RUM** is your real visitors across every browser, device, and country, in real time.
* **CrUX** is only Chrome users who opted into Chrome usage statistics, aggregated over the past 28 days.
* **Synthetic** is one Lighthouse run from a fixed device profile and network throttle.

It's normal for these numbers to diverge. Use RUM and CrUX for "what users are experiencing", and Synthetic for "what changes when I deploy something".

### Why does my Synthetic score change run-to-run when nothing changed? [#why-does-my-synthetic-score-change-run-to-run-when-nothing-changed]

Lighthouse scores naturally vary 3–5 points between runs because of CPU jitter, third-party timing, and dynamic content. Look at trends over multiple runs, not single-run deltas. If you need stable numbers for a comparison, run several tests close together and average them.

### Can I monitor a staging or password-protected site? [#can-i-monitor-a-staging-or-password-protected-site]

CrUX needs the URL to be publicly indexed by Google, so it won't work on a staging site behind auth. RUM and Web Analytics work on any site that can load the script. Synthetic and Uptime require the URL to be reachable from VitalSentinel's [monitoring IPs](/others/monitoring-ips) – allow them through your auth or use a public staging URL.

### Can I monitor subdomains as separate domains? [#can-i-monitor-subdomains-as-separate-domains]

Yes. Each subdomain is added as its own domain in VitalSentinel and counts toward your domain quota. CrUX, GSC, Uptime, and the tracking scripts all key off the exact hostname, so `www.example.com` and `app.example.com` are tracked independently.

### How does Web Analytics count "unique visitors" without cookies? [#how-does-web-analytics-count-unique-visitors-without-cookies]

In the default storage mode the script stores nothing on the visitor's device. Our servers stitch the pages of one visit together instead, from the request headers the browser sends anyway and scoped to your domain, so a visitor who opens a new tab is not counted as a new person. That identifier is pseudonymous, not anonymous. `session` storage keeps a session together within one browser session but stores no visitor ID; only `persistent` storage stores a visitor ID that recognizes a returning visitor. See [Web Analytics Script Installation](/installation/analytics-script#privacy--consent) for the consent levels.

## Reports [#reports]

### What's the difference between Reports and the dashboard? [#whats-the-difference-between-reports-and-the-dashboard]

The dashboard is your live operating view across many domains. [Reports](/features/reports) are templated snapshots for one domain over a fixed window – built to share with a stakeholder. Reports use the same data sources but pin the time range and module selection so the output is reproducible.

### Can clients view a Report without a VitalSentinel account? [#can-clients-view-a-report-without-a-vitalsentinel-account]

Reports currently render inside the VitalSentinel UI – they require a logged-in account with access to the workspace. If you need to send a report externally, export it from the in-app view.

### Can Reports be scheduled or emailed automatically? [#can-reports-be-scheduled-or-emailed-automatically]

Not yet from inside Reports. The closest equivalent today is the **Weekly Domain Reports** email – a per-domain summary that goes out every Monday. Toggle it per domain in account [Settings](/getting-started/account-security#weekly-domain-reports).

## Integrations [#integrations]

### Which Google services can I connect? [#which-google-services-can-i-connect]

[Google Search Console](/features/google-search-console). It is connected at the workspace level via [Workspace Integrations](/workspace/integrations) and then linked per-domain.

### What data comes from Google? [#what-data-comes-from-google]

**Google Search Console:**

* Clicks, impressions, CTR, average position
* Queries (top queries, new queries)
* Pages (top pages, new pages)
* Countries and devices breakdown
* Search types (Web, Image, Video, News, Discover)

### Do I need the Google integration? [#do-i-need-the-google-integration]

No. Core monitoring works without Google. The integration adds extra SEO insights.

### What permissions does VitalSentinel request from my Google account? [#what-permissions-does-vitalsentinel-request-from-my-google-account]

Read-only scopes only: read access to Search Console performance data. We never modify your GSC properties. You can revoke access at any time from your [Google Account permissions page](https://myaccount.google.com/permissions) or from the Integrations page in VitalSentinel.

### Why don't I see my Search Console property in the dropdown? [#why-dont-i-see-my-search-console-property-in-the-dropdown]

Either the connected Google account doesn't have access to that property, or the property type is unsupported. GSC has Domain properties and URL-prefix properties – both work, but the connected account must be listed as an Owner or Full user. Verify access in [Search Console](https://search.google.com/search-console) and reconnect if needed.

## Billing [#billing]

### How does billing work? [#how-does-billing-work]

* Monthly subscription per workspace
* Plans based on features and limits
* Cancel anytime

### Can I change plans? [#can-i-change-plans]

Yes. You can:

* Upgrade instantly (prorated)
* Downgrade at next billing cycle

### What happens if I exceed limits? [#what-happens-if-i-exceed-limits]

You'll receive warnings as you approach limits. If exceeded:

* Some features may be limited
* You'll be prompted to upgrade
* Existing data is preserved

### Do you offer annual billing or annual-prepay discounts? [#do-you-offer-annual-billing-or-annual-prepay-discounts]

Yes – contact [sales@vitalsentinel.com](mailto:sales@vitalsentinel.com) for annual billing on paid plans. Annual prepay comes with a discount versus paying monthly.

### How are RUM page views and Analytics events counted? [#how-are-rum-page-views-and-analytics-events-counted]

A **RUM page view** is one initial page load tracked by the RUM script. A **Web Analytics event** is one captured event from the Analytics script – every pageview, custom event, outbound link click, and e-commerce action counts as one event. Both meters reset at the start of each billing cycle, which is anchored to your workspace's activation day.

### What happens if I exceed my monthly RUM page-view limit mid-cycle? [#what-happens-if-i-exceed-my-monthly-rum-page-view-limit-mid-cycle]

The dashboard shows a usage warning as you approach the limit and a clear "at-limit" indicator when you cross it. Existing data is preserved either way. Upgrade your plan or wait for the next billing cycle's reset to keep collecting at full volume.

### Are taxes (VAT, GST, sales tax) included in the price? [#are-taxes-vat-gst-sales-tax-included-in-the-price]

The displayed price excludes tax. Stripe automatically calculates and applies the right tax based on your billing country at checkout, and the final invoice itemizes it.

### Can I get an invoice with my company name on it? [#can-i-get-an-invoice-with-my-company-name-on-it]

Yes. Open the workspace's **Billing** page, click **Manage** to open the Stripe portal, and update the billing details (company name, address, tax ID). Past and future invoices reflect the change.

## Alerts & Notifications [#alerts--notifications]

### How do alerts work? [#how-do-alerts-work]

1. You define conditions (e.g., LCP > 2500ms)
2. VitalSentinel monitors your metrics
3. When conditions are met, you're notified
4. When resolved, you get a resolution notice

See [Setting Up Alerts](/alerts/setting-up-alerts) for detailed instructions.

### What notification methods are available? [#what-notification-methods-are-available]

* In-app notifications (always on)
* Email (configurable per alert)

See [Notifications](/alerts/notifications) for configuration details.

### Will I get duplicate alerts if a domain is in two workspaces? [#will-i-get-duplicate-alerts-if-a-domain-is-in-two-workspaces]

A domain belongs to exactly one workspace at a time, so there's no duplication. If two workspaces independently monitor different copies of the same site, each has its own alerts and you'd receive both.

### Can I mute alerts during a planned maintenance window? [#can-i-mute-alerts-during-a-planned-maintenance-window]

Disable the relevant alert rules before the window and re-enable them after. There's no built-in maintenance window scheduler today – it's on the roadmap.

### How are weekly summary emails different from alerts? [#how-are-weekly-summary-emails-different-from-alerts]

Weekly summary emails are a regular Monday digest of last week's headline metrics for a domain. Alerts are reactive – they fire only when a condition is met. Configure weekly summaries per domain in account [Settings](/getting-started/account-security#weekly-domain-reports).

## Workspace & Team [#workspace--team]

### What can each role (Owner / Admin / Member) actually do? [#what-can-each-role-owner--admin--member-actually-do]

| Role   | Capabilities                                             |
| ------ | -------------------------------------------------------- |
| Owner  | Full access, can cancel subscription, transfer ownership |
| Admin  | Manage domains, members, integrations, and settings      |
| Member | View and manage assigned domains                         |

Only one user can be Owner per workspace. See [Team Members](/workspace/team-members) for the detailed matrix.

### Can I move a domain from one workspace to another? [#can-i-move-a-domain-from-one-workspace-to-another]

Not directly. To move a domain, add it to the destination workspace and remove it from the source. Historical monitoring data does not transfer because billing, retention, and integrations are workspace-scoped.

### What happens to my data if the workspace owner deletes their account? [#what-happens-to-my-data-if-the-workspace-owner-deletes-their-account]

Account deletion is blocked while you own a workspace with an active paid subscription. You'll be asked to either cancel the subscription or [transfer ownership](/workspace/team-members#transferring-ownership) first. Once the workspace is unowned/free, deletion can proceed; the workspace's data is removed after the grace period unless another owner takes over.

### How do team invitations work, and do they expire? [#how-do-team-invitations-work-and-do-they-expire]

Open the workspace's Members page, enter an email and a role, and an invitation email goes out. The recipient clicks the link to accept and lands at `/invitations/accept/[token]`. Pending invitations stay valid until accepted or revoked – revoke by deleting the pending row from the Members list.

## Account [#account]

### I lost my 2FA device and my backup codes – how do I recover? [#i-lost-my-2fa-device-and-my-backup-codes--how-do-i-recover]

If you have at least one unused backup code, sign in with it and immediately disable 2FA from Settings. If both the device and the codes are gone, VitalSentinel cannot recover access on your behalf – contact [support@vitalsentinel.com](mailto:support@vitalsentinel.com) for a manual identity-verification process. Always store backup codes in a password manager when you enable 2FA.

### Can I change my account email? [#can-i-change-my-account-email]

Not from the UI today – the email field on the Profile card is read-only. Email [support@vitalsentinel.com](mailto:support@vitalsentinel.com) from your existing address, and include the new address you'd like to use.

### Are passwords required to meet specific complexity rules? [#are-passwords-required-to-meet-specific-complexity-rules]

At least 8 characters with uppercase, lowercase, a number, and a special character. For extra safety, [enable 2FA](/getting-started/account-security#two-factor-authentication-2fa) and use a password manager.

## Technical [#technical]

### Which browsers are supported? [#which-browsers-are-supported]

The tracking scripts support:

* Chrome/Edge 90+
* Firefox 89+
* Safari 15+
* Opera 76+

Older browsers gracefully degrade.

### Can I use VitalSentinel with SPAs? [#can-i-use-vitalsentinel-with-spas]

Yes. Both scripts automatically detect SPA navigation via the History API. For custom routing, you can manually trigger page views.

### Does VitalSentinel work with my platform? [#does-vitalsentinel-work-with-my-platform]

VitalSentinel works with any website, with special e-commerce support for:

* Shopify
* WooCommerce
* Magento
* Squarespace

### Are there API rate limits? [#are-there-api-rate-limits]

The tracking scripts handle rate limiting automatically. For API access, contact us for documentation.

### Are there official SDKs for sending custom events from the server side? [#are-there-official-sdks-for-sending-custom-events-from-the-server-side]

Not yet. Custom events are sent from the browser via `window.VitalSentinelAnalytics.track()`. For server-side event ingestion, contact [sales@vitalsentinel.com](mailto:sales@vitalsentinel.com) – it's available on custom packages.

### Is there a public API or webhook? [#is-there-a-public-api-or-webhook]

A public API and webhooks are on the roadmap but not generally available yet. If you need programmatic access today, contact [sales@vitalsentinel.com](mailto:sales@vitalsentinel.com) to discuss a custom package.

### Does the script support React/Vue/Angular SPAs out of the box? [#does-the-script-support-reactvueangular-spas-out-of-the-box]

Yes. Both scripts hook into the History API, so `pushState` / `replaceState` / `popstate` navigations are auto-detected as new pageviews. For frameworks that don't use the History API (rare), call `trackPageView()` manually after each route change.

## Support [#support]

### How do I get help? [#how-do-i-get-help]

1. Check this documentation
2. Use the in-app support widget
3. Email [support@vitalsentinel.com](mailto:support@vitalsentinel.com)

### Do you offer custom packages? [#do-you-offer-custom-packages]

For requirements beyond the Advanced plan – higher limits, priority support, dedicated account manager, custom SLAs, custom integrations, or a DPA – contact [sales@vitalsentinel.com](mailto:sales@vitalsentinel.com).

## Still Have Questions? [#still-have-questions]

Contact us at [support@vitalsentinel.com](mailto:support@vitalsentinel.com) or use the in-app support widget.

## Related [#related]

<Cards>
  <Card title="Quick Start Guide" href="/getting-started/quick-start">
    Get started in 5 minutes
  </Card>

  <Card title="Troubleshooting" href="/help/troubleshooting">
    Solutions to common issues
  </Card>

  <Card title="Glossary" href="/help/glossary">
    Technical terms explained
  </Card>
</Cards>
