Acquisition SaaS
Content8 min · July 7, 2026 · By Isidore Mikorey-Nilsson

AI SEO: the system that writes your SaaS blog by itself

AI SEO without the spam: one SEO.md file and six skills that plan, write, and publish your SaaS's entire blog. Free, installed in a single command.

Key takeaways

  • Since late 2024, more articles are published by AI than by humans. Generating no longer sets you apart: it's the system around it that makes you rank.
  • SEO.md is a free system of six skills: a strategy file at the root of your project, and agents that plan, write, build tools, and publish.
  • The guardrails are what separate an indexed blog from a ghost blog: a hard word floor, sourced stats, anti-cannibalization, staggered dates.

In November 2024, the share of web articles written by AI overtook the share written by humans, according to Graphite's study of 65,000 URLs. In other words: generating 30 articles no longer costs anything, everyone is already doing it. And yet most of those blogs never take off. Yours won't either, if you stop at generation. The real challenge of AI SEO isn't writing text, it's everything around it: which keyword to target, when to publish what, which links to weave, and above all what you refuse to publish.

Source code of a web page with its meta tags shown in an editor
Technical SEO plays out in the code, but ranking plays out in the editorial system. · Photo : César Gaviria

Generation is worthless now, the system is everything

Three numbers to frame the landscape. Ahrefs analyzed 900,000 web pages created in April 2025: 74.2% contain AI-generated content, and only 2.5% are pure AI with no human editing. On overall volume, Graphite measures that the share of majority-AI-written articles has plateaued around 50% since early 2025. And on ranking, a second Ahrefs study covering 600,000 pages finds no correlation between a page's share of AI content and its position in Google, with one nuance that changes everything: 100% AI content almost never reaches position one.

74.2%

of new pages contain AI content

~50%

of web articles written by AI

0

correlation between AI share and ranking

Read what these numbers say together: Google has nothing against AI, it has everything against interchangeable content. Using a generation tool no longer differentiates you, since three-quarters of new pages already do the same. What separates a blog that ranks from a ghost blog is the layer above: keyword selection, the real depth of each page, internal linking, consistency. I lived through this directly on this site: my first, too-short pages ended up as "Crawled, currently not indexed" in Search Console. Google had come by, looked, and decided it wasn't worth a spot in the index. That's not a bug to fix, it's a verdict on the page's value.

SEO.md: a file at the root of your repo, like your README

That's exactly the strategic layer that SEO.md industrializes. This isn't a last-week idea: it's the version I'm sharing for free of a system I've been running for months, an AI that researches keywords and writes my articles, first on my former agency's site (which went from zero to 200,000 Google impressions in three months), then on this site, with quite a few failed iterations in between. The principle fits in one sentence: your project has a README.md, give it a SEO.md. This file, sitting at the root of your project, is the contract every agent reads before acting. It contains everything a good SEO lead would ask during their first week: what your product does (and what it doesn't), exactly who your reader is, your voice and your banned words, your conversion page, where content lives in your codebase, the keywords to target and the walls not to attack, your content mix, and your cadence.

The open-source SEO.md GitHub repo with its six skills and strategy file
The SEO.md system on GitHub: six skills and a strategy template, freely available.

The file is generated through an interview (a skill scans your repo, pre-fills what it can infer, and only asks you the remaining questions), but it also writes perfectly well by hand: it's a markdown document, not a proprietary format. And it's what guarantees consistency: every article, every tool, every comparison page comes out with the same voice, the same target reader, and the same call to action, because every skill re-reads the same contract before producing anything.

Six AI agents split up your SEO

The pack contains six skills, each with a precise role. If you're new to the concept of a skill, we cover the principle in our guide to the best Claude Code skills for launching a SaaS: a method file that your agent applies automatically at the right moment.

SkillRole
seo-initScans your repo, interviews you, writes the SEO.md file
seo-runThe conductor: decides and executes ONE action per run
seo-planThe analyst: fills the backlog with typed, prioritized topics
seo-writeThe writer: a long-form, sourced article with blocking guardrails
seo-toolBuilds a free tool (calculator, generator) inside your design system
seo-programmaticCapped batches of comparison pages or glossary entries

The interesting piece is the dispatcher, seo-run. On every run, it compares your published mix (articles, tools, programmatic pages) against the targets defined in SEO.md, looks at the search volume and intent of the available topics (verified numbers via the DataForSEO API when the connector is wired up), and picks the next most profitable action. If the backlog runs dry, it kicks the analyst back into gear. The result: a varied blog that looks like a real content operation, not a burst of 40 identical articles dated the same day. This is the one you put on a cron, via a GitHub Action shipped in the repo, and the system publishes without you (in pull-request mode by default: you stay editor-in-chief).

The guardrails that get you past the indexing threshold

This is the part every content generator ignores, and it's the part that makes you rank. Every piece of content has to clear a blocking checklist before publication, calibrated on real experience:

  • A hard word floor (1,100 words, targeting 1,200 to 1,800). Below that threshold, my pages ended up unindexed. And no padding allowed: if a topic can't fill 1,100 useful words, you cut the topic, not the requirement.
  • Zero unsourced statistics. Every number comes from a real web search and is linked to its source. Models invent plausible numbers with remarkable confidence: this rule is the firewall.
  • One primary keyword per piece, forever. The system keeps a registry and refuses duplicates: two pages targeting the same keyword cannibalize each other and both lose.
  • Staggered dates. A batch generated at once gets spread across a realistic window, never stamped with the same day. A dump of 30 articles dated today, readers notice, and so does Google.

Programmatic SEO has a kill switch

Generating hundreds of thin pages is the shortest path to getting your entire domain deindexed: Google's anti-spam rules explicitly name "scaled content abuse." The pack's programmatic skill caps each batch (10 pages by default), enforces a minimum of unique content per page, and starts by refusing the job if search volumes aren't verified.

Installing it takes two commands

1

Install the skills

From your project root: npx skills add lsidore/seo-md. The CLI detects your agent (Claude Code, Cursor, Codex, and about 70 others) and places the six skills in the right spot.

2

Wire up keyword data (recommended)

Create a DataForSEO account (the API is pay-as-you-go, a few dollars cover weeks of analysis) and connect the official MCP to your agent: the exact command is in the repo's README. Without this connector, the analyst still works, but with estimated volumes instead of verified numbers. For picking keywords that actually pay off, the difference shows up fast.

3

Generate your SEO.md file

In your agent, ask "use the seo-init skill." It scans your repo, asks you the questions the scan can't infer, and writes the contract. Take the time to review it: the quality of everything that follows depends on how precise this file is.

4

Launch the system

"use the seo-run skill" produces the next most useful piece of content. Once you're happy with the result, wire up the GitHub Action provided and the system runs on autopilot, one action per business day.

Everything is freely available, at no cost: readable method files you can adapt to how you work.

What this system won't do for you

Let's be honest about the limits, because that's where your real decision lives. A blog on autopilot is worthless if SEO isn't the right channel for your stage. SEO is a six-to-twelve-month game: if you're hunting for your first 10 customers this quarter, your acquisition strategy will probably run through more direct channels first, with the blog building in parallel, not instead. The system also won't choose your conversion path for you: an article that ranks but leads nowhere (a lead magnet, a tool, a diagnostic) manufactures traffic, not customers.

And that's the right order to decide in: first figure out whether SEO is YOUR priority channel, only then automate it. If you haven't settled that yet, start with the test below, it's built for exactly that.

Your blog can run itself. It still has to be the right channel.

The diagnostic analyzes your SaaS and tells you where to focus your acquisition first, SEO included.

Run the diagnostic