Daily updated rankings

Where does your site
rank globally?

Instantly look up any website's global ranking and track how it changes — free, no account needed.

Quick try:
No signup required Daily updated data Daily history since 2020
Free browser extension

Get the Rank.to extension

Check any site's global rank instantly from any tab — one click, no copy-pasting URLs.

100M+
Domains tracked
Daily
Data updates
Free
No account needed
Live preview
Loading examples…
Fetching live ranking data
Top ranked sites
Loading rankings…
Top climbers · 30 days
Calculating trends…

How Rank.to works

A global rank is a single number that tells you where a website sits among every other site on the web — #1 is the most-visited domain online. Smaller numbers mean bigger audiences. Here's what's behind the numbers you see.

01

Daily updated rankings

Ranks refresh every day from aggregated traffic signals across millions of domains. Yesterday's rank is already in.

02

Years of daily history

See how a site's rank has moved over a week, a month, three years, or its entire tracked history back to 2020 — spot trends, not just snapshots.

03

Traffic estimates

Each rank is paired with an estimated monthly visit count based on a power-law model calibrated to known traffic data.

04

Free public API

Every ranking is available over a simple JSON endpoint. No auth, no quota forms, no signup — just query and go.

05

Privacy-first by design

No tracking, no signup, no cookies. Look up any domain anonymously — we don't log who searched for what.

06

Worldwide coverage

Domains from every country and TLD — .com, .io, .dev, .co.uk. The whole web is on the map.

Who uses Rank.to?

  • SEO & marketing teams — track competitor traffic movement without paying for enterprise tools.
  • Investors & analysts — validate whether a company's web property is actually growing.
  • Journalists & researchers — cite independent, reproducible numbers for stories about the web.
  • Founders — benchmark your own site against the category leaders, day over day.

Frequently asked

It's the site's position in a global ordering of all tracked domains by estimated traffic volume. Rank #1 is the single most-visited site worldwide; rank #1,000,000 is still very much on the map but in the long tail. Lower is better.

Rankings are recomputed once per day. New data lands in the API within a few hours of each roll-up, so the number you see here reflects yesterday's activity at the latest.

We only track domains with enough signal to rank meaningfully. New sites, very-low-traffic sites, and sites that block our crawlers may not be indexed yet. Come back in a few weeks — coverage grows with every update.

No — they're estimates derived from the rank, not measured directly. Expect order-of-magnitude accuracy: a site ranked #500 really does get roughly 100× the traffic of one ranked #50,000, but don't treat a 10% difference between two neighbors as gospel.

Yes. The API is free to query, and you can cite or display the numbers in your own product, report, or dashboard. A link back is appreciated but not required.

Current Rank
 
Best Rank (period)
in selected range
Data Points
days of history
Est. Monthly Traffic
based on rank
Rank neighbors

Sites ranked just above and below — closest competitors for global position.

Loading neighbors…
Insights

Rank.to API

Query domain rankings programmatically. The API is free with no authentication required. Rankings are updated daily and cover millions of domains worldwide — with daily history going all the way back to the first snapshot in the archive via n=max.

Endpoint

GET https://rank.to/api/?d={domain}&n={range}
ParameterTypeRequiredDescription
d string required Domain to query, e.g. github.com
n integer or token optional History window, counting back from the latest snapshot and inclusive of both ends. Either a whole number of days (7, 90, 1095), a period token — 30d, 12w, 6m, 3y — or max for everything back to the first snapshot we hold. A window longer than the archive is clamped to it, and the response says so via range.clamped. Default: 7
points integer optional Thin the returned series to at most this many points (25000) using largest-triangle-three-buckets, which keeps the peaks and both endpoints. Useful for charting n=max without shipping thousands of rows. summary is always computed on the full window, never on the thinned series.

Response format

