Getting Found · 2 / 6

The SEO Minimum Viable Checklist: Crawlable, Readable, Indexable

SEO got wrapped in "secret playbooks" until it sounded mystical. For a one-person site, the part worth doing is small and clear: let crawlers get it, let engines read it, let indexing be checkable. This lesson only covers what works if you do it and goes to zero if you don't. Every item you can check yourself.

Crawl simulatortitle rewriteIndexing trioTen-item self-check
What "minimum viable" means

Traditional SEO is a whole industry: backlink building, competitor keyword databases, site networks, aged domains… that kit is for companies with a team and a budget. If you're building a product alone, learning it is a waste of life. The good news: search engines have been pushing the game one way for years — sites that do the content well and clear the technical obstacles get treated well, naturally.

So the logic of the minimum viable checklist: only do the things that take you out of the game if you skip them. Mapped to last lesson's funnel, they fall into three groups: crawlable (crawl layer), readable (understanding layer), indexable (index layer). Get all three through, and the rest is content quality — that's Lesson 5.

GroupWhat it solvesIf you skip it
CrawlableWhen the crawler comes, it can get the bodyIt gets an empty shell. Everything after goes to zero
ReadableThe engine knows what each page is aboutEven if you're indexed, it doesn't know which question to show you for
IndexableThe engine knows you exist and which pages you haveIndexing is left to chance. Speed is unobservable
Try it · A crawler arrived. What did it get?

Treat the deadliest disease first. AI-generated frontends love single-page apps: the page opens as an empty shell, then JS fetches data and renders it. Everything looks fine to the user. The crawler got a different story. Same product page below, two implementations. The right side is the source the crawler actually grabbed.

Crawl simulator Flip it
Two implementations. The page users see is identical. What the crawler gets is a different planet
What the user sees
invoiceowl.example.com
Invoice Owl · invoicing helper for freelancers

Upload a contract, get a compliant invoice request generated. Supports regular and special VAT invoices — three minutes for what used to take an afternoon.

Start free
What the crawler got

Mainstream engines claim they can run JS, but execution has a quota and a delay. Small sites don't make the priority queue. Most AI crawlers simply don't run JS — they take whatever they grabbed. You don't have to tear down the architecture: on key pages (home, feature, article), make sure the HTML source already has the body. Keep JS for the interactive parts. That's fine. Put this sentence in the prompt when you ask AI to write a page. Cost: zero.

One topic per page. The title is that page's face

Once you're crawlable, the second job is letting the engine read each page. One rule: one page answers one question. A page that talks about everything — the engine doesn't know which question to show it for, so it gets shown for none. Once the topic is set, title and description are that page's face in the results: users glance at two lines and decide whether to click.

Below are three real cases from a tool site on a results page. Tap one and see how it gets rewritten.

SERP copy ER Fixed 0 / 3
Each one is how it looks on a results page. Tap one to swap in a version people will click
invoiceowl.example.com
Home - Invoice Owl
Welcome to our site.
The word "Home" answers no question. Rewrite it as the sentence users would search: who, does what, for whom. Don't write a welcome in the description. Write what this page helps the user solve. That's your free ad slot.
invoiceowl.example.com/features
Features | Powerful Intelligent All-in-One Solution
We adopt advanced AI technology to empower users and deliver an ultimate experience.
"Intelligent," "empower," "ultimate experience" — the jargon trio. Users don't search those words. The engine doesn't know what the page is about. Put the feature names and the user's own words in. Don't waste a single word.
invoiceowl.example.com/help/vat
Help Docs - Page 3
This page contains answers to frequently asked questions. Contact support if you have questions.
"Page 3" is for the database, not for people. Help docs are a gold mine of long-tail traffic: each article answers one specific question, and the title is that question itself. Searchers walk in on their own.
All three rewritten — the pattern is the same: the title is the sentence users would search. The description is what this page helps them do. Two lines, maybe a hundred characters together, are your only chance to speak on the results page.
Tap one · Two homepages. Which is easier to find?
Same product, two homepages A/B duel
From "crawlable and readable," tap the better one
Plan A
petdiary.example.com
PETDIARY
Loading experience…
A three-second splash. Body entirely in JS. The title is five letters: "PetDiary"
Plan B
petdiary.example.com
Pet Diary: track cat and dog weight, vaccines, and checkup reminders

Snap a checkup sheet, auto-file it, and set the next reminder. Works for multi-pet homes. Export the data for the vet.

· Reminder 7 days before a vaccine is due
· Weight curve generated automatically
· Share visit records in one tap
Start free
Body written in the HTML. The title carries words users actually search: "pet weight tracker vaccine reminder"

This duel also answers a common worry: do flashy and findable conflict? They don't. There's an order. First make sure the HTML has the full body. Then stack animation and interaction on top. These lesson pages do exactly that: every word you're reading is in the source. The interactive bits are extras on top.

