惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
U
Unit 42
博客园 - 三生石上(FineUI控件)
aimingoo的专栏
aimingoo的专栏
人人都是产品经理
人人都是产品经理
Apple Machine Learning Research
Apple Machine Learning Research
MongoDB | Blog
MongoDB | Blog
Microsoft Azure Blog
Microsoft Azure Blog
G
Google Developers Blog
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
云风的 BLOG
云风的 BLOG
Jina AI
Jina AI
S
Schneier on Security
T
Threatpost
Blog — PlanetScale
Blog — PlanetScale
Microsoft Security Blog
Microsoft Security Blog
Spread Privacy
Spread Privacy
The Register - Security
The Register - Security
Google DeepMind News
Google DeepMind News
L
LINUX DO - 热门话题
T
Tenable Blog
M
MIT News - Artificial intelligence
Vercel News
Vercel News
C
CERT Recently Published Vulnerability Notes
A
Arctic Wolf
C
Cyber Attacks, Cyber Crime and Cyber Security
L
Lohrmann on Cybersecurity
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
The Hacker News
The Hacker News
P
Proofpoint News Feed
Last Week in AI
Last Week in AI
P
Palo Alto Networks Blog
A
About on SuperTechFans
V
Visual Studio Blog
T
The Exploit Database - CXSecurity.com
Scott Helme
Scott Helme
D
Darknet – Hacking Tools, Hacker News & Cyber Security
K
Kaspersky official blog
MyScale Blog
MyScale Blog
月光博客
月光博客
P
Privacy & Cybersecurity Law Blog
H
Help Net Security
腾讯CDC
T
Tailwind CSS Blog
博客园_首页
The GitHub Blog
The GitHub Blog
Recent Announcements
Recent Announcements
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
博客园 - 【当耐特】

SerpApi

Decoding Protobuf Messages Without Access to the Schema Introducing SerpApi’s Hermes Agent Plugin Loop Engineering Visualized: A World Cup Fan Journey with SerpApi and Codex Google v. SerpApi: The Court Granted Our Motion to Dismiss SerpApi Weekly Changelog: July 13-19, 2026 The State of the SERP in the Age of AI How to find the Google Knowledge Graph ID (kgmid) for anything What is an API? Part 2: Feeding the Machine (JSON) Building an Accessibility Search Experience with Google Flights, Hotels, and Maps APIs SerpApi Weekly Changelog: July 06-12, 2026 How to Scrape Google Flights Deals with a simple API Monitoring FIFA World Cup 2026 scores with a simple API How to scrape Google sports results Build Smarter Pydantic AI Agents with Real-Time Search A complete guide to web scraping with Ruby (2026) SerpApi Weekly Changelog: June 29- July 05, 2026 Make no mistakes: agent usability testing Semantic Image Search with Elasticsearch What is an API? Part 1: The Secret Life of a Web Browser MCP Apps with FastMCP: Turning Tool Output Into Interactive UI How to Scrape Naver AI Briefings with SerpApi Connect Sakana AI (Fugu) with Web Search API SerpApi Weekly Changelog: June 22-28, 2026 Trending Travel Destinations using Python & SerpApi How to scrape Bing reverse image search results Measuring Brand Presence Across AI Answer Engines SerpApi Weekly Changelog: June 15-21, 2026 How I Built a Star Wars Grogu Product Research Agent with Codex, Lark, and SerpApi How to scrape Bing web search results Categorizing hotels using Google Hotels images How to scrape Bing Images search results How to scrape Bing Copilot answers Build A No Code AI-Powered Local Lead Outreach System SerpApi Weekly Changelog: June 08-14, 2026 How to Do SEO Research with Claude Desktop and SerpApi MCP Track and Compare Product Prices Across Stores and Locations (SerpApi & Python) How to Extract Full Opinion Text from Google Scholar Case Law with SerpApi How to scrape Bing Maps search results SerpApi Weekly Changelog: June 01-07, 2026 Amazon ASIN Lookup API: Find and Fetch Product Details The State of MCP: Everything That Changed in H1 2026 How to scrape Bing News search results How to Connect Your Local LLM with Web Search Data SerpApi on Postman: One Unified Collection for Faster API Exploration SerpApi Weekly Changelog: May 25-31, 2026 Building an AI Agent in Python How to scrape Google Case Law API for Legal Research, Analytics, AI, and more SerpApi Achieves SOC 2 Type 2 and ISO 27001 Certification How to find your next product idea with Google Trends and SerpApi Scrape Competitors' Google Ads Data (Tutorial 2026) Using SerpApi and DeepSeek to Break Down Dan Koe’s Content Strategy SerpApi Weekly Changelog: May 18-24, 2026 How to scrape Bing Videos search results How to Scrape Instagram Profile Data with SerpApi How to scrape Bing Shopping search results How to Scrape Google Hotels Reviews SerpApi Weekly Changelog: May 11-17, 2026 5 Things You Can Build with Claude Code and Live Search Data Real Estate Data API for PropTech Developers How to Scrape Apple Maps with SerpApi How to scrape Google Trends
Introducing SerpTrail: A self-hosted SEO and GEO rank tracker for your business
Josef Strzibny · 2026-07-23 · via SerpApi

