# Track Google positions with a weekly SERP call and a diff

A rank tracker is the same search run on a schedule and compared with the last run. Your agent calls seo.serp each week for every keyword and location, saves the positions, and tells you what moved and who entered the top ten. You pay per search run, not per tracked keyword per month.

HTML page: https://www.routergrowth.com/tools/google-search/serp-tracker-api
Part of: [Google Search tools](https://www.routergrowth.com/tools/google-search.md)

## The call

[`seo.serp`](https://www.routergrowth.com/catalog/seo.serp): Live Google or Bing results for a keyword and location, with SERP features and AI Overview presence.

Price on this network: $0.0035 per results page. The exact quote is shown before every run.

## What a real run returned

Run on 2026-10-19: 8 records in 4.0 s for $0.0035. Personal fields are masked. Google in Denver for emergency plumber: the first organic result sits at position 7, below a local pack, local services ads and paid results.

| position | domain | title |
|---|---|---|
| 7 | www.rotorooter.com | Denver Plumber / 24/7 Emergency Plumbing |
| 13 | www.milehighdrain.com | 24-Hour Emergency Plumbing Services in the Denver ... |
| 14 | teamdavelogan.com | Best 24-Hour Plumber Denver, CO / Trusted Emergency ... |

## How to do it

1. **List keywords and places.** One row per keyword and City,State,Country. Local terms need the city, or the ranks mean little.
2. **Run the week's searches.** The agent calls seo.serp for each row and saves position, URL and domain.
3. **Compare with last week.** Match on domain and URL to see gains, drops, new entries and pages that fell out.
4. **Watch the page around you.** serp_features shows when a local pack, ads or an AI Overview pushed organic results down.

## Ask it like this

- Every Monday, check our position for these 25 keywords in Denver and send me what moved more than three places. (`seo.serp`)
- List the keywords our site ranks for, then track the top 20 weekly on the live results page. (`seo.ranked_keywords`, `seo.serp`)

## Connect

MCP server: `https://api.routergrowth.com/mcp`

```bash
claude mcp add --transport http routergrowth https://api.routergrowth.com/mcp
```

```bash
npm install -g routergrowth && routergrowth setup
routergrowth run -c seo.serp -i '{"keyword": "emergency plumber", "location": "Denver,Colorado,United States"}'
```

```bash
curl -X POST https://api.routergrowth.com/v1/run \
  -H "Authorization: Bearer $ROUTERGROWTH_API_KEY" \
  -d '{"capability": "seo.serp", "input": {"keyword": "emergency plumber", "location": "Denver,Colorado,United States"}}'
```

## Worth knowing

- **Positions count everything.** Position is the place on the full page, so organic results can start at 7 when ads and a local pack sit above.
- **You keep the history.** Store each week's rows in a table; the comparison is a join, not a feature you rent.
- **Live each time.** Every run fetches the page fresh, so a position reflects that moment and that location.

## Questions

### Is this a full rank tracking tool?

It is the data call behind one. Scheduling, storage and the diff are done by your agent or script.

### How often can I check?

As often as you run it. Weekly is enough for most keywords; each run is charged per search.

### Can I track mobile and desktop separately?

The call takes keyword, location, language and engine. It does not take a device setting.

### Does it track competitors too?

Yes. Every domain on the page comes back, so you can follow any of them.

## Related

- [Scrape the Google results page without proxies, CAPTCHAs or parsers](https://www.routergrowth.com/tools/google-search/serp-scraping-api.md)
- [What a SERP call costs on RouterGrowth and how it is billed](https://www.routergrowth.com/tools/google-search/serp-api-price.md)
- [Get Google results into a Python script with one POST request](https://www.routergrowth.com/tools/google-search/serp-api-python.md)
- [Give Claude, Cursor or Claude Code live Google results over MCP](https://www.routergrowth.com/tools/google-search/serp-api-mcp.md)
- [Fetch the live Bing results page for any keyword and location](https://www.routergrowth.com/tools/google-search/bing-serp-api.md)
- [A SERP API your agent calls: the live Google results page, as JSON](https://www.routergrowth.com/tools/google-search/serp-api.md)
