~/Oriol Martí
es

SEO in the age of AI: the basics still rule

· 6 min readseoiaweb

I’ve been working on search engine optimization for many years and I’ve seen the rules change several times: from keywords repeated ad nauseam to links, then mobile experience, then speed, and now AI-generated summaries right on the results page.

What surprises me most about this stage isn’t AI itself, but speed. New content used to take weeks or months to settle. Today I’ve seen well-made articles land near the top within days. And the opposite too: pages that drop just as fast when something technical breaks.

Thesis

My thesis is that AI hasn’t changed the fundamentals of SEO; it has raised the cost of skipping them. Search engines and the models reading your site need the same as always: to understand what each page is about, to trust that the content answers the question, and to load it fast. What has changed is that there are now more automated readers, and some of them aren’t Google.

The four fundamentals

1. Always a meaningful H1 and H2

Every page has a single <h1> stating what it’s about, and the content is organized with <h2> (and <h3> if needed) like a book’s table of contents.

It sounds obvious, but I still find sites with the logo as <h1>, three <h1>s on the same page, or headings chosen by font size rather than hierarchy. For a model summarizing your page, headings are the map: if the map is wrong, so is the summary.

  h1  SEO in the age of AI
   ├─ h2  The four fundamentals
   │   ├─ h3  H1 and H2
   │   └─ h3  Titles and descriptions
   ├─ h2  The files machines read
   └─ h2  Measuring

2. Unique titles and descriptions

Every page needs its own <title> and its own meta description. Unique, not generated from a template that only swaps one word.

The title carries the most weight for the search engine to understand the page, and it’s the first thing a person reads in the results. The description doesn’t rank on its own, but it decides whether people click. Two pages with the same title tell Google they compete for the same thing, and usually both lose.

My rule of thumb: a title of about 60 characters with the important part first, and a description of about 155 that answers “why should I go in here?”.

3. “Long” content

I put it in quotes because it’s not about word count. A long text full of filler performs worse than a short, precise one. What works is coverage: answering the main question and the ones that come right after, with examples, data and first-hand experience.

With AI this matters more, not less. Anyone can generate a thousand generic words in seconds, so that no longer sets anyone apart. What still does is what a model can’t make up: your experience, your cases and your well-argued opinions. And those are exactly the pieces I see ranking within days.

4. Site performance

A slow site loses visitors before SEO even comes into play. Google measures it with Core Web Vitals:

Metric What it measures Good
LCP How long the main content takes to appear ≤ 2.5 s
INP How long the page takes to respond to an interaction ≤ 200 ms
CLS How much the layout “jumps” while loading ≤ 0.1

The causes are usually the same: huge images or images without dimensions, render-blocking fonts and JavaScript nobody needs. This site, for example, is static HTML on S3 and CloudFront: no server to respond and no JavaScript to hydrate, so performance comes almost for free.

The files machines read

Besides the pages, there are three small files that decide how search engines and agents discover and read you.

sitemap.xml

The list of URLs you want indexed. It guarantees nothing, but it greatly speeds up the discovery of new content, which is exactly what makes ranking within days possible.

What matters: that it’s generated automatically on publish, that it only includes canonical URLs returning 200, and that you submit it in Search Console. If you have several languages, add the alternates with hreflang.

robots.txt

It says what bots may crawl and where the sitemap is. Two classic mistakes: blocking CSS or JavaScript (Google needs to see the page like a user does) and a forgotten Disallow: / left over from staging.

Now it carries a new decision: what to do with AI crawlers. GPTBot, ClaudeBot, PerplexityBot, Google-Extended… Blocking them stops them from using your content, but also from citing you. I let them through: I’d rather an AI recommend my work than not know it exists. Note: Google-Extended controls use for training Gemini, not your appearance in search results.

User-agent: *
Allow: /

Sitemap: https://urimarti.com/sitemap.xml

llms.txt

A proposed standard (llmstxt.org): a Markdown file at the site root that summarizes who you are and links to the important pages, designed so a model can read it without fighting menus, banners and JavaScript.

