iclaude.lol

SEO & AEO: The Complete Guide to Ranking in Search and AI Answers

September 2026 · Updated regularly

Everything you need to know about SEO (Search Engine Optimization) and AEO (Answer Engine Optimization) — from meta tags to JSON-LD to getting cited by ChatGPT. Built by a developer who did it, not a marketing agency that talks about it.

Contents
  1. SEO Fundamentals
  2. Technical SEO Checklist
  3. AEO — Answer Engine Optimization
  4. Structured Data & JSON-LD
  5. Content That Ranks
  6. Core Web Vitals & Performance
  7. SEO for Cloudflare Workers
  8. 20 SEO Questions, Answered
  9. Test Your Knowledge
  10. Launch Checklist

SEO Fundamentals

SEO is making your site understandable to search engines. Google crawls billions of pages. If yours doesn't clearly communicate what it's about, it gets ignored. Three pillars:

Technical
Can Google find and read your pages?
Sitemaps, robots.txt, meta tags, canonical URLs, page speed, mobile-friendliness, SSL. The plumbing.
Content
Does your content answer real questions?
Depth, originality, E-E-A-T, keyword targeting, freshness. The substance.
Authority
Do other sites vouch for you?
Backlinks, brand mentions, social signals, domain age. The reputation.
New: AEO
Can AI extract and cite your content?
FAQ schema, llms.txt, structured answers, clear definitions. The AI layer.

Technical SEO Checklist

Before writing a single blog post, fix the plumbing. These are the non-negotiable technical requirements for any site that wants to rank.

1. Meta Tags on Every Page

Every HTML page needs these in the <head>:

<!-- The clickable headline in search results --> <title>Your Page Title — Site Name</title> <!-- The snippet below the headline (150-160 chars) --> <meta name="description" content="Clear, compelling summary of what this page covers."> <!-- Prevents duplicate content issues --> <link rel="canonical" href="https://example.com/this-page"> <!-- Social sharing (og: tags for Facebook/LinkedIn, twitter: for X) --> <meta property="og:title" content="Your Page Title"> <meta property="og:description" content="Same as meta description."> <meta property="og:image" content="https://example.com/og-image.png"> <meta property="og:url" content="https://example.com/this-page">

2. sitemap.xml

A machine-readable list of every page you want indexed. Dynamic sites should generate this from the database:

<?xml version="1.0"?> <urlset xmlns="http://sitemaps.org/schemas/sitemap/0.9"> <url> <loc>https://example.com/</loc> <changefreq>daily</changefreq> <priority>1.0</priority> </url> </urlset>

3. robots.txt

Tell crawlers what's public and what's private:

User-agent: * Allow: / Disallow: /auth/ Disallow: /api/ Disallow: /admin/ Sitemap: https://example.com/sitemap.xml

4. Internal Linking

Every page should link to 2-3 other pages on your site. Google discovers pages by following links. If a page has no inbound links, it's an orphan — Google may never find it even if it's in your sitemap.

AEO — Answer Engine Optimization

AEO is SEO for AI. When someone asks ChatGPT, Perplexity, or Google's AI Overview a question, the AI pulls from web content to build its answer. Getting cited means getting traffic from a channel that didn't exist two years ago.

Key insight: AI answer engines don't rank pages — they extract facts. Your content needs to be structured so AI can pull clean, quotable answers from it.

How to Optimize for AEO

SEO vs AEO: Side by Side

SEO
Optimize for rankings
Keywords, backlinks, CTR, position tracking. Success = appearing on page 1 of Google search results.
AEO
Optimize for citations
Structured data, clear answers, FAQ schema, llms.txt. Success = being cited in AI-generated answers.

Structured Data & JSON-LD

JSON-LD is how you speak Schema.org to search engines. It's a <script> tag in your HTML that describes what your page content represents in a machine-readable format.

Common Schema Types

// FAQPage — triggers FAQ rich snippets in Google { "@context": "https://schema.org", "@type": "FAQPage", "mainEntity": [{ "@type": "Question", "name": "What is SEO?", "acceptedAnswer": { "@type": "Answer", "text": "SEO is the practice of..." } }] }
// Person — for profile/about pages { "@context": "https://schema.org", "@type": "Person", "name": "Developer Name", "jobTitle": "Full-Stack Developer", "url": "https://example.com/page/handle", "image": "https://example.com/avatar.jpg" }
// WebSite — for your homepage (enables sitelinks search box) { "@context": "https://schema.org", "@type": "WebSite", "name": "Your Site", "url": "https://example.com", "description": "What your site does." }

Content That Ranks

The formula: Find a question people actually ask. Answer it better than anyone else. Structure it so both humans and machines can parse it.

The Inverted Pyramid

Journalists have used this for a century. Put the answer first, then the detail, then the background. Search engines and AI both reward this structure:

  1. Lead: Direct answer in 1-2 sentences (this is what AI extracts)
  2. Body: Supporting detail, examples, edge cases
  3. Background: Context, history, related topics

E-E-A-T Signals

Google's quality bar, in plain English:

Core Web Vitals & Performance

Google measures three things about your page experience:

LCP
< 2.5s
Largest Contentful Paint. How fast the main content loads.
INP
< 200ms
Interaction to Next Paint. How fast clicks respond.
CLS
< 0.1
Cumulative Layout Shift. How much the page jumps around.

How to win at performance: Server-render HTML (no client-side framework overhead), inline critical CSS, lazy-load images, compress everything, serve from the edge. Cloudflare Workers get near-perfect scores by default because the HTML is fully rendered at the CDN.

SEO for Cloudflare Workers

Cloudflare Workers are inherently SEO-friendly because they server-render HTML at the edge. No JavaScript rendering delay. No hydration jank. Google gets exactly what users get.

Workers SEO Recipe

// 1. Server-render everything (Workers do this by default) app.get('/page/:id', (c) => { return c.html(`<html>...fully rendered...</html>`) }) // 2. Dynamic sitemap from D1 app.get('/sitemap.xml', async (c) => { const pages = await c.env.DB.prepare('SELECT slug FROM pages').all() return new Response(buildSitemapXml(pages), { headers: { 'Content-Type': 'application/xml' } }) }) // 3. Dynamic OG images with workers-og app.get('/og/:slug', async (c) => { return new ImageResponse(`<div>...</div>`) }) // 4. Cache headers for crawlers // Workers + Cloudflare CDN handle this automatically

20 SEO & AEO Questions, Answered

Every question below is marked up with FAQPage schema — Google and AI answer engines can parse these directly.

Test Your SEO Knowledge

10 questions. See if you actually know this stuff or just think you do.

SEO Launch Checklist

Use this before launching any site. Every item is a yes/no — if any are no, fix them first.

Technical

Social & Sharing

Structured Data

AEO / AI Readiness

Ongoing

Built by @brianball using Claude Code. This page practices what it preaches — check the source for FAQPage JSON-LD, semantic HTML, and AEO-optimized structure.

See how Claude built the SEO for this site →

iclaude.lol