Skip to main content
RTILA Marketplace

SEO Rank Tracker - output schema

Check where a domain ranks in web search results for a list of keywords and export the positions to CSV.

SEO Beginner Experimental v1.0.0 Updated Updated 2026-09-20 8 min read
Download
  • Windows x86_64

    BOT_seo-rank-tracker.exe

    98.9 MB

    Download
  • macOS Apple Silicon chmod +x

    BOT_seo-rank-tracker.sh

    87.5 MB

    Download
  • macOS Intel chmod +x

    BOT_seo-rank-tracker.sh

    99.4 MB

    Download
  • Linux x86_64 chmod +x

    BOT_seo-rank-tracker.sh

    122.5 MB

    Download

Do not rename the downloaded file - the filename carries the bot's configuration id.

This tab documents what a finished run produces: every dataset with its fields and transformations, sample rows, the files written to disk, and the destinations results are delivered to. Back to the overview tab.

The tables on this page are generated automatically from the published project configuration and therefore cannot disagree with it.

Datasets

One table per dataset: item selector, deduplication key, required fields, and per-field transformations.

Default

Item selector: xpath=//div[@id='rso']//a[h3]/ancestor::div[contains(@class, 'g')]

Fields of dataset "Default"
FieldProperty typeSelector / notesDefault
Domain variable=domain text
Keyword variable=keyword text
URL text
Field details

Selector: css=#rso cite

Transformations:

  1. script (code: return value.split(" ")[0];)

Rank index

Sample output

Sample rows produced by this bot
DomainKeywordURLRank
amazon.com stainless steel water bottle www.amazon.com 3

File outputs

This bot writes no files.

Delivery destinations

Where finished results go once the run completes.

Results are stored locally; no external delivery is configured.

Export formats: csv, json, xlsx.

View the full project configuration on the Config tab.

Frequently asked questions

How do I check my Google ranking for multiple keywords?
Paste one domain into the domain field and one keyword per line into the keywords list. The bot loops the list, runs a live search for each term, and records every result card whose display URL contains your domain, with its position on the page. The run ends with a CSV you can open in Excel or Sheets.
How do I track keyword positions in bulk for free?
The keywords variable is a list, so one run walks the entire list sequentially. The launcher is free and there is no per-run or per-keyword fee - the only cost is your own bandwidth and a few seconds per keyword. The practical bound is politeness: lists of 50 to 100 terms per run are reasonable, and huge daily volumes from one IP will trigger challenges.
How does the bot find my domain in the search results?
It reads the display URL of each organic result card, keeps the text before the first space, and applies the filter condition item.URL.includes(item.Domain). Only cards whose display URL contains the domain you configured survive into the dataset, so the output is your positions, not a copy of the whole results page.
What does the Rank column mean?
Rank is the 1-based index of the result card among the organic results rendered at run time. The index is computed before the domain filter is applied, so it is the true on-page position - a 7 means the card was the seventh organic result, not the seventh row in your file.
Why does a keyword return no rows?
Two very different causes. For a single keyword, no rows is usually the honest answer: the domain does not appear on the first page, and the filter dropped every card. For every keyword at once, the run itself failed - a consent interstitial, a verification challenge (no solver is configured), or a results-page redesign the selectors no longer match. Watch the visible browser window to tell them apart.
How do I export keyword rankings to CSV?
The consolidated Default dataset is written to a local CSV file by the launcher after the loop finishes, with one row per appearance of your domain: Domain, Keyword, URL and Rank. Rename the file with the run date and diff successive files in your spreadsheet to see movement over time.
Can I track a competitor domain instead of my own?
The domain field accepts any string, and the positions recorded are public facts visible to any logged-out visitor. But the platform terms and your local laws still govern how you collect and use the snapshot, and the bot offers no permission system of its own - that judgement is yours.
How often should I re-run the rank tracker?
As often as your volume budget allows; weekly is typical for client reporting and daily is aggressive from a single IP. The bot stores no history, so the workflow is: run, date the CSV, and diff against the previous file. Schedule it with your operating system scheduler if you want unattended weekly runs.
Does the bot use a search API?
No. It loads live results pages in a real browser session, exactly what a logged-out visitor sees. There are no API keys, no request credits and no per-query fees. The trade-off: first page only, web results only, and positions reflect your own IP and region at run time.
Is automated rank checking allowed by search engines?
Automated querying may conflict with the search engine terms of service. This bot keeps volumes human-scale and hands no challenge to a solver - it simply stops - but the decision to run it, and how often, is yours to own under the platform terms and your jurisdiction.
Does the bot need an internet connection to run?
Yes on first run: the launcher fetches its configuration by id from the backend at launch, so an internet connection is required at least the first time it starts.
Can I rename the downloaded file?
No. The downloaded file must keep its exact name - the filename carries the per-bot configuration id, and renaming it breaks the configuration fetch at launch.