SerpTrail is a brand new self-hosted SEO and GEO rank tracker from SerpApi built with Rails and SQLite for easy monitoring of search performance. Do you need to track keyword positions across locations, see how are your pages ranking or spy on your competitors? SerpTrail will help you with that and more. Continue reading to find out what can you do with SerpTail today and what's coming next.

SerpTrail website overview

Search Engine Optimization (SEO) is is the practice of improving a website so it can be more easily discovered and ranked by search engines. It involves optimizing content, keywords, page structure, loading performance, links, and user experience so that search engines can understand what each page is about and show it to people searching for relevant topics.

The goal of SEO is to attract more organic traffic from visitors who find your site through unpaid search results and SEO tracking is the process of how to monitor your website search performance in search engines over time. This often means monitoring of your website pages positions in Google search and other search engines for important keywords close to your business.

This is why we created SerpTrail, a new Open Source rank and mentions tracker. The first version of SerpTrail is built around Google Search API, including the AI Overviews. However, SerpApi supports over 100+ APIs and so the next versions of SerpTrail will pick up new engines along the way as well.

Quick demo

Here's an introduction video so you can get look and feel for this new tool:

Introducing SerpTrail from SerpApi

Position tracking

Tracking your positions helps you understand whether your SEO work is actually paying off. You may publish new content, update old articles, build backlinks, or improve technical SEO but still stay clueless of what worked. SerpTrail can show you the usual graph of position changes over time:

SerpTrail's website keyword performance

Position tracking is useful because it helps you:

  • See which keywords are improving or declining
  • Measure the impact of content updates and SEO changes
  • Find pages that are close to ranking well and worth improving
  • Spot competitors gaining visibility
  • Understand traffic changes from search
  • Prioritize your SEO efforts based on real data

Rankings change constantly. Search engines update their algorithms, competitors publish new content, and user behavior evolves. A page that ranks well today might slowly drop over time if it is not maintained.

SEO tracking is a long term effort. When you know where your pages stand, you can react faster, improve the right content, and make better decisions about where to invest your time.

What is GEO and why it matters today

Generative Engine Optimization (GEO) is the practice of improving and monitoring how your brand, site, or content appears in AI-generated answers and search experiences like AI Overview or AI Mode. GEO might be a future of SEO as generative search answers become more and more common.

SEO usually asks the following questions:

  • Where does my page rank in Google?
  • Which keywords bring visibility?
  • Which competitors rank above me?

GEO on the other hand is about these:

  • Is my site cited in AI-generated answers?
  • Do AI Overviews mention my content?
  • Which sources are AI systems using for my market?

Users increasingly get text-based answers directly from search results and AI assistants. A regular SERP ranking is still valuable, but it is no longer the whole picture. If your competitors are cited more in generated answers, your organic visibility can decline even if traditional rankings look stable.

