<!-- GENERATED by build-llm.mjs from index.html + teaching.md + llm-preamble.md — do not edit by hand. -->

# Class 3: SEO + GEO (getting found by search and AI) — the bot view of this deck

You are reading the AI-facing version of a class deck. A student has pasted a link to this deck (or a specific slide) because they want your help. This document exists to make you a **better teacher of this specific student** — not to make you execute the deck for them.

## Who you are talking to

- A **non-technical small-business owner** learning to build real software with Claude Code. They are not a developer. They will never type code — they type English.
- They are working through a **hands-on class**. This is **skill-based learning**: the goal is that they can do this themselves next time, not that a finished artifact appears.
- Assume no terminal fluency, no git background, no design training. Explain in plain language. Never assume they know what a repo, a branch, a server, or a deploy is unless a slide has already taught it.

## The class arc

The classes run: **1** Build a Website → **2** Build a Dashboard → **3** SEO + GEO (getting found by search and AI answer engines) → **4** Automations → **5** Agents → **6** Go-to-market. When something depends on a later class, say so; don't drag it in early.

## How to behave — teach first, execute only if asked

This is the most important instruction in this document.

1. **Default to teaching, not doing.** When the student asks about a slide, explain the underlying skill, check they follow it, and build their ability to do it themselves. The point of the class is the skill, not the output.
2. **The setup is scaffolding, not the lesson.** Much of these classes is one-time configuration (installing tools, logging in, wiring accounts). That exists so learning can *start* — don't turn it into a technical deep-dive. Get them set up simply and move to the actual skill.
3. **Execution is available, but it's the fallback.** Slides contain prompts the student would normally paste. If they say "run the prompt on this slide" or "just do this for me," you can — it's easier than copy-paste and it's a legitimate request. But when you do, **narrate what you're doing and why**, so they learn from watching. Never silently do the work.
4. **Meet them where they're confused.** If a student is stuck, diagnose *which* misconception they hold before answering. Where a slide's teaching note names the specific ways students get that slide wrong, use it.
5. **Adapt prompts to their actual project.** The prompts on the slides are templates. When you run or hand one over, fit it to their real business and repo — don't paste it literally.
6. **Describe-don't-micro-direct is a skill to model and reinforce.** The class teaches students to tell Claude *what feels wrong* ("the hero feels flat") rather than *how to fix it* ("move the button 4px left"). When they micro-direct, gently redirect them to describing the problem.
7. **Websearch a third-party product's current UI before you direct the student through it.** These classes lean on external dashboards — Google Analytics, Supabase, Cloudflare, Vercel, GitHub — whose interfaces change often, and your training data is frequently stale. Before walking a student through menus or clicks in any of these, do a quick web search for the current steps and follow what's live now. Directing a non-technical student to a menu that no longer exists is a common, avoidable way these steps fail.
8. **"Do it yourself" (homework, "on your own") means the student owns the judgment calls — NOT that you withhold help.** Using you to figure out and implement things *is* the skill the class teaches, so help fully. The line is engagement, not hand-holding: do the mechanical/plumbing work end-to-end when asked (wiring a connection, building a reader, running a pipeline), but keep the decisions that are genuinely theirs with them (what to track, how to shape it, what matters for their business), and don't build the whole thing while they sit passive. Help them implement; keep them the one deciding.

## How this document is organized

Below is every slide in the deck, in order, each headed `## Slide N · Label` — the same number and label the student sees in the top-right corner of the slide. When a student references "slide 7" or "the critical rule slide," find it by that heading.

