DEV Community

talor
talor

Posted on

Build a Google Rank Tracker with Python: From SERP Data to SEO Automation

Tracking search rankings sounds simple.

You choose a keyword, search Google, find your website, and record the position.

But building a reliable rank tracker is much harder than it looks.

The moment you move from a personal script to a production system, you face problems:

  • Search result pages change frequently

  • Automated requests trigger anti-bot systems

  • Search results vary by location and device

  • Historical ranking data needs to be stored and analyzed

  • Scaling thousands of keywords becomes expensive and complex

Many SEO tools solve this problem by maintaining large scraping infrastructures.

But for developers building their own SEO tools, dashboards, or AI applications, maintaining a Google scraper is usually not the best use of engineering time.

A more practical approach is using structured SERP data through an API.

In this tutorial, we will build a simple Google rank tracker using Python and a SERP API.

The goal is not only to get rankings, but to understand the architecture behind a scalable SEO monitoring system.

What Is a Google Rank Tracker?

A rank tracker is a system that monitors where a website appears in search results for specific keywords.

A basic workflow looks like this:

text

Keyword List

Search Engine Query

SERP Data Collection

Ranking Detection

Database Storage

SEO Analytics

For example, you want to monitor:

  • python serp api

  • google search api

  • seo automation tools

The system collects:

Field Example
Keyword python serp api
Website example.com
Position 7
Date 2026-08-27

Over time, these records become valuable SEO intelligence.

Why Not Just Scrape Google?

The first idea many developers have is: "Why don't I just scrape Google results?"

For a small experiment, this works:

python

import requests
from bs4 import BeautifulSoup

html = requests.get(
"https://www.google.com/search?q=python+serp+api"
).text

soup = BeautifulSoup(html, "html.parser")

But production systems quickly run into problems.

1. HTML Changes

Search engines constantly update their frontend.

A parser based on:

python

soup.select(".result")

may stop working after a layout change.

2. Anti-Bot Protection

Large-scale scraping requires handling:

  • CAPTCHA

  • Rate limits

  • IP rotation

  • Browser fingerprints

  • Proxy management

3. Search Context Matters

A Google result depends on:

  • Location

  • Language

  • Device

  • Search settings

For example, the ranking for best AI tools can be different between:

  • United States + Desktop

  • Germany + Mobile

A production rank tracker needs structured search data with these parameters included.

Project Architecture

A simple rank tracking system can be designed like this:

text

            Keywords
                ↓
        SERP API Collector
                ↓
        Ranking Processor
                ↓
           Database
                ↓
        Analytics Dashboard
Enter fullscreen mode Exit fullscreen mode

The components:

Keyword Storage stores what you want to monitor:

python

[
{"keyword": "python serp api", "domain": "example.com"},
{"keyword": "google search api", "domain": "example.com"}
]

SERP Collector retrieves search results. The collector sends keyword, location, language, device and receives structured search data.

For this tutorial, we will use the TalorData SERP API as the search data layer. It provides structured Google, Bing, Yandex, and DuckDuckGo results without requiring developers to maintain custom scraping infrastructure.

Setting Up the Python Project

Create a project:

text

rank-tracker/
├── tracker.py
├── keywords.json
└── requirements.txt

Install dependencies:

bash

pip install requests

Store your API key as an environment variable:

bash

export TALOR_API_TOKEN="your_token"

Avoid putting secrets directly inside your source code:

python

Don't do this

API_TOKEN = "123456"

Use:

python

import os

API_TOKEN = os.getenv("TALOR_API_TOKEN")

Fetch Google Search Results with Python

Create a simple search function:

python

import os
import requests

API_TOKEN = os.getenv("TALOR_API_TOKEN")
API_URL = "https://serpapi.talordata.net/serp/v1/request"

def google_search(keyword):
headers = {"Authorization": f"Bearer {API_TOKEN}"}
payload = {"engine": "google", "q": keyword}

response = requests.post(API_URL, headers=headers, json=payload)
return response.json()
Enter fullscreen mode Exit fullscreen mode

Now:

python

results = google_search("python serp api")
print(results)

The application now has structured SERP data that can be processed.

Finding a Website Ranking Position

The core function of a rank tracker is simple: find where your domain appears.

python

def find_position(results, domain):
organic = results.get("organic_results", [])
for item in organic:
if domain in item["link"]:
return item["position"]
return None

Usage:

python

position = find_position(results, "example.com")
print(position) # Output: 7

Your website ranks #7 for that keyword.

Tracking Multiple Keywords

Real SEO systems monitor hundreds or thousands of keywords.

python

keywords = [
"python serp api",
"google search api",
"seo automation"
]

for keyword in keywords:
results = google_search(keyword)
position = find_position(results, "example.com")
print(keyword, position)

Output:

text

python serp api 7
google search api 12
seo automation 5

This is the foundation of an automated rank tracking system.

Adding Location and Device Tracking

Professional SEO monitoring requires context.

python

payload = {
"engine": "google",
"q": "best AI tools",
"location": "Germany",
"device": "mobile",
"hl": "de"
}

Now you can answer:

  • How do we rank in Germany?

  • How does mobile ranking compare?

  • Which markets are improving?

Storing Ranking History

A ranking snapshot is useful. Historical ranking data is much more valuable.

Example:

text

August 1: Position 15
August 15: Position 9
August 27: Position 5

A simple database table:

sql

CREATE TABLE rankings (
id INTEGER PRIMARY KEY,
keyword TEXT,
domain TEXT,
position INTEGER,
location TEXT,
created_at TIMESTAMP
);

Now you can build:

  • Ranking charts

  • SEO reports

  • Competitor analysis

Automating Daily Tracking

Most rank trackers run automatically.

Example workflow:

text

Every Morning

Load Keywords

Fetch SERP Data

Calculate Rankings

Save Results

Generate Report

Python scheduling:

python

import schedule
import time

def run_tracker():
print("Tracking rankings...")

schedule.every().day.at("09:00").do(run_tracker)

while True:
schedule.run_pending()
time.sleep(60)

Building AI-Powered SEO Tools

Modern SEO platforms are moving beyond dashboards.

Search data can become an input source for AI agents.

Example User Query: "Which keywords lost rankings this week?"

AI system:

  1. Retrieves ranking history

  2. Compares changes

  3. Identifies important drops

  4. Suggests optimization actions

Architecture:

text

User

AI Agent

SERP Data

Analysis

Recommendation

This is where structured search data becomes especially valuable.

Final Thoughts

Building a Google rank tracker is not just about collecting search results.

A useful SEO system requires:

  • Reliable search data

  • Ranking analysis

  • Historical storage

  • Automation

  • Competitive intelligence

Python makes the application layer flexible. A SERP API removes the complexity of maintaining search scraping infrastructure.

Together, they provide a practical foundation for building:

  • SEO SaaS products

  • Keyword monitoring platforms

  • AI SEO assistants

  • Search intelligence tools

Search data is becoming an important building block for modern software.

The future of SEO is not just tracking rankings. It is building intelligent systems that understand search behavior.

Resources


This tutorial was originally published on the TalorData Blog.

Top comments (0)