Real User Monitoring
& SEO Automation
Get real field data for Core Web Vitals including INP. Add our lightweight script to see what Google actually measures.
RUM Script
Real User Monitoring
The problem: Lab tests (like Lighthouse) can't accurately measure INP because it requires real user interactions. Google uses field data from real users for Core Web Vitals rankings.
The solution: Our lightweight RUM script (~3KB) collects real Core Web Vitals from your actual users:
The metric that replaced FID - measures real responsiveness
All Core Web Vitals in one script
Same percentile Google uses for rankings
No PII collected, anonymous session IDs only
CrUX (Chrome UX Report) only provides field data for sites with 1,000+ daily visits. With our RUM script, any site can get real field data.
<!-- Rankture RUM - Real User Monitoring -->
<script>
(function(w,d,k){
w.RanktureRUM={key:k,queue:[],
push:function(m){this.queue.push(m)}};
var s=d.createElement('script');
s.src='https://rankture.com/rum.js';
s.async=true;
d.head.appendChild(s);
})(window,document,'YOUR_API_KEY');
</script> Get Your API Key
Add your website to Rankture, then find your RUM API key in the website settings.
Lab Data vs Field Data
Lab Data
Lighthouse, PageSpeed Insights
- ✓ Consistent, reproducible
- ✓ Good for debugging
- ✗ Can't measure real INP
- ✗ Simulated environment
- ✗ Not what Google uses for rankings
Field Data (RUM)
Real users on your site
- ✓ Accurate INP measurement
- ✓ Real device variety
- ✓ Real network conditions
- ✓ Real user interactions
- ✓ What Google uses for rankings
CLI Tool
@rankture/cli
A fast, offline-first SEO checker that runs on your local files. Perfect for CI/CD pipelines, pre-commit hooks, or manual checks before deployment.
HTML, Astro, React/Next.js, Vue/Nuxt, Svelte, Markdown, and more
Meta tags, headings, images, links, schema, accessibility
Exit codes, JSON output, GitHub Actions examples
--watch, --changed, --staged for pre-commit hooks
Supported Frameworks
# Global install
npm install -g @rankture/cli
# Or use with npx (no install)
npx @rankture/cli check ./dist
# Or add to your project
npm install --save-dev @rankture/cli # Check built HTML files
rankture check ./dist
# Check source files directly
rankture check ./src/pages
# Fail build on critical issues
rankture check ./dist --fail-on critical
# Watch mode for development
rankture check ./dist --watch
# Only check git changed files
rankture check ./src --changed
# Pre-commit hook (staged files only)
rankture check ./src --staged
# JSON output for CI
rankture check ./dist -f json -o report.json
# Validate sitemap and robots.txt
rankture validate sitemap ./public/sitemap.xml
rankture validate robots ./public/robots.txt name: SEO Check
on: [push, pull_request]
jobs:
seo:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
- run: npm ci && npm run build
- run: npx @rankture/cli check ./dist --fail-on critical Coming Soon
More developer tools in the pipeline
REST API
Programmatic access to all Rankture features. Build custom integrations and dashboards.
GET /api/v1/audits
POST /api/v1/audits/run
GET /api/v1/rum/metrics Integrations
Connect with GitHub, GitLab, Slack, and more. Get SEO checks in your workflow.
Frequently Asked Questions
Does the RUM script slow down my site?
No. The script is only ~3KB gzipped, loads asynchronously, and has zero blocking time.
It uses PerformanceObserver APIs that run passively
and sendBeacon to report metrics without blocking the UI.
What data do you collect?
Only performance metrics: INP, LCP, CLS, FCP, TTFB, viewport size, device type, and connection type. We don't collect any personally identifiable information (PII), IP addresses, or browsing history. Session IDs are randomly generated and not linked to user accounts.
How is this different from CrUX?
Chrome User Experience Report (CrUX) only provides data for sites with 1,000+ daily visits, and only shows origin-level data for most sites. Our RUM script works on any site regardless of traffic volume and can provide page-level metrics.
How much data do I need for accurate metrics?
We recommend at least 100 samples over 7 days for statistically meaningful P75 values. With less data, metrics are shown as "limited data" in your dashboard. More data = more accuracy.
Is this GDPR compliant?
Yes. We don't collect any personal data, only anonymous performance metrics. No cookies are set, no IP addresses are stored, and session IDs are random strings that can't be linked to individuals. This makes it exempt from cookie consent requirements.
Start Collecting Real Field Data
Get accurate INP measurements from your actual users. Free on all plans.