SingRank

Method

We don't estimate visibility. We measure it.

Most agencies buy a third-party tool, export its estimates, and put them in a slide. We built the measurement layer instead — so the numbers we show you come from your own properties, and every score has a formula behind it you can check.

The stance

No resold estimates. We do not use Ahrefs or Semrush. Keyword demand comes from your Search Console, behaviour from your Clarity, and AI visibility from a pixel we run on your site. If a number cannot be sourced to one of those, we do not publish it.

Unknown and zero are different answers. When a keyword has no first-party footprint, we return "unknown" and mark it for verification. We never dress an estimate up as a measurement.

We say what we cannot measure. We have no first-party backlink data. So we do not sell backlink analysis, and when a head term needs links to win, we say so instead of selling content that cannot get there.

On backlinks: we build authority, we don't buy it

The backlink industry sells rented authority: paid links that lift a site until Google discounts them — or penalises them. We do not buy links, for clients or for ourselves, and we say so in writing.

What we do instead is slower and compounds: publish work worth citing, make every claim checkable, and let authority accumulate the way it does for anyone who is genuinely useful. This site practises what it preaches — every number on it is dated and sourced.

And because we have no first-party backlink data, we refuse to fake that too: when a keyword is owned by high-authority domains and needs links to win, the honest answer is "this lane needs authority we have not built yet" — not a content invoice for a race that cannot be won this quarter.

What we actually measure

  • Search Console, dailyEvery query, page, position and click for your property — pulled daily, kept as history, not sampled.
  • Microsoft ClarityWhich sections of a page people actually read, and where they stop.
  • AI crawler logsWhether GPTBot, ClaudeBot, PerplexityBot and Google-Extended actually fetched your pages — and whether they succeeded.
  • AI referral pixelHumans arriving from ChatGPT, Perplexity, Gemini and Copilot, logged first-party on your own domain.
  • Lead attributionWhatsApp clicks and form submits traced back to the page, and the page back to the keyword.
  • Full-site content indexEvery article on your site parsed and searchable, so gap analysis compares against what you actually published — not a guess.

The maths we score with

These are the formulas used on real client work, with the thresholds we act on. They are here so you can argue with them.

Statistical Drift Score

SDS = |clicks_now − clicks_before| / √clicks_before

Whether a traffic change is real or noise. Below 1.65 we do nothing — on low-traffic pages a ±30% swing is usually random. Above 2.0 is significant at 95%, above 3.0 at 99%. This is why we do not panic-email you about a bad week.

Content decay

V(t) = V₀ · e^(−λt)

Content loses value at different rates: news λ≈0.50 (half-life ~1.4 months), pricing 0.25, guides 0.13, evergreen 0.05 (~14 months). Below V=0.60 a page needs refreshing; below 0.40 it needs rewriting. It tells us what to refresh before traffic drops, not after.

Ranking Opportunity Score

ROS = CTR_gap × log₁₀(impressions+1) × intent_fit

Which position 4–20 keyword is worth the next hour. The CTR gap is adjusted for what actually sits on that SERP — an AI Overview takes roughly 35% of the clicks, a featured snippet 25%. Ranking #4 under an AI Overview is worth less than #6 on a clean result.

Recovery Probability

RPS = 0.25·technical + 0.25·content + 0.20·links + 0.15·signals + 0.15·geo

When a page drops, whether it is worth saving. Above 0.7 we fix in place; 0.4–0.7 needs a deep rewrite; below 0.4 the honest answer is consolidate and redirect. It stops us billing you for a rescue that was never going to work.

Cannibalisation overlap

overlap = |top10_A ∩ top10_B| / |top10_A ∪ top10_B|

Two of your own pages competing for one query. Above 0.70 they must be consolidated; below 0.40 they are safe to keep apart.

Bayesian confidence

P(issue) = P_prior × ∏(multipliers)

Every finding we report carries a confidence label, and the label has a rule behind it. Confirmed ≥0.85 means direct data. Likely 0.60–0.84 means two signals agreeing. Hypothesis 0.35–0.59 means one signal and needs checking. Below 0.35 we do not report it at all.

How often it runs

Not a monthly PDF. These regenerate on a schedule, per client:

  • Every 3 hoursContent priorities, paid-search plan, retargeting audiences
  • NightlyFull technical audit, new-keyword ideas, signal classification
  • WeeklyCompetitor keyword intelligence, Core Web Vitals, index coverage

One measurement you will not get elsewhere

On 12 August 2026 we read the AI-crawler log for this site: ChatGPT-User made 339 requests and 247 of them failed. ClaudeBot 131 requests, 90 failed. Meanwhile Googlebot failed 14 of 78 and Bingbot 5 of 121. That gap told us AI crawlers were being blocked at the CDN while search crawlers were not — a problem no ranking report would ever surface. We can run the same read on your site.

The short version

Other agencies send you a ranking report. We show you the crawler log, the AI referral, and the enquiry it produced — and the formula that decided what to do next.

The engineering behind all this · The pixel that does the logging · GEO — AI search, measured

Get a free visibility check