GEO in practice means shaping a website so AI assistants such as ChatGPT, Perplexity and Google AI Overviews can easily lift passages as answers. In October 2026, VirtuoLab applied seven improvements to virtuolab.dev, from answer blocks to structured data and IndexNow. First, every key page got questions as headings and self-contained answers, and then the technical basis was built with Next.js. On the same 9 pages, we measured a median English citability score of 33.0 before and 69.7 after, out of 100. Across the whole site, the median for the 55 pages in English reached 71.4. This case study explains each step, the figures and the lesson for any business. VirtuoLab runs the same GEO approach for clients, so businesses get mentioned and recommended by AI assistants sooner and more often.
What is GEO, and how does VirtuoLab measure whether a page is citable?
GEO, short for generative engine optimisation, is the work of making a website easy to quote for AI assistants such as ChatGPT, Perplexity, Gemini and Copilot. VirtuoLab tracks progress with a citability score, a number from 0 to 100 which shows how easily an AI assistant can lift a passage from a page as an answer. The measurement looks at answer quality, self-containment, structure and the use of figures and sources, among other things. For the virtuolab.dev case study, we measured the same 9 pages in English and in Dutch: the home page, the services page, the about page, the GEO page, four blog articles and the VirtuoBI project page, an own demo. The baseline ran on 16 October 2026. The second measurement followed on 17 October 2026. English is the benchmark, because the measurement recognises English patterns best. Finally, VirtuoLab measured the whole site.
Which improvement points did the baseline reveal?
The baseline showed where the biggest gains lay: on 16 October 2026, the median English page score was 33.0 out of 100, and the Dutch median 33.2. We found 82 text blocks on the 9 pages in English, and not one block reached an A or a B, the two highest grades. None of the 82 blocks reached the optimal 134 to 167 words, and the median block length was 36 words. The technical audit added five improvement points which appear on many websites. First, a language redirect sent visitors to pages which did not exist, ending in a 404 error. Second, the structured data lacked company details which Google reads, such as the address and the KvK number. Third, the sitemap gave all 153 URLs the same date. Fourth, articles named the organisation as author instead of a person. Finally, security headers such as HSTS were missing.
Why does VirtuoLab write every answer as a self-contained block?
An answer block is a section with a question as heading and an answer of 134 to 167 words, in which the first sentence gives the answer. VirtuoLab rebuilt virtuolab.dev around such blocks, because AI assistants lift passages, not whole pages. A passage which opens with the answer and names the subject can stand alone in ChatGPT, Perplexity or Google AI Overviews. For example, a block about web app costs opens with the price range, not with a story about VirtuoLab. Every block repeats names such as VirtuoLab, Next.js or Papendrecht instead of words like it or they, so a quoted passage still makes sense. VirtuoLab rewrote all 22 existing blog articles and added 6 new articles in October 2026. After the rewrite, we measured a median block length of 142 words. For any business, the lesson is simple: write down the questions customers ask, give each question a heading, and answer in the first sentence.
Why does virtuolab.dev use one fixed company description and one entity?
An entity is the single, unambiguous description of a business which search engines and AI assistants recognise across sources. VirtuoLab uses one fixed company description, word for word the same on the home page, on the about page and in the llms.txt. Since October 2026, the structured data on virtuolab.dev, written with Schema.org, holds one Organization, with the address in Papendrecht and KvK number 94892083. Additionally, the founder has an author page and appears as a Person and as the author of every article, with the date of the last change. Organization structured data, according to Google Search Central, helps Google understand administrative details and tell one organisation apart from others. In practice, one name, one address and one description make every claim easy to verify. For a business, the lesson is to choose one description and repeat the description word for word.
Why does every service get a page of its own?
A service page is a page which answers every question about one service at one fixed address. VirtuoLab added 7 pages of this kind to virtuolab.dev in October 2026. The pages cover apps, web apps, SaaS platforms, API integrations, WordPress plugins, Microsoft Power BI dashboards and websites. Additionally, a pricing page brings every indicative price and lead time together in one table. A service area page states where VirtuoLab works: on location in the Drechtsteden and Rotterdam, and online across the Netherlands, Belgium and Germany. A question about dashboards with Power BI near Rotterdam needs a page which answers precisely the question asked. For example, the web app page gives an indication of €5,000 to €50,000 and a lead time of 3 to 6 weeks for a simple web app. For a business, the lesson is one page per service, with real prices where possible.
How do the language versions point to the right translated page?
Language versions are the Dutch, English and German editions of a page, and on virtuolab.dev every edition now points to the matching translated page. Each language has translated addresses, such as /diensten, /en/services and /de/leistungen. First, the website shows a language suggestion instead of redirecting visitors on browser language. Second, the sitemap lists all three language versions for every page. We found a 404 error 0 times in a check of 2,304 combinations on 17 October 2026. The check covered all 192 URLs in the sitemap, 3 browser languages and 4 language choices. According to Google Search Central, each language version must list itself as well as all other language versions, or Google ignores the tags. In practice, an AI assistant answering in German can then cite the German page. The lesson for a business: test every language switch automatically.
How do AI crawlers get access and a summary of the site?
AI crawlers are the bots which AI assistants use to read web pages, and the VirtuoLab robots.txt names the bots explicitly and grants access. First, the list includes OAI-SearchBot and GPTBot from OpenAI, as well as PerplexityBot, ClaudeBot, Google-Extended and Applebot-Extended. The admin area and the API stay closed to every crawler. According to OpenAI, sites which block OAI-SearchBot will not be shown in ChatGPT search answers. Second, VirtuoLab publishes an llms.txt, a Markdown summary for AI agents which Jeremy Howard proposed in September 2024. A fuller version sits beside the summary, and the llms.txt covers services, prices and key pages in English, Dutch and German. Finally, VirtuoLab submitted all 192 pages through IndexNow, a simple ping which tells search engines such as Microsoft Bing which pages changed. In practice, the first check for any business is the robots.txt.
Which technical basis supports GEO?
The technical basis for GEO is a set of signals which tell crawlers what changed: an accurate sitemap and modern security headers. The sitemap on virtuolab.dev has taken every date from the version history of the code since October 2026. As a result, each of the 192 pages carries the date of the real last change. Google uses the lastmod value, according to Google Search Central, only when the value is consistently and verifiably accurate. A sitemap with one date for every page therefore tells a crawler nothing. Additionally, virtuolab.dev sends HSTS, a Content-Security-Policy and a Permissions-Policy with every response. In practice, VirtuoLab builds the improvements with Next.js straight into the code, not into a plugin, so the improvements survive every update. For a business, the lesson is to ask the developer which dates the sitemap shows and which security headers the server sends.
Why does VirtuoLab publish only verifiable facts?
VirtuoLab publishes only verifiable facts, because an AI assistant can only safely repeat a claim which a reader can check. Research points the same way. In the GEO paper from KDD 2024, citations, quotations and statistics raised the visibility of a source in AI answers by 30% to 40%. First, every figure on virtuolab.dev comes from a primary source or from an own measurement, such as the scores we measured for the case study in October 2026. Second, every external claim names the source, for example Google Search Central or OpenAI, with a link in the source list. Third, the projects on virtuolab.dev are clearly labelled as own demos by VirtuoLab, not as client work. The company details are equally concrete: VirtuoLab is a software agency in Papendrecht, registered with the Dutch Chamber of Commerce under number 94892083. For a business, the lesson is to name a source or an own measurement for every claim, and to leave out claims without a source.
What did the improvements deliver?
The result is a median English citability score which more than doubled on the same 9 pages, from 33.0 on 16 October 2026 to 69.7 a day later. We measured the Dutch median at 62.8, up from 33.2, and every page improved in both languages. On the block level, 89 of the 105 English blocks earn an A or a B, against 0 of 82 at the baseline. Additionally, 71 blocks reach the optimal 134 to 167 words, up from none. The median block length grew from 36 to 142 words. The services page made the biggest jump, from 24.3 to 71.0, and the web app cost article reached 75.3. Across the whole site, the median for the 55 pages in English reached 71.4. In practice, the lowest scores belong to utility pages such as contact and privacy, which answer no question.
How does VirtuoLab run GEO for clients?
The GEO route for clients is the same five-step route which improved virtuolab.dev. Step 1 is a baseline, like the virtuolab.dev baseline of 16 October 2026: a citability measurement of the key pages plus a technical audit. Step 2 lays the technical basis, from robots.txt and sitemap to language versions, security headers, llms.txt and a ping through IndexNow. Step 3 gives the key pages answer blocks, with a question as heading and the answer in the first sentence. Step 4 builds one entity, with a fixed description, a named author and full structured data. Step 5 is a monthly measurement. VirtuoLab helps businesses get mentioned and recommended sooner and more often by AI assistants such as ChatGPT, Perplexity, Gemini from Google and Copilot from Microsoft. VirtuoLab measures progress monthly with a fixed question set, and mentions on other websites count as well. VirtuoLab tracks its own website with the same question set. In practice, VirtuoLab carries out every step in-house, at a fixed price.
Frequently asked questions
How quickly do you see results from GEO?
GEO delivers results in two stages, and the first stage is visible as soon as the improved pages go live. At virtuolab.dev, the second measurement followed one day after the baseline, on 17 October 2026. We measured a median English citability score of 69.7 on the same 9 pages, up from 33.0 at the baseline. The second stage is about mentions and recommendations in AI assistants such as ChatGPT, Perplexity, Gemini and Copilot. Mentions build up as crawlers read the new pages and as other websites mention the business. Two steps help crawlers find the new pages sooner. First, a ping through IndexNow tells Microsoft Bing straight away which pages changed. Second, an open robots.txt lets OAI-SearchBot from OpenAI read the new pages, and a robots.txt change reaches the systems behind ChatGPT search in about 24 hours, according to OpenAI. In practice, the monthly question set makes the second stage visible, month by month.
Do I have to rewrite my whole website for GEO?
No, GEO is a focused job which starts with the pages answering customer questions, not with every page. At virtuolab.dev, the baseline in October 2026 covered 9 pages: the home page, the services page, the about page, the GEO page, four blog articles and one project page. Utility pages such as contact, privacy and terms answer no question and can stay as they are. Additionally, a robots.txt, a sitemap and structured data for Google cover the whole site at once, without new text. Across the whole site, we measured a median of 71.4 for the 55 pages in English. In practice, step 1 is a baseline of the key pages, and only those pages get new text. Much of the knowledge already sits in emails and quotes, and VirtuoLab turns the knowledge into answer blocks of 134 to 167 words.
What is the difference between these improvements and regular SEO?
GEO is an extension of SEO, not a replacement, and most of the improvements serve both. AI Overviews and AI Mode have no additional technical requirements, according to Google Search Central. A page only needs to be indexed and eligible to appear in Google Search with a snippet. Regular SEO aims for a high position in a list of links, while GEO aims for passages which ChatGPT or Perplexity can lift as an answer. The quoted passage matters more and more. In 2025, Pew Research Center reported that Google users with an AI summary clicked a regular result in 8% of visits, against 15% without one. First, a correct sitemap and working language versions serve both goals, and step 2 of the client route covers both. Second, answer blocks, the llms.txt and one clear entity are specific GEO work. In practice, VirtuoLab combines both in one project, as on virtuolab.dev, a site built with Next.js.