LLM SEO (also called LLMO or LLM optimization, from Large Language Model Optimization) is about getting ChatGPT, Claude, Perplexity or Google’s AI Mode to use your page as a source when they answer. It works in layers, and the order matters: first, the machine has to be able to read your page; second, that page has to be in the index each assistant pulls from. Only then does it matter whether you have the best answer to the exact question.
On 9 October 2026 an AI agent ran four tests with these assistants on my behalf, using real questions on the topic and logging the prompt, answer, sources and a screenshot. The tests were run in Spanish, from Spain, for the Spanish version of this guide (method below). Two widely repeated ideas came out badly dented: that assistants always search the web before answering, and that they only cite big publishers.
Test results:
- For definition questions such as “What is LLM SEO?” or “Are GEO and SEO the same thing?” (translated from Spanish), ChatGPT and Claude did not search the web: they answered from memory and cited nobody.
- Asked in Spanish, Perplexity and Google’s AI Mode mostly cite agency, software and hosting blogs of every size, from HubSpot or Hostinger to small agencies. ChatGPT leans on official documentation, and Claude on English-language technical blogs.
- Sources change a lot from one run to the next in Claude and in Google’s AI Mode, and barely at all in Perplexity.
- When they open a URL live, ChatGPT and Claude read the HTML the server delivers and do not execute JavaScript.
- This site received 14 visits from AI assistants in 90 days. The only one to this guide came from Gemini, and it landed on this English version. Perplexity didn’t open live any URL it didn’t already have in its index, from this site or any other.
Last reviewed: 9 October 2026.
Table of contents
What LLM SEO is, and how it differs from LLMO, GEO and AEO
LLMO, GEO (Generative Engine Optimization) and AEO (Answer Engine Optimization) name almost the same thing: SEO techniques for showing up in AI-generated answers. The difference is more label than substance. LLMO looks at the language model and GEO at the generative search engine, while AEO dates from the era of featured snippets and voice answers. Doing SEO for LLMs means adapting the fundamentals (crawling, useful content, authority) to a setting where the user reads a written answer instead of a list of links. That argument is developed in Is GEO just SEO?.
Google says as much in its guide to generative AI features in Search (updated July 2026): to appear in AI Overviews and AI Mode you don’t need new machine-readable files, new markup or to break your content into small pieces, because optimizing for generative AI search is “still SEO”.
If what you’re after is the broader framework for using language models in your day-to-day work (keyword research, audits, content production), the SEO with AI guide covers that side.
LLM SEO with vs without RAG: what changes
Without search, the model answers from memory and cites no sources. With RAG, it searches, retrieves pages and cites some of them, and that is where LLM SEO starts to look like classic SEO. You win each case differently.
Answers without search (the model works from memory)
The model answers with what it learned in training, frozen at a cutoff date. Since it doesn’t consult the web, there’s nothing to cite. To show up here, your brand or your explanation had to be in the sources the model read before that date, and repeated there. You have little control over that, and any payoff is slow.
In the tests for this guide, ChatGPT didn’t search on 3 of the 10 questions (1, 6 and 9) and Claude didn’t on 5 of 10 (1, 2, 6, 8 and 9). Most were conceptual, although Claude also skipped search on a “how do I measure” question. For that kind of question, what the model already knows counts for more than where you rank today.
Answers with search (RAG)
The assistant runs a search, retrieves a handful of pages and writes the answer from them, citing some. This is called RAG (Retrieval-Augmented Generation). This is how each assistant behaved in this guide’s tests:
| Assistant | Searched the web (test 1, 10 questions) | Opening a new, unindexed URL live (test 3) |
|---|---|---|
| ChatGPT | 7 of 10 | Read the HTML only, no JavaScript |
| Claude | 5 of 10 | Read the HTML only, no JavaScript |
| Perplexity | 10 of 10 | Couldn’t open the test page (its live fetch failed on other domains too; see test 4) |
| Google AI Mode | 10 of 10 | Didn’t read the unindexed URL |
| Gemini | Not included | Said it can’t open pages in real time |
Tests run in Spanish on 9 October 2026; details further down.
What it means for SEO
With search, classic SEO is back in charge: if the assistant’s search engine can’t find you, the model can’t cite you. OpenAI explains in its crawler documentation that sites which block OAI-SearchBot won’t be shown in ChatGPT’s search answers.
The difference lies in the final selection. The model reads several pages and keeps fragments, so ranking gets you onto the shortlist, and the citation depends on your page holding a clear, verifiable answer. That is why optimizing for LLMs looks more like writing good answers than chasing a position.
LLM SEO tests in ChatGPT, Claude, Perplexity and AI Mode (October 2026)
Method
- Date: 9 October 2026, from a home internet connection in Spain.
- Language: every prompt was written in Spanish, because the tests were designed for the Spanish version of this guide. That shapes the results: Perplexity cited mostly Spanish-language sites, and the same questions asked in English could well return different sources.
- Assistants: ChatGPT (logged out, temporary chat, default mode); Claude (my account, incognito mode, the interface’s default model); Perplexity (logged out for six questions and, once it blocked anonymous use, my Pro account in incognito mode); Google’s AI Mode (logged out, non-essential cookies rejected). Gemini (my account, temporary chat) was used only in the JavaScript test.
- Logging: for each query we saved the exact prompt, whether the assistant searched the web, the sources it showed, the text of the answer and a screenshot. That adds up to 77 recorded responses, 69 of them valid (the other 8 were Perplexity blocking logged-out use).
- Execution: the queries were sent by an AI agent for SEO tasks (Claude Code) following a fixed script, without editing the questions. That way nobody rephrases on the fly, and the exact same run can be repeated in a few months.
These were the ten questions, translated, with the original Spanish prompt in italics:
- What is LLM SEO? (¿Qué es el SEO para LLM?)
- What is LLMO and how does it differ from traditional SEO? (¿Qué es LLMO y en qué se diferencia del SEO tradicional?)
- How do I get ChatGPT to cite my website? (¿Cómo consigo que ChatGPT cite mi web?)
- How do I appear in Perplexity’s answers? (¿Cómo aparecer en las respuestas de Perplexity?)
- Is the llms.txt file any use? (¿Sirve de algo el archivo llms.txt?)
- Are GEO and SEO the same thing? (¿GEO y SEO son lo mismo?)
- Do AI crawlers execute JavaScript? (¿Los rastreadores de IA ejecutan JavaScript?)
- How do I measure whether my brand appears in ChatGPT? (¿Cómo medir si mi marca aparece en ChatGPT?)
- What factors make an AI cite a web page? (¿Qué factores hacen que una IA cite una página web?)
- Best Spanish-language guides on SEO for artificial intelligence (Mejores guías en español sobre SEO para inteligencia artificial)
Test 1: who do the assistants cite?
| Assistant | Searched the web | Sources per answer (average) | Type of sources cited |
|---|---|---|---|
| ChatGPT | 7 of 10 | 2 | Official documentation (Google Search Central, OpenAI, Perplexity), Ahrefs and Semrush |
| Claude | 5 of 10 | 2 | English-language technical blogs and studies (Vercel and MERJ, Ahrefs), niche tools |
| Perplexity | 10 of 10 | 10 | Spanish-language agency, software and hosting blogs (HubSpot, InboundCycle, BigSEO, Hostinger, Kinsta…) |
| Google AI Mode | 10 of 10 | 4 | Agencies, YouTube videos, LinkedIn and Reddit |
How it is counted: distinct domains per answer for ChatGPT, Claude and Perplexity (for Perplexity, the sources shown in its panel); source names for AI Mode, which doesn’t expose the URLs. Answers without search count as 0.
- In Perplexity, the cited URL usually spells out the topic. 90 of the 113 URLs Perplexity cited (80%) contained terms from the question in the address (“llms”, “perplexity”, “javascript”…). Big brands such as HubSpot, Hostinger or Kinsta sat next to small agencies such as llmo.es or jfdigital.es. Domain authority wasn’t measured, but size didn’t keep anyone out. AI Mode, which doesn’t show URLs, mixed agency blogs with YouTube videos, LinkedIn and Reddit.
- This site appeared once in the 60 valid answers from tests 1 and 2. It was in Perplexity, on question 10, which included this site’s SEO with AI guide in Spanish in its table of recommended Spanish-language guides. The Spanish version of this LLM SEO guide didn’t come up in any answer. That query was run on my account in incognito mode, which according to Perplexity doesn’t use your history, but some degree of personalization can’t be fully ruled out.
Test 2: do they answer the same way twice?
Question 3 (“How do I get ChatGPT to cite my website?”, asked in Spanish) was repeated five times in each assistant, always in a fresh conversation.
| Assistant | Searched | Distinct sources across 5 runs | Sources that appeared 3 or more times |
|---|---|---|---|
| ChatGPT | 5 of 5 | 4 | OpenAI’s documentation |
| Claude | 3 of 5 | 8 | None |
| Perplexity (Pro account, incognito) | 5 of 5 | 10 URLs (9 domains) | All 10, in all five runs (only the order changed) |
| Google AI Mode | 5 of 5 | 18 | Two (SEO Alive and Yotpo) |
For AI Mode we counted source names, and a video that appears both by title and by channel counts once.
ChatGPT’s stability comes with a catch: it is stable because, when you ask it about itself, it keeps sending you back to OpenAI’s documentation. Perplexity returned the same ten sources all five times, just in a different order. Claude and Google’s AI Mode are the opposite: they change almost all their sources from one run to the next, so a single query tells you very little about who “owns” a topic.
Test 3: do ChatGPT and Claude render JavaScript?
No. When they opened a URL live, ChatGPT and Claude read only the HTML the server delivers. They didn’t see anything JavaScript inserted afterwards, and they did see what sat inside a noscript tag.
To check this, we set up a test page on this domain, not indexed and left out of the sitemap, with random codes placed in different spots:
| Code | Where it was | Visible without running JavaScript? |
|---|---|---|
| 1 | Plain HTML text | Yes |
| 2 | Inside a noscript tag (only visible to clients that don’t run JavaScript) | Yes |
| 3 | Inserted by JavaScript on load | No |
| 4 | Inserted by JavaScript after 3 seconds | No |
| 5 | Inserted by JavaScript after fetching a separate file from the server | No |
| Unnumbered | In the structured data (JSON-LD) | Yes, in the source code |
The JavaScript codes weren’t written out in the source code, so nobody could “read” them without running the script. A normal browser showed codes 1, 3, 4 and 5. Every assistant got the same request: open the URL and copy, word for word, every code it found.
| Assistant | What it returned |
|---|---|
| ChatGPT | Opened the page and copied codes 1 and 2. None of the JavaScript ones |
| Claude | Opened the page, copied codes 1 and 2 and warned that its tool downloads the HTML but doesn’t execute JavaScript |
| Perplexity | Couldn’t open the page (three attempts, logged in and out) |
| Gemini | Said it can’t open pages in real time, especially ones that aren’t indexed |
| Google AI Mode | Replied that no answer was available for the search (Spanish interface message, paraphrased) |
Neither returned the code hidden in the JSON-LD; most likely their reading tool discards scripts, as Claude itself pointed out. Gemini and AI Mode didn’t read a new URL that wasn’t in their index. Perplexity’s failure says nothing about JavaScript or indexing (see test 4). And one limit of the test: it measures live reading, not whether each assistant’s search index stores already-rendered content.
This matches the Vercel and MERJ study (December 2024) of real crawler traffic: the crawlers of OpenAI, Anthropic, Meta, ByteDance and Perplexity don’t render JavaScript, even though they sometimes download the .js files. Google is different: AI Overviews and AI Mode come from its index, whose crawler does render JavaScript, and Gemini uses Googlebot’s infrastructure.
What to do about it. If your important content depends on JavaScript to appear (a React, Vue or Angular SPA without server-side rendering, a pricing block loaded later, FAQs injected by a script), assistants that read pages live won’t see it. The fixes are the usual ones in technical SEO:
- SSR (Server-Side Rendering): the server delivers the page already assembled.
- SSG (Static Site Generation): pages are generated as HTML at publish time.
- ISR (Incremental Static Regeneration): static pages that are regenerated when they change.
You don’t need tools to check your own site: disable JavaScript in your browser, or view the page source (not the inspector), and search for your key text. If it isn’t there, ChatGPT and Claude won’t see it either when they open the page.
Test 4: what this site’s own data says
The previous tests look at the assistants from the outside. This one looks from the inside, using danielpajuelo.com’s data:
- Google Analytics 4, 90 days (11 July to 8 October 2026): 14 visits in the AI-assistant channel out of 959 in total (1.5%). 13 came from ChatGPT and 1 from Gemini. Eight of the ChatGPT visits landed on the Spanish version of the About page: people asking about the person, not about a topic. The Spanish version of this guide got none; the single Gemini visit landed on this English guide.
- Ahrefs: records 8 citations of the domain in AI answers, spread over 4 pages, 7 of them in Perplexity and 1 in ChatGPT. Zero in AI Overviews, AI Mode, Gemini and Copilot.
- Perplexity didn’t read this site, or any other, live. It couldn’t open the test page or an indexed page on the site. The server, the security plugin and the hosting CDN were checked, and there was no block. What settled it was adding a parameter to the URL (
?v=20261009) so it wouldn’t match anything in Perplexity’s index: it then failed in exactly the same way with a static blog on another domain. And when it says it “could open” a page, it may be returning the copy in its index: with this site’s homepage it copied a headline that no longer exists. Even so, Perplexity cites pages on the site, because it answers from its index.
Before optimizing content for AI, check that the assistants can get in.
How the focus of SEO shifts when the destination is an LLM
Instead of a click on a results page, the user reads an answer that’s already written. That changes six things:
- Visibility. In classic SEO the goal is to be in the top 10 to win clicks. In LLM SEO it is to be among the sources the model uses or cites.
- Clicks vs direct answers. Users can get their answer without leaving the chat. When there is a link, the traffic that arrives is small (on this site, 14 visits from assistants in 90 days), so brand mentions deserve tracking too.
- Keywords vs intent. Models understand synonyms and context. Covering the topic well, with definitions and related questions, matters more than repeating the keyword.
- Links vs mentions. Brand mentions in sources the assistant consults count too, even without a link (see working on your presence outside your own site).
- Structured data. It still helps search engines, but Google points out that it isn’t a requirement for its AI features.
- Freshness. If the topic changes, show a visible review date and update it whenever you review the page: that is what lets readers, human or model, tell whether a figure still holds.
Aleyda Solis summed up the differences and overlaps between the two ways of searching in this chart, which compares user behavior, optimization areas and metrics. Her chart shows a large overlap; the biggest difference is in how users phrase their searches.

