Setting Up SEO with Claude, first steps

I write this post on a train somewhere between Winterthur and the Airport. It's a quiet Sunday afternoon train without tourists or children - including my angels. Working on the train has the advantage that it's generally a fixed block of time to get something done. It's literally a physical and mental "context switch" when you arrive at your destination. Since I'm on my own, with an unlimited train ticket, there is no stress - except wanting to reach my destination by sunset. So, about that JavaBlog.com post, let's get started.

I thought before I go too far developing this blog that it would be useful to develop an initial strategy for how I'd approach SEO with JavaBlog.com. I've done this in the past, using the early rules of meta tags and page titles. The rules have obviously changed, but the fundamentals haven't - content is king.

I plan to promote my other endeavors using JavaBlog.com. I've been working on an application Polybit.ch that will eventually become the focus of this blog once I iron out the basics of "vibing" my own blogging platform. I have a few other projects queued, but one step at a time...

This blog has value to me both on a personal and financial level. I purchased this domain name in 2002. I love coffee and coding so I thought this was a perfect match. I was 29 years old when I purchased the domain. I entered the software engineering profession late after studying foreign languages and math until I was 25. I realized (with direct help from a fantastic Russian professor) that translating wasn't in my future. He encouraged me to find something to talk about with people that speak my languages and I would have a great future. Now, we can fast forward 24 years and roughly $500 spent on domain renewals. I'm ready, again, for the sixth time.

As I mentioned before, today's post is about setting up rudimentary SEO (Search Engine Optimization). I used Claude to generate a sitemap.xml based upon my existing page structure. I configured it so that future pages, when added, are automatically added to the sitemap.xml. At the end of this post I will submit my sitemap.xml to the Google Search Console and wait a few days until this content is indexed. It's the long game with SEO. Content and "safe" best practices. Cheers.

Commands Used

  • "the next few prompts will be public, including this one. I want to improve the SEO of my blog so that others can find my posts and be inspired to also experiment with 'vibing' or 'LLM assisted coding'. The task today is to improve the SEO for the website https://javablog.com. The website has a single path that is currently visible - '/'. Create a sitemap.xml that I can submit to the google search console. Also suggest an approach to SEO that: 1. works with translated content. 2. works in a single PR. 3. Can be extended later when there is more content."
  • "lets define a favicon.ico file that shows a capital 'J' in a darker purple with a background color white."
  • "I have convert installed, you can run that command."
  • "Alright - start a blog post in the home component above the previous post. chronologically, the newest post will be at the top. Title: Setting Up SEO with Claude, first steps. In the body do not write anything just write 'body here'. After the body, leave an area for 'commands used'."
  • "I would like you to include my rule about adding new pages to sitemap.xml to my claude.md. In the future, when I make changes to the site structure, automatically update my sitemap.xml file."
  • "Great. Update my commands to include the history of this 'vibe' session. Good job. Commit it in our names. I will review the commits for any unexpected changes."

How I Built This Blog with Claude AI (And the Exact Prompts I Used)

Coding with Claude has become so fun and interesting that I've decided to share these adventures on my javablog.com. I've been "vibe" coding on a weekly basis for the past 6-months on personal projects. At work I use github co-pilot selectively to generate tests, translate from English to German or for technical documentation like Plant UML: sequence and class diagrams. I've tried Gemini's CLI - it did well but Claude is better so far.

I generally avoid letting claude run my maven build, npm or ng tools. I've seen that my token allocation would dry up without much to show for it. I set the clear boundary that Claude codes, I test and build. By coding, the coding agent is not writing without me specifying what I want. The specification is generally a series of short questions about trade-offs, best practices and then I have a minimal specification for the next step.

So, in this project I've gone out of my comfort zone and let the coding agent just build it with a minimum amount of inputs. I will share my prompts at the end - and the github repository should be publicly visible: Github - Javablog.com

The Stack

JavaBlog.com runs on the following stack:

  • Angular 20 with static site generation (SSG)
  • Azure Static Web Apps for hosting
  • Cloudflare for DNS and CDN
  • GitHub Actions for CI/CD

My Prompts

  • "you now should have access to javablog.com... I want to use it to make posts. I think given your talents - we will not use a blogging tool, instead we will just create content. create a claude.md for you to follow"
  • "You took it too far. I want an angular application app to live in an app directory. when the github action triggers, it should build the app and deploy it to azure."
  • "I want it built from day one to be SEO and AI friendly."
  • "use the latest version of angular - its already installed."
  • "create a standard gitignore for an angular and claude project. i've already created the file in javablog.com"
  • "we need to setup a protocol for you preparing a post for me. It will use my name so I have the final say on content, etc. The first post will be about the blog itself, its structure and our collaboration. first things first, the layout. I want a simple layout. JavaBlog.com is the title of the blog top right. There will only be blog entries which will be listed on the index.html."
  • "create a post to show how the first post will look. make it about setting up this blog together with you."
  • "This isn't what I specified. Do not abbreviate the first post. It should live at javablog.com/ as well as its seo path."
  • "Stick to just the prompts used to build the blogging website. list the prompts in the ul element of home.html including this one."