How I built my agency website with Claude Code: an SEO guide for marketers

Author: Katarina Dahlin · Senior Growth Hacker & SEO Consultant
Updated: 2026-10-05 · Reading time: ~11 min

I built the website for my agency, dahlinseo.agency, with Claude Code, an AI assistant that writes and runs code for you. I am an SEO consultant, not a developer, and I wanted to see if AI could build a site that is fast, secure, easy to edit and great for Google and AI search.

It could. In this guide I show you step by step how to do the same, on the kind of web hosting most companies already have, with editing that feels like WordPress, GDPR-compliant analytics, and the SEO and AI search setup I use for clients. Including the mistakes I made, so you can skip them.


What makes this different from other vibe coding guides

There are already good guides on building websites with Claude Code. Most of them host on Cloudflare, Netlify or Vercel and leave the editing to the AI. This one is written for marketers and business owners who want something else:

  • Your existing web hosting: a normal web hotel with cPanel (I use Oderland), not a new platform.
  • Edit it yourself like WordPress: texts are edited in the browser with Pages CMS, so you do not depend on AI or a developer after launch.
  • GDPR from day one: Google Analytics through Tag Manager, with Consent Mode v2 and a cookie banner.
  • SEO and AI search built in: the checklist I use as an SEO consultant, from schema to consistent facts that help AI tools describe you correctly.
  • Fast, also with analytics: 96/100 on mobile and 100/100 on desktop in Google PageSpeed Insights.
  • Real mistakes and fixes, not a perfect demo.

Is this method for you?

Good fit:

  • Company and consultant websites
  • Portfolios and personal sites
  • Landing pages and campaign sites
  • Blogs and content sites

Not a good fit on its own:

  • Web shops with a cart and checkout
  • Sites where users log in (member areas, courses)
  • Booking systems

These need extra services. A static website can link to them or embed them, but it cannot run them itself.


What you get

  • A fast website made of plain HTML files. No database, no plugins. My site scores 96/100 on mobile and 100/100 on desktop in Google PageSpeed Insights, with analytics running.
  • Great for SEO and AI search: all content is in the HTML, so Google, ChatGPT and Perplexity can read everything.
  • Safer than WordPress: there is no login page to attack and nothing to update on the server.
  • Edit texts in your browser, much like in WordPress, with a free tool called Pages CMS.
  • Automatic publishing: you save a change and it is live about a minute later.
  • Every version saved: you can always go back.

Time and cost

Time: my first version took a few days of working sessions, with many rounds of feedback. The AI builds fast, but you make the decisions: positioning, texts, design and what goes on each page. Plan for that.

Cost:

WhatTypical cost
Claude Code (a Claude subscription or an API account)Monthly fee or usage-based, check current plans on claude.com
DomainUsually 10 to 30 euros per year
HostingA normal web hotel costs a few euros per month. Static hosts like Netlify or Cloudflare Pages have free plans.
GitHub, Pages CMS, Google toolsFree

Compared with WordPress, you skip premium themes, plugins and maintenance.


Words you will see (mini glossary)

  • Terminal: the app where you type commands. On Mac it is called Terminal, on Windows use PowerShell or Windows Terminal.
  • Claude Code: Anthropic’s AI assistant that runs in the Terminal. You describe what you want, it does the work.
  • Astro: the tool that turns your pages into fast HTML files.
  • Build: turning the project into the finished website files.
  • Repository (repo): your project’s folder on GitHub.
  • Commit: a saved version of the project, like a restore point.
  • Deploy: publishing the finished files to your web host.
  • DNS: the internet’s address book. It tells browsers where your domain lives.
  • Nameservers: which company manages your domain’s DNS.
  • Secret: a password stored safely on GitHub, so it is never visible.

Before you start: install the basics

  1. Open the Terminal.
    • Mac: press Cmd+Space, type “Terminal”, press Enter.
    • Windows: open the Start menu, type “PowerShell” or “Terminal”.
  2. Install Node.js: go to nodejs.org and install the LTS version. It is a normal installer.
  3. Install Claude Code: follow the official installation guide in Anthropic’s Claude Code documentation (search for “Claude Code install”). It works on Mac, Windows and Linux.
  4. Create a GitHub account at github.com. The free plan is enough.

You do not need to know how to code. You need to describe what you want, look at screenshots and click through some settings pages.


Step 1: Create the project

In the Terminal, type:

cd ~/Desktop
npm create astro@latest mysite
cd mysite
claude

Choose the minimal template when Astro asks. The last command starts Claude Code. Log in with /login.


Step 2: Write a brief

Create a file called CLAUDE.md in the project folder. Claude reads it before every task, so it is the most important file in the whole project. Write:

  • What the site is for: who you want to reach and what they should do (contact you, book, buy).
  • Facts to use exactly: company name, address, business ID, email, social profiles.
  • Positioning and tone: what makes you different, how you want to sound.
  • Pages: home, services, about, contact, privacy policy and so on.
  • Tech rules: static Astro site, Tailwind, sitemap, unique titles and descriptions, one H1 per page, schema, images as WebP.
  • Design direction: what you like, and what you want to avoid.

My best advice: update the brief every time you make a decision. My positioning changed several times while I built the site, and the brief kept everything consistent.


Step 3: Design first, then build

Start with this prompt:

Read CLAUDE.md first and follow it. Install Tailwind and the Astro sitemap integration, then propose a design plan with colors, fonts and a layout sketch. Don’t build pages yet.

Approve or change the plan. Then let Claude build the layout and the pages, one at a time.

Be the project lead:

  • Ask Claude to use real facts, for example from your current website, and to list anything it cannot verify.
  • Ask for screenshots on desktop and mobile before anything goes live.
  • Read the texts. AI writes fast, but you know your business.

