Analytics

Pick Analytics in the dashboard. Everything is live, so you can know what worked by lunch rather than waiting for a weekly export.

The Analytics tab: subscribers, views, and clicks across the top, an activity chart, a referral panel, and a per-link table
Analytics, last 30 days

The three numbers

Across the top: subscribers, views, and clicks for the range you have chosen, each with the range named in its own title so there is no doubt what you are reading.

  • A view is one load of your page.
  • A click is one tap on one of your link blocks.
  • A subscriber is one email address left through an email capture block or the page gate.

Under each number is a comparison against the period before it, so "+18% vs previous period" on subscribers means the last 30 days beat the 30 days before them.

Your own visits to your own page never count: the server checks the signed-in user against the page owner and drops the write. Known bots are dropped before anything is written, by user agent. A click is only recorded if the link belongs to your page and its Visible switch is on, so a hidden block cannot inflate anything.

Time range

The button at the top right names the range you are looking at, for example "Jul 24, 2026 - Aug 23, 2026". Open it for five presets:

  • Today
  • Last 7 days
  • Last 30 days
  • Last 90 days
  • Last year

Last 30 days is what you get on arrival, and today, 7 days, and 30 days are on every plan. The 90 day and last year ranges are part of Pro; picking them on the free plan opens the upgrade panel. A year is as far back as the numbers go: the query clamps anything larger to 365 days.

The chart

Views, clicks, and subscribers by day across the range, on one set of axes, with a key underneath. The two buttons above it switch between a line chart and bars. Every day in the range gets a point, including the days with nothing on them, so a flat stretch reads as a flat stretch rather than a gap.

Every link on your page, with:

  • Clicks inside the range
  • Share, that link's percentage of all clicks in the range
  • All time clicks, ignoring the range entirely
  • Last clicked, in plain words: "Just now", "5m ago", "2d ago", and a date once it is more than 30 days old

Sort by any column with the arrows in its header. The table is ordered by clicks in the range to begin with, then by the order the blocks sit in on your page.

This is the table that tells you whether the thing you pinned to the top is the thing people actually want. If the third link is taking a third of the clicks, move it up.

Where visitors are

A world map shaded by country, taken from the country each request arrives from. Hover a country for its count. Up to fifty countries are counted per range.

What sent them

The Referral Source panel groups your views by the site that sent them, reduced to the root domain, so www.instagram.com and l.instagram.com land together as instagram.com. The top ten are drawn as a pie chart.

Until anyone arrives from another site it reads "No referral data yet", with "Referring sites appear here once visitors arrive from other pages." underneath. Two things commonly cause an empty panel on a page that is definitely getting traffic: apps that strip the referrer when someone taps a link in a bio, and people typing your address in directly. Neither is something you can fix from here.

What urls.bio stores

Page views record the referring domain, the browser's user agent, and a country and city derived from the request. IP addresses are hashed with a secret salt and truncated before they are written, so the raw address is never stored and one visitor cannot be traced back to an address.

Link clicks record the link and the time, and nothing else. That is why the map and the referrer list cover views rather than individual clicks.

You can only ever read your own numbers. The aggregation runs on the database and refuses to run for anyone but the owner of the page, so this is not a check that lives in the browser.

Common questions

Why is my click count lower than the taps I know I got? Bots are dropped and your own visits are dropped. A link with its Visible switch off records nothing at all, so check that first.

The numbers have not moved since I looked a minute ago. The dashboard holds analytics for a minute before asking again. Reload the page if you want it sooner.

Why do Clicks and All time disagree on a link? They are counted two different ways. Clicks in the range come from the individual click records; All time reads a running counter kept on the link itself. When the two do not line up, the range column is the one built from the records.

I want this traffic in my own tools. Add a Google Analytics or Meta Pixel ID in integrations. urls.bio never loads its own analytics on your public page.