What Semrush sells is its databases: keyword volumes and difficulty, competitor traffic and keywords, and a backlink index for any domain, kept current by continuous collection. The software around them is ordinary. For your own sites, much of it can be rebuilt from Google Search Console, a crawler and the PageSpeed API, and the prompt below does exactly that. But monitoring is not research: competitor keywords, link gaps and market estimates need Semrush, a competitor or a paid data API, and no coding session produces them.
Before you buildTry Search Console and Ahrefs Webmaster Tools first: both are free for sites you verify and cover audits, queries and your own backlinks.
Build me a self-hosted SEO monitor for my own sites, covering the part of Semrush that I can collect myself. Requirements: - Node.js 22 + TypeScript: a nightly CLI plus a small web UI on http://localhost:4950 (Fastify, Eta templates, uPlot charts). Sites are listed in ./sites.yml and all history lives in better-sqlite3 at ./data/seo.db. - Search Console: read queries, pages, clicks, impressions, CTR and average position per day from the Search Console API (`googleapis`, service account JSON path in .env). Backfill 16 months on the first run, then fetch the last 3 days every night to cover the data lag. - Position tracking from that data: choose up to 100 tracked queries per site, chart average position and clicks over time, and flag any query that moved more than 3 positions week on week. - Opportunities page: queries with high impressions at an average position of 8 to 20, and pages whose CTR is far below the site median for their position. - Site audit: crawl each site with `crawlee` (CheerioCrawler, 2,000 pages max, robots.txt respected, 1 s delay). Record status, redirect chains, title, meta description, H1 count, canonical and missing alt text. List 4xx/5xx links, chains over 2 hops, duplicate titles and orphan pages (in sitemap.xml with no inbound link). - Core Web Vitals: call the PageSpeed Insights API (PSI_API_KEY in .env) weekly for the 20 most-clicked pages on mobile and desktop and store LCP, INP, CLS and the score. - Weekly HTML digest in ./report/ listing what changed, optionally mailed through SMTP from .env. - Single user. No accounts, no telemetry, local-first. - Out of scope: competitor data, backlink indexes, keyword volume and difficulty, traffic estimates, AI-visibility tracking. Do not scrape Google results. - README: the Search Console service-account steps (budget 30 minutes in the Google Cloud console), API quotas, and a list of what cannot be known without a paid data source.
Opens your agent with the prompt filled in, you press enter. Or copy it and paste it into an empty folder.
The first prompt builds the core. Run these one at a time in the same folder to grow it into your own Semrush.
Add alerts to the SEO monitor in this folder. Requirements: - After the nightly Search Console fetch, find pages whose clicks over the last 7 days fell more than 30 percent against the previous 7, with at least 50 clicks before. - Send one message per night through an ntfy topic (NTFY_URL in .env) listing the page, both click totals and the queries that lost the most. - Ignore pages changed by a redirect in the last crawl; list them separately. - Add a --dry-run flag that prints instead of sending. - Update the README.
Add internal link suggestions to the SEO monitor in this folder. Requirements: - From the last crawl, build the internal link graph and count inbound links per page. - For pages with fewer than 3 inbound links and with impressions in Search Console, suggest up to 5 source pages whose text mentions the target's top query. - Show the suggestion as anchor text plus the sentence it would go in, on a new page. - Never edit sites; output only. Update the README.
Add PDF reports to the SEO monitor in this folder. Requirements: - A weekly report per site as PDF, rendered from an HTML template with `playwright` (print to PDF). - Sections: clicks and impressions trend, top gained and lost queries, new technical issues, Core Web Vitals changes, and three suggested actions chosen by simple rules. - A site-level setting for a logo and accent color. Save PDFs under ./report/pdf/. - Update the README.
Agencies and in-house marketers use Semrush as the shared yardstick for competitor research and client reports, and the fee is small beside a campaign budget. The plans now bundle classic SEO with AI-search tracking, so one login covers research, audits, rank tracking and reporting.
Estimate · Search Console, PageSpeed Insights and the crawler cost nothing. A small VPS for the nightly job is about $5 a month. Competitor and backlink data would need a paid data API on top.
| Plan | Monthly | Annual, per month | What you get |
|---|---|---|---|
| SEO | $139 | $117.33 | 5 websites, 500 keywords tracked daily; basic keyword research and competitor analysis, position tracking, site audit and AI search performance tracking. |
| Starter | $199 | $165.17 | 5 websites, 500 tracked keywords; adds fuller keyword and competitor tools, MCP access, an AI-ready site audit and 50 AI visibility prompts a day. |
| Pro+ | $299 | $248.17 | 15 websites, 1,500 tracked keywords, 100 AI prompts a day; adds historical data, content optimization and multi-location tracking. |
| Advanced | $549 | $455.67 | 40 websites, 5,000 tracked keywords, 200 AI prompts a day; adds share of voice and API data integration. |
| Enterprise | custom | — | Unlimited projects, SSO, custom integrations and API, dedicated account manager and SLA. |
A free account gives 1 demo project and 10 reports a day; paid plans offer a 7-day trial.
Not really. Agencies and in-house marketers use Semrush as the shared yardstick for competitor research and client reports, and the fee is small beside a campaign budget. The plans now bundle classic SEO with AI-search tracking, so one login covers research, audits, rank tracking and reporting. The prompt on this page builds the closest honest substitute.
About $139 a month on the SEO plan, $1,668 a year (checked 2026-10-14).
Keyword volume, difficulty and trends for any keyword; Competitor organic keywords, ads and traffic estimates; Backlink analytics and link-gap checks for any domain; Tracking of how your brand appears in AI answers; Historical data and ready-made client reports. If any of those matter to you, keep paying.
Yes: Google Search Console (free), Ahrefs Webmaster Tools (free), Screaming Frog SEO Spider (free).