Skip to content

Under construction. Where it stands

Self-hosted SEO tools: what exists and what each one does

The open-source SEO tools you can run yourself, licences checked, with what each needs and where its data comes from. Hosting the app isn’t hosting the data.

Published on 5 min read

Running your own SEO tool appeals for good reasons: no fee per site, nothing leaves your servers, and your history stays yours. But it’s easy to expect more than self-hosting can give. An SEO tool is two things, the app and its data, and you can host only the first.

We publish one of the tools below, Owlseen. It isn’t released, so it’s on the list only so you know where it stands.

The projects

Licences and last activity are as GitHub reports them, and what each does is from its own README. All checked on 6 November 2026. Things change quickly, so check before you commit.

ProjectLicenceBuilt withJobIts data comes from
OpenSEOMITTypeScriptKeywords, rank tracking, competitors, backlinks, audits, with an MCP serverA DataForSEO API key you pay for
SerpBearMITNext.js, SQLiteRank tracking with email alertsScraping services or your own proxies, plus optional Search Console and Google Ads
SEOnautMITGo, MySQLCrawl and audit a siteIts own crawler
SiteOne CrawlerMITRustCommand-line crawl and audit, reportsIts own crawler
UnlighthouseMITNodeLighthouse across a whole siteLighthouse, run from your machine
Lighthouse CIApache-2.0NodeLighthouse on every commit, with an optional server for historyLighthouse, run in your CI
OwlseenAGPL-3.0, plannedNext.js, PostgresSearch Console and Bing figures, rank tracking and indexing across sitesYour Google and Bing accounts. Not released

Two others you’ll hear about. Screaming Frog’s SEO Spider isn’t open source, but it does run on your own machine: free up to 500 URLs, with a licence at £199 a year, as listed on 6 November 2026. And Google’s Lighthouse itself, under Apache-2.0, is what several of these wrap.

Where the data really comes from

This is the part most comparisons skip. Whatever you host, the figures come from one of four places.

Your own crawl. A crawler you run can check your own pages fully and for free. It’s the part that self-hosts best. SEOnaut and SiteOne do this.

Google’s and Bing’s APIs, for your own sites. Clicks, impressions and positions come from Search Console’s API, with its limits, and it only covers sites you’ve verified. It’s free, and no self-hosted tool gets more from it than any other.

Scraping results pages, or paying someone who does. To see your rank at a moment, in a place, for any query, someone must fetch the results page. SerpBear’s README lists the services it works with, and some of those are marked as no longer working, which tells you how fragile that layer is. Check Google’s terms before you run your own.

Google’s official route is closing too. Its Custom Search JSON API is closed to new customers and will be discontinued on 1 January 2027, so don’t build on it.

A third-party database. Search volumes, competitors’ backlinks, competitors’ rankings: no single server of yours can produce those, since they need a crawl of the whole web. OpenSEO’s answer is to bring your own DataForSEO key and pay per use. It’s a sensible design, but the bill is yours and depends on your volume.

So decide what you actually need. If it’s your own sites’ performance and health, APIs and a crawler get you there at the price of a small server. If you need competitors’ data, you’re buying it, and the question is from whom.

What running one takes

A server and a database. The easy part. A daily copy of figures grows with the number of sites, so plan some room.

Scheduled jobs that really run. A daily job that quietly stops leaves a hole in your history that nothing can fill. Have it tell you when it fails.

Google OAuth set up properly. If a tool reads Search Console through your own Google client, a consent screen still in Testing gets refresh tokens that expire after 7 days. Your daily jobs would stop every week until you publish it.

Backups you’ve restored. Your history is the one thing you can’t get again from Google past 16 months. Back it up, and try a restore.

Updates. Anything facing the internet needs security updates. Decide who applies them.

Someone’s time. It’s the line people forget. Count it honestly against what you’d pay a hosted tool.

What the licence asks of you

MIT and Apache-2.0 ask almost nothing: keep the notice. AGPL-3.0 adds one thing: if you modify the program and people use it over a network, you must offer them your version’s source. For a team running it unmodified, or modified for its own use, that’s rarely an issue, and for someone reselling it as a service, it’s the point. This is general information, not legal advice.

How to choose

What you needStart with
Audit your own siteSEOnaut on a server, or SiteOne Crawler on your machine
Performance across a whole siteUnlighthouse
Stop speed regressions at each deployLighthouse CI
Rank at a moment and place, for chosen keywordsSerpBear, with a scraping service you’re happy with
Competitors, backlinks, keyword volumesOpenSEO with your own DataForSEO key
Your own figures across many sitesA script over the APIs today. It’s the gap Owlseen is being built for, once it’s released

Most people end up with two: one crawler and one tracker. That’s fine. They don’t need to be one app. The real test is whether you’ll still be running it in a year.

Whatever you pick, start storing your figures now. The history you wish you had is the one thing you can’t get back.