Comfy: Organic growth, and the analytics foundation underneath it.
Comfy builds ComfyUI, one of the largest open-source generative AI projects, plus the cloud platform around it. Huge audience, huge traffic, and very little of it captured on purpose. I lead growth there. This is the organic engine and the measurement layer we built underneath it. The program is early and still compounding, so what follows is the approach and the direction of travel.
- Growth analytics foundation
- 0 → 1Growth analytics foundation
- SEO, product-led and sales-led demand
- 3 lanesSEO, product-led and sales-led demand
- Model release SEO playbook
- 48 hrsModel release SEO playbook
- Automated growth pre-read
- DailyAutomated growth pre-read
- Client
- Comfy
- Role
- Growth lead: SEO, analytics, lifecycle
- Industry
- Open-source AI · Developer tools
What I walked into
Open source hands you distribution most companies would pay millions for. It does not hand you a growth engine, and Comfy had two problems feeding each other.
The first was concentration. The overwhelming majority of organic traffic arrived on brand searches and landed on two pages. Rankings were fine, and that was the trap: the head term held its position all year while click-through on it kept sliding, because AI Overviews had started answering in the results page. Search demand for the term was growing and clicks were falling at the same time. Everything non-branded, the searches where someone describes what they want to make rather than the tool they want to use, was going to venture-funded competitors with a fraction of the community.
The second was measurement. The same question produced different answers depending on who ran it. Activation, signup and ARR had no agreed definition, dashboards were reading tables that had quietly gone stale, and identity was split across the desktop app, the cloud product and the website. Nobody could say which channel produced paying customers.
Getting the index back
Before any of the growth work, the site had to be crawlable again. An indexation incident in the spring knocked out a large share of indexed pages and, with them, most of a quarter of organic clicks.
The causes were mundane and stacked on each other. Both www and apex served 200s with conflicting sitemaps. There was no canonical URL form, so every page existed twice. The robots.txt had grown a set of per-bot override groups, which under the robots standard cancel the disallow rules above them, because crawlers obey the most specific matching group and ignore the rest. And a batch of the heaviest pages exceeded the crawler fetch limit, which turns a page into a soft 404 without anyone being told.
We picked apex as canonical, picked one trailing-slash convention and enforced it, collapsed robots.txt into a single stacked user-agent group, and rebuilt the sitemap so it agreed with the canonical form. Then the localization layer, where the Chinese-language marketing pages had no hreflang and no internal links from the English site, while a fifth of organic visitors were browsing in Chinese.
One host, one URL form
Apex canonical, one trailing-slash convention, sitemaps that match it. Index signals stop splitting across duplicates.
A robots.txt that does what it reads like
Per-bot groups collapsed into one stacked user-agent group, so the disallow rules apply to the bots they were written for.
Locales that resolve
Hreflang and crawlable internal links across locales, so non-English visitors stop landing on English pages.
Getting off brand traffic
Brand traffic has a ceiling you do not control. It grows when the product gets famous and shrinks when an assistant absorbs the click.
So we built the demand map first. Every use case and model people search for, scored on volume, difficulty, commercial value and fit with the customers sales was actually closing, each one carrying an estimated traffic value at position one. That is what let us argue about priority with numbers, not opinions.
The finding that changed the roadmap: SEO demand and enterprise demand only partly overlap. That splits the work into three lanes rather than one ranked list. Pages that are high intent and high fit get built first. Pure traffic pages get built for volume and judged on volume. And the demand with real revenue behind it and no search volume at all, things like on-prem deployment and custom model training, belongs to sales, not to SEO. Writing that down stopped a quarter of arguing.
Each page in the network is backed by one of the hundreds of real workflow templates. A thin generated page ranks for a week. A page with a working demo behind it earns links. The model release playbook does the same job on a clock: when a major model ships, the docs page, the template, the landing page and the announcement go out interlinked inside 48 hours, while the interest spike is still live.
Scored, not guessed
Every opportunity priced in estimated traffic value and ranked against ideal customer fit before anything gets built.
Backed by working product
Each landing page maps to a runnable workflow, so the page demonstrates the claim instead of describing it.
Brand safety as a gate
Face-swap, deepfake and clothes-remover categories stay excluded even where volume is large. We wrote the conditions down so the question stops getting re-litigated.
Writing for the answer engines
A growing share of buyers never reach the site. They ask an assistant, and the assistant summarizes whatever it can parse. Comfy was thin here, cited on only a small fraction of the pages you would expect for a project that size.
We treated it as a channel with its own work. A maintained llms.txt describing the whole product surface in plain language. Structured data on the page types that matter. Titles and descriptions written to be quoted, not tuned for density. And a pile of small repairs, including a routing bug in the static build that was collapsing both slash forms of the model URLs and quietly serving 404s to crawlers following dozens of internal links.
The pattern worth stealing: the pages with the largest gap between impressions and clicks are almost never ranking problems. They are title and description problems, and they are the cheapest fix on any site.
The analytics foundation
None of it is worth much if you cannot tell whether it worked, so the other half of this job was building the measurement layer the growth team now runs on.
We agreed the definitions and wrote them down. What counts as a signup, sourced from one canonical table after we measured every candidate event against ground truth and found the obvious one missing a large share of real signups. What counts as activation, inside what window. Which revenue basis a number is quoted on, since recognized and bookings differ enough to start an argument in a board meeting.
Then identity, so a person is the same person across the open-source desktop app, the cloud product and the website. That is the piece that makes channel attribution possible at all, and it paid for itself the moment it worked: organic signups convert at a meaningfully higher rate than direct, and referrals from AI assistants convert higher still. Before this work nobody could produce that comparison, which meant nobody could justify the SEO investment.
Then we made it self-serve. Dashboards rebuilt on live models, a glossary so every chart has a definition behind it, an event catalog and an enablement guide, and a scheduled agent that pulls the funnel from the warehouse every weekday morning and drafts the standup read before anyone opens a dashboard.
Canonical definitions
Signup, activation and ARR defined once, documented, and reused. No more re-deriving them per dashboard.
Identity resolution
One person across desktop, cloud and web, which is what turns channel attribution from a guess into a number.
Self-serve by default
Event catalog, glossary, enablement guide, and an agent that assembles the daily growth read automatically.
Where it stands
This is early. The page network is still being built out, and the compounding part of SEO is the part that takes quarters rather than weeks. What has changed already is the shape of the thing: the site is crawlable again, the organic program has a scored roadmap instead of a brand term propping it up, the release playbook fires on every model launch, and the pages are written so machines can read them.
The measurement side moved faster, because that work lands the day it ships. The growth team stopped arguing about whose number was right. One definition, one dashboard, and a daily read that arrives before standup. That is the boring half of growth work, and it is why everything after it moves faster.
Questions people ask about this work
How is SEO different for an open-source project?
+
What is answer-engine optimization, and does it replace SEO?
+
What does a growth analytics foundation include?
+
Services behind this engagement
More case studies
See all →HeyGen
Five interlocking systems behind 5x ARR growth at the leader in AI video: a strategic rebrand, an SEO program built from zero, a 100,000 member community, AI-native lifecycle automation, and an enterprise ABM motion.
AI agents for top-of-funnel SEOCharta Health
Charta Health automates pre-bill chart review for healthcare providers, a category where accuracy is the product and the buying committee is wide. Three workstreams: fix the foundation, build an agent-run SEO engine so a small team publishes like a large one, and make events and lifecycle report back in numbers.
5x revenue YoYSemgrep
Semgrep sells static analysis to engineers, which means the buyer can tell when you are bluffing. We built the PLG onboarding, the competitive positioning against incumbents ten times the size, and the proof-of-value process that made enterprise deals repeatable.