Every version states what moved and why, almost always with the figure that prompted it up front. Old scores are never recalculated: a report describes how that website stood on the day it was measured, under that day’s criteria, which is why each one carries its version printed on it.
0.15.0 · 2026-09-05
The engine confused two things that are not alike: not having been able to read a file, and having read it and found nothing there. A 404 is a fact you can reason from —if there is no robots.txt, nobody is being blocked— and there the check must decide. A 401, a 403 or a 429 say the opposite: the file exists and we are not allowed to see it. That case sat next to the 404 because of a comparison against two hundred that swallowed the difference, and it produced both lies at once. A site behind a web application firewall was told it has no readable robots.txt, that its sitemap is not declared, that it publishes no llms.txt and that it does not answer Markdown negotiation: four claims about files that exist and work. And at the same time it was passed on its robots.txt not blocking any answer crawler, which is a pass on a file that was never read. In the calibration sample this happens to fifty of two hundred and ninety-nine sites, one in six. From this version those three codes leave the five affected checks inconclusive, and the block is still reported by the check that exists for it. The redirect chain title is fixed too: it always talked about hops, so a blocked site read «reaching the home page takes 0 redirect hops», the optimum presented as a defect. The branches that are not about hops —the response status and a destination ending on http— now carry their own wording. Previous scores are not recalculated.
0.14.0 · 2026-08-19
Two checks stop penalising Chinese, Japanese and Korean for writing more densely. The first: headings written as questions went unrecognised, because those languages close with «?», the full-width mark, and only the Latin keyboard one was being looked for. On our own Chinese methodology page they scored zero out of forty-one, with every section heading written as a question. The second: the length bands for the title and the description are calibrated on the Latin alphabet, thirty to sixty characters and one hundred and ten to one hundred and sixty, and they exist because search engines truncate by width. A Chinese character takes twice the space of a Latin letter and says considerably more: the title of that same page is twenty-two characters and conveys what fifty do in Spanish, so it failed for saying it in less room. In those scripts the bands are halved. Outside them nothing changes at all, and the calibration across the sample of 299 European and American domains was run precisely to confirm that. Previous scores are not recalculated.
0.13.0 · 2026-08-18
Two fixes to the choice of inner page, on which five checks depend at once. The first: «www.example.com» and «example.com» are the same site, and the engine treated them as separate origins. On ruanyifeng.com, a Chinese technical blog, the eighteen article links on its own index point at «http://www.ruanyifeng.com/blog/...»; scanning the domain without «www» threw all eighteen away, left no article among the candidates, and the content checks ended up measuring a list of headlines. The second: where the chosen page turns out to be a section index, the engine now descends once to its first article. One hop and not several, because that download is sequential and comes out of the same time budget as the rest of the scan; if the hop brings back nothing better, the index is kept, because measuring something worse beats measuring nothing. The choice stays deterministic: the same site always yields the same page, or the score would stop being reproducible. Still unresolved is the case where the chosen page is in a different language from the rest of the site. Previous scores are not recalculated.
0.12.0 · 2026-08-18
The check for paragraphs that stand outside their context was failing almost every Spanish-language website. It detected whether a paragraph depends on the previous one by looking for pronouns and deictics, but the list included «la», «los» and «las», which are articles rather than deictics, and it searched anywhere in the first sentence instead of at its start. With that, «Los umbrales se calibraron midiendo una muestra propia» came out marked as dependent. A deictic in mid-sentence usually has its antecedent inside that same sentence, so it is bound; the one that leaves a paragraph hanging is the one that opens it. Only the opening now counts, and only unambiguously pronominal forms: «esto», «eso», «ello», «it», «lo anterior» and explicit anaphors. «Este» and «this» are left out on purpose, because they work as pronoun and as determiner alike and cannot be told apart without morphological analysis: in case of doubt, nothing is penalised, which is this layer’s stated rule. The published fix already described this behaviour; the code did not. Previous scores are not recalculated, so this check’s figure in the calibration study reflects the old criterion.
0.11.0 · 2026-08-18
The engine now counts words properly in Chinese, Japanese and Korean. Those languages do not separate words with spaces, and the engine was counting by splitting on whitespace: across five real articles from a Chinese technical blog, of 1,579 paragraphs exactly 2 passed the twenty-word filter. Counted properly, 560. That left any Chinese, Japanese or Korean website with nothing to measure in the paragraphs that stand outside their context and in the data in the content, and with direct answers failing even where they answered the heading perfectly. The module’s own header stated that the language bias always runs the same way, never penalising in case of doubt, and there it ran exactly the other way. Counting now uses the platform word segmenter, which genuinely segments those languages, rather than an invented conversion constant. Outside those scripts the count is identical to before, character for character: the score of a website in Spanish, English, German, French, Italian or Portuguese does not move by a single point, and a test checks that against every published string on the site. Previous scores are not recalculated.
0.10.0 · 2026-08-06
Five new checks and a change in which page gets measured. Two of the five come from the only thing rigorously measured in this field: the original study on generative engine optimization found that citing sources, supplying data and adding quotations can raise visibility in answers by up to 40%. Hence links to external sources, counting how many outside domains the content links to, and data in the content, looking at what share of paragraphs carries a concrete figure. The other three come from published recommendations: lists and tables, which are fragments that arrive pre-chunked; the publication and revision date declared in structured data; and authorship, which carries little weight on purpose because its evidence comes from observed cases rather than measurement. The choice of inner page also changes: an article now takes precedence over an institutional page. That came from finding that on Xataka we were measuring the team page, made of biographies, where the content checks scored zero across sixty-nine paragraphs. Xataka was not writing badly; we were looking at the wrong page. Scoring checks go from 28 to 33. Previous scores are not recalculated.
0.9.0 · 2026-08-06
The description-consistency check no longer compares the publisher's description against the page's. An Organization describes the publisher by schema.org definition, and at a company with several lines of business it need not resemble the page at all: comparing them forced a false description into one of the two, either the company described as if it were the product or the other way round. It is now compared against the description of the entity that states what the site offers — SoftwareApplication, Product, Service, Article and their kin — falling back to the publisher's only when there is none, which is the case of a company site with no product, where the company description genuinely is the page description. The fix is not an amnesty: a product description that contradicts the page still fails, and so do two meta descriptions that diverge from each other, which was the case the check already caught well. Previous scores are not recalculated.
0.8.0 · 2026-08-05
One new check: whether headings are written as questions. It was already checked that each heading was followed by a 40 to 80 word answer standing on its own, but not that the heading itself looked like something a person would type. The unit these retrieval systems prefer is the complete pair — a recognisable question above, a self-contained answer below — and only half of that pair was being measured. It is measured on the same inner page as direct answers, because measuring them on different pages would describe two places and no pair at all. A heading counts as a question when it carries a question mark and also when it opens with an accented interrogative, because in Spanish the accent is precisely what separates the interrogative from the relative. Thresholds are a starting point and will be revised against the calibration sample. Scoring checks go from 27 to 28. Previous scores are not recalculated.
0.7.0 · 2026-08-04
Headings inside the footer, the navigation and sidebars are no longer counted as content. Measuring a sample of real websites showed that 43% of headings lived inside <footer> or <nav> — 81% at HubSpot, 53% at Mailchimp — and every one of them was counted. An <h2>Services</h2> in a footer carries no paragraph beneath it because it should not, so its presence made any site with an ordinary footer fail the direct-answers check: only 5% passed, and the cause was not how people write but how we were counting. It affects direct answers, heading hierarchy and FAQ detection, and all three gain accuracy. The H1 in the header still counts: many sites place it there. Previous scores are not recalculated.
0.6.0 · 2026-08-04
First version calibrated against a large sample: 299 websites from Spain, the United Kingdom, the United States and the rest of Europe, spanning brands, services and mid-sized companies. Three changes come out of that data. The two structured-data checks are merged into one: the validity check passed 95% of those who reached it and did not apply to the remaining 26%, because JSON-LD is almost never written by hand and what a plugin generates is rarely broken; a single check now tells apart not having it, having it broken and having it right, at the same weight. Paragraphs that stand on their own are now measured on an inner page, as direct answers already were: the homepage did not have three twenty-word paragraphs in 78 of the 215 fully measured websites, and with no readable page carrying content the check now fails rather than staying silent. And the downloadable badge drops from 80 points to 70: at 80 it was reached by 6 of 215 websites, and a badge almost nobody can put on their site does not circulate. Scoring checks go from 28 to 27. Previous scores are not recalculated.
0.5.0 · 2026-08-04
Two checks stop declaring themselves unable to decide when in fact they can. Having no question-and-answer block marked up as FAQPage now FAILS rather than not applying: it is what generative models quote most, so a site without one is worse prepared to be cited than a site with one, and redistributing its weight across the others asserted the opposite. Having the questions on screen without marking them up scores partial, because that is a ten-minute fix and writing them from scratch is not. And a site with no reachable sitemap now fails the freshness check instead of coming back inconclusive — including the case of a server answering /sitemap.xml with 200 and the homepage in HTML, which is what single-page frameworks do. Inconclusive is kept only where it is genuinely unknown: a network failure, or a server that exists and will not let us look. Across a sample of 24 websites these two did not score in 67% and 42% of cases. The draft suffix moves out of the version identifier and into the text, translated per language. Previous scores are not recalculated.
0.4.0 · 2026-08-04
Direct answers are measured on an inner content page, not on the homepage. A calibration across 24 real websites found that all 24 failed it, Stripe and Cloudflare included: the homepage of a commercial site is a shop window, and the paragraphs following its headings run between five and seventeen words, because they are written to be taken in at a glance rather than to be quoted. A check that everyone fails distinguishes nobody, however true it may be. An inner page is now chosen from the sitemap or the homepage links — always the same one for a given site, so the score stays reproducible — and measured there; if the site has no readable inner page the homepage is used instead, and the report states which one was measured. Previous scores are not recalculated.
0.3.0 · 2026-08-03
Checks that depend on robots.txt no longer declare themselves unable to decide when the file does not exist. A site having no robots.txt is not ignorance, it is a fact with consequences: if there is no file, nobody is blocked, so the blocking check now PASSES and the declared-rules check now FAILS because there are none. Previously both were inconclusive alongside the informational training check, and those three alone pushed any site without a robots.txt towards the partial-report threshold, leaving it out of the statistics. Inconclusive is kept only when the file cannot be downloaded, where we genuinely do not know. Earlier scores are not recalculated.
0.2.0 · 2026-08-03
AI crawlers are split into two families. Blocking the training ones (GPTBot, ClaudeBot, CCBot, Google-Extended, Bytespider) no longer costs points: it is a legitimate decision about how your work is used and it does not stop a model citing you. Only blocking the answer crawlers (OAI-SearchBot, ChatGPT-User, Claude-SearchBot, Claude-User, PerplexityBot, Perplexity-User) is penalised, since those are the ones that fetch the page while answering. They used to be counted together, which failed as a critical error the most defensible policy available today. Earlier scores are not recalculated.
0.1.0 · 2026-08-02
First public version of the methodology. Thresholds are provisional and will be frozen in version 1.0, after calibration against a sample of 200 websites. Until then, scores may vary between scans.