December 22, 2025
by Serge Bezborodov

An Introduction to Vibe Coding for SEOs

What types of Googlebot exist?

Just a couple of years ago, Python was a hot topic: “Python for technical SEO”, “Python for log file analysis”, “Making friends with Python”. But suddenly, in late 2022, everything changed with the introduction of ChatGPT-3.

Instead of spending a long evening writing code to process a CSV file, now you can drop it in chat and get the result almost immediately.

But what if a CSV file is 3GB in size with millions of rows? What if we need to call an external API, such as Text Embeddings,and perform post-processing? What if we need to crawl a few thousand pages from a website?

If you pay close attention, even ChatGPT does not process files itself. It generates Python code and runs it to process your files. What if I tell you that modern LLMs are not replacing Python for SEO but instead making its use easier and more efficient than ever?

I’m a developer with over 15 years of experience, but I can barely write anything more complicated than “Hello World” in Python.However, in recent months, I have so enjoyed vibe coding in Python for prototyping new functionality for JetOctopus andexperimenting with different technologies.

My goal is to show you the practical way to vibe code that will definitely help with your everyday SEO tasks and automations.

What is Vibe coding?

In a few words: You don’t write code itself, but prompt into a coding agent. Do you need to understand the programminglanguage to vibe code?

My answer is yes and no. You don’t need to be an expert in Python, knowing principles of encapsulation, polymorphism, etc.

However, it’s essential to understand the basics – what a variable is and what a function is. The rest – Python is a very ‘readable’language, we are going to write relatively simple scripts, and they can be read as English text.

I recommend starting with ChatGPT “Study and Learn” mode with the prompt: “Explain to me the basic things of Python so Ican vibe code.”

To run our vibe-coded script, you need to use the system console. In Mac, the app is called Terminal, and it’s basically a blackscreen with an input line for commands. Windows has the Linux subsystem that fits our needs.

Again, you can ask ChatGPT about basic commands. There are a few of the most important of them:

  • ls – show files in the current directory
  • cd – change directory
  • rm – remove file
  • python your-script-file.py – run a script

Examples of SEO problems solved by Vibe coding

Technical SEO often requires working with a large amount of data, such as CSV files you get from various tools. Opening agigabyte CSV file sounds like a challenge for Excel (forget about Googledoc), but to a Python script it’s nothing, even on anaverage laptop.

1. Filtering and aggregating big CSVs – handle gigabyte-sized exports from GSC, crawlers or logs that Excel can’t open.
2. Calling external APIs – fetch live SERPs, GSC, get search volume or calculate text embeddings.
3. Keyword operations – cluster, group, and map thousands of keywords to the right pages.
4. Log file analysis – parsing millions of rows to extract valuable information about Googlebot/AI bots’ behaviour.
5. Content duplication & similarity checks – calculating similarity between product descriptions or category pages to find near duplicate clusters.
6. Internal linking optimisation – programmatically analyzing link graphs, detecting orphan pages, or suggesting better anchordistributions.
7. Data blending & enrichment – joining multiple sources (GSC, Ads, SERP APIs, keyword databases) into one structured dataset for better decision-making.

Choosing the right tool

I tried coding with ChatGPT a few times and the experience was, to put it politely, not so good.

You ask it to write a code, it generates, you copy the code to a local file, run the file, get an error, copy the error back to thechat, get a new code, copy the new code to the file, run it, maybe it will work or you get a new error – repeat 10 times. Suchexperience made me very skeptical about all that AI coding hype.

Recently, OpenAI released a stand-alone agent Codex, it’s way better, but still, for me personally, it feels like it’s not smartenough.

When Anthropic released Claude Sonnet 4.0, and there was a lot of hype over it. So I decided to give it a shot.
My dev life changed.

In contrast with other tools/models, Claude offers a more interactive way to vibe code. You can plan with it, ask questions,review the code, and immediately fix the bugs.

In my opinion, $20 spent on Claude code has the biggest ROI of any other tool.

Setting up your environment

Any development starts with setting up the environment. There are three main tools that have to be installed on your computer:
1. Python version > 3
2. Claude code
3. Visual Studio Code + Claude plugin

We will not dive into technical aspects here. Many manuals are available that describe the process, and you can also askChatGPT for assistance.

To verify that the environment is ready, run commands in your console:

Creating a first project

Let’s start by creating a directory vibe_code in the home folder.