SerpTrail is built from the first version to care about both. If there is a an AI Overview for a particular keyword, it's saved automatically.

Tracking many keyword

SerpTrail changes how your website rank is monitored. You can add all the interesting keywords that matter for your product, content, or market without immediately connecting those searches to your website. Once you do, you'll immediately see the performance of your website against the saved data.

SerpTrail keywords tracking

This way you can monitor as many websites as you have, including old and new competitors. SerpTrail also supports running searches across multiple locations.

You can use this tracking for:

  • Product keywords
  • Brand keywords
  • Competitor comparisons
  • Informational search queries
  • Transactional search queries
  • Content topic monitoring
  • Localized country-specific search

Each keyword can be checked on a schedule:

  • Daily
  • Weekly
  • Biweekly
  • Monthly

For every due keyword, SerpTrail schedules background jobs through Solid Queue and records the search results for each configured location.

This option lets you track many keywords on a monthly basis for free as SerpApi comes with 250 free searches for a month.

You can also easily add many keywords at once using the bulk import.

Collecting search data

SerpTrail uses SerpApi to collect Google search results and preserve the full search response for each check. That means you can review not only positions, but also the context around those positions.

Depending on the search result data available, SerpTrail can track and expose:

  • Organic result positions
  • Ranking URLs
  • Search locations/country codes
  • AI Overview presence
  • AI Overview citations
  • AI Overview citation position
  • Competitor domains in live search results
  • Full historical search run data

Internally this is done by saving the full SerpApi JSON:

serp-trail(dev):004> SearchRun.last.raw_response
  SearchRun Load (0.4ms)  SELECT "search_runs".* FROM "search_runs" ORDER BY "search_runs"."id" DESC LIMIT 1 /*application='SerpTrail'*/
=> "{\"organic_results\":[{\"position\":1,\"title\":\"Apple iPhone 18\",\"link\":\"https://apple.com/shop/buy-iphone/iphone-18\",\"snippet\":\"Buy iPhone 18 directly from Apple with financing options.\"},{\"position\":2,\"title\":\"iPhone 18 on Amazon\",\"link\":\"https://amazon.com/dp/iphone-18\",\"snippet\":\"Find iPhone 18 deals on Amazon with fast shipping.\"},{\"position\":3,\"title\":\"iPhone 18 at Walmart\",\"link\":\"https://walmart.com/iphone-18\",\"snippet\":\"Shop iPhone 18 at Walmart with great prices.\"}]}"

This design will let us add other useful features later for data you already have.

Historical performance

Having full historical search run data is what enables SerpTrail to give you an overview on your website historical ranking:

  • Current position
  • Previous position
  • Position changes over time
  • Which URL ranked for each check
  • Search result snapshots for past runs
  • AI Overview presence and citation changes
  • Performance by country/location
  • Performance across multiple tracked sites
SerpTrail checks history

This lets you answer questions like:

  • Did we improve after publishing new content?
  • Did a competitor overtake us?
  • Are rankings different in the US vs. UK?
  • Did Google start showing an AI Overview for this query?
  • Are we cited in AI Overviews more or less often than before?

OpenAI integration

SerpTrail 1.0 includes an optional AI chat assistant powered by OpenAI and the RubyLLM library. The assistant can answer questions about tracked keyword history, compare sites, summarize ranking changes, and even use live search tools powered by SerpApi:

SerpTrail chat assistant

To use the chat assistant it's required to also add an OpenAI API key in Settings. This key is not required for regular tracking.

Combining your existing data with live search gives this assistant a lot of capabilities which will be extended in future versions.

Self-hosting SerpTrail

SerpTrail is designed for effortless self-hosting. It is a Ruby on Rails application using SQLite, Solid Queue, Solid Cache, and Solid Cable, so you can run it without provisioning PostgreSQL, Redis, or extra infrastructure. This means you only need a storage like a Docker volume for data and a couple of environment variables.