Indexable: turn "left to chance" into "observable"

Once you're crawlable and readable, the last set of moves is walking the site up to the engines yourself. Four things. One afternoon can finish them all. After that, indexing stops being mysticism and becomes a process with numbers.

ActionWhat you doWhy it's worth it
sitemap.xmlAn XML file listing every page URL, sitting at the site root. On a multilingual site, each URL also needs hreflang pointing at the other language versionsThe engine crawls the list instead of guessing how many pages you have. After this site added English and Korean pages in August 2026, sitemap entries went from about 330 to about 950
robots.txtA text file at the root declaring which paths are welcome to crawl and which aren't, ending with the sitemap URLIt's the first file a crawler looks at. One wrong Disallow line can lock the whole site. After you change it, verify with webmaster tools
canonicalOne line in each page's head: <link rel="canonical">, declaring this page's official URLWhen parameterized URLs or multiple doors point at the same page, the engine knows whose name to put the credit under — your own pages stop splitting the vote
Submit to webmaster toolsRegister once each on Google Search Console and Bing Webmaster. Verify the domain, submit the sitemap. On Bing, turn on IndexNow while you're there: after a ship, push the changed page URLs to itFrom then on, index count, crawl errors, and impressions all have reports. Don't submit Google only: next lesson's GEO explains why Bing matters just as much

None of these four needs daily upkeep. Let the build script generate the sitemap. Glance at the webmaster reports once a week. That's enough.

What happens if you skip one item on this list · Lesson 4This site skipped some: the sitemap was missing 470 URLs, Bing was never submitted. Lesson 4 recaps the cost of those holes and how they got fixed.
Try it · A ten-item list. Score your site

Everything in this lesson folds into a ten-item list. Light up the ones your site already does. No site yet? Bookmark it and run through it on launch day.

SEO minimum viable ten Done 0 / 10
Light up what you've done. The score updates live
Body text of key pages is in the HTML sourceRight-click, view source, and you can see the words. Checking is that simple
Each page covers one topicIf you can't say what question a page answers, consider splitting or merging it
Each page has its own human titleWrite the sentence users would search. Don't write "Home" or "Page 3"
Each page has a descriptionWrite what this page helps the user do. It's your free ad slot in the results
You have a sitemap.xml and it updates with contentManual upkeep will leak. Let the build script generate it
You have a robots.txt and it isn't blocking the site by mistakeEspecially check you didn't forget to delete a site-wide Disallow from the test period
Each page has a canonicalParameterized pages and pages with multiple doors need this most
Google Search Console is verified and the sitemap is submittedIndex, impressions, and clicks have reports from here on
Bing Webmaster is verified, IndexNow is wired upNext lesson covers why Bing matters extra in the AI era
You've run site: for the index count and recorded a baselineNo baseline, no "improvement." Today's number is the starting line
0 / 10. Light up the items you've already done.
A fixed prompt for the AI

Most of this lesson's requirements can be said once, when you ask AI to write a page. The block below is ready to use. Paste it into your project prompt or rules file:

Page requirements: write the body in the HTML source, do not depend on JS to render it; one topic per page; write the title as a question users would search, within 40 characters; write the meta description as what this page helps the user do, within 80 characters; add a canonical on every page; when you add a page, update the sitemap generation logic.

The cost of one paragraph, in exchange for every new page being born qualified. That's the pattern this Part keeps repeating: if a requirement can go into a prompt or a script, don't leave it in memory and willpower.

A quiz · The mystery of the vanished site
Two months after launch, the whole site's index count dropped to 0. Where is a one-hit check most likely to land? Single choice
Hint: this is one of the highest-frequency accidents in the real world
AA competitor reported you
BOpen robots.txt and look for a line that says Disallow: /
CContent quality is bad and the algorithm punished you
DThe domain is too young. Not enough authority
Key Takeaways

Minimum viable, three groups: crawlable (body in the HTML), readable (one topic per page, a human title), indexable (sitemap, robots, canonical, webmaster tools). Only do the things that take you out of the game if you skip them.

The JS empty shell is the #1 disease of AI frontends: users see a normal page, crawlers grab a blank. When you brief the AI, write "body text of key pages must be in the HTML source." Cost: zero.

Title and description are your only chance to speak on the results page: the title is the question users would search. The description is what this page helps them do.

Submitting to the platforms makes indexing observable: submit both Google and Bing. From then on you have reports and a baseline. Score the ten-item list. Fill what's missing.

If a requirement can go into a prompt or a script, don't leave it in memory and willpower: paste that fixed prompt into the project rules. Every new page is born qualified.

Source: Original to Xiaoshan Academy's "Getting Found" series. The sitemap entry counts in this lesson (about 330 → about 950) are real numbers from this site's August 2026 rebuild. Full recap in Lesson 4.