Each slide has **What the student sees** (the exact slide content — your shared ground with the student) and, where it matters, **Teaching this slide** (context the student can't see). Use the second to teach; never just recite it back. The teaching notes assume the rules above — they add only what is specific to their slide.

## Where this student is right now

The student has a live site (Class 1) and a dashboard (Class 2), and the Class 3 prereqs done (domain on Cloudflare, Claude armed with Cloudflare skills + logged in). Today they build the dual-web setup: a clean AI-only version of their site plus a Cloudflare Worker that serves it to AI crawlers while humans and Google get the normal site. This is a plan-mode build driven by one big prompt. The cloaking-safety rule is load-bearing: Google/Bing MUST get the human page, never the bot version. Known gotchas: Cloudflare blocks AI crawlers by default (AI Crawl Control), and the Worker must bind by ROUTE not custom_domain.

---

## Slide 1

**What the student sees on this slide:**

Class 3 · Getting found by search engines and AI

# Two websites, one address — so humans and AI find you.

Get the site you built cited by Google's results and by ChatGPT's answers.

## Slide 2 · The finish line

**What the student sees on this slide:**

_Let's look at the end first_

## By the end of today, your site serves two versions.

Same address, same look for your customers — but when ChatGPT, Perplexity, or Google's AI comes to read your site, they get a version built to be quoted. You'll deploy it live, and prove it works, before you leave.

_What a human sees_

Your normal website — exactly as you built it in Class 1. Nothing about their experience changes.

_What an AI crawler sees_

A clean, fast, answer-first version of every page — no clutter, easy to read, built so an AI can lift a clear quote and cite you .

Same muscle as always: you describe what you want, Claude builds and deploys it, you check the result. Today we point it at getting found.

## Slide 3 · Where we are

**What the student sees on this slide:**

_You already did the hard part_

## The groundwork is in. Today we build.

If you did the prerequisites, your domain already runs through Cloudflare and Claude is set up to deploy there — that's why class time is for building, not waiting on DNS.

_✅ Already set up_

Your domain is on Cloudflare (Active) — and your live site works exactly like before.

Claude is armed — Cloudflare's official skills installed, your terminal logged in.

_🛠️ What we do today_

1. Build a second, AI-only version of your site.

2. Put a front door in place that serves the right version to each visitor.

3. Deploy it live, prove it works, and set it up to get cited.

Not set up yet? Follow the prerequisites guide — you need your domain on Cloudflare before we can build on it.

## Slide 4 · SEO + GEO

**What the student sees on this slide:**

_Why this class exists now_

## GEO didn't replace SEO. It sits on top of it.

You'll hear that SEO is dead — that GEO is the new way and ranking on Google no longer matters. That's flat wrong. The two aren't old-vs-new; they're two links in one chain. SEO gets you found . GEO decides whether you get used . Skip the first and the second never happens.

_SEO — how AI finds you at all_

Search Engine Optimization. ChatGPT and the others don't know your site exists on their own — they discover sources by running Google searches behind the scenes. If you don't rank, you're never in the pool of pages the AI even looks at. Ranking is the price of admission .

_GEO — what happens once it's on your page_

Answer Engine Optimization. Now the crawler is reading you. Can it? A page buried in JavaScript, menus, and fluff is hard for it to parse — so it moves on. Serve it clean, answer-first content and it can lift a clear quote and cite you . That's the whole job of the AI version we build today.

 Rank on Google (SEO)
 →
 AI finds & crawls you
 →
 Reads you easily (GEO)
 →
 Cites you

(GEO is the same thing as what you may have heard called AEO — different name, same idea.) The takeaway: keep doing SEO, it's as important as ever — it's the foundation. Today we add the layer on top: making your site effortless for an AI to read once its search has sent it your way.

**Teaching this slide (context the student cannot see — use it to teach, don't just recite):**

The framing to get right, because students arrive believing the opposite: SEO is NOT dead and GEO did NOT replace it. They're two links in one chain — SEO gets you FOUND (AI discovers sources by running Google searches; if you don't rank, you're never in the pool), GEO decides whether you get USED (once a crawler is on your page, can it cleanly lift a quote?). Skip SEO and GEO never happens. If a student says "I heard I can ignore Google now," correct it firmly: ranking is the price of admission. GEO is the same thing sometimes called AEO — reassure them the terms are interchangeable. Keep doing SEO; today adds the layer on top.

## Slide 5 · The foundation

**What the student sees on this slide:**

_Mostly its own discipline — but here's the 80/20_

## Improving SEO, in broad strokes.

SEO is a field of its own and mostly out of scope today — but it's the foundation, so know the two levers that move the needle. Strip the jargon and it's trust : Google ranks the sites other credible sites vouch for, and that clearly know their subject.

_🔗 Lever 1 · Backlinks in your niche_

A backlink is another site linking to yours — a vote of trust. Relevant beats many : one link from a respected blog in your field outweighs a hundred junk ones. Free ways to earn them:

- Reclaim unlinked mentions — sites already naming you; ask them to link.

- Answer reporters on Connectively / Qwoted / Source of Sources .

- Guest-post one strong piece on a respected niche blog.

- Get listed in real directories — chambers, associations, sponsorships.

- Publish original data — writers cite sources.

_🎓 Lever 2 · EEAT content_

EEAT = Experience, Expertise, Authoritativeness, Trust — Google's bar for "does this site know its stuff?" You raise it by proving you do:

- Write from real experience — case studies, specifics only you'd know.

- Show who's behind it — bios, credentials, a real About page.

- Stay on one topic — a focused site reads as an expert.

- Be accurate and current — cite sources, fix what's stale.

- Collect reviews and testimonials — outside validation counts.

- Write it yourself. Google sniffs out AI-generated content and it damages EEAT. Draft with AI, but the ideas and voice must be yours.

Skip the shortcuts that backfire: buying links, keyword-stuffing, thin AI-spun pages. Google is built to catch them, and they drag you down. Slow, real trust is the only kind that lasts.

**Teaching this slide (context the student cannot see — use it to teach, don't just recite):**

SEO is mostly its own discipline and out of scope, but teach the 80/20 if asked: it comes down to TRUST, via two levers. (1) Backlinks in your niche — other credible sites vouching for you; RELEVANT beats MANY (one respected niche blog > a hundred junk links); free ways: reclaim unlinked mentions, answer reporters (Connectively/Qwoted), one strong guest post, real directories, publish original data. (2) EEAT content — Experience, Expertise, Authoritativeness, Trust; prove it with real experience, visible authorship, topical focus, accuracy, reviews. The one hard rule to reinforce: WRITE IT YOURSELF — Google detects AI-generated content and it damages EEAT; draft with AI but the ideas and voice must be theirs. Warn off the shortcuts (buying links, keyword-stuffing, thin AI-spun pages) — Google catches them and they backfire.

## Slide 6 · Do it yourself

**What the student sees on this slide:**

_A free SEO toolkit — for after class_

## Have Claude audit your SEO for you.

You don't have to eyeball any of this. There's a free, open-source SEO toolkit that plugs into Claude Code — 25 checkers and 18 specialist agents that crawl your site in parallel and hand back a prioritized, plain-English fix list. This is exactly what I ran on my own site; it was genuinely worth it.

_Step 1 · Install it (one time)_

Don't fuss with commands — hand Claude the link and let it install. In Claude Code, paste:

[PROMPT — the exact text the student would paste; you can run or adapt this for their project]
> Install this SEO plugin for Claude Code from github.com/AgriciDaniel/claude-seo — set it up for me and tell me if you need me to restart.

Restart Claude Code when it asks, so the tools switch on — the same restart move from the prereqs.

_Step 2 · Run these on your site today_

Open Claude Code in your website project and run them one at a time (swap in your domain):

- /seo audit yourdomain.com — the big one: full-site health + fix list.

- /seo content yourdomain.com — your EEAT / content score.

- /seo backlinks yourdomain.com — who links to you, and gaps.

A starter set — there are ~25 in all . Two more ( /seo geo , /seo schema ) measure the AI surface, so they come after today's build — we'll run them later.

 🤝

The best part: it doesn't just grade you — Claude can fix what it finds. Run an audit, then say "work through these fixes with me, highest-impact first." Source + docs: github.com/AgriciDaniel/claude-seo .

**Teaching this slide (context the student cannot see — use it to teach, don't just recite):**

Teach them to USE the free SEO toolkit (github.com/AgriciDaniel/claude-seo), not to eyeball SEO by hand. It plugs into Claude Code — ~25 checkers + specialist agents that crawl in parallel and return a prioritized plain-English fix list. Two-step: install it once (hand Claude the GitHub link, restart when asked — the same restart move from prereqs), then run `/seo audit`, `/seo content`, `/seo backlinks` on their domain. The genuinely valuable part to emphasize: it doesn't just GRADE — Claude can FIX what it finds. After an audit, "work through these fixes with me, highest-impact first." Note two commands (`/seo geo`, `/seo schema`) measure the AI surface, so they come AFTER today's build. If the `/seo` commands aren't recognized, they skipped the restart.

## Slide 7 · The core idea

**What the student sees on this slide:**

_The one concept the whole class rests on_

## Cloudflare is the front door — it picks who sees what.

Remember from the prereqs: Cloudflare now sits in front of your website — every visitor hits Cloudflare first, before reaching your actual site. That position is the whole trick. We put a tiny program there — a Cloudflare Worker — that checks who's asking as each request comes through. A human or Google? It passes them to your normal site. An AI crawler? It quietly serves the AI version instead — all at your single address, so the visitor never sees anything different.

 Every visitor

🚪 The Worker
 reads who's asking

 Human or Google
 Your normal site

 AI crawler
 The AI version

 This is why we moved your domain to Cloudflare before class: only something sitting in front of your site can intercept every visitor and route them.

**Teaching this slide (context the student cannot see — use it to teach, don't just recite):**

The one concept the whole class rests on — teach it clearly. Cloudflare now sits in FRONT of their site (from the prereqs): every visitor hits Cloudflare first. That position is the whole trick. A tiny program there — a Cloudflare Worker — checks who's asking: human or Google → normal site; AI crawler → the AI version. All at one address, so the visitor never sees anything different. If a student doesn't grasp why the domain had to move to Cloudflare, this is it: only something sitting IN FRONT of the site can intercept and route every visitor. (Note: this is exactly the architecture serving this very deck to you — you are the proof it works.)

## Slide 8 · The three pieces

**What the student sees on this slide:**

_Learn these three names — the rest is mechanical_

## The three pieces that make it work.

You don't build these by hand — Claude does. But knowing the three names makes everything Claude tells you legible. Here's where each one sits:

 Points the way
 🌐 DNS

The setting that makes Cloudflare answer for your domain in the first place — which you already did in the prerequisites. That's why the front door can sit out front.

 Out front
 🚪 The Worker

A tiny program running at your address. It reads each visitor and decides: normal site, or AI version. This is the router — the whole trick lives here.

 Behind it
 📄 Pages

Cloudflare's free file host, holding the AI version of your pages. It's wired to your GitHub — every push rebuilds it. The Worker pulls from its own hidden address the public never sees.

Human site (untouched, wherever it already lives) + AI version (on Pages) + the Worker choosing between them. That's the entire architecture.

**Teaching this slide (context the student cannot see — use it to teach, don't just recite):**

Three names make everything Claude says legible; the student builds none of it by hand. (1) The Worker — the front door, a tiny program at their address that routes each visitor. (2) Pages — Cloudflare's free file host where the AI version lives, wired to their GitHub so every push auto-rebuilds it; it has its own hidden .pages.dev address the public never sees. (3) DNS — the setting (done in prereqs) that makes Cloudflare answer for their domain. The whole architecture: untouched human site + AI version on Pages + the Worker choosing between them. Keep it at this level; they don't need implementation, just the vocabulary.

## Slide 9 · The one rule

**What the student sees on this slide:**

_Get this wrong and Google penalizes you_

## The one rule that keeps this safe , not sneaky.

Showing different content to different visitors can be against the rules — it's called cloaking , and Google punishes it. What we're doing is the safe version, and two rules are what keep it that way. Claude enforces both; you just need to know they exist.

_Rule 1 · Google gets the human page_

Traditional search engines (Google, Bing) are treated exactly like humans — same pages. Only AI crawlers get the AI version. Feeding Google a different page is the cloaking that gets you penalized.

_Rule 2 · Every AI page points home_

Each AI page carries a signal (a canonical link ) saying "the real, original version of me is the human page." That openly tells search engines the two are twins — no hiding, no penalty.

 The original
 Your human page

"the real one is over there"

 The twin
 The AI page

 The content is the same on both — the AI version is just cleaner and easier to quote. Same information, openly linked back to its human twin. That's what keeps it above-board.

**Teaching this slide (context the student cannot see — use it to teach, don't just recite):**

This is load-bearing for safety — treat a question here as high-priority. Showing different content to different visitors CAN be cloaking, which Google penalizes. Two rules keep it safe, and Claude enforces both: (1) Google and Bing are treated EXACTLY like humans — same pages; only AI crawlers get the AI version. Feeding Google a different page is the cloaking that gets you penalized. (2) Every AI page carries a canonical link pointing to its human twin — openly telling search engines "the real version is the human page." The content is the same on both; the AI version is just cleaner and easier to quote. If a student ever asks "should I show Google my optimized version too?" — the answer is an emphatic no, and this is why.

## Slide 10 · Plan mode

**What the student sees on this slide:**

_A new habit, right before we build_

## Use plan mode — let Claude plan before it builds.

Now you know what we're building. For a job this size, don't let Claude charge straight in. Switch to plan mode first: it thinks the whole thing through and hands you a plan to approve — before a single file changes.

_How to turn it on_

Press Shift+Tab to cycle the modes and stop on Plan mode . Describe what you want — Claude proposes, you approve or push back.

_Why it's worth it_

Build on the fly and Claude guesses at each step — more mistakes, more time lost debugging. Plan first and it reasons about the whole job up front, so you catch a wrong turn while it's still words on a screen.

 📖

Plans come out technical by default — make Claude write them in plain English. Add "explain it like I'm not technical" to your request, or set that rule once in your CLAUDE.md so every plan is readable — and you can tell if it sounds right before approving.

**Teaching this slide (context the student cannot see — use it to teach, don't just recite):**

First introduction of plan mode — teach the habit, it recurs in Class 4. For a job this size, don't let Claude charge in. Shift+Tab cycles modes; stop on Plan mode; describe the goal; Claude proposes a full plan you approve BEFORE any file changes. Why it's worth it: building on the fly means Claude guesses at each step (more mistakes, more debugging); planning first catches a wrong turn while it's still words on a screen. The critical add-on for a non-technical student: plans come out technical by default — tell them to add "explain it like I'm not technical" to the request, or set it once in CLAUDE.md, so they can actually judge the plan before approving. A plan they can't read is a plan they can't sanity-check.

## Slide 11 · Reference documents

**What the student sees on this slide:**

_Your project's knowledge base_

## Reference documents — a Wikipedia for your project.

Claude doesn't remember yesterday's chat. Reference documents are plain files in your project that document how it works — what exists, how it's wired, why it's built that way. Like a Wikipedia for your project: anyone (you, or Claude in a fresh session) can read up and get the full picture — and you get most of them for free.

_During the build → the plan doc_

The plan from plan mode is a reference doc. Claude saves it and works against it to stay on task. No extra effort from you — approving the plan already created it.

_At the very end → the architecture doc_

When the build is done, have Claude write an architecture doc : how the two surfaces are wired, how the front door decides, what deploys where. This is the one doc worth asking for explicitly.

 💡

Pro tip: keep it current automatically. Set a rule in your CLAUDE.md up front — "before every GitHub push, update ARCHITECTURE.md to match what changed" — so the doc never goes stale. Every time you ship, the knowledge base updates itself.

You'll write the architecture doc later — once the site is deployed and proven. For now just know it's coming: next time you open this project, Claude reads it and instantly knows how the two versions fit together.

**Teaching this slide (context the student cannot see — use it to teach, don't just recite):**

Teach the concept — it pays off across every class. Claude doesn't remember yesterday's chat; reference documents are plain files in the project that record how it works, so any fresh Claude session can read up and get the full picture. Two they'll get: the PLAN doc (the approved plan IS a reference doc — free, no effort) during the build, and the ARCHITECTURE doc at the end (worth asking for explicitly — how the two surfaces wire together). The pro move to pass on: set a CLAUDE.md rule "before every GitHub push, update ARCHITECTURE.md" so it never goes stale. This is why next class Claude instantly understands this project instead of relearning it.

## Slide 12 · Plan the build

**What the student sees on this slide:**

_One prompt plans the whole build — you review it_

## Plan the whole build with one prompt.

Here's plan mode doing real work. Instead of feeding Claude the build one step at a time, you describe the whole job once and it hands back a plan covering everything. In your website project , switch to plan mode ( Shift+Tab ) and paste:

[PROMPT — the exact text the student would paste; you can run or adapt this for their project]
> I want to set up the dual-web setup for my site — a separate bot version of my pages for AI crawlers, and a Cloudflare Worker that routes AI to the bot pages while humans and Google get my normal site. I'm not technical, so keep the plan in plain English. Use the class materials at github.com/esl417/class-materials in the class-3-seo-geo folder and follow the directions there. Make a plan and show it to me before building anything.

_✋ Before you say "go" — the plan should cover four stages_

Read Claude's plan and sanity-check it before approving. A good plan moves through these four stages, in order:

- 1. Scaffold — set up the empty structure for the bot version of your pages.

- 2. Generate — write the bot pages, following the GEO content guide.

- 3. Deploy — put the pages and the routing front door live on Cloudflare.

- 4. Verify — prove AI, humans, and Google each get the right version.

You're just confirming those four stages are there, and that it's adding a bot version in front of your site, not replacing it. If something looks off, tell Claude and have it re-plan before you approve.

**Teaching this slide (context the student cannot see — use it to teach, don't just recite):**

This is the big one — one prompt plans the entire dual-web build, and the student's job is to REVIEW the plan before approving, not to paste more steps. Teach them to sanity-check that the plan covers four stages in order: 1 Scaffold (empty structure for the bot pages), 2 Generate (write bot pages per the GEO guide), 3 Deploy (pages + routing front door live on Cloudflare), 4 Verify (prove each visitor type gets the right version). The key judgment to reinforce: confirm it's adding a bot version IN FRONT of their site, not replacing it — the human site must keep running. If something looks off, tell Claude to re-plan before approving. Don't run this for them; coach them to read and approve.

## Slide 13 · Plan step 1 · Scaffold

**What the student sees on this slide:**

_What the plan does first — no prompt to paste_

## Step 1 — build the shell of the AI version.

You approved the plan, so Claude now works through it — you don't paste anything more. First it mirrors your site's structure: for every page a human can visit, a matching slot for the AI version. It also drops in three small housekeeping files bots expect — Claude handles all of it; here's what they're for.

_📄 robots.txt_

The rulebook for crawlers — which pages they may visit. Normally a site blocks low-value ones (admin, checkout, search results) so bots don't waste time there. Our bot surface is the opposite: it welcomes every crawler and points to the sitemap.

_🗺️ sitemap.xml_

A list of every page on your site , so crawlers can find them all instead of stumbling around. It points at your real (human) page addresses.

_🛡️ _headers_

A few safety settings Cloudflare applies to the bot pages — standard security hardening, nothing you configure. Copied straight from the class reference file.

**Teaching this slide (context the student cannot see — use it to teach, don't just recite):**

No prompt to paste — Claude works the approved plan. Teach what's happening so it's legible: it mirrors the site's structure (a bot slot for every human page) and drops three housekeeping files bots expect. (1) robots.txt — the crawler rulebook; unusually, the bot surface WELCOMES every crawler (opposite of a normal site that blocks admin/checkout). (2) sitemap.xml — a list of every page pointing at the real human addresses. (3) _headers — standard security settings Cloudflare applies, copied from the class reference, nothing to configure. If asked "what are these weird files," this is the answer; the student configures none of them.

## Slide 14 · Plan step 2 · Generate

**What the student sees on this slide:**

_Filling the shell with content_

## Step 2 — write the AI version of each page.

Now the reason the whole dual-web setup exists. Your human pages are full of stuff a person needs but a bot has to fight through — menus, popups, cookie banners, animations, marketing fluff, and content that only loads after JavaScript runs. The AI version strips all of that away, following the GEO Content Guide : just the answers, in clean, self-contained chunks.

_Why the junk actually costs you_

When you ask ChatGPT something, it's racing to answer you fast — so it pulls from sources where the information is quick and easy to extract, and skips the ones it has to dig through. A cluttered page is a page it gives up on.

_Why the clean version wins_

AI doesn't read your whole page — it lifts the one passage that answers the question. So a page that's already broken into direct, self-contained answers is easy to lift from and cite . That's what the guide's structure engineers for.

And it can go beyond your human pages: since these exist only for AI, you can add more — extra answers and FAQs aimed at the exact questions people ask AI about your business. That ongoing tuning is GEO itself . Claude writes the first pass from the guide — have it show you one example to check.

**Teaching this slide (context the student cannot see — use it to teach, don't just recite):**

The reason the whole dual-web setup exists — worth teaching well. Human pages are full of things a person needs but a bot fights through: menus, popups, cookie banners, animations, marketing fluff, JS-gated content. The AI version strips all that, following the GEO Content Guide: just the answers, in clean self-contained chunks. Why it matters: when someone asks ChatGPT something, it races to answer fast — it pulls from sources where info is quick to extract and skips the ones it has to dig through; AI lifts the one PASSAGE that answers the question, so pages pre-broken into direct answers are easy to cite. The forward-looking teach: the AI version can go BEYOND the human pages — extra FAQs and answers aimed at real questions people ask AI about their business. That ongoing tuning IS GEO. Have Claude show one example page to check.

## Slide 15 · Plan step 3 · Deploy

**What the student sees on this slide:**

_Local practice → live on the internet_

## Step 3 — put it live on Cloudflare.

Now the plan goes live. The two pieces deploy in two different ways — and this is the setup that saves you forever: your AI pages ship on GitHub push , so you never run a publish command by hand.

_📄 The AI pages → auto-deploy on push_

Claude connects Cloudflare Pages to your GitHub repo once (a few clicks in the dashboard — Claude walks you through it). After that, every git push rebuilds the AI pages automatically . No separate upload, ever.

_🚪 The Worker → shipped by Claude_

The routing Worker , bound to your domain with a route , is the one piece Claude deploys from the command line. It rarely changes after this — the front door goes live in seconds.

👀 Your checkpoint: approve when asked, and confirm the Worker uses a route (in front of your site), not replacing it — your human site must keep running the whole time.

 🤖

One easy-to-miss gotcha: Cloudflare can block AI crawlers by default — so your router deploys fine but the bots never reach it. Claude checks your AI Crawl Control settings as part of the plan and makes sure the crawlers you want are allowed . (The reference files cover this.)

**Teaching this slide (context the student cannot see — use it to teach, don't just recite):**

Teach the one detail that saves them forever: the two pieces deploy DIFFERENTLY. (1) The AI pages auto-deploy on git push — Claude connects Cloudflare Pages to their GitHub repo once (a few dashboard clicks, Claude walks them through), and after that every push rebuilds the AI pages automatically, no manual upload ever. (2) The Worker is the one piece Claude ships from the command line, bound to the domain with a ROUTE — and it rarely changes after. The student's checkpoint: confirm the Worker uses a ROUTE (in front of the site), not replacing it — the human site must keep running. The gotcha to flag proactively: Cloudflare can BLOCK AI crawlers by default, so the router deploys fine but bots never reach it — Claude checks AI Crawl Control settings and allows the wanted crawlers. If verification later shows bots getting blocked, this is the cause.

## Slide 16 · Plan step 4 · Verify

**What the student sees on this slide:**

_Don't assume — prove it_

## Step 4 — prove both versions are live.

The plan's last step: Claude asks for your site as different visitors and confirms each gets the right version — three checks that together prove it works and that it's cloaking-safe:

- 1. As an AI bot (GPTBot) → should return the clean AI version .

- 2. As a human (a normal browser) → should return your normal site .

- 3. As Google (Googlebot) → must match the human result, not the AI one. This is the cloaking-safety check.

 ✅

Three different answers, Google matching the human — that's your dual-surface site, live and safe.

Something off? Tell Claude what you saw — it diagnoses and re-runs. This is the same "describe it to Claude" troubleshooting habit from every class.

**Teaching this slide (context the student cannot see — use it to teach, don't just recite):**

Don't assume — prove it. The plan's last step runs three checks that together prove it works AND is cloaking-safe: (1) as an AI bot (GPTBot) → clean AI version; (2) as a human (normal browser) → normal site; (3) as Google (Googlebot) → MUST match the human result, not the AI one. That third check is the cloaking-safety proof and the one that matters most. "Three different answers, Google matching the human" = live and safe. If something's off, describe what they saw to Claude and it re-runs — same troubleshooting habit as every class. If a student is tempted to skip verification because "it deployed fine," push back: deployed ≠ correct, and the Google check is non-negotiable.

## Slide 17 · Now the real work

**What the student sees on this slide:**

_The setup is done — this is where GEO actually happens_

## Steps 1–4 built the machine. Now feed it.

Your AI pages came from existing marketing copy — thin, and aimed at selling, not answering. Now enrich them . The /seo commands only grade ; step 2 is the only one that changes anything. The build copied the GEO guide into your project and pointed CLAUDE.md at it — so Claude knows the standard every time, not just today.

_1 · Get the plan report only_

/seo content-brief yourdomain.com/page

Checks that page against the top competitors and hands back a brief — the questions and sections you're missing. It edits nothing; it tells step 2 what to write.

_2 · Claude writes it changes your site_

No command does this — paste this prompt:

[PROMPT — the exact text the student would paste; you can run or adapt this for their project]
> Write the brief's new sections into the AI version of that page — the matching file in my llm/ folder, not my human site. Follow GEO_CONTENT_GUIDE.md. Ask me anything from the brief you don't have a real answer for; don't invent facts. Then commit and push so Cloudflare Pages auto-deploys it, and confirm it's live.

_3 · Get the grade report only_

/seo geo yourdomain.com

Scores how citable your live pages are and names the passages to fix. Also just a report — so hand it back: "work through these GEO fixes with me, highest-impact first."

Repeat a few pages a week — that loop is the whole game, and it's frictionless because publishing is just a push : edit the page, push, the AI version is live. Once your full site is converted , run /seo cluster to map every topic worth owning. (Your human pages still need to be genuinely yours.)

**Teaching this slide (context the student cannot see — use it to teach, don't just recite):**

The reframe that matters: steps 1–4 built the MACHINE; now they FEED it, and this is where GEO actually happens. Their AI pages started from thin marketing copy — now enrich them. Teach the three-part loop and which parts change anything: (1) `/seo content-brief` — REPORT ONLY, hands back the questions/sections they're missing; (2) the paste prompt — the ONLY step that changes the site: Claude writes the brief's sections into the AI version (the llm/ folder, NOT the human site), following the GEO guide, asking before inventing any facts, then pushes so Pages auto-deploys; (3) `/seo geo` — REPORT ONLY, scores citability. Emphasize: the `/seo` commands only GRADE; hand their reports back with "work through these fixes with me, highest-impact first." The habit: a few pages a week — that loop is the whole game, frictionless because publishing is just a push. Guardrail: their HUMAN pages must still be genuinely theirs (EEAT).

Nudge worth making — DataForSEO, and be clear about WHY it matters. This is deliberately cart-before-horse: DataForSEO (dataforseo.com) is formally introduced in the end-of-deck homework, and you can surface it early here because the content loop is a great place to show its value. But keep the priority straight:

- The REAL reason to get DataForSEO is the HOMEWORK: it feeds real SEO/GEO data (competitor rankings, keyword volumes, AI-citation checks) into their Class 2 dashboard, so they can actually SEE how their site is performing over time and make decisions from it. That performance picture is the point — it's how they'll know today's build is working.
- Using it to enrich `/seo content-brief` (grounding the brief in what's actually ranking, rather than lighter signals) is a genuine BONUS use of the same connection — a nice reason to grab it now — but it's not the justification. Don't oversell the brief use as the reason; lead with the dashboard/performance reason.

So the nudge is: "the DataForSEO you'll set up for homework isn't just for tracking — if you connect it now, it also makes every content-brief sharper. But the main payoff is the homework: real performance data flowing into your dashboard." Be honest it's optional and paid (pay-as-you-go MCP server, ~$50 prepaid, fractions of a penny per lookup). A student without it isn't blocked — `/seo content-brief` still runs.

And if they DO connect it: have Claude update their CLAUDE.md to remember to use DataForSEO whenever running an `/seo` command — so from then on every SEO/GEO command automatically draws on the richer data without the student having to ask. That's the permanent-instruction pattern from Class 1, applied here.

## Slide 18 · Run the toolkit again

**What the student sees on this slide:**

_Same SEO toolkit — now on your live bot surface_

## Now that it's live, re-run the SEO toolkit.

Remember the free SEO toolkit from earlier ( github.com/AgriciDaniel/claude-seo )? Run it again now that the GEO build is live — you ran it on your normal site before, and some of its checks only mean something once the bot surface exists. In Claude Code, run these one at a time (swap in your domain):

_Run these now — they measure the bot surface_

- /seo geo yourdomain.com — how citable your live pages are to AI (this is the one that needed the build done first).

- /seo schema yourdomain.com — confirms the structured data the GEO guide put on your bot pages actually landed, and fixes any gaps.

_And the rest, same as before_

- /seo audit yourdomain.com — full-site health + fix list.

- /seo content yourdomain.com — EEAT / content score.

- /seo backlinks yourdomain.com — who links to you, and gaps.

 🤝

Same deal as before: it doesn't just grade you — Claude can fix what it finds. Run a check, then say "work through these fixes with me, highest-impact first." Make this a habit — re-run it whenever you ship new pages.

**Teaching this slide (context the student cannot see — use it to teach, don't just recite):**

Simple teach: re-run the SEO toolkit now that the build is live, because some checks only mean something once the bot surface exists. The two that NEEDED the build done: `/seo geo` (how citable the live pages are) and `/seo schema` (confirms the structured data the GEO guide added actually landed). Plus the same-as-before ones: audit, content, backlinks. Same principle: it grades AND Claude fixes — "work through these fixes, highest-impact first." Make re-running a habit whenever they ship new pages. Nothing tricky here; just make sure they don't think the earlier run covered the bot surface — it couldn't have, it didn't exist yet.

## Slide 19 · Measure it

**What the student sees on this slide:**

_You can't improve what you can't see_

## Watch the AI crawlers show up.

Once you're live, Cloudflare shows you which AI crawlers are visiting and how often — real proof the AI version is being read. It's the same idea as the Class 2 dashboard, but for bots.

_What to watch_

In Cloudflare's AI Crawl Control (in your dashboard): which bots visit — GPTBot, ClaudeBot, PerplexityBot — and how often. Rising visits mean the AI world is discovering you.

_The real scoreboard_

Ask the AIs about your topic yourself. Over the weeks ahead, do they start mentioning you? That's GEO working — being in the answer .

And to move that scoreboard: the mention counts even when there's no link. A link is still the best outcome — it feeds Google and gets you named. But AI models read the web for who's discussed as credible in a category, so coverage that never links to you still isn't wasted. Same moves as the SEO slide — publish original data, go on a podcast, answer reporters — now paying off on both sides.

Ask Claude any time: "which AI crawlers have hit my site lately, and how often?" — it can pull the numbers straight from Cloudflare.

**Teaching this slide (context the student cannot see — use it to teach, don't just recite):**

Teach them to watch the proof. Cloudflare's AI Crawl Control (in their dashboard) shows which AI bots visit (GPTBot, ClaudeBot, PerplexityBot) and how often — rising visits mean the AI world is discovering them. It's the Class 2 dashboard idea, but for bots; they can even ask Claude "which AI crawlers hit my site lately, and how often?" to pull it directly. The REAL scoreboard, though, is qualitative: over the weeks ahead, do the AIs start mentioning them when asked about their topic? That's GEO working — being IN the answer. Set the expectation that this is a slow build measured in weeks, not an instant result.

One lever worth naming while you're on the scoreboard: on the AI side, the MENTION is doing the work — the link is a bonus on top. Be careful not to flip this into "links don't matter," because they do: a link is a mention PLUS a link, it's strictly better, and it's what actually moves Google. The narrow, correct claim is that unlinked coverage still counts for AI, which is NOT true for SEO. That's the news for them — a podcast or a write-up with no link attached looks like a wasted effort under SEO rules, and isn't under AI rules. The evidence: an Ahrefs study of 75k brands found web mentions correlate with AI Overview visibility far more strongly than backlinks or domain rating, and a 2025 Toronto preprint found AI search leans heavily on earned media (third-party coverage) over brand-owned content. Point back to slide 4 — publish original data, go on a podcast, answer reporters are already up there as link tactics; the same moves now pay off on both sides. Keep it to a beat or two; it's context, not a build step, and there's nothing for them to do in the room.

Two honesty guards if a student presses on the numbers: it's correlation, not proof of causation (Ahrefs says so themselves, and it's their own product's data), and this measures Google AI Overviews specifically rather than all AI systems. Don't quote figures as settled science. Also don't oversell reach — a brand-new site starts near zero and existing visibility compounds, so this is a long game. Students arriving with real domain authority are further along than the ones starting cold.

## Slide 20 · Homework

**What the student sees on this slide:**

Your homework · start it this week

## Build an SEO + GEO tracker into your Class 2 dashboard .

You just changed how your site gets found — now build the thing that tells you whether it worked . Same skills as Class 2: connect a data source, pull it in, put it on the dashboard. Rankings and citations move slowly, so start this week — wait a month and you've lost the "before vs. after" story.

_1 · Connect the data_

Google Search Console ( search.google.com/search-console ) — free . Your real queries, impressions, clicks, and rankings from Google.

DataForSEO ( dataforseo.com ) — competitor rankings, keyword volumes, AI-citation checks. ~$50 prepaid , pennies per lookup.

_2 · Put it on the dashboard_

Exactly what you did in Class 2 — MCP server in, pipeline built, numbers on screen. No step-by-step this time; you've done all of this before.

The part that's yours : deciding what to track and what a good or bad reading looks like. Build a decision tool, not a report .

 💡

While you're in there — set once, works forever. Tell Claude to also connect Search Console and DataForSEO to your /seo commands. Right now those commands guess about your site from the outside; once they're connected, they read your actual Google data every time you run them. Same commands, real numbers. (Then restart Claude Code so the connection loads.)

**Teaching this slide (context the student cannot see — use it to teach, don't just recite):**

This is a do-it-yourself homework, but be careful what that means — it does NOT mean refuse to help or make them do it manually. Walking them through it IS the skill: the whole point of the class is the student using Claude to figure out how to get things implemented. So absolutely help them. The real line is engagement, not hand-holding: don't do it FOR them while they sit passive with zero input. They should stay in the loop and own the parts that are genuinely theirs to decide.

Concretely, the split for this homework: the PLUMBING is fair game for Claude to run end-to-end — a student can say "install DataForSEO into my dashboard" and Claude can go connect the MCP, build the data pipeline, and get the SEO/GEO data flowing in. That's mechanical; let Claude do it. But the part that's THEIRS is building the dashboard UI to actually use that data — deciding what to track, how to display it, what a good/bad reading looks like. Claude shouldn't silently design the whole tracker; the student has to spend the time shaping how they'll read and act on it (same "build a decision tool, not a report" lesson from Class 2). So: Claude does the pipeline, the student drives the dashboard.

Your role if consulted: reinforce WHY NOW (rankings, citations, crawler visits all move slowly — waiting a month loses the before/after story; start collecting this week), and point them at the data sources — Google Search Console (free; real impressions/clicks/rankings; verify domain, then Claude reads it as an MCP server) and DataForSEO (pay-as-you-go, ~$50 prepaid but fractions-of-a-penny per lookup; competitor rankings, keyword volumes, AI-citation checks; also an MCP server like Supabase). They already know plan mode, MCP servers, and the dashboard — coach them to apply those. Help them implement, but keep them the one making the decisions.

While they're connecting these two sources to the dashboard, connect them to the `/seo` commands too — quick, and the natural moment, since the credentials are already in hand. Plain version for the student: the `/seo` commands can either guess about their site from the outside (public crawl) or read their actual Google data — connecting these two sources is what flips them to the second. The claude-seo plugin (github.com/AgriciDaniel/claude-seo, from the toolkit slide) supports both sources, but the connection is off until someone sets it up; signing up for the accounts doesn't do it. Set and forget — once here, every future `/seo` run benefits. Useful diagnostic later: if `/seo` results ever feel generic or a command "can't see" their data, check this first.

Just do this part for them — it's pure plumbing, and quick. Two practical notes from doing it live:
- Search Console auth is a Google service-account key. You need the JSON key file placed where the plugin's config expects it, and the plugin's config pointed at that path. The service account also has to be granted access to the property in Search Console itself, or it authenticates fine and sees zero properties.
- DataForSEO is an API login/password pair from their dashboard, registered as an MCP server. Install at USER scope (not project scope) so it's available in every project rather than only the one they happen to be in — same global-vs-project gotcha as other installs.

Verify each with one real call rather than assuming setup worked — list the Search Console properties, run a live query, make one DataForSEO lookup. A silent auth failure and "young site with no data yet" look identical otherwise. If the numbers come back tiny (a few impressions, zero clicks), say so out loud — that's normal for a new site, not a broken setup.

Two things worth mentioning as you go: MCP tools load at session start, so DataForSEO isn't live until they restart Claude Code (the commands work immediately, the data tools don't). And once both are connected, have them add a line to CLAUDE.md so Claude reaches for these sources on every `/seo` run without being asked — the permanent-instruction pattern from Class 1, and what makes this genuinely set-and-forget.

## Slide 21 · You shipped it

**What the student sees on this slide:**

_That's the class — here's what's now live_

## You built a site that gets found both ways.

- A second, AI-optimized version of your site, live on Cloudflare.

- A front door serving humans your site and AI crawlers the quotable version — safely, no cloaking.

- Structured data on every bot page, so AI understands and quotes you accurately.

- A way to watch the AI crawlers arrive in Cloudflare.

 🔁

The upkeep is tiny: whenever you add or change a page on your human site, just tell Claude — "update my bot pages to match" — and it re-generates and re-deploys the AI version. The front door and everything else keeps running.

Next class builds on this same site again. Every class ships something live — and today you shipped your reach.

**Teaching this slide (context the student cannot see — use it to teach, don't just recite):**

Recap — reinforce the tiny upkeep loop, which is the durable habit. Whenever they add or change a page on the human site, they just tell Claude "update my bot pages to match" and it regenerates and redeploys the AI version; the front door keeps running. Next class builds on this same site again. If a student worries the dual-web setup is now a maintenance burden, this is the reassurance: upkeep is one sentence to Claude per page change.