The authentication is kept simple for now with HTTP Basic Auth. We also need SECRET_KEY_BASE which is a standard secret needed for Rails applications. And since service API keys are designed to be added in Settings, you'll need to provide Active Record encryption keys for their database encryption.

Docker

Here's how to run SerpTrail with plain Docker using our official image. Since Docker creates non-existing volumes automatically, you can run the application directly with a single docker run command. Provide the name, port, volume, environment variables and use the serpapi/serptail image:

docker run -d \
  --name serptrail \
  -p 80:80 \
  -v serptrail_storage:/rails/storage \
  -e SECRET_KEY_BASE="change-me-generate-a-long-random-value" \
  -e HTTP_AUTH_USERNAME="admin" \
  -e HTTP_AUTH_PASSWORD="change-me" \
  -e AR_ENCRYPTION_PRIMARY_KEY="change-me-generate-once" \
  -e AR_ENCRYPTION_DETERMINISTIC_KEY="change-me-generate-once" \
  -e AR_ENCRYPTION_KEY_DERIVATION_SALT="change-me-generate-once" \
  -e SOLID_QUEUE_IN_PUMA="true" \
  serpapi/serptrail:latest

The container entrypoint runs database preparation automatically before the Rails server starts. The volume serptrail_storage will be created automatically, but we need to tell Docker to mount it as /rails/storage.

To keep things as a single command, we can use the SOLID_QUEUE_IN_PUMA option to run the background job as part of the web process. Now you can open your deployed URL and sign in with the HTTP Basic Auth credentials you configured.

Docker Compose

Running SerpTrail with Docker Compose is not that different from running with a single Docker command. Create the Docker Compose YAML file and define SerpTrail as a service. Again, you don't need to run background jobs separately if you don't want to. Here's such an docker-compose.yml file:

services:
  web:
    image: serpapi/serptrail:latest
    ports:
      - "80:80"
    environment:
      SECRET_KEY_BASE: "change-me-generate-a-long-random-value"
      HTTP_AUTH_USERNAME: "admin"
      HTTP_AUTH_PASSWORD: "change-me"
      AR_ENCRYPTION_PRIMARY_KEY: "change-me-generate-once"
      AR_ENCRYPTION_DETERMINISTIC_KEY: "change-me-generate-once"
      AR_ENCRYPTION_KEY_DERIVATION_SALT: "change-me-generate-once"
      SOLID_QUEUE_IN_PUMA: "true"
      # Optional initial values; these can also be configured in /settings.
      # SERPAPI_API_KEY: "your-serpapi-key"
      # OPENAI_API_KEY: "your-openai-key"
    volumes:
      - serptrail_storage:/rails/storage
    restart: unless-stopped

volumes:
  serptrail_storage:

Then you can run it with the usual Docker Compose commands such as:

docker compose up -d
docker compose down

Kamal, Coolify, and others

We plan to document a few other options on how to run SerpTrail. For one, you can run it with Kamal directly from the git repository (useful if you are going to fork the project). And if you are looking for a PaaS like Coolify, we have a post on How to start self-hosting with Coolify 4. Coolify lets you run services using a Docker Compose file we already created.

Alternatives

SerpBear

SerpBear is an open source project for tracking your website keywords performance in Google search. It's an already established project, so it packs a little bit more functionality, but that won't last long. SerpTrail is pretty ambitions for the future as there is a plan to integrate more APIs from SerpApi.

Serposcope

Serposcope is a free rank tracker for SEO. Unlike SerpBear and SerpTrail, you can run Serposcope locally without 3rd-party API keys. This has a small downside, though. You might need to configure your own CAPTCHA solvers anyway which makes this advantage more work in the end.

What's next

SerpTrail 1.0 is just a start. We'll add more things around generative search performance as well as local SEO. You should also tell us what you want to see in the next versions by opening issues or submitting pull requests on the project's GitHub. SerpTrail is Open Source after all and contributions are welcome.