Backlinks
No tool can create backlinks for you — they're earned on other people's sites. What Kitbase does is find the ones that matter and tell you where to earn more, using data you're already collecting. It's arranged as the three questions you actually ask, in order:
- Overview — how am I doing? The headline figures, a year of growth, the pages doing the work, and a text box for looking up any domain: yours, a competitor's, or a site you're about to pay for a placement on.
- Opportunities — what should I do next? Domains linking to your competitors but not to you, links you've already earned that send no traffic, links you've lost, dead pages still receiving links, and the third-party sites AI platforms cite in your category.
- All links — who links to me? Every referring domain and every exact linking page Kitbase holds for your site.
Built from data you already have
Most of Opportunities needs nothing new: reclamation reads your existing web analytics referrers, and the AI-cited list reads your AI Visibility citations. Only a profile pull calls a paid external index — and only when you press the button.
Overview
Overview opens on your own site and carries one text box. Type a domain and confirm the pull, and Kitbase buys that domain's link profile and keeps it: totals and authority, its strongest referring domains, a sample of the individual links, and a year of monthly history.
Looking things up again is free. Every domain you've pulled is listed under Previous lookups; opening one reads what you already bought and never spends again. Sorting, filtering, searching and paging within a stored report are all free too — they're queries over rows on your side.
Whole site or exact page. A bare domain (example.com) is read as the whole site; anything with a path (example.com/pricing) as a single page. Kitbase infers which you meant from what you type, and the toggle overrides it. Page-scope targets have no growth history — the index reports a domain's history, not one URL's — so those charts are hidden rather than shown empty.
What a profile shows
| Section | Where | What it tells you |
|---|---|---|
| Headline figures | Overview | Three numbers, not a wall of them: sites linking to you (and across how many links), how many of those ever sent a real visitor, and site authority — scored 0–1000 and labelled, from "Just getting started" to "Very strong". A blank figure means the index didn't report it — never zero. |
| Growth | Overview | Backlinks and referring domains month by month for the last year, so you can see whether a profile is compounding or decaying, plus new versus lost links per month. A profile that grows while losing heavily is a different story from one that simply grows. |
| Linked pages | Overview | Which of the target's pages attract the most links, grouped from the link rows Kitbase holds. |
| Referring domains | All links | Who links to the target, strongest first, with authority, spam score, link counts and the date the index last saw the link. |
| Backlinks | All links | The exact linking pages: the page each link lives on, the page it points at, its anchor text, whether it's dofollow, its rank and spam score. |
Your own site shows more. Visits, top landing page, the Untapped and Lost filters and the ignore/restore controls all come from your first-party analytics, which exist for your site and for nobody else's. On a researched competitor those columns are absent rather than empty — the honest answer, since no backlink index can tell you who clicked. The All links tab is always about your own site for the same reason.
Linked-page counts are a floor, not a total
Linked pages is grouped from the link rows Kitbase has stored, not bought from a separate index endpoint. That's the bounded sample plus any pages you've explicitly acquired — so treat the counts as "at least this many", never as a page's true total.
Sources
Every visit your SDK records carries the page that sent it (the referrer). When a domain sends its first visit, that's almost always a new link that just went live. Kitbase watches for those and lists each referring domain with the traffic it actually drives — something a backlink index alone can't tell you.
Search engines, social networks, AI assistants, and your own domain are excluded automatically, so the list is genuine third-party links, not noise. A domain you don't care about can be dismissed with Ignore; restore it any time.
A new-backlink notification is sent (in-app, and to any webhook subscribed to backlink_detected) the first time a recent backlink is detected. When the feature first runs for a project with existing history, all of that history is loaded silently — you're only notified about links that appear from then on, not flooded with old ones.
What referrer detection can and can't see
This finds backlinks that send traffic — the ones worth knowing about. A link that exists but nobody clicks won't appear, and browsers often trim the referrer to just the domain (so the exact linking URL isn't always available). It complements a full backlink index; it doesn't replace one.
Fields
| Field | Meaning |
|---|---|
| Domain | The referring host, normalized (lowercased, www. stripped). Subdomains are kept distinct — news.example.com ≠ blog.example.com. |
| Sessions | Visits this domain referred within the selected window. |
| First seen | The earliest visit ever referred by this domain (historical — not when Kitbase noticed it). |
| Top landing page | The page most of its referred visitors arrive on. |
| Source URL | A captured referring URL — the actual linking page, when the browser sent the full referrer. |
| Domain rank | Authority score (0–1000) of the referring domain. Blank until a link graph pull has run, or if the domain falls outside the stored top domains. |
| Spam score | DataForSEO's spam signal for this domain's links (0–100, higher is spammier). Same blank rule as Domain rank. Domains at or above the spam threshold (30 by default) are dropped during a pull, so a populated value is always below it. |
| Backlinks | How many links this domain points at your site, per the link graph. Same blank rule as above. |
| Lost | The date the link graph reported the link gone. Blank means it's still linking, or that the domain isn't in the graph at all. The Lost filter lists these — including links that never sent traffic. |
| stale | A marker beside the domain, meaning the most recent pull didn't return it — its rank and backlink counts are left over from an earlier one. Hover for the date they were last confirmed. |
| synced | A marker beside the domain, meaning the link graph also knows it. Rows with visits come from your own analytics either way — deleting synced data clears the index columns, never the traffic history. Click any row for the domain's detail, including the exact linking pages the index stores. |
The list mixes two origins on purpose: domains seen in your own traffic, and domains known only to the synced link index (the Untapped and Lost filters, plus part of All). Index-only rows have no visit history and nothing to ignore or restore — they exist because the index saw a link, not because anyone clicked it.
Stale is not the same as Lost. A pull stores only your top domains by authority, so a domain slips out of that slice simply by being outranked as your profile grows — which is not evidence the link disappeared. Kitbase marks those rows stale rather than reporting them lost, and only calls a link lost when the index says so.
Reclamation
The highest-ROI backlink work is often a link you already have: when an external site links to a page of yours that now returns an error, that link's value is leaking. Reclamation finds those pages — externally referred visitors landing on URLs your site audit recorded as broken (any non-2xx status) — so you can add a redirect and recover the link without any outreach.
Each row shows the dead path, its HTTP status, the referring domains still sending traffic to it, and how many sessions are affected. Fix it by pointing the old URL at the right page (a 301 redirect).
Requires a completed site audit
Reclamation matches referred traffic against the pages your last crawl reached, so the project needs a completed site audit of its own website first. If none has run, the page tells you — run one and reclamation lights up. Pages that were never in your sitemap can't be checked this way.
AI opportunities
When someone asks an AI platform "what's the best tool for X?", the platform cites its sources. The sources it cites for your category — where you're not mentioned — are exactly the sites worth earning a link or listing from: getting cited there improves both traditional SEO and your AI Visibility.
Kitbase aggregates the third-party (non-you, non-competitor) domains cited across your AI Visibility prompts and ranks them by how often they appear in answers where your brand is absent — the biggest gaps first.
| Field | Meaning |
|---|---|
| Domain | A third-party site AI platforms cite for your prompts. |
| Type | What kind of source it is (review site, community, news, docs, …). |
| Citations | How often it was cited across the aggregated analyses. |
| Gap prompts | Prompts where you're absent but this domain is cited — the priority signal. |
| Already linking | Whether this domain also shows up as one of your detected backlink sources. |
The table starts with the 25 most-cited domains, and the line above it says how many cited domains were found in total — Show more raises the cap in steps up to 200, the most this view will list.
On Kitbase Cloud, opportunities that are purchasable as guest-post placements show a price and deep-link into the Link Marketplace, where the same citation signals rank the catalog.
Depends on AI Visibility
This view reads your AI Visibility citation history — set up brands and prompts there first. No extra analysis runs and no extra cost.
Link graph
Referrer detection only ever finds links that send traffic. Most links don't. The link graph fills that half in from an external backlink index, and it's the one part of Backlinks that costs money to run.
A pull fetches several things from the index:
Profile summary — how many referring domains and inbound links you have in total, how many are dofollow, and your domain's authority rank. Shown against how many of those domains actually sent you a visitor, which is usually a much smaller number and the point of the whole view.
Exact links — the individual linking pages behind the profile. Click any domain under All links to see the exact links the index knows from it: the page each link lives on, the page of yours it points at, its anchor text, whether it's dofollow, and its link rank. When a link's target matches a landing page real visitors from that domain arrived on, it's marked likely entry — the cross-reference between what the index says exists and what your traffic says happened. This is a bounded snapshot — the top links by rank, one per referring domain and anchor (so a sitewide footer link counts once, not a thousand times), and only links the index currently sees as live.
Untapped links — the Untapped filter under All links shows domains whose links have never sent a single visitor, highest authority first. These are links you've already earned but that aren't working for you yet — click one to see exactly which pages the links live on.
Lost links — domains the index no longer sees linking to you. Opportunities lists them, and the Lost filter under All links shows them in place. This filter reads the link graph rather than your traffic, so it includes links that disappeared without ever sending you a click — usually the majority, and the ones a referrer-only view can't see at all. Those rows have no first-seen date and no Ignore action, because there's no traffic record behind them.
Competitor gap — domains that link to at least one of your tracked competitors but not to you, ranked by how many competitors they link to and then by authority. It is derived from the competitor profiles you have pulled, not bought separately, so it costs nothing to look at and updates the moment you pull another competitor. Only genuine outreach targets count: the gap keeps dofollow links and drops near-zero-authority domains, so it stays a ready-made outreach list rather than a dump. Filter it by a single competitor to see only the sites backing that one rival.
A competitor whose profile you have never pulled contributes nothing to the gap, and the page names those explicitly — pull one to widen the list. The gap is dated by the oldest profile behind it, because that is how current it actually is.
Lost is not the same as Ignore. Dismissing a source is your judgment about whether it matters; lost is the index's statement about whether the link still exists. They're independent, so a source you ignored months ago still shows up under Lost when its link disappears.
Low-quality links are filtered out
A raw backlink index carries a lot of junk. Kitbase drops referring domains and exact links whose spam score is 30 or higher before storing them, and the competitor gap keeps only followed, direct links from domains above a minimum authority rank — so what you see is the part worth acting on, not link-farm noise. The spam score (0–100, higher is spammier) is shown on each competitor-gap row. Self-hosters can tune or disable both thresholds with the linkgraph.data-for-seo.max-spam-score and backlinks.competitor-gap.min-domain-rank settings — set either to 0 to turn that filter off.
When it pulls
Only when you ask. Nothing here refreshes on a schedule, on Cloud or self-hosted: a pull happens because a person pressed the button, which is what makes the cost predictable. Plans set a daily limit on how many pulls an organization can start; pulls you have already stored stay readable regardless, and the limit resets at midnight UTC.
Your own domain is resolved on the server from your project settings, so pulling your own profile needs nothing typed. You can also pull a competitor's profile deliberately — that is what feeds the competitor gap — and each one is a separate authorized pull rather than something that happens quietly in the background.
Every confirmation names two figures in credits: what the pull is expected to draw, and the ceiling it cannot exceed. The ceiling is higher because a worker that crashes after the index has already billed a successful response is allowed exactly one replay — so the ceiling is the real worst case, not the routine bill.
Asking twice doesn't pay twice. A request identical to one that already completed answers with what it stored rather than buying it again; a genuine refresh takes a second, explicit confirmation. Ordinary retries and double-clicks can't trigger one.
Going deeper than the sample
A profile pull stores a bounded sample — the top links by rank, one per referring domain and anchor. Two actions buy beyond it, and both are explicit:
- All links loads the next page of every link, ungrouped, rather than one per anchor. Each page is a separate confirmation, and paging continues from where the last one stopped.
- Pull more on a referring domain buys every link from that one domain. The links already stored for it show for free first; this only buys what the sample left out.
Rows either action brings back are kept permanently and survive later profile refreshes — you paid for them specifically, so a routine refresh never sweeps them away.
Costs money and needs setup
The link graph is powered by DataForSEO. Self-hosters must set DATAFORSEO_LOGIN and DATAFORSEO_PASSWORD; without them the tab tells you it's unconfigured and the rest of Backlinks works as normal. Each pull spends credits from your plan's monthly allowance — the same pot that covers AI Visibility and keyword research. A pull that runs out of credits, or hits a provider rate limit, resumes where it stopped rather than re-paying for calls that already succeeded.
Deleting synced data
To clear everything a pull has stored — the profile totals, the referring domains and the exact Links — use Delete synced backlinks under Project settings → Maintenance. Your traffic-detected Sources are first-party data and are left untouched: a domain that both linked to you and sent you a visitor keeps its row and loses only what the provider added. The competitor gap empties with the profiles it is derived from. The data comes back on your next pull. The delete is blocked while a pull is running — wait for it to finish and try again. It needs the backlinks.manage permission.
Permissions
Backlinks is gated by two permissions: backlinks.view (see every view, including the link graph) and backlinks.manage (dismiss or restore sources, start a link-graph refresh, and delete synced data). Owners, admins, and developers get both; analysts get view-only.
From the CLI
Every view is available over the CLI for scripts and CI:
kitbase backlinks list --project <id> # detected sources
kitbase backlinks detail --domain example.com # drill into one source
kitbase backlinks reclamation # dead pages with inbound links
kitbase backlinks opportunities # AI-cited domains to target
kitbase backlinks update <id> --status ignored # dismiss a sourceNext steps
- Web Analytics — the referrer data behind Sources and Reclamation.
- AI Visibility — the citation data behind AI opportunities.
- API reference — the REST endpoints behind every view.