# We ran our own GEO checklist on this blog. Here's everything we shipped

Published: 2026-09-21
Author: brandflare team (https://brandflare.io)
Canonical: https://brandflare.io/blog/how-we-geo-our-own-blog

**The short answer:** engines don't read conviction — they read structure. So we gave this blog every machine-readable surface we recommend to clients: a markdown twin of every post, an llms.txt map, RSS, the answer stated first, and structured data on each article. This post is the checklist, and you're reading its output.

## Why we did this to our own blog

We spend all day telling marketers that [GEO](https://brandflare.io/learn/glossary/generative-engine-optimization) is structural work — that engines reward pages built to be read, cited, and extracted. Meanwhile this blog was shipping as one long column of HTML and nothing else. Physician, heal thyself. So we treated the blog like a client: audited what an engine could actually extract from it, and shipped the gaps.

## The checklist we shipped

Every item below is live on the post you're reading. Steal the list — none of it is proprietary, and all of it transfers to any site with articles.

- **A markdown twin of every post.** Add .md to any post URL and you get the whole article as plain markdown — headings, links, tables, everything. Engines that fetch pages get clean structure with zero boilerplate, which makes the content easier to quote and cheaper to read.
- **An llms.txt map.** Our [llms.txt](https://brandflare.io/llms.txt) now lists every post with a one-line description, linking straight to the markdown twins. It's a curated index for machines, the way a sitemap is for crawlers.
- **The answer first.** Each post opens with the short answer — literally labeled — and ships it as FAQ structured data. Engines love an extractable question-and-answer pair; readers in a hurry love it too. Same work, both audiences.
- **Structured data on everything.** Article, breadcrumbs, and author markup on every post, so engines don't have to guess who published what, when.
- **RSS, still.** Retro, yes. But aggregators, monitoring tools, and more than one AI crawler still read feeds, and it costs one route to serve them.
- **Real screenshots with real alt text.** Product shots are captured fresh from the live site by a script, so they never go stale — and every one carries alt text that says what's actually on screen, because engines index the description, not the pixels.

**7** — machine-readable surfaces every post on this blog now ships: the HTML page, a markdown twin, an RSS item, an llms.txt entry, and FAQ, Article, and breadcrumb structured data. (brandflare.io/blog, August 2026)

## Show receipts

The other thing we shipped is a way to quote engines directly. When we claim an engine names a shortlist, we can now show the actual answer — engine, prompt, date, verbatim — pulled from our own sweeps. Like this one:

> **Perplexity** — asked 2026-08-05
> Prompt: What are the best drugstore mascara brands?
>
> The best drugstore mascara brands right now are Maybelline, L'Oréal Paris, CoverGirl, e.l.f., Essence, Milani, and Pacifica. Those brands appear repeatedly across recent editor and tester roundups as top performers for volume, length, separation, and all-day wear.[1][2][3][6][10][13]
>
> *From a real Brandflare sweep, August 2026. The bracketed numbers are Perplexity's citations — seven brands named, and every one earned its slot in a page Perplexity chose to read.*

That's the whole GEO argument in one box: the engine answered with a shortlist, the shortlist came from [citations](https://brandflare.io/learn/glossary/citation), and the citations are pages someone optimized — deliberately or by accident. Receipts beat vibes.

> **Try this on your own site:** Fetch your most important page and strip the HTML — what's left is roughly what an engine reads. If the answer to 'what is this and who is it for' isn't in the first few lines, you have the same gap we just closed.

![The blog you're reading, carrying its own checklist.](https://cdn.sanity.io/images/ldmdghcp/production/6ee2c9f7a675a36fbbe88c1afc4648355a2ab493-2880x1800.png?w=1600)
*The blog you're reading, carrying its own checklist.*

## What we expect to happen (and how we'll know)

Honesty corner: none of this moves answers overnight. Retrieval-driven engines can pick up new structure in days to weeks; anything sitting in [training data](https://brandflare.io/learn/glossary/training-data) moves in quarters. The difference now is that we'll know — we log AI crawler hits on our own pages, our sweeps re-ask the questions that matter to us, and we'll publish what moved in the monthly engine report.

> “Engines don't read your convictions. They read your markup.”

If you'd rather run this experiment on your brand than your blog, start with the baseline: a [free audit](https://brandflare.io/audit) asks all four engines real customer questions and shows you the answers, receipts included.
