I’ve been adjacent to SEO for thirty years. I’ve watched clients obsess over it, sat in meetings where people debated keyword density like it was scripture, and built the infrastructure that serves the pages those SEO strategies depend on. But actual SEO? I’ve never once done it myself. It’s one of those disciplines I understood from context because it was adjacent to my actual work.

That changed this week. My Hugo site was live on Cloudflare Pages, but I’d deliberately left everything SEO-related unconfigured during the build. No metadata optimization, no sitemap submissions, no structured data. The site worked; it just wasn’t open for business yet. Now it was time to do the work.

The Control Stack You Didn’t Know You Had

The first thing I did was audit. Before optimizing anything, I needed to understand what sat between Google and my content, and whether any of it was working against me. At a high level, the layers of this pie are:

Request hits Cloudflare edge
  → Bot management (blocks or allows crawlers)
  → robots.txt (tells allowed crawlers what to index)
  → Sitemap (tells crawlers what pages exist)
  → Page content (what actually gets ranked)

Think of it as a series of filters: each layer narrows what passes through to the next, and anything blocked upstream never reaches downstream. Cloudflare operates at the edge, before your site is even served. If bot management blocks a crawler, your robots.txt is irrelevant. Your sitemap is irrelevant. Google never sees any of it. You could have perfect on-page SEO and it wouldn’t matter. This is a good thing at the current stage of my migration and fresh SEO strategy. Starting from nothing is better than starting with something that’s badly broken or incorrect.

I began by intentionally leaving Cloudflare’s Bot Fight Mode off and AI training bot blocking on. I needed to read their docs and be sure I understood their use cases. Claude, of course, was helpful there. I just pointed it at the docs to get summaries and asked it direct probing questions relevant to my use case so that I could suss out what these were actually for, and how I needed to set them. Which was the whole point of leaving it all turned off before fiddling with the knobs and buttons. The takeaway is that when you’re running behind a CDN with its own bot management layer, audit from the outside in. The control stack is invisible until you go looking for it.

Not All Bots Are Created Equal

This is where Claude earned its keep as a teacher. I needed a crash course in bot taxonomy, and it mapped the landscape into three categories that immediately clicked:

Search crawlers (Googlebot, Bingbot): These index your site so people can find you in search results. You want these. Blocking them is like putting your phone on silent and wondering why it’s not ringing.

AI training crawlers (GPTBot, ClaudeBot, CCBot): These scrape your content to train language models. Blocking them has zero impact on your search rankings. Your call whether you want to donate your writing to the training pool.

AI answer engines (Perplexity, ChatGPT with browsing): These fetch your content at query time to generate answers, and they cite their sources with links back to you. For a consulting site, this is free distribution to people actively seeking expertise in your domain.

I’d already blocked training crawlers (I’m not volunteering my writing as training data) and left everything else open. The answer engine decision was the interesting one: my content isn’t the product. My services are. If an AI bot cites my blog post to someone researching exactly the kind of problem I solve, that’s a lead I didn’t have to work for. I’ll take that trade every time.

Giving Google Something to Work With

With the access layer sorted, the next pass was on-page SEO: the metadata that tells search engines and social platforms what your pages actually are.

Open Graph tags were the highest-impact addition. These are the meta tags that control what shows up when someone shares your URL on LinkedIn or Facebook: the image, title, and description in the preview card. Without them, platforms guess. With them, you control the presentation. For someone whose primary distribution channel is LinkedIn, this was a significant gap.

JSON-LD structured data tells Google what kind of entity you are. I added a ProfessionalService schema (business name, location, contact info, social profiles) on every page, and BlogPosting schema on articles with author, dates, and publisher information. This is what enables rich snippets in search results and helps Google connect your business to local searches.

Title tags were where I got the most useful education. My homepage title was “The Clouditect.” That’s a brand name, not a search term. Nobody Googles “The Clouditect” unless they already know me, and if they already know me, SEO isn’t the problem.

Claude reframed it simply: your homepage title is your positioning statement. It answers “what would someone Google to find a person like you?” For me, that’s “fractional CTO” and “cloud solutions architect.” Those go in the title tag. The ops specialties (DevOps, FinOps, SecOps) earn their SEO weight through blog content, not the front page. The homepage is the front door, not the catalog. Each component has one job.

The External Pieces

On-site SEO is half the picture. The other half is telling search engines you exist:

Google Search Console: Submit your sitemap, monitor indexing, see what queries find your site. This is the dashboard for understanding how Google sees you.

Bing Webmaster Tools: Same thing for Bing (which also feeds DuckDuckGo results). It imports directly from Google Search Console, so setup takes about two minutes.

Google Business Profile: How you show up in “near me” searches and Google Maps. I already had one from the Squarespace era; it just needed the new URL and an updated description with actual keywords.

All three are free. GSC and Bing took minutes; the Google Business Profile took a bit longer because we rewrote the description with actual keywords. The fact that this gap existed was proof enough to me that this work was badly overdue, which is really the whole point of this series.

The Meta-Lesson: AI as Domain Teacher

Here’s what I didn’t expect going in: Claude wasn’t just useful as an implementation assistant. It was genuinely effective as a teacher.

I told it upfront that I had no concrete SEO experience and needed to learn the basics before making decisions. It already “knows” who I am and how I work, so it didn’t dumb things down or bury me in jargon. It mapped SEO concepts to infrastructure analogies I already understood: the control stack, the layered enforcement, the separation of concerns between components. When I pushed back on decisions (“does my locality need to be in the title tag, or is that handled by the structured data?”), it explained the tradeoff and let me make the call.

This is the same pattern from Part 1: mentoring works in both directions. I mentor Claude on things like code quality, architecture decisions, and my specific preferences. Claude mentors me on domains where I have intuition but no execution experience. Neither of us is blindly following the other. The value is in the collaboration.

If you’re a technical practitioner staring at a domain you’ve operated adjacent to but never touched (SEO, copywriting, accessibility, marketing), consider pointing an AI at it before hiring a specialist or spending a week reading blog posts. You might find that your adjacent knowledge gives you enough foundation to make informed decisions. All you needed was a knowledgeable collaborator to fill in the gaps.

The Series

  • Part 0: The What: Why I built a publishing pipeline instead of just writing more posts on the platform I already had.
  • Part 1: The Why: Technology selection, the napkin math, standing up the project with Claude Code, and the theme trap that reminded me to plan before I build, even when I’m excited about building.
  • Part 2: The How: Custom theme implementation, the three-color section system, contact form integration, and deploying to Cloudflare Pages.
  • Part 3: Baseline SEO (you’re here): A 30-year technologist who’s never done SEO uses Claude to learn the basics and optimize a Hugo static site.
  • Part 4: Content SEO: Making every page worth indexing. Tag page enrichment, internal linking, and the SEO that actually matters for a small site.
  • Companion: DNS Cutover: The full DNS migration to Cloudflare, and why AI-assisted planning is no substitute for infrastructure review.
  • Companion: DNS Cutover: The full DNS migration to Cloudflare, and why AI-assisted planning is no substitute for infrastructure review.

The Clouditect helps businesses simplify their technology. If you want your web presence working as hard as you are, let’s talk.