SERP title/meta optimization for striking-distance keywords (#254)
This commit is contained in:
parent
8a85b7b794
commit
f7e5729a09
@ -7,21 +7,21 @@ date: "2026-06-05"
|
||||
|
||||
There are a lot of open source SEO projects on GitHub, but only a handful are mature enough to rely on. This guide covers those, plus a few honorable mentions worth watching or testing.
|
||||
|
||||
In the past, open source SEO tools struggled because they lacked quality data. Beyond auditing, most SEO tasks have a cost and the projects in this guide aren't totally free. For example, rank tracking requires SERP results from around the world. Coming up with a content strategy means you need accurate search volumes and backlink indexes. The tools in this list rely on paid third-party services, but they still cost far less than the equivalent legacy SaaS tools.
|
||||
In the past, open source SEO tools struggled because they lacked quality data. Beyond auditing, most SEO tasks have a cost, so most of the projects in this guide aren't totally free. For example, rank tracking requires SERP results from around the world. Coming up with a content strategy means you need accurate search volumes and backlink indexes. Most of the tools in this list rely on paid third-party services, but they still cost far less than the equivalent legacy SaaS tools.
|
||||
|
||||
Note: OpenSEO publishes this guide, and OpenSEO is one of the tools listed, as the project has 2,000+ stars on GitHub. We have tried to make this useful even if you never touch it. We love open source and think it's the future of SEO tools: [openseo.so/open-source-seo](/open-source-seo).
|
||||
|
||||
## The main tools at a glance
|
||||
|
||||
| Tool | Stars | What it does | Requirements | Self-hosting |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| [OpenSEO](https://github.com/every-app/open-seo) | 2.1k | All-in-one: keyword research, rank tracking, backlinks, site audits, AI visibility | DataForSEO API key | Docker or Cloudflare Workers |
|
||||
| [SerpBear](https://github.com/towfiqi/serpbear) | 2.0k | Rank tracking | A SERP API provider | Docker |
|
||||
| [SEONaut](https://github.com/StJudeWasHere/seonaut) | 717 | Technical SEO and site audits | None | Docker |
|
||||
| [LibreCrawl](https://github.com/PhialsBasement/LibreCrawl) | 681 | Site crawling and SEO audits | None | Desktop or web |
|
||||
| [SEOMachine](https://github.com/TheCraigHewitt/seomachine) | 7.1k | SEO content writing inside Claude Code | Claude Code + Anthropic API key | Clone the repo, run in Claude Code |
|
||||
| Tool | Stars | What it does | Cost to run | Self-hosting |
|
||||
| ---------------------------------------------------------- | ----- | ---------------------------------------------------------------------------------- | -------------------------------------------------- | ---------------------------------- |
|
||||
| [OpenSEO](https://github.com/every-app/open-seo) | 2.1k | All-in-one: keyword research, rank tracking, backlinks, site audits, AI visibility | DataForSEO usage (your own API key, pay-as-you-go) | Docker or Cloudflare Workers |
|
||||
| [SerpBear](https://github.com/towfiqi/serpbear) | 2.0k | Rank tracking | SERP API usage (provider of your choice) | Docker |
|
||||
| [SEONaut](https://github.com/StJudeWasHere/seonaut) | 717 | Technical SEO and site audits | Free | Docker |
|
||||
| [LibreCrawl](https://github.com/PhialsBasement/LibreCrawl) | 681 | Site crawling and SEO audits | Free | Desktop or web |
|
||||
| [SEOMachine](https://github.com/TheCraigHewitt/seomachine) | 7.1k | SEO content writing inside Claude Code | Anthropic API usage | Clone the repo, run in Claude Code |
|
||||
|
||||
*Star counts are updated monthly. Last updated June 5, 2026.*
|
||||
_Star counts are updated monthly. Last updated June 5, 2026._
|
||||
|
||||
## OpenSEO
|
||||
|
||||
|
||||
@ -34,6 +34,24 @@ After adding the server, approve the OpenSEO login when prompted.
|
||||
|
||||
Claude Desktop custom connectors require a Claude plan that supports custom connectors.
|
||||
|
||||
## Cursor
|
||||
|
||||
1. Open Cursor Settings -> Tools & Integrations -> MCP Tools.
|
||||
2. Click New MCP Server. Cursor opens `mcp.json`.
|
||||
3. Add:
|
||||
|
||||
```json
|
||||
{
|
||||
"mcpServers": {
|
||||
"openseo": {
|
||||
"url": "https://app.openseo.so/mcp"
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
4. Approve the OpenSEO login when prompted.
|
||||
|
||||
## Codex CLI
|
||||
|
||||
Run this in your terminal:
|
||||
|
||||
@ -1,18 +1,56 @@
|
||||
---
|
||||
title: Free Google Search Console MCP
|
||||
description: Connect Google Search Console to your AI agent for free. Read clicks, impressions, CTR, position, and indexing through the OpenSEO MCP, with no Google Cloud setup.
|
||||
title: "Google Search Console MCP Server: No Google Cloud Setup"
|
||||
description: Connect Google Search Console to Claude, Cursor, or any MCP client — no Google Cloud project needed. Query clicks, impressions, CTR, position, and indexing.
|
||||
---
|
||||
|
||||
Many Google Search Console (GSC) MCP servers are open source and free, but they take a lot of effort to set up. You need to create a Google Cloud project, enable an API, build an OAuth client, download a `credentials.json`, then keep a local server running. OpenSEO handles the Google connection for you. You sign up, connect your property, and start asking.
|
||||
Most Google Search Console (GSC) MCP servers are open source, but they take a lot of effort to set up. You need to create a Google Cloud project, enable an API, build an OAuth client, download a `credentials.json`, then keep a local server running. OpenSEO handles the Google connection for you. You sign up, connect your property, and start asking.
|
||||
|
||||
## Setup: Simple, zero-config
|
||||
|
||||
### With OpenSEO
|
||||
## Setup: no Google Cloud project
|
||||
|
||||
1. Sign up for OpenSEO.
|
||||
2. Go through the onboarding.
|
||||
2. When prompted, click **Connect Search Console** and pick your property.
|
||||
3. Add the [OpenSEO MCP endpoint](/docs/mcp) to Claude, Cursor, or ChatGPT.
|
||||
2. Go through the onboarding. When prompted, click **Connect Search Console** and pick your property.
|
||||
3. Add the OpenSEO MCP endpoint to your client (steps below) and approve the OpenSEO login when prompted.
|
||||
|
||||
The hosted MCP server URL is:
|
||||
|
||||
```txt
|
||||
https://app.openseo.so/mcp
|
||||
```
|
||||
|
||||
### Claude Code
|
||||
|
||||
```bash
|
||||
claude mcp add --transport http --scope user openseo https://app.openseo.so/mcp
|
||||
```
|
||||
|
||||
### Claude Desktop
|
||||
|
||||
1. Open Settings → Connectors.
|
||||
2. Click **Add custom connector**.
|
||||
3. Paste `https://app.openseo.so/mcp`.
|
||||
|
||||
### Cursor
|
||||
|
||||
1. Open Cursor Settings → Tools & Integrations → MCP Tools.
|
||||
2. Click **New MCP Server** (this opens `mcp.json`) and add:
|
||||
|
||||
```json
|
||||
{
|
||||
"mcpServers": {
|
||||
"openseo": {
|
||||
"url": "https://app.openseo.so/mcp"
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### Codex CLI
|
||||
|
||||
```bash
|
||||
codex mcp add openseo --url https://app.openseo.so/mcp
|
||||
```
|
||||
|
||||
Any other MCP client works the same way: add `https://app.openseo.so/mcp` as a remote server and sign in. Full setup and troubleshooting live in the [MCP docs](/docs/mcp).
|
||||
|
||||
### The DIY way (every other GSC MCP)
|
||||
|
||||
@ -41,9 +79,9 @@ Two read-only tools over the property you connect. Both pull Google's own number
|
||||
|
||||
The agent can read and inspect. It cannot change anything in your account.
|
||||
|
||||
## Why it's free (and what isn't)
|
||||
## What it costs
|
||||
|
||||
Google doesn't charge you to read your own Search Console data, so neither do we. The Search Console tools use zero credits. When you want more, like keyword research, rank tracking, or backlink data, those tools run through the same MCP and use credits. Connect Search Console first, and reach for the rest when you need it.
|
||||
The Search Console tools use zero credits — Google doesn't charge you to read your own data, so reading it through OpenSEO never burns usage. They're included with the OpenSEO plan ($10/month, which includes monthly usage credits for the research tools), alongside the credit-based tools (keyword research, rank tracking, backlinks) that run through the same MCP endpoint. If you'd rather not pay at all, OpenSEO is open source and free to self-host — see the FAQ below.
|
||||
|
||||
## OpenSEO vs. the alternatives
|
||||
|
||||
@ -51,9 +89,9 @@ Google doesn't charge you to read your own Search Console data, so neither do we
|
||||
|
||||
## FAQ
|
||||
|
||||
### Is it really free?
|
||||
### What does it cost?
|
||||
|
||||
Yes, all you need is an OpenSEO account. OpenSEO's other features do use usage credits, but aren't necessary to use the Google Search Console MCP.
|
||||
The Search Console MCP tools are included with the $10/month OpenSEO plan and use zero credits. OpenSEO's other tools (keyword research, rank tracking, backlinks) use the usage credits included with the plan, through the same endpoint. Self-hosting is free.
|
||||
|
||||
### Is it open source?
|
||||
|
||||
@ -65,7 +103,7 @@ Yes. OpenSEO requests read-only access (`webmasters.readonly`). Your agent can r
|
||||
|
||||
### Which AI clients work?
|
||||
|
||||
Any MCP client, including Claude Code, Cursor, Codex, and OpenClaw. Add the OpenSEO MCP endpoint and sign in.
|
||||
Any MCP client, including Claude Code, Claude Desktop, Cursor, Codex, and OpenClaw. Add the OpenSEO MCP endpoint and sign in.
|
||||
|
||||
### How fresh is the data?
|
||||
|
||||
|
||||
@ -37,7 +37,10 @@ const ROWS: { label: string; cells: Cell[] }[] = [
|
||||
{
|
||||
label: "Price",
|
||||
cells: [
|
||||
{ text: "Free, no credits", tone: "positive" },
|
||||
{
|
||||
text: "Included in the $10/mo plan, zero credits (free to self-host)",
|
||||
tone: "positive",
|
||||
},
|
||||
{ text: "Free (your time + your own quota)" },
|
||||
{ text: "Paid or limited free tier", tone: "negative" },
|
||||
],
|
||||
|
||||
@ -257,14 +257,14 @@ export const featurePages = {
|
||||
slug: FEATURE_PAGE_SLUGS.domainOverview,
|
||||
eyebrow: "Domain Overview",
|
||||
navDescription: "Analyze competitor visibility.",
|
||||
title: "Domain analysis tool for competitor SEO research",
|
||||
title: "Domain overview: traffic, keywords, and pages for any domain",
|
||||
description:
|
||||
"Review a domain's estimated organic traffic, organic keyword count, and ranking keyword and page data before deciding where to compete.",
|
||||
primaryKeyword: "domain analysis tool",
|
||||
"Get a domain overview of any website: estimated organic traffic, ranking keywords, and top organic pages, with one click into backlink and keyword research.",
|
||||
primaryKeyword: "domain overview",
|
||||
secondaryKeywords: [
|
||||
"domain analysis tool",
|
||||
"competitor keyword analysis tool",
|
||||
"website traffic checker",
|
||||
"competitor analysis seo tool",
|
||||
],
|
||||
imageAlt: "OpenSEO domain overview",
|
||||
imageSrc:
|
||||
@ -312,9 +312,14 @@ export const featurePages = {
|
||||
],
|
||||
faqs: [
|
||||
{
|
||||
question: "What does a domain analysis tool show?",
|
||||
question: "What is a domain overview?",
|
||||
answer:
|
||||
"It summarizes a domain's organic footprint, including estimated traffic, organic keyword count, ranking keywords, and top organic pages.",
|
||||
"A domain overview is a snapshot of a website's organic search footprint: estimated organic traffic, how many keywords it ranks for, its top ranking keywords, and its top organic pages. It's usually the first step in competitor research because it shows where a site earns its visibility.",
|
||||
},
|
||||
{
|
||||
question: "How does this compare to Semrush Domain Overview?",
|
||||
answer:
|
||||
"OpenSEO covers the core of the same report (estimated traffic, organic keywords, top keywords, and top pages) without a triple-digit monthly seat. OpenSEO is open source, so you can self-host it, and the managed app is $10/month and includes usage credits.",
|
||||
},
|
||||
{
|
||||
question: "Can OpenSEO help with competitor keyword analysis?",
|
||||
|
||||
@ -8,7 +8,7 @@ const page = featurePages.domainOverview;
|
||||
export const Route = createFileRoute("/_marketing/features/domain-overview")({
|
||||
head: () =>
|
||||
buildPageSeo({
|
||||
title: "Domain Analysis Tool",
|
||||
title: "Domain Overview Tool: Traffic, Keywords & Top Pages",
|
||||
description: page.description,
|
||||
path: "/features/domain-overview",
|
||||
titleSuffix: "OpenSEO",
|
||||
|
||||
@ -8,7 +8,7 @@ const featuresDescription =
|
||||
export const Route = createFileRoute("/_marketing/features/")({
|
||||
head: () =>
|
||||
buildPageSeo({
|
||||
title: "OpenSEO Features",
|
||||
title: "Features",
|
||||
description: featuresDescription,
|
||||
path: "/features",
|
||||
titleSuffix: "OpenSEO",
|
||||
@ -69,7 +69,7 @@ function FeaturesIndex() {
|
||||
Search Console MCP
|
||||
</p>
|
||||
<h3 className="mt-2 text-lg font-semibold text-neutral-900">
|
||||
Free Google Search Console MCP
|
||||
Google Search Console MCP — no Google Cloud setup
|
||||
</h3>
|
||||
<p className="mt-2 text-sm leading-relaxed text-neutral-600">
|
||||
Let your agent read clicks, impressions, CTR, position, and URL
|
||||
|
||||
@ -2,7 +2,7 @@ import { createFileRoute } from "@tanstack/react-router";
|
||||
import { buildPageSeo } from "@/lib/seo";
|
||||
|
||||
const mcpDescription =
|
||||
"Connect OpenSEO MCP so compatible AI clients can call keyword, SERP, domain, backlink, saved keyword, rank-tracking, and Google Search Console tools.";
|
||||
"Give Claude, Cursor, or any MCP client real SEO tools: keyword research, live SERPs, backlinks, rank tracking, and Search Console data via one MCP server.";
|
||||
|
||||
const toolCategories = [
|
||||
{
|
||||
@ -20,6 +20,11 @@ const toolCategories = [
|
||||
title: "Save keywords",
|
||||
description: "Keep useful ideas organized in your OpenSEO project.",
|
||||
},
|
||||
{
|
||||
title: "Get rank tracker data",
|
||||
description:
|
||||
"Read tracked-keyword positions and latest results from your project's rank trackers.",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
@ -52,37 +57,37 @@ const toolCategories = [
|
||||
description:
|
||||
"Check index coverage, crawl, canonical, mobile, and rich-result signals.",
|
||||
},
|
||||
{
|
||||
title: "Use first-party data",
|
||||
description:
|
||||
"Run read-only Search Console calls for free with no OpenSEO credits.",
|
||||
},
|
||||
],
|
||||
},
|
||||
] as const;
|
||||
|
||||
const workflows = [
|
||||
{
|
||||
title: "Research with live SEO data",
|
||||
title: "First-pass keyword research",
|
||||
description:
|
||||
"Give Codex, Claude, and other MCP clients access to OpenSEO keyword, SERP, domain, backlink, saved keyword, rank-tracking, and Search Console data.",
|
||||
"Ask the agent to expand seed topics into keyword ideas with volume, difficulty, and CPC, then save the promising ones back to your OpenSEO project for human review.",
|
||||
},
|
||||
{
|
||||
title: "Keep the agent focused",
|
||||
title: "Competitor teardown",
|
||||
description:
|
||||
"Ask for a specific workflow like competitor analysis or keyword clustering instead of a vague SEO recommendation.",
|
||||
"Point the agent at a competitor domain and have it pull the domain overview, ranking keywords, and backlink stats, then summarize where you can realistically compete.",
|
||||
},
|
||||
{
|
||||
title: "Save useful output",
|
||||
title: "Striking-distance sweep from Search Console",
|
||||
description:
|
||||
"Let the agent save promising keywords back to OpenSEO so human review and rank tracking can happen in the same workspace.",
|
||||
"Have the agent read your GSC queries, find page-two keywords worth pushing to page one, and check the live SERP for each before recommending changes.",
|
||||
},
|
||||
{
|
||||
title: "Keyword clustering and tagging",
|
||||
description:
|
||||
"Let the agent group saved keywords by intent, tag them by page or topic cluster, and hand back a content plan you can act on in the OpenSEO UI.",
|
||||
},
|
||||
];
|
||||
|
||||
export const Route = createFileRoute("/_marketing/features/mcp")({
|
||||
head: () =>
|
||||
buildPageSeo({
|
||||
title: "OpenSEO MCP",
|
||||
title: "SEO MCP Server: Keyword, SERP & Backlink Tools",
|
||||
description: mcpDescription,
|
||||
path: "/features/mcp",
|
||||
titleSuffix: "OpenSEO",
|
||||
@ -95,13 +100,14 @@ function McpPage() {
|
||||
<>
|
||||
<p className="text-sm font-medium text-neutral-500">OpenSEO MCP</p>
|
||||
<h1 className="mt-3 text-3xl font-bold tracking-tight leading-tight">
|
||||
OpenSEO MCP for AI SEO workflows
|
||||
An SEO MCP server for AI agents
|
||||
</h1>
|
||||
<p className="mt-4 text-neutral-700 leading-relaxed">
|
||||
Connect OpenSEO to your AI agent so it can research keywords, inspect
|
||||
SERPs, compare competitors, summarize backlink context, save keyword
|
||||
opportunities, review rank-tracking data, and read first-party Search
|
||||
Console signals with live SEO context.
|
||||
OpenSEO is an SEO MCP server that connects Claude, Cursor, Codex, or any
|
||||
MCP client to real data, so your agent can research keywords, inspect
|
||||
live SERPs, compare competitor domains, summarize backlink context, save
|
||||
keyword opportunities, review rank-tracking data, and read first-party
|
||||
Search Console signals.
|
||||
</p>
|
||||
|
||||
<div className="mt-6 flex flex-col gap-3 sm:flex-row">
|
||||
@ -120,17 +126,26 @@ function McpPage() {
|
||||
</div>
|
||||
|
||||
<section className="mt-12">
|
||||
<h2 className="text-xl font-semibold">What it does</h2>
|
||||
<h2 className="text-xl font-semibold">What is an SEO MCP server?</h2>
|
||||
<p className="mt-2 text-sm leading-relaxed text-neutral-600">
|
||||
MCP lets compatible AI clients call OpenSEO research tools directly.
|
||||
After connecting OpenSEO through a supported MCP client, your agent
|
||||
can perform structured SEO research with data from your OpenSEO
|
||||
project instead of relying on generic guesses.
|
||||
MCP (Model Context Protocol) is the standard AI clients use to call
|
||||
external tools. An SEO MCP server exposes SEO data (keyword metrics,
|
||||
SERP results, domain and backlink stats) as tools an agent can call
|
||||
mid-conversation. Instead of guessing at search volumes or rankings,
|
||||
your agent queries real data from your OpenSEO project, and can save
|
||||
its findings back so you can review them in the UI. Pair it with{" "}
|
||||
<a
|
||||
href="/features/keyword-research"
|
||||
className="font-medium text-neutral-900 underline decoration-neutral-300 underline-offset-4 transition-colors hover:text-neutral-700"
|
||||
>
|
||||
keyword research
|
||||
</a>{" "}
|
||||
for an agent-driven first pass over any topic.
|
||||
</p>
|
||||
</section>
|
||||
|
||||
<section className="mt-12">
|
||||
<h2 className="text-xl font-semibold">Useful workflows</h2>
|
||||
<h2 className="text-xl font-semibold">Agent workflows that work</h2>
|
||||
<ol className="mt-6 space-y-6">
|
||||
{workflows.map((workflow, index) => (
|
||||
<li
|
||||
@ -180,12 +195,13 @@ function McpPage() {
|
||||
|
||||
<section className="mt-12 rounded-lg border border-neutral-200 bg-white p-5">
|
||||
<h2 className="text-lg font-semibold text-neutral-900">
|
||||
New: free Google Search Console MCP
|
||||
Google Search Console MCP — no Google Cloud setup
|
||||
</h2>
|
||||
<p className="mt-2 text-sm leading-relaxed text-neutral-600">
|
||||
OpenSEO MCP can read Search Console performance and URL inspection
|
||||
data from a connected hosted project. These tools are read-only and do
|
||||
not use OpenSEO credits.
|
||||
data from a connected hosted project. No Google Cloud project or OAuth
|
||||
credentials needed. These tools are read-only and do not use OpenSEO
|
||||
credits.
|
||||
</p>
|
||||
<div className="mt-4">
|
||||
<a
|
||||
|
||||
@ -17,11 +17,6 @@ const softwareApplicationLd = {
|
||||
operatingSystem: "Web",
|
||||
url: toCanonicalUrl(PATH),
|
||||
description: frontmatter.description,
|
||||
offers: {
|
||||
"@type": "Offer",
|
||||
price: "0",
|
||||
priceCurrency: "USD",
|
||||
},
|
||||
provider: {
|
||||
"@type": "Organization",
|
||||
name: "OpenSEO",
|
||||
@ -32,7 +27,7 @@ const softwareApplicationLd = {
|
||||
export const Route = createFileRoute("/_marketing/google-search-console-mcp")({
|
||||
head: () =>
|
||||
buildPageSeo({
|
||||
title: "Free Google Search Console MCP",
|
||||
title: "Google Search Console MCP Server: No Google Cloud Setup",
|
||||
description: frontmatter.description,
|
||||
path: PATH,
|
||||
titleSuffix: "OpenSEO",
|
||||
@ -58,7 +53,7 @@ function GoogleSearchConsoleMcpPage() {
|
||||
href="https://app.openseo.so/sign-up"
|
||||
className="inline-flex h-10 items-center justify-center rounded-md bg-neutral-950 px-5 text-sm font-medium text-white transition-colors hover:bg-neutral-800"
|
||||
>
|
||||
Try it now
|
||||
Get started
|
||||
<span className="ml-2" aria-hidden="true">
|
||||
→
|
||||
</span>
|
||||
@ -92,15 +87,15 @@ function GoogleSearchConsoleMcpCta() {
|
||||
Point your AI at your real search data
|
||||
</p>
|
||||
<p className="mt-2 text-sm leading-relaxed text-neutral-600">
|
||||
Free to connect. No Google Cloud project. Works with Claude, Cursor, and
|
||||
ChatGPT.
|
||||
No Google Cloud project. Zero credits to read your own data. Works with
|
||||
Claude, Cursor, and Codex.
|
||||
</p>
|
||||
<div className="mt-5 flex flex-col gap-3 sm:flex-row">
|
||||
<a
|
||||
href="https://app.openseo.so/sign-up"
|
||||
className="inline-flex h-10 items-center justify-center rounded-md bg-neutral-950 px-4 text-sm font-medium text-white transition-colors hover:bg-neutral-800"
|
||||
>
|
||||
Try it now
|
||||
Get started
|
||||
<span className="ml-2" aria-hidden="true">
|
||||
→
|
||||
</span>
|
||||
|
||||
@ -3,7 +3,7 @@ import { buildPageSeo } from "@/lib/seo";
|
||||
|
||||
const homeTitle = "OpenSEO - Open Source SEO Platform";
|
||||
const homeDescription =
|
||||
"Own your SEO. OpenSEO helps teams manage keyword research, backlink analysis, competitor monitoring, and site audits without expensive monthly SEO software subscriptions.";
|
||||
"The open source SEO platform: keyword research, backlinks, rank tracking, and AI visibility. Self-host free (MIT) or use the managed app for $10/month.";
|
||||
|
||||
export const Route = createFileRoute("/_marketing/")({
|
||||
head: () =>
|
||||
@ -23,11 +23,11 @@ function Home() {
|
||||
<>
|
||||
{/* Headline */}
|
||||
<h1 className="text-3xl font-bold tracking-tight leading-tight">
|
||||
Own your SEO
|
||||
The Open Source SEO Platform
|
||||
</h1>
|
||||
|
||||
<p className="text-neutral-700 mt-4 leading-relaxed">
|
||||
Open source alternative to Semrush and Ahrefs
|
||||
Own your SEO — a self-hostable alternative to Semrush and Ahrefs.
|
||||
</p>
|
||||
|
||||
{/* Features */}
|
||||
@ -48,12 +48,22 @@ function Home() {
|
||||
|
||||
{/* CTA */}
|
||||
<div className="mt-6">
|
||||
<a
|
||||
href="https://app.openseo.so/sign-up"
|
||||
className="inline-flex items-center justify-center h-10 px-5 text-sm font-medium bg-neutral-900 text-white rounded-md hover:bg-neutral-800 transition-colors"
|
||||
>
|
||||
Try now
|
||||
</a>
|
||||
<div className="flex flex-col gap-3 sm:flex-row">
|
||||
<a
|
||||
href="https://app.openseo.so/sign-up"
|
||||
className="inline-flex items-center justify-center h-10 px-5 text-sm font-medium bg-neutral-900 text-white rounded-md hover:bg-neutral-800 transition-colors"
|
||||
>
|
||||
Try now
|
||||
</a>
|
||||
<a
|
||||
href="https://github.com/every-app/open-seo"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
className="inline-flex items-center justify-center h-10 px-5 text-sm font-medium border border-neutral-300 text-neutral-900 rounded-md hover:border-neutral-900 transition-colors"
|
||||
>
|
||||
View on GitHub
|
||||
</a>
|
||||
</div>
|
||||
<p className="text-xs text-neutral-500 mt-3">
|
||||
No credit card required.
|
||||
</p>
|
||||
@ -66,8 +76,16 @@ function Home() {
|
||||
Self-host via Docker or Cloudflare
|
||||
</p>
|
||||
<p className="text-sm text-neutral-600 mt-2 leading-relaxed">
|
||||
100% open source (MIT). Bring your own DataForSEO api key. Fork and
|
||||
vibe code custom features for your workflow.
|
||||
100% open source (MIT). Bring your own DataForSEO API key. Fork and
|
||||
vibe code custom features for your workflow. See how OpenSEO
|
||||
compares to the other{" "}
|
||||
<a
|
||||
href="/blogs/best-open-source-seo-tools"
|
||||
className="font-medium text-neutral-900 hover:text-neutral-700 transition-colors underline decoration-neutral-300 underline-offset-4"
|
||||
>
|
||||
open source SEO tools
|
||||
</a>
|
||||
.
|
||||
</p>
|
||||
<a
|
||||
href="https://github.com/every-app/open-seo"
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user