← All resources Skill

How to improve your website SEO step by step

I searched Google for the service I sell, in my city, and did not show up. The complete method I used to fix it, step by step, with the scripts.

How to improve your website SEO step by step

Free, in exchange for knowing who you are

Download it free

You get the whole thing at no cost. I only ask for your email so I can write later and ask how it went: if something did not work for you, I want to know. No spam.

One confirmation email and that is it. You can leave whenever you want.

What you will get

An audit gave my own site 75 out of 100. Worse: I searched Google for the exact service I sell, in my own city, and I did not show up. Not on the first page, not on the third.

I fixed every item, wrote down what worked and what cost me time, and packaged it into this skill. These are the final numbers, measured in production on the same site you are reading:

  • PageSpeed desktop: 92 → 100. Mobile: 77 → 88.
  • Layout shift (CLS): 0.137 → 0. Exactly zero, not rounded.
  • Fonts: 273 KB → 123 KB. 55% lighter.
  • Full load: 1,166 ms → 734 ms.
  • 102 of 102 URLs with title and description within limits.

Open PageSpeed Insights, type chiragx.com, and check it yourself. I am not asking you to take my word for it.

Before you start: install the skill

This is a Claude Code skill. Unzip the folder inside your skills directory:

~/.claude/skills/web-playbook-100/

On Windows that is C:\Users\YOUR-USER\.claude\skills\. It activates on its own when you ask to audit or improve a site's SEO.

Not using Claude Code? It still works. Everything is Markdown and the scripts run on their own from the terminal. Open SKILL.md and read it as the manual it is.

Step 1. Measure honestly, not the way you wish

Almost everyone skips this step, which is why they end up fixing the wrong thing. Before touching a line:

  1. Open your site on your phone using mobile data, not wifi. Your office wifi lies to you. Your clients visit you on the street.
  2. Run PageSpeed on mobile three times and take the middle value. A single measurement tells you nothing; it swings too much. Desktop almost always looks fine and is almost never where your visitors are.
  3. Search Google for your service plus your city, in incognito. If you are not there, that is your real problem, not the score.
  4. Count your services and count your pages. If you sell five things and have one page, that is your ceiling. Write that number down.

Save all four results in a file. At the end you measure the same four again, and that is how you know whether any of it worked.

The scripts/audit.sh script does the technical half for you: status codes, redirects, canonicals, hreflang and metadata across every URL in one pass.

Step 2. One page per service, not a list on the home

This moved the needle more than anything else, and none of it is technical.

If you sell five services and they live as five paragraphs inside your home page, Google has one page to rank for five different searches. It will lose all five. Each service needs its own URL, its own title, its own description and real content of its own.

In my case I went from a home page with a services section to twelve pages (six services in two languages), each with:

  • A title using the words people actually type, not the ones we use in the industry.
  • A concrete problem at the top, before talking about me.
  • Real frequently asked questions, the ones I get on calls.
  • Structured data for Service and FAQPage.
  • Cross links between related services, and back to the index.

The skill covers this in references/arquitectura.md, including how to decide what deserves its own page. Short rule: if someone could search for it by name, it deserves a page.

Step 3. Technical SEO: let Google read you without guessing

This is where most sites lose points to invisible things. The order that works:

  1. Structured data. Mark who you are (Person or Organization), what you sell (Service), your questions (FAQPage) and the navigation path (BreadcrumbList). Validate every page in the Rich Results Test.
  2. A canonical on every page. One official version of each URL.
  3. Hreflang if you have more than one language. Reciprocal: if the Spanish one points to the English one, the English one has to point back. If one fails, both fail.
  4. A generated sitemap with a real lastmod. A hand-written sitemap goes stale in two weeks.
  5. Titles and descriptions within limits. Title up to 60 characters, description up to 158. Past that, Google truncates them and you lose the message.

Once that is in place, verify the site in Google Search Console, submit the sitemap and request indexing for the new pages. Also register on Bing Webmaster Tools: it takes half an hour and it feeds a good share of what AI search engines answer with.

Search Console has a learning curve, and some decisions depend on how your site is built. I am listing it as a step because explaining it properly is a conversation, not a paragraph. Write me and we go through your case.

Step 4. Performance: what actually moves the number

