If you spend any time in SEO, you already know how satisfying it is to watch a keyword climb in the search results. A rank tracker gives you that visibility, and the best part is that you don’t need expensive tools or complex systems to start. With a free SERP API and a few lines of code, you can build your own lightweight rank tracker that runs exactly the way you want.
This guide breaks everything down step-by-step, written in the same style I share on Dev: practical, technical, and built for developers who appreciate clear explanations and reliable results.
Why Build Your Own Rank Tracker?
Most developers prefer having control over their data. A self-built tracker lets you:
- Pull rankings anytime you want
- Store the data in your own system
- Track as many keywords as your workflow requires
- Extend or customize without limits
- Keep things lightweight and clean
A free SERP API gives you structured search results directly from Google, making it the easiest way to monitor ranking positions without browser automation or proxy headaches.
What You’ll Use
To keep things simple, here’s the tech stack:
- SERPHouse Free SERP API (focus keyword: free SERP API)
- Node.js or Python (use whichever you're comfortable with)
- A spreadsheet/DB for storing results (SQLite, Notion, Google Sheets, anything works)
The idea is to show how quick it is to get this running no heavy dependencies, no complex setup.
How a Rank Tracker Works Behind the Scenes
Before writing code, it helps to know what’s happening underneath:
- You send a keyword + location query to the SERP API.
- The API returns clean results: titles, URLs, snippets, positions.
- You compare the returned URLs to your domain.
- The position number becomes your rank for that keyword.
- You save the result and repeat as often as needed.
That’s the entire system in simple terms.
Step 1: Get Your Free SERPHouse API Key
Head to the SERPHouse dashboard and grab your API key.
The free plan is more than enough for building a personal rank tracker, running tests, or creating a small automation workflow.
You’ll be calling the Google Organic API, which returns structured search results in JSON format.
Step 2: Write the Basic API Request
If you prefer Node.js:
import fetch from "node-fetch";
const API_KEY = "YOUR_API_KEY";
const keyword = "best running shoes";
const domain = "yourwebsite.com";
async function getRank() {
const url = `https://api.serphouse.com/serp?query=${encodeURIComponent(keyword)}&domain=google.com&api_key=${API_KEY}`;
const response = await fetch(url);
const data = await response.json();
const results = data.organic_results || [];
const index = results.findIndex(r => r.url.includes(domain));
return index >= 0 ? index + 1 : "Not found";
}
getRank().then(rank => console.log("Rank:", rank));
Or Python:
import requests
API_KEY = "YOUR_API_KEY"
keyword = "best running shoes"
domain = "yourwebsite.com"
def get_rank():
url = f"https://api.serphouse.com/serp?query={keyword}&domain=google.com&api_key={API_KEY}"
response = requests.get(url).json()
results = response.get("organic_results", [])
for idx, item in enumerate(results):
if domain in item.get("url", ""):
return idx + 1
return "Not found"
print("Rank:", get_rank())
Both scripts are minimal on purpose — simple enough to understand, clean enough to extend.
Step 3: Store Your Results
Here are some easy ways to save tracking data:
- Write results to a CSV
- Log into SQLite
- Push into Google Sheets
- Store in Firebase
- Drop into Notion using API
Even a basic CSV gives you long-term ranking history you can chart later.
Example CSV format:
date,keyword,rank
2025-12-01,best running shoes,12
2025-12-02,best running shoes,10
Step 4: Automate the Tracker
Once the script works manually, you can schedule it:
- Cron job (Linux/macOS)
- Windows Task Scheduler
- GitHub Actions
- Railway / Render / Replit on a recurring timer
A daily run is enough for most keywords.
Optional Add-Ons (If You Want to Level Up)
Once the base tracker works, you can expand it in any direction:
1. Track multiple keywords
Store them in a text file, list, or DB table.
2. Track competitors
Pull ranking for competitor domains and compare.
3. Pull rich SERP data
SERPHouse also gives you:
- featured snippets
- People Also Ask
- site links
- related searches
- local pack results
Add them when you’re ready.
- Push data to a dashboard Use:
- Grafana
- Supabase
- Google Data Studio
- Notion charts
- Your own frontend
Seeing rankings in a visual format always hits different.
Why the Free SERPHouse API Works So Well
Throughout my testing, the API stayed stable, predictable, and quick. The JSON structure is clean, the accuracy aligns with live search results, and the free tier gives enough capacity to run a personal rank tracker daily without worry.
It’s a reliable starting point for:
- indie devs
- SEO learners
- startup founders
- automation builders
- data hobbyists
And since everything comes as structured data, you don’t have to handle browsers, proxies, or rendering engines.
Final Thoughts
Building a rank tracker isn’t about creating another tool; it’s about owning your workflow. With nothing more than a free SERP API and a few lines of code, you can track rankings just as well as many paid tools.
This setup is simple, flexible, and ready to grow as your project grows.
Top comments (0)