SearchCans

DIY SEO Rank Tracking: How to Monitor Keywords for $0.56/Month with Python

Why pay $129/month for rank tracking? Learn how to build a custom SEO monitor using Python and SearchCans SERP API to track unlimited keywords for pennies.

5 min read

In the world of SEO, data is power. But tools like Ahrefs, Semrush, and SE Ranking have put a steep price on that power.

The standard industry pricing is roughly $129/month to track just 500-750 keywords. If you are an agency managing multiple clients or a startup tracking thousands of programmatic SEO pages, the costs skyrocket to enterprise tiers ($999+).

Here is the secret they don’t want you to know: Rank tracking is just a loop of Google searches.

By building your own tool using SearchCans SERP API, you can track 1,000 keywords for as low as $0.56. That is not a typo. You are paying a 200x markup for a nice UI.

Today, we will build a professional-grade Rank Tracker in Python that you own 100%.

The Economics: SaaS vs. DIY

Let’s look at the math for tracking 1,000 keywords daily (30k checks/month).

SolutionMonthly CostData OwnershipRate Limits
Ahrefs (Standard)~$199NoStrict
Semrush (Guru)~$249NoStrict
SearchCans (Standard)~$18YesNone
SearchCans (Ultra)~$16YesNone

Note: With the Ultra plan, the cost per 1k searches drops to $0.56. Tracking 1,000 keywords daily would consume ~30k credits, costing roughly $16/month.

Building the Engine (Python)

We need a script that takes a list of keywords and a target domain, checks Google, and records the position.

Prerequisites

You need Python installed and your SearchCans API Key.

pip install requests pandas

The Script

This script doesn’t just check page 1; it scans the top 100 results to find your true position.

import requests
import pandas as pd
import time
from datetime import datetime

# Configuration
API_KEY = "YOUR_SEARCHCANS_KEY"
TARGET_DOMAIN = "yourwebsite.com"
KEYWORDS = [
    "best seo api",
    "web scraping tools python",
    "google maps scraper",
    "rank tracking api"
]

def check_rank(keyword, domain):
    url = "https://www.searchcans.com/api/search"
    params = {
        "query": keyword,
        "engine": "google",
        "num": 100,  # Scan top 100 results
        "gl": "us",  # Geo-location: United States
        "hl": "en"   # Language: English
    }
    headers = {"Authorization": f"Bearer {API_KEY}"}

    try:
        resp = requests.get(url, params=params, headers=headers)
        data = resp.json()
        
        # Extract organic results
        results = data.get("result", {}).get("data", [])
        
        for index, item in enumerate(results, 1):
            # Check if our domain is in the URL
            if domain in item.get("url", ""):
                return index, item.get("url")
        
        return 0, "Not in Top 100"  # 0 means unranked

    except Exception as e:
        print(f"Error checking {keyword}: {e}")
        return -1, "Error"

def run_tracker():
    print(f"🚀 Starting Rank Tracker for: {TARGET_DOMAIN}")
    report = []

    for kw in KEYWORDS:
        print(f"Checking: {kw}...")
        rank, found_url = check_rank(kw, TARGET_DOMAIN)
        
        report.append({
            "Date": datetime.now().strftime("%Y-%m-%d"),
            "Keyword": kw,
            "Rank": rank,
            "URL": found_url
        })
        # Be nice to the API (though we have no rate limits!)
        time.sleep(0.5)

    # Save to CSV
    df = pd.DataFrame(report)
    filename = f"ranking_report_{datetime.now().strftime('%Y%m%d')}.csv"
    df.to_csv(filename, index=False)
    print(f"�?Report saved to {filename}")
    print(df)

if __name__ == "__main__":
    run_tracker()

Advanced Features: Beyond Basic Tracking

The script above is just the beginning. Since you have raw access to the SERP data, you can build features that even expensive tools struggle with.

1. Local SEO Tracking

If you run a local business (e.g., “Plumber in New York”), national rankings are useless. You need to know how you rank in a specific city.

SearchCans allows you to pass a specific location parameter.

params = {
    "query": "emergency plumber",
    "location": "Manhattan, New York, United States" 
}

2. SERP Feature Analysis

Are you ranking #1 but getting no traffic because an “AI Overview” or “Featured Snippet” is pushing you down?

The JSON response from SearchCans includes detailed SERP features. You can modify the script to detect if your competitors possess these high-value spots and adjust your content strategy accordingly.

3. Competitor Spying

Don’t just track yourself. Add your top 5 competitors to the TARGET_DOMAIN check. You can generate a daily matrix showing who is moving up and who is falling, allowing you to react to algorithm updates faster than anyone else.

Conclusion

SaaS tools rent you insights; building your own tool gives you ownership.

With SearchCans, you get the same raw data that the big SEO tools use, but at wholesale prices. Whether you are building a simple internal dashboard or launching your own SEO SaaS, the data infrastructure starts here.

Stop paying the “Ahrefs Tax.” Start building.


Resources

Related Topics:

Get Started:


SearchCans provides real-time data for AI agents. Start building now →

SearchCans Team

SearchCans Team

SearchCans Editorial Team

Global

The SearchCans editorial team consists of engineers, data scientists, and technical writers dedicated to helping developers build better AI applications with reliable data APIs.

API DevelopmentAI ApplicationsTechnical WritingDeveloper Tools
View all →

Trending articles will be displayed here.

Ready to try SearchCans?

Get 100 free credits and start using our SERP API today. No credit card required.