Dogfooding case study
We audit ourselves: what happened when BACKR audited BACKR
7 pull requests, 3 product bugs caught, and a score that went 92 → 98 — all found by running our own free tool on our own site. The honest log.
BACKR is a technical SEO audit platform. The obvious growth move would be buying ads. Instead, every few days we point our own crawler at backr.dev and read the report exactly like a user would.
The short version: the loop worked better than we expected. It fixed real SEO issues on the site — and, more interestingly, it caught three genuine bugs in BACKR itself, including one that had been silently broken since launch. This page is the full story, in order.
The audit log
Round 1 — fixing the site
A 92/100 full of real, boring problems
The first self-audit was unglamorous and useful, exactly as designed: a slow LCP on the landing page, a hero image shipped as a 135 KB PNG, a pricing page without a FAQ. We shipped the boring fixes — a 21 KB WebP hero (−84%), an LCP preload, and a pricing FAQ with schema markup. Score: 92 → 95. No great insight here; just the tool doing its job on its own house.
Round 2 — the tool turns on itself
The finding that couldn't be true
We shipped our 11th checker — GEO / AI visibility (llms.txt, AI-crawler robots rules, structured-data coverage). Its first self-audit reported that 100% of backr.dev pages had zero JSON-LD. That was impossible: we ship structured data everywhere. Digging in revealed an ancient crawler bug — JSON-LD was extracted AFTER the script tags were stripped for word counting, so structured data came back empty on every audit we had ever run. Our schema checker had been rubber-stamping since launch. Fixed that week; the checker came back to life.
Round 3 — the checker improves itself
First real findings, first false positive
With extraction actually working, the schema checker emitted its first real findings — and immediately flagged our own WebApplication markup as an unknown type. It was right to look and wrong to complain: WebApplication is valid schema.org; our known-types list simply did not include it. One PR later, the checker recognized it. The next audit came back clean: 98/100, 49 pages, 15 informational findings, all by design (deliberately noindexed auth pages, thin pages queued for our own AI content engine).
Round 4 — launch day
The feature that dogfooded itself within the hour
We shipped the AI Action Roadmap: one click on the audit page, one LLM call over the prioritized issues, a step-by-step action plan. We generated backr.dev's roadmap the same day — it correctly told us to double-check noindex on the auth pages and to thicken the pricing copy. But the dogfood also noticed the new category radar was not rendering at all. Cause: a shape mismatch between what the scoring engine writes and what the results page reads. CI was green, 501 tests were green, three review bots had approved. The fix shipped the same day.
What we took from it
- Dogfooding finds what CI can't: all three bugs lived at boundaries — crawler↔checker, engine↔report — that unit tests and code review never exercise end-to-end.
- A quiet checker is a suspicious checker: a validator that approves everything looks exactly like a clean site, until you make it prove it.
- Use the feature the day you ship it: the radar bug survived review, tests and bots, and died to a five-minute self-audit.
- The loop is nearly free: every round ran on our own free audit tier and our self-hosted GPU — €0 in tooling.
Your turn
Run the same free audit on your site — no signup, no card, results in about a minute.
Run the free audit