Open the newly created directory in Visual Studio Code and run the Claude plugin:

Now we are ready to start. Let’s create an app that receives two URLs, downloads them and compares the content betweenthem, helping to analyze duplications and/or near-duplications:

Write me a Python script:

  • receive two URLs as input parameters
  • download those URLs by using a browser user-agent
  • extract the page title, and the content from both URLs
  • compares the titles and the content between pages and shows the difference in percentages
  • print output into the console

Voila!

Let’s run it:

Works like a charm, doesn’t it?
But as any real-world application, we need to make some improvements, let’s add:

  • Do not print the difference, similarity is enough
  • Add analysis of meta descriptions and H1s

In a few steps, we created a working script that does the job, without even seeing the actual Python implementation!

The architectural principles of effective scripts

Vibe code makes creating scripts easier than ever, but it does not mean that it will work like magic itself.
Instead of writing the actual code, now we need to think about the whole script flow and architecture.

Let’s use a metaphor: we have a task to paint a wall. Sounds easy. But we have a couple of questions and need to split it into afew steps:
1. What is the size of the wall?
2. Іs the wall outside or inside the building?
3. What material is the wall made of – concrete, metal or wood?
4. What color, what paint type?

The implementation plan:
1. We need to paint a 100 sq m concrete wall.
2. The wall is outside of a building.
3. Get the yellow paint suitable for outside work with strong UV resistance.
4. Paint a wall using roller brushes.

The same principles apply for developing applications, whether they are small Python ad-hoc scripts or enterprise-level Saastools.

Every application flow consists of several key components:

  • Action function – some business logic: read the file, download the URL content and so on.
  • Result verification – function result should be checked, whether the file was successfully read, whether the URL content wasdownloaded, or if it got a 403 error.
  • Logic flow – conditions how the application control flow goes. If the page status code = 200 → extract links and store them,otherwise log the status into a log file and print to output.

The best way to start developing your script is to get a pen and paper and draw a flow of data in your future application. Thinkabout the input and output, what it will receive, and what the final result should be.

How to talk with Claude code

Many words have already been said about the importance of context in interactions with LLMs. Coding agents are not anexception.
My interaction flow with Claude usually consists of several steps:
1. Task description, ending with “think about the implementation, ask me any questions, do not make any code.
2. ”Answering the questions, refining“
3. What potential issues and pitfalls do you see?
4. ”Again, refining, ending “give me the implementation plan
5. ”Looks good? “Do it!”
6. Trying to run the newly created script, probably some errors, put them back to Claude.
7. Fine-tuning the script

From my developer perspective, talking with a coding agent does not have so much difference from talking with a newly hireddeveloper. He/she is new to a project, and does not know all the history and legacy, so you have to describe many, many thingsthat may seem basic and obvious to you. However, LLM is unaware of it. In big projects, we have a file thatdescribes basic concepts, approaches and code style, so we don’t have to write them every time in prompts.

As with any LLM, it very often tries to overthink and propose many things that are overkill for the particular task. You need topay close attention to it and tell “keep focus on the initial task, do not overthink” and so on.

Building a website page clusterizer with HDBSCAN

To move forward from the “Hello world” project style, let’s develop something way more complicated: a website pagesclusterizer using text embeddings and the HDBSCAN algorithm.

The goal is to identify clusters of pages that are highly similar to each other, indicating potential near-duplications andcannibalization issues.
The initial prompt:

I need to develop a Python script that downloads URLs from a file, calculates text embeddings and applies HDBSCAN toclusterise them:
1/ receive a text file with the list of URLs
2/ downloads content for every URL with a browser user-agent
3/ if the URL successfully downloads, it extracts the text from the HTML
4/ if there is any issue during the download, skip it and log into the output
5/ calculates OpenAI Text Embeddings for the extracted text
6/ after all URLs are processed, it applies clusterisation, as the end results I want to have a file page clusters
7/ draw the cluster visualisation as well. Think about implementation, what questions do you have? Do not make any code for now.

Think about implementation, what questions do you have? Do not make any code for now.

Tough questions, aren’t? Let’s answer them:
1/ CSV with URL and cluster, add also page title
2/ extract text from page as is.I don’t know what to do with long texts.
3/ small version, via environment variable
4/ HDBSCAN – I don’t know, start with some optimal parameters.
5/ visualisation – I don’t know, choose the most apropriate way
6/ yes, implement caching.No need for rate limiting. No need for parallel processing. Skip failed URLs
7/ yes, make the progress tracking. Choose the libraries you need. What potential issues and pitfalls do you see?