Factors that decide whether you get cited (with and without RAG)
No assistant publishes its algorithm. These are the factors that show up both in the official documentation and in what the tests observed:
- Access. If the assistant’s crawler is blocked in robots.txt or by a firewall, the assistant has nothing to read. And if the content only exists after JavaScript runs, assistants that read the page live (ChatGPT, Claude) can’t see it either.
- Index. Each assistant pulls from an index: Google’s for AI Overviews and AI Mode; Bing’s for Copilot; their own crawlers’ and search providers’ indexes for ChatGPT and Perplexity. Only ChatGPT and Claude, which open URLs live, read the unindexed test page.
- An answer to the exact question. The page that deals precisely with what is being asked has a head start, as the URLs Perplexity cited in test 1 suggest.
- Verifiable data and sources. A figure with its source is easier to cite than an opinion. In test 1, Claude and ChatGPT drew on studies with numbers (Vercel and MERJ, Ahrefs) and on official documentation.
- Authority and brand presence. This weighs most in answers without search, which depend on what the model read during training.
LLM SEO strategies for answers with and without RAG
1. Open the door to the right crawlers
There are two families of crawlers, and they do different jobs. Training crawlers (OpenAI’s GPTBot, Anthropic’s ClaudeBot, Google-Extended) decide whether your content is used to train models. Search and fetch crawlers (OAI-SearchBot and ChatGPT-User, Claude-SearchBot and Claude-User, PerplexityBot and Perplexity-User) decide whether you can appear in their answers. Blocking GPTBot or Google-Extended doesn’t take you out of ChatGPT search or Google Search; blocking OAI-SearchBot or PerplexityBot does.
Then check that your hosting firewall or security plugin isn’t stopping the search crawlers. If you test it by asking an assistant to open your page, add a parameter to the URL and repeat with a page on another domain: an “I couldn’t open it” may be down to the assistant, and a “yes” may come from its index (test 4). Repeat this guide’s JavaScript test on your key pages.
2. Split questions by type
On definition questions, where ChatGPT and Claude often don’t search, what counts is being well explained in sources the model already knows (Wikipedia, documentation, industry media, forums). On “how do I”, “which tool” or “X or Y” questions they usually search, and then what counts is having the page that answers that question.
3. Write one page per important question, with the answer at the top
Research the questions your customers would ask an assistant and give each one a section or a page, with the question in the heading and in the URL and the answer in the first two sentences. Use numbered lists for processes and tables for comparisons. It’s reasonable to assume that a fragment the model can copy as-is has a better chance of ending up in the answer.
4. Bring data only you have
Your own tests, figures from your analytics, case studies with dates. That is what a model can’t get anywhere else, and it’s what this guide tries to do. If you want to measure how well a page aligns semantically with a query, you can compute its relevance with embeddings.
5. Work on your presence outside your own site
For questions where the assistant doesn’t search, and to get into the lists it does consult, you need others to mention you: industry comparisons, forums, interviews, collaborations, videos. For a small domain, that’s the main route into answers without search.
6. Don’t forget Bing
Copilot relies on Bing’s index. Add your site to Bing Webmaster Tools, submit the sitemap and use IndexNow so changes get indexed sooner.
Is llms.txt any use?
For showing up in assistants today, barely. Google says in its guide that you don’t need to create new machine-readable files to appear in its search. Ahrefs analyzed 137,210 domains in a study published in June 2026: 28% had an llms.txt (that’s an upper bound, because the sample is customers of its analytics tool), and 97% of those files didn’t receive a single request in a month. AI search bots hardly ask for it (1.1% of requests); it’s requested more by GPTBot, which crawls for training, and by coding agents such as Claude Code.
In test 1, ChatGPT rated its usefulness as “limited” and Claude, drawing on that study, concluded that as a visibility tool it “barely helps” (both answers were in Spanish; translated here). This site has had a curated llms.txt since June 2026, and there’s no data on whether anyone reads it. It’s cheap to maintain, but it won’t move your visibility; the strategies above are a better use of your time.
How to measure LLM visibility (and why it’s hard)
There’s no Search Console for ChatGPT or Claude, so measuring whether assistants cite you means combining your own analytics, third-party tools such as Ahrefs, the AI reports from Bing and Google, and repeated tests with a fixed script. It’s also worth being wary of prompt trackers, which are more fragile than they look. Natzir Turrado explains why in his article (in Spanish) on tools for measuring AI visibility (January 2026), which gathers these data points:
- Models aren’t deterministic. A study by Wang and Wang (2025) found that GPT-4o repeated exactly the same answer only 3% of the time across 50 runs.
- “Position” is close to random. According to SparkToro, the odds of getting the same list of brands twice are under 1 in 100, and of getting it in the same order, under 1 in 1,000.
- Citations go stale fast. Profound measured that more than half of the cited domains change from one month to the next (59% in AI Overviews and 54% in ChatGPT).
- The API isn’t the interface. Surfer SEO found that ChatGPT cited about 7 sources on average via the API, compared with 16 in the web interface.
Test 2 confirms it on a small scale: Google’s AI Mode gave 18 different sources in 5 runs of the same question. There are two more problems:
- Assistant traffic is undercounted in analytics. Some visits from assistant apps can arrive without a referrer and fall into “Direct”. The 14 visits in test 4 are a floor, not the total.
- Being crawled isn’t being cited. A bot downloading your page only tells you it read it, not that it used it in an answer.
The first-party signals available today:
- Bing Webmaster Tools started testing an AI performance report with Copilot citations in January 2026, initially for a small number of sites.
- Google Search Console started showing a group of sites a generative AI report in June 2026. It only gives impressions, with no clicks or queries, and doesn’t separate AI Overviews from AI Mode.
- GA4 groups assistant referrals in the “AI Assistant” channel, useful as a floor.
- Your own tests with a fixed script, like the ones in this guide: same questions, several repetitions, same method every few months. To rerun the same prompts on a schedule through the assistants’ APIs, an n8n workflow with a Schedule Trigger and an HTTP Request node is enough, bearing in mind that API answers don’t match the chat interface; the n8n workflows for SEO guide shows that pattern with Search Console data.
They’re good for spotting gaps and trends, not for producing a score. Check whether you’re cited on your key topics, fix the structural reasons you aren’t (access, index, a clear answer, authority) and look again in a few months. For the strategy side, the GEO guide linked at the top explains why all of this is still SEO.
Frequently asked questions
What is LLM SEO?
It is the part of SEO that aims to get AI assistants to use your website as a source. It differs from classic SEO in what it aims for: a mention or a citation inside a written answer, rather than a blue link in a list. It is also called LLMO or LLM optimization (Large Language Model Optimization).
Is LLM SEO the same as GEO?
In practice, yes. LLMO, GEO and AEO all describe SEO for AI-generated answers: LLMO focuses on the model, GEO on the generative search engine, and AEO dates from the era of featured snippets. Google itself says that optimizing for its generative AI features is still SEO.
Do backlinks still matter for LLM SEO?
Yes, indirectly. Assistants that search mostly cite pages their search engine finds and ranks well, and links are still one of the signals behind those rankings. Brand mentions in sources the assistant consults also count, even without a link.
Do ChatGPT and Claude read content generated with JavaScript?
Not when they open a page live. In a test on 9 October 2026, both copied only the codes written in the HTML; the ones a script inserted did not appear. To make content visible to them, serve it already rendered from the server or as a static page.
Why does ChatGPT sometimes cite no sources at all?
Because it decides for itself whether to search the web. When the question is conceptual it tends to answer from what it learned in training, and without a search there are no links to show. It happened on 3 of the 10 questions tested.
Does blocking GPTBot remove me from ChatGPT?
No. GPTBot is the crawler OpenAI uses to train models; the one that feeds ChatGPT’s search answers is OAI-SearchBot. You can block the first and leave the second open. Google works in a similar way: Google-Extended does not affect your presence in Google Search.
How do I know whether an AI assistant cites my website?
Combine several signals: the AI Assistant channel in Google Analytics 4, the citations recorded by tools such as Ahrefs, the AI report in Bing Webmaster Tools and your own queries, repeated several times with the same questions. A one-off check is misleading, because each answer can bring different sources.
How much traffic do AI assistants send today?
Not much, at least to a small niche website. On danielpajuelo.com it was 14 visits in three months, about 1.5% of the total, almost all from ChatGPT. And that is a minimum: some of those visits arrive without a referrer and analytics counts them as direct traffic.
Sources
- Google Search Central, optimizing for generative AI features in Google Search, updated 10 July 2026.
- Google Search Central, Google’s common crawlers (Google-Extended), updated 14 July 2026.
- OpenAI, crawler documentation: OAI-SearchBot, GPTBot and ChatGPT-User.
- Anthropic, Anthropic’s crawlers: ClaudeBot, Claude-User and Claude-SearchBot.
- Perplexity, crawler documentation: PerplexityBot and Perplexity-User.
- Vercel and MERJ, “The rise of the AI crawler”, 17 December 2024.
- Ahrefs, study of 137,210 domains on llms.txt, 15 June 2026.
- Natzir Turrado, tools for measuring AI visibility (in Spanish), 29 January 2026.
- Search Engine Land, Bing Webmaster Tools AI performance report, and PPC Land, generative AI reports in Search Console (industry press).
- Aleyda Solis, SEO vs GEO, April 2025.
- Original tests run in Spanish on 9 October 2026 (69 valid answers from ChatGPT, Claude, Perplexity, Gemini and Google’s AI Mode), plus Google Analytics 4 and Ahrefs data for danielpajuelo.com.
Continue reading about SEO & AI

NAS for SEO: How I Turn a Synology Into a 24/7 SEO Server

How to Install n8n on a Synology NAS (Container Manager, Step by Step)

n8n for SEO: 6 Workflows I Run on My NAS (and the Data Limit That Breaks Them)

AI Agents for SEO: Real Use Cases and How to Implement Them

How to use AI for SEO: the practical guide

