Getting found · Edition No. 15 · 9 Sep 2026

towfiqi/serpbear

Checks every day where a page sits in Google search results for a chosen list of words.

← Getting foundRead the whole edition →
06

towfiqi/serpbear

💎 hidden gem
SerpBear: daily search positions. Checks daily where a page sits in Google results.

2.1k stars · MIT · v3.1.0 (2026-03-27) · Track this in Rising ↗

Self-hosted Google rank tracker — unlimited keywords, one small SQLite container, Search Console integration.

Verified27 Oct 2026

Radar check

What we found when we opened it. Every bar is one fact, with its date.

Alive50

Last code pushed 14 May 2026, 5 months before this check.

Releases50

Latest release v3.1.0 on 27 Mar 2026.

Maturity70

Public since November 2022, a little over 3 years.

Adoption67

2,148 stars and 314 forks.

Activity0

0 commits and 3 new issues in the last 90 days.

Community60

18 contributors. No pull requests merged in 90 days; changes go in directly.

Security40

No security policy file says how to report a problem. No published security advisories.

Licence MIT | v3.1.0, 27 Mar 2026 | [docs.serpbe: permissive: use it for anything, keep the noticeSetup effort 2 of 5Payoff 4 of 5
How the bars are scored
  • Alive. Days since the last code push: a week or less 100, a month 90, three months 70, six months 50, a year 30, eighteen months 15, older 0.
  • Releases. Age of the latest GitHub release, on a similar scale; no bar when the project publishes no releases.
  • Maturity. Age of the project: eight years 100, five 90, three 70, two 55, one 40, six months 25, younger 10.
  • Adoption. Stars on a log scale: 100,000 stars is 100, 10,000 is 80, 1,000 is 60, 100 is 40.
  • Activity. Commits in the last 90 days: 300 or more 100, 100 85, 30 65, 10 45, any 25.
  • Community. People who have contributed: 100 or more 100, 30 80, 10 60, 5 40, 2 25, one 10.
  • Security. A published security policy 80, none 40; published advisories are listed, not scored.

Checked by Repo Radar on 27 Oct 2026 from the repository on GitHub. Covered in Edition 15.

▶Repo detailsthe review · specs · pros & cons · install

What it does

SerpBear records where a domain sits in Google search results for each word given to it, and it keeps every past reading. The number of domains and words is not capped. It can email a summary of position changes every day, every week or every month, which needs mail-sending details filled in first. It has a small interface for other programs, called an API, so the numbers can be pulled into a report elsewhere. It reads Google Search Console, the free Google service that reports real clicks and impressions, and shows those figures beside each word. It also suggests new words through a Google Ads test account, with monthly search volumes. It is a web application built with Next.js, a common toolkit for web pages, and it keeps all its data in one SQLite file, which is a database held in a single file on disk. It does not fetch search results on its own: it needs proxy addresses or a paid key from a search-data company, and it covers Google and no other search engine.

Why it matters

Who it suits. Anyone who has spent weeks improving pages and has no record of whether the positions moved. It suits a site competing for a few dozen words, and suits it twice over when the same site is published in two languages, because that is the same work measured twice. Skip it when nobody will read the chart, because the numbers only pay back when somebody acts on them. Skip it too when a paid rank tracker is already in place and its bill is not a problem.

Verdict. Worth about an hour, and worth doing this week rather than next. Positions cannot be collected backwards, so every day without it is a day missing from the chart for ever. The real cost is the search-data key rather than the software. Read the project's own table of providers before signing up to one, because three of the services it lists are marked there as no longer working. A position on its own flatters, so read it next to real visits from GoAccess (Edition 8 #4) or PostHog (Edition 11 #8). The project is quiet rather than abandoned: the newest release is v3.1.0 from 27 March 2026, and the newest code was pushed on 14 May 2026, so expect fixes slowly.

Stars2.1k
LicenceMIT
Latestv3.1.0 (2026-03-27)checked 7 Sep 2026
Written inTypeScript
Summary (Key Points)from the README
Key features
  • Unlimited tracking: Add unlimited domains and unlimited keywords to track their search engine results pages (SERP).
  • Email notifications: Get keyword position changes by email on a daily, weekly or monthly schedule.
  • Built-in SERP API: Use the included API with your marketing and data reporting tools.
  • Keyword research: Auto-generate keyword ideas from your tracked website's content by connecting a Google Ads test account.
  • Search volume data: Once Google Ads is connected, view monthly search volume for tracked keywords.
  • Google Search Console integration: See actual visit counts and impressions for each keyword.
  • Mobile app: Add the PWA to your phone for a better mobile experience.
  • Scraper choice: Use ScrapingAnt, ScrapingRobot, SearchApi, SerpApi, HasData, or your own proxy IPs to scrape Google results.
  • Tech stack: Built with Next.js for the frontend and backend, and SQLite for the database.
Ways to install
Platform or methodWhat it needsEffort
DockerThe SerpBear Docker image, linked in the READMENot stated in README
mogenius.comAn account on mogenius.com, which the README says can run the app for freeNot stated in README
Fly.ioAn account on Fly.io, which the README says can run the app for freeNot stated in README
Important
  • Scraping services cost money: The "Zero Cost to RUN" claim covers hosting. Scraping services range from pay-as-you-go at $1.00 per 1,000 requests to plans from $19/mo, unless you use your own proxy IPs.
  • Some services no longer work: The README marks spaceserp.com, scrapingant.com and scrapingrobot.com as "Doesn't work Anymore."
  • Google Ads account needed for research: Keyword generation and search volume data require connecting a Google Ads test account.
  • Search Console needed for visit data: Actual visit and impression counts appear only after you integrate Google Search Console.
  • Email alerts are optional: Setting up SMTP is a later, optional step. The README names ElasticEmail and Sendpulse as free SMTP options.

Written by an AI model from the project’s README; not part of the review, and it can be wrong.

Setup effort
2 / 5
Payoff
4 / 5
Good
  • MIT, one container to run, and all the data in a single file. It sits happily beside other things on a small machine.
  • The number of words tracked is not capped. Paid rank trackers charge per word, which is what usually stops anyone tracking a second language.
  • It reads Google Search Console, so words the site already ranks for appear without being guessed at.
Watch for
  • It cannot search by itself. It needs proxy addresses or a paid key, and three of the providers in the project's own table are marked as no longer working.
  • Google only. No other search engine is covered.
  • Releases are rare. v3.1.0 from March 2026 is still the newest, and the last code was pushed in May 2026.
Install
sudo apt install -y docker.io
mkdir -p ~/serpbear/data
sudo docker run -d --name serpbear -p 3000:3000 \
  -v $HOME/serpbear/data:/app/data \
  -e USER=admin \
  -e PASSWORD=choose-a-real-password \
  -e SECRET=a-long-random-string \
  -e APIKEY=another-long-random-string \
  towfiqi/serpbear
Screenshots
towfiqi/serpbear: GitHub preview cardtowfiqi/serpbear: Screenshot 1towfiqi/serpbear: Screenshot 2

On Stack Radar: Marketing & Growth › SEO & Organic Search › Rank Tracking.

Get the next edition in your inbox

A dozen repositories, opened and checked. The licence read, the last release dated, and the ones that did not make it named with the reason. It is the half most lists leave out.

No tracking pixels. One click to leave. The archive stays free either way.

We use your address to send the edition and nothing else. Confirm by email, leave in one click. How we handle it.