This is the area with the most myth per square meter. What actually worked, in order of impact:

Fonts

Google Fonts costs you a connection to another domain before a single letter can paint. Download them and serve them yourself. Two warnings that cost me time:

  • Google serves a single variable file per family. If you download "regular", "medium" and "bold" separately, you are downloading the same file three times. Deduplicate by hash and declare weight ranges.
  • Use font-display: optional on your body font. With swap the text repaints, and that is where a good chunk of your layout shift is born.

scripts/selfhost-fonts.js handles the download and the deduplication for you.

Images

  • Convert to AVIF and serve with <picture>, keeping the original as a fallback. My home page went from 1,013 KB to 533 KB with no visible difference.
  • Declare width and height on every image. Without them the browser cannot know how much space to reserve, and content jumps.
  • If you have a global img{max-width:100%} rule, it must include height:auto. Without it your images get squashed. This bug lived on my site for weeks and I only caught it in a screen recording.

Layout shift

Getting to zero is about reserving space: dimensions on images, heights on anything that loads late, and nothing that moves when the font arrives. scripts/browser-audit.js measures shift, largest paint and real contrast in an actual browser, which is different from what a lab reports.

Step 5. Entity: let Google know you exist as a person or company

Almost nobody does this, and it is what separates "one more website" from "the reference on this topic in your country".

Google does not only index pages, it maintains a graph of entities: people, companies, places and how they relate. If you are not an entity to Google, you compete on words alone. If you are, you compete on being who you are.

The steps, in order:

  1. Mark Person or Organization on your site with a stable @id, and reference that same @id from every page.
  2. Link with sameAs to your real profiles: LinkedIn, GitHub, YouTube, X, your company listing.
  3. Make all those profiles say the same thing. Same description, same name, same link. If your LinkedIn says one thing and your site another, you are sending signals that contradict each other.
  4. If you have press coverage, talks, or existing entities that mention you, create your record on Wikidata and connect it to your companies.

Wikidata has notability rules and your entry can be deleted if you do it wrong, so do not take it lightly. It is covered in references/entidad.md, but if you are doing this for your business, talk to me first and I will tell you whether you qualify and how to approach it.

Step 6. Content and measurement: so this does not die in a month

A site at 100 that publishes nothing drifts back down. You need two things.

Somewhere to publish without touching code. I built my own CMS on Cloudflare because I wanted control over the HTML that comes out, but anything works as long as you actually publish. What matters is that posting an article takes fifteen minutes, not an afternoon: if it is painful, you will not do it. The setup is in references/stack.md and references/cms-y-contenido.md.

Knowing where people come from. Measure first touch, not last: if someone found you through Google in March and messaged you on WhatsApp in May, that was Google, not WhatsApp. Store the source in the browser on the first visit and send it with the form. Without this you are guessing which channel brings you clients.

The mistakes that will cost you time

The skill documents eighteen real mistakes in references/errores.md, each with what it cost. These four are the ones I see most:

  • Optimizing desktop and celebrating. Desktop always looks good. Your traffic is mobile.
  • Chasing the score instead of the business. A 100 that does not show up when people search your service is worth nothing. Measure both.
  • Trusting the lab. Tools simulate. Open a real browser and measure there before calling anything done.
  • Changing ten things at once. If it improves, you do not know which one did it. If it gets worse, same problem. One change, one measurement.
SEO audit flyer: your site failed, shall we review it?
SEO audit flyer: your site failed, shall we review it?

How you know you got there

Go back to the four numbers from step 1 and compare. You are there when:

  • Mobile is above 85, measured three times.
  • Layout shift is at zero.
  • You show up when searching your service plus your city, in incognito.
  • Every service you sell has its own indexed URL.

If three out of four land and one does not, that one is usually step 5. It is the slowest and the one that pays the most.

Free, in exchange for knowing who you are

Download it free

You get the whole thing at no cost. I only ask for your email so I can write later and ask how it went: if something did not work for you, I want to know. No spam.

One confirmation email and that is it. You can leave whenever you want.

Stuck on a step?

Write me and we look at it

The resource takes you from zero to a hundred on its own, but some steps land better in a conversation. If you got that far and something is off, send me your site and I will tell you what is going on.

Book a call →

Technical SEO · Web performance · Core Web Vitals · Entity