SEO Tools 5 min read

Build Your Own SEO Rank Tracker (Stop Paying Ahrefs)

Why pay $129/mo for Ahrefs? Build custom SEO monitor with SearchCans at $0.56/1k. Track unlimited keywords with Python—complete DIY guide for pennies.

843 words

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).

Solution Monthly Cost Data Ownership Rate Limits
Ahrefs (Standard) ~$199 No Strict
Semrush (Guru) ~$249 No Strict
SearchCans (Standard) ~$18 Yes None
SearchCans (Ultra) ~$16 Yes None

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 →

Tags:

SEO Tools Python Data Engineering Cost Optimization
SearchCans Team

SearchCans Team

SERP API & Reader API Experts

The SearchCans engineering team builds high-performance search APIs serving developers worldwide. We share practical tutorials, best practices, and insights on SERP data, web scraping, RAG pipelines, and AI integration.

Ready to build with SearchCans?

Get started with our SERP API & Reader API. Starting at $0.56 per 1,000 queries. No credit card required for your free trial.