Its thoughts are correct, but we’re developing a simple script. Let’s proceed with the prompt “do it.”

Let it edit files itself, anyway, we’re not good enough to review Python code.

Now it has created a script, a requirements file, and even a file with example URLs, very convenient!

The script successfully executed and made the clusterization. As a result, we have several files in the script’s directory:

  • Results.csv – CSV file with URLs, titles, and cluster ID
  • Clusters_visualization.png – image representation of clusters
  • Clusters_visualization.html – interactive doc with visualisation and tooltips, very convenient

Improvements and optimisation stage

I would say it’s very rare when newly built applications work fine from the first touch, even with the help of modern AI codingagents. Bug fixes and improvements are part of the normal development cycle, and our script is not an exception.
The first problem you’ll encounter during the processing of more than a few thousand pages is that the clusterisation stage willbe very, very slow.
Let’s return to Claude and prompt:
The clusterisation stage of thousands of pages takes a significant amount of time. What optimisations can be done? Tell methe solutions, do not code.

Sounds difficult, “What is the optimal and simple solution?”.

Do it

Logging

As we discussed earlier, every application consists of several steps, functions. Logging is one of the crucial things that help usunderstand what our app is doing right now.

The worst implementation will be a script that runs for an hour, prints nothing, and creates a CSV file in the end, or does notcreate one because it crashes, and you are unaware of it.

It should be a balance between verbosity and enough information to understand the app’s behaviour. The general rule of thumbis that the start and end of a function should be logged.

In the example above, we clearly saw that the clusterisation stage is the bottleneck and told Claude.

If we just wrote “script works slow”, Claude will suggest that we need to add parallelism to URL downloading, which is not thecase here.

The good practices

Simplicity is the key to any application development. At JO, devs have a motto: “Simpler is better”.
What does it mean for SEO vibe coding:
1. Do not use parallelism under any circumstances! That’s one of the most difficult aspects in development. Better robustscript that works for an hour rather than a script that does 15 minutes and crashes.
2. Start simple. In our example clusterizer, we are using the whole page content, not extracting the main content. Why?Because it’s a very complicated algorithm, especially for the catalog-type websites.
3. When you have a working script and you’re happy with it, copy it to a separate folder. Add version to the file name. Claudeis not so good at reverting changes and can easily break the code. Using version control like Git will be a more appropriatesolution, but not at this stage.
4. Read the documentation for the main libraries. You don’t need to code them directly, but it’s essential to know whatfeatures and main parameters they have.I strongly suggest reading the description about HDBSCAN and its configuration. You’ll easily understand why we used itinstead of the topK algorithm.Knowing the features of the most important libraries will significantly improve your skills at designing applications andcreating prompts.

Key takeaways

Coding agents are an excellent example of when AI tools actually work and provide significant additional value. For somethings, it’s easier to drop a file directly into ChatGPT, and it will process it directly.
However, for more complex SEO tasks, Vibe coding offers incredible opportunities to implement your ideas, create proof-ofconcepts, and so on. My team and I use Claude code on a daily basis, and it has significantly increased productivity. Now we1.2.3.4.Vibe code the initial idea, assess how it works, iterate, test, and implement the final, more fine-tuned and optimized code forperformance .

As with any tool, it has its own learning curve. It’s not magic (unfortunately), and you have to pay close attention to what it doesand stop it if you see it going in the wrong direction.

The way I described in the article is not the rule, but what I found most useful. There are many other tools that you’ve likelyalready heard of: Cursor and Windsurf.

I highly encourage you to start Vibe coding your boring SEO tasks, experiment with prompts, and discover your own tips andtricks. In the end, you’ll be more productive and efficient.

About Serge Bezborodov
Serge is the co-founder and CTO of JetOctopus, a tech SEO expert and log-file analysis enthusiast with over a decade of programming experience. A passionate advocate for data-driven SEO, he regularly shares insights from billions of crawled pages and analyzed log lines, helping SEOs turn complex data into actionable strategies.
You can find Serge on Twitter and LinkedIn.

Search

Categories

Get exclusive tech SEO insights
We are tech SEO geeks who believe that SEO is predictable and numeric. Don’t miss our insigths!