I’ll be honest: there’s no evidence Google uses it for ranking. But it costs very little, some agents and tools do read it, and it forces a useful exercise: explaining your site in one page. On this site it’s generated from the content: /llms.txt, plus a full version at /llms-full.txt.

Measuring: Search Console and Analytics

Without measurement, all of the above is faith. I use two tools that answer different questions:

  • Google Search Console tells you what happens before the click: which queries you show up for, at what position, how many impressions and clicks you get, which pages aren’t indexed and why. It’s the first one I open when I publish something: URL inspection lets you request indexing and see within days whether the content takes off.
  • Google Analytics tells you what happens after the click: how long people stay, what they read next, whether they convert. A page with lots of clicks and zero interest isn’t a success.

Generative AI performance

The most interesting addition to Search Console is being able to see performance in Google’s generative AI features, such as AI Overviews and AI Mode: how often your content appears as a source in those answers and how many clicks reach you from them.

This changes how I read the data. There are queries where impressions go up and clicks go down, because the answer is already given on the results page. I used to read that as a title or description problem; now it often means AI is using your content to answer. The question is no longer just “what’s my position?” but also “am I cited when AI answers about my topic?”.

What I do with that data:

  1. Compare pages that appear in AI answers with those that don’t, and look for what they have in common (almost always: clear structure and direct answers).
  2. Watch pages with many impressions and few clicks, and add what a summary can’t give: examples, code, real cases.
  3. Cross it with Analytics to see whether visitors coming from AI stay longer or shorter than those from classic search.

What I’d do today

  1. Review the headings of the main templates: one <h1> per page and meaningful <h2>s.
  2. List duplicate titles and descriptions (Search Console and any crawler find them in minutes) and rewrite them.
  3. Expand the important pages with what only you know, not with filler.
  4. Measure Core Web Vitals and tackle images first.
  5. Check sitemap and robots.txt, decide what to do with AI bots, and publish an llms.txt.
  6. Open Search Console every week, including generative AI performance, instead of once a quarter.

SEO has never moved this fast. That’s good news if you get the basics right, because good content gets rewarded within days. And bad news if you don’t, because mistakes get punished within days too.

Prompt for your AI

Paste it into your coding assistant (Claude Code, Cursor, Lovable…) so it builds this with the decisions from the post.

Act as a technical SEO consultant and review this website. First audit it and give me a prioritized report; don't change anything until I approve it.

Page structure:
- Exactly one `<h1>` stating what the page is about, and `<h2>`/`<h3>` in logical order, with no skipped levels and no headings used just for styling.
- A unique `<title>` and meta description across the whole site: list duplicates, empty ones and ones that get truncated (title > ~60 characters, description > ~155).
- Correct canonical, `lang` on `<html>` and `hreflang` if there are several languages.

Content:
- Flag pages that should rank (services, categories, articles) but have little useful text, and suggest which real questions they fail to answer. I don't want filler: I want full coverage of the topic.
- Detect duplicate content or pages competing for the same query.

Performance:
- Review what affects LCP, INP and CLS: images without dimensions or modern formats, render-blocking fonts, unnecessary JavaScript, resources without caching.
- If you can, run Lighthouse on the main templates and give me the numbers.

Files for search engines and agents:
- `sitemap.xml`: it exists, it's referenced in `robots.txt`, it only lists canonical URLs that return 200, and it's regenerated automatically on publish.
- `robots.txt`: it doesn't block CSS, JS or sections that should be indexed, and explain what it does with AI crawlers (GPTBot, ClaudeBot, PerplexityBot, Google-Extended…) so I can decide.
- `llms.txt`: if missing, propose one generated from the real content (a site summary and links to key pages in Markdown).
- Structured data (JSON-LD) suited to each page type, validated.

Measurement:
- Check that Google Analytics 4 loads respecting cookie consent and that the site is verified in Search Console.

Deliver a table with each issue, the affected URL, the impact (high/medium/low) and the fix. Start with the highest impact for the least effort, and ask me anything you can't infer from the code.

← Blog