Page tracker
Which of your own pages earn citations in AI answers. Every page from your sitemap crawl plus any URL you track by hand, each with its citation record, Search Console clicks and impressions, DataForSEO authority ranks, and a page category.
Getting your own pages cited in AI answers is the goal. To act on it, you need to see which pages earn citations and which get passed over. The page tracker keeps a running record of every page you own, with how often AI answers cite it over the dates you picked and all-time. The list starts from your sitemap crawl and grows as you track any URL by hand, yours or a competitor's. It persists between visits, so each page's citation history builds up instead of resetting. Where a page also has Google Search Console figures or DataForSEO authority ranks, they sit in the same row.
What it does
Sources tells you which third-party domains the engines cite. The page tracker turns the lens on your own site, so you can see which of your pages earn citations and which do not.
How to use it
- Build the roster.
/pagesis seeded from your sitemap and crawl discovery, and each such row is markedsitemap. Add any URL by hand with Track this page. A hand-tracked page persists just like a discovered one. - Filter and search. Narrow by the category heuristic (
?cat=), or search the roster (?q=).?all=widens the view past the default slice. - Refresh. A nightly hook folds new citations into every page's all-time totals. The Refresh button runs the same fold on demand.
- Read Search Console columns. When a GSC property is connected, the roster gains impressions and clicks columns. A page's own detail view (
?url=) adds its average Google position, with the change against the prior two weeks. - Compare authority. Every page carries a Domain rank and a Page rank column: DataForSEO's own 0 to 1000 backlink Rank for the page's domain and for the exact URL. Click either header to sort by it (
?sort=). - Export. The CSV button downloads the whole roster with every column, rank columns included.
- Open one page.
?url=opens a single page's detail. Any URL can still be analysed on the spot and tracked from there.
How it's computed
Window numbers are computed live from your citations. All-time totals rest on a permanent record that refreshes in steps. A nightly pass folds in citations it has not recorded yet, and Refresh runs that same fold on demand.
The fold is patient on purpose. A collection run finishes writing itself a little after it runs, so each pass leaves the freshest hour or so alone and counts only runs that have definitely landed. That is what guarantees nothing is ever dropped or double-counted. Every citation enters the record exactly once.
The roster's All-time column does not wait for the fold. It shows the permanent record plus the newest citations counted live on top. The one place you see the record on its own is the single-page view's All-time record card, which can trail the roster between passes. It catches up on the next nightly pass, or the moment you press Refresh, though even then the freshest hour or so rolls in on the following pass. Your selected-window numbers include the newest citations the whole time, so nothing is ever invisible.
The category is a fixed, read-time heuristic from URL structure alone: home, docs, blog, legal, company, product, landing. No model, no fetch, so improving a rule re-labels history the same way everywhere. A page with no recognisable signal is unclassified, shown as an em-dash, and the column is labelled a heuristic.
The rank columns come from DataForSEO's Backlinks API (bulk_ranks) and are stored, so the page never calls the vendor while rendering. Ranks move slowly, so a page's pair refreshes at most every 30 days, on the nightly cycle or the Refresh button. A page the vendor repeatedly leaves unanswered is parked after 5 unanswered fetches: it keeps its em-dash, and the nightly cycle stops paying to re-ask. Pressing Refresh re-arms parked pages.
Honesty rules. A page that has never been refreshed shows an em-dash for its all-time totals, meaning "unknown", not zero. After a refresh, a 0 is real. The same rule runs through the rank columns: an em-dash means not fetched yet, while a 0 is DataForSEO's real answer, no backlink signal in their index. See data honesty.
Limits
- The Search Console columns need a connected GSC property. Without one, the roster shows citation columns only.
- The category is a heuristic on URL structure, not a content read.
- Domain rank and Page rank are DataForSEO's own metric, a 0 to 1000 score from their backlink index. It is not Ahrefs DR or Moz DA, and numbers are not comparable across tools.
Related
- Sources: the third-party domains and threads engines cite.
- Crawlers: AI crawler visits to your pages.
- Google Search Console: the connection behind the clicks, impressions and position columns.