Step 4: Domain and hosting

I use Oderland, a Nordic host with cPanel. Most web hotels work the same way.

  1. Point your domain to your host: at the company where you bought the domain, change the nameservers to the ones your host gives you.
  2. Add the domain in your hosting panel: in cPanel, Domains, Create A New Domain. Untick “Share document root”, so the site gets its own folder.
  3. Turn on HTTPS: in cPanel, SSL/TLS Status, Run AutoSSL. It is free.

Using another host?

  • Other cPanel or Plesk hosts: same steps, slightly different names.
  • Netlify, Cloudflare Pages or Vercel: you connect your GitHub repository instead, and publishing is built in. You can then skip Step 6.

Step 5: Save the project on GitHub

Ask Claude to install the GitHub tool and log you in. You get a code: open github.com/login/device, type the code and click Authorize. Then ask Claude to create a private repository and upload the project.


Step 6: Publish automatically

Ask Claude:

Set up automatic publishing with GitHub Actions. Build the site and upload it to my hosting over FTPS on every change.

Then:

  1. In cPanel, create an FTP account that only reaches your website folder. Fill in the folder last, because cPanel changes it while you type the username. Check that the Path column ends with your site folder.
  2. On GitHub, open your repository, Settings, Secrets and variables, Actions. Add FTP_SERVER, FTP_USERNAME and FTP_PASSWORD.
  3. Ask Claude to run the first publish and check the live site.

From now on, every saved change goes live by itself.


Step 7: Edit texts like in WordPress

Ask Claude:

Move all texts into content files and set up Pages CMS with clear field names.

Then go to pagescms.org, sign in with GitHub, and give it access to only this repository. You now see forms like “Home page headline” and “FAQ”. Change a text, click Save, and it is live a minute later.

For bigger changes, like new pages or design, ask Claude Code.


Step 8: Analytics with cookie consent

Google Analytics uses cookies, so in the EU you need consent.

  1. Create a container in Google Tag Manager.
  2. Ask Claude to install it with Consent Mode v2 and a cookie banner, and to update your privacy policy.
  3. Add your GA4 tag inside Tag Manager and publish.
  4. Ask Claude to load Tag Manager late (on the first interaction or 3 seconds after page load). Loading it immediately dropped my mobile PageSpeed score from 100 to 81; loading it late brought it back to 96.

Do not paste the extra Google Analytics code as well. Tag Manager already does that job.


Step 9: Google Search Console

  1. In Search Console, add a Domain property and copy the TXT record.
  2. Add it in your DNS settings (in cPanel: Zone Editor, Add Record, TXT).
  3. Click Verify, then submit your sitemap.

A Domain property can only be verified through DNS. I first tried a tag, and it does not work.


My SEO checklist before launch

As an SEO consultant, these are the things I always check:

  • Every page has a unique title and meta description, and one H1.
  • All content is in the HTML. No text that only appears after JavaScript, and no animated number counters, which show “0” to Google.
  • Schema for your company and for you as a person, with links to your social profiles. This helps AI tools describe you correctly.
  • Sitemap submitted and robots.txt pointing to it.
  • A link preview image (1200 x 630 px) for LinkedIn and Facebook.
  • Old URLs redirect to new ones, so you keep their value.
  • Images are WebP with descriptive alt texts.
  • Tracking loads late, so analytics does not cost you your PageSpeed score.
  • The same facts about you everywhere: website, LinkedIn, speaker bios. AI search trusts consistent information.

A static site is a great base for SEO and AI search: it is fast, the content is easy for crawlers to read, and nothing slows it down.


Security in short

  • There is no login on the website, no plugins, no database. Very little to attack.
  • Your GitHub account is now your admin login. Turn on two-factor login on GitHub, your host, your domain registrar and Google.
  • If you have WordPress sites in the same hosting account, keep them updated. They are the main risk.
  • Never show your FTP password or GitHub secrets in screenshots or videos.

Mistakes I made (so you don’t have to)

What happenedHow to avoid it
My new domain showed another websiteGive each domain its own folder in cPanel
Publishing “worked” but nothing changedThe FTP account pointed to a subfolder. Fill in the folder last.
GitHub refused the publishing fileThe login needed the “workflow” permission. Claude can request it.
An edit in Pages CMS broke the buildReload Pages CMS after new fields are added
No data in Google AnalyticsA typo in the tag ID. Copy and paste it.
Search Console did not verifyUse the DNS record, not a tag
Mobile PageSpeed dropped from 100 to 81 after adding analyticsLoad Google Tag Manager late. Back to 96 on mobile and 100 on desktop.

The good news: when a build fails, the live site keeps its previous version. Nothing breaks for your visitors.


FAQ

Do I need to know how to code?

No. You describe what you want in plain language. You do need to read what Claude produces and make decisions.

Is it better than WordPress?

For company sites, portfolios and blogs: faster, safer and cheaper to run. For web shops and member sites, WordPress or a dedicated platform is still easier.

Can I edit the site myself afterwards?

Yes. Texts in the browser with Pages CMS, bigger changes by asking Claude Code.

Is a static website good for SEO?

Yes. It is fast, all content is in the HTML, and it is easy for Google and AI search to crawl. My own site scores 96 on mobile and 100 on desktop in PageSpeed Insights, with analytics running, and 100 for SEO, accessibility and best practices.

What happens if I stop paying for Claude?

Your website keeps working. It is just files on your host. You only need Claude Code again for bigger changes, and you can still edit texts in Pages CMS.

Can I use another host than Oderland?

Yes. Any web host with FTP works, and static hosts like Netlify or Cloudflare Pages are even simpler.


If you build your own site with this method, I would love to see it. And if you want help with SEO and AI search for your new website, you know where to find me.

0