{
  "date": "2025-06-18",
  "domain": "github.com",
  "range": {
    "requested": "5",
    "days": 5,
    "start": "2025-06-14",
    "end": "2025-06-18",
    "first_available": "2020-01-01",
    "clamped": false
  },
  "points": 5,
  "ranks": {
    "2025-06-14": 68,
    "2025-06-15": 67,
    "2025-06-16": 70,
    "2025-06-17": 66,
    "2025-06-18": 65
  },
  "summary": {
    "points": 5,
    "first":  { "date": "2025-06-14", "rank": 68 },
    "latest": { "date": "2025-06-18", "rank": 65 },
    "best":   { "date": "2025-06-18", "rank": 65 },
    "worst":  { "date": "2025-06-16", "rank": 70 },
    "average": 67,
    "median": 67,
    "change": 3,
    "change_pct": 4.41
  },
  "time": "2.341ms"
}
FieldTypeDescription
date string The latest daily snapshot this response was built from. Compare it against your own clock to tell a fresh response from a cached one.
domain string The normalised domain the response is for. Send a full URL, a www. host or a host with a port and this is what it resolved to.
range object The window that was actually served: requested (what you asked for), days, start, end, first_available (the oldest snapshot in the archive) and clamped (true when the window was longer than the archive). downsampled is present and true when points thinned the series.
points integer Number of entries in ranks.
ranks object Date → rank pairs, ascending by date. Empty object if the domain has no ranking data in the window.
summary object Aggregates over the full window — first, latest, best and worst (each with its date), plus average, median, change (first rank − latest rank; positive means the site moved up) and change_pct. Omitted when the window holds no data.
last_seen object Only present when the domain has no rank inside the window but ranked at some point before it: the most recent known rank and its date.
time string Server-side query execution time for diagnostics.

Code examples

// Fetch 30-day rank history for github.com
const res  = await fetch('https://rank.to/api/?d=github.com&n=30');
const data = await res.json();

// Most recent rank
const sorted  = Object.entries(data.ranks).sort(([a],[b]) => a.localeCompare(b));
const [date, rank] = sorted.at(-1);
console.log(`github.com is ranked #${rank} as of ${date}`);

Live playground

Interactive API tester Hits the real /api/ endpoint
GET https://rank.to/api/?d=github.com&n=7
// Hit "Run" to send the request…

Notes & limits

  • ✓  No API key or authentication required
  • ✓  Response is JSON with Content-Type: application/json
  • ✓  The ranks object is empty if the domain has no ranking data
  • ✓  Domains are matched without www. — strip it before querying
  • ✓  n accepts a whole number of days from 1 to 365 — anything else returns 400 with an error field
  • ✓  n is inclusive of both ends: n=7 returns seven dated points, the last being the newest snapshot
  • ⚠  Please keep request rates reasonable — this is a free public service

Terms of Service

Privacy Policy

Simple, transparent pricing

Pricing that scales with you

Start free, upgrade when you need more queries, longer history, or a higher rate limit. Cancel anytime — no contracts.

Free

For curious developers and one-off lookups.

$0 /forever
  • 500 API calls per day
  • 30-day rank history
  • Public leaderboards
  • Community support
Get started

Business

For teams running rank data at scale.

$149 /month
  • 250,000 API calls per day
  • Full historical archive
  • Webhook notifications
  • SSO & team accounts
  • Priority support · 4h SLA
  • Custom SLA available
Contact sales

Pricing questions

Yes — Pro plans include a 14-day free trial with no card required. Business plans can be evaluated on request.

Anytime. Upgrades take effect immediately and we pro-rate the difference. Downgrades apply at the end of your billing cycle.

All major credit cards via Stripe. Business plans can also pay annually by invoice (bank transfer or wire).

Yes. 500 calls/day with 30-day history covers most casual use cases. Upgrade only when you need more.

We'd love to hear from you

Get in touch

Have a question about ranking data, want to talk pricing, or have a partnership idea? Drop us a line — we read everything.

Typical response time: under 24h

Welcome back, there 👋

Here's how your account is doing today.

Calls today
0% of /day
Calls — last 30 days
Lifetime:
Active keys
Saved domains

API usage · last 30 days

Recently viewed

Full history →
Loading…

Your plan

Free

500 API calls per day, 30-day rank history, community support.

Upgrade plan

API Keys

Create and manage keys to access the Rank.to API. Keep them secret — anyone with a key can use your quota.

Your keys

Loading…

Saved domains

Keep track of websites you care about — we'll show their current rank when you visit.

Tracked sites

Loading…

History

Every site you've looked up while signed in, with the rank you saw at the time and where it stands now. Only you can see this.

Viewed sites

Loading…

Settings

Update your profile and password, or close your account.

Profile

Password

Plan

Switch your plan instantly — billing is mocked in this demo.

Danger zone

Permanently delete your account, API keys, saved domains and usage history. This cannot be undone.

Lost in the rankings
404

This page doesn't exist

The link may be broken or the page may have moved. But you can still look up the global rank of any website below.