BlogFindings
Meta description for AI search: 138 of 1,068 home pages served none, and 20 served no title either
Lantad asked the 1,419 hostnames in this repository's two committed corpus seed files for robots.txt on 19 October 2026 and read every permitted home page with no JavaScript executed. 1,068 answered HTTP 200 with HTML. 930 of those carried both a title and a meta description with something in it, 118 carried a title and no usable description, and 20 carried neither.
This post measures it. On 19 October 2026 Lantad asked all 1,419 hostnames in this repository's two committed corpus seed files for robots.txt, computed a root verdict for LantadBot with the scanner's own parser, and then requested one page per permitted host: the home page, with no browser involved and no JavaScript executed. 1,068 answered HTTP 200 with an HTML content type. The head of each of those was read for a title element and for a meta element named description, and the whole corpus was read a second time the same day to see which of the counts moved. The frame and the strata are the ones described on the methodology page, and the result is narrower than the headline suggests, so the limits are stated where they bite rather than at the end.
In short
- A meta description for AI search is a fallback surface rather than an input: Google's snippet documentation, last updated 2026-04-20 UTC, states that snippets are primarily created from the page content itself and that the meta description is used only when it would describe the page better.
- 138 of the 1,068 home pages Lantad read on 19 October 2026 served no description a machine could read: 117 carried no description element at all and 21 carried one whose content attribute was empty.
- 20 of those 1,068 pages carried no title either, and all 20 answered HTTP 200 with a bot challenge, a redirect stub, a browser notice or a script-only shell rather than a home page.
- 725 of the 802 pages that carried both a meta description and an og:description used the same sentence in both, so the search fallback and the social preview on those sites are one string with two names.
- Across the 930 descriptions read, the median length was 150 characters, 19 ran past 320 and 15 were 30 characters or shorter, with bnf.fr serving a single full stop.
| What the head carried | Of the 1,068 | What an engine has to work with |
|---|---|---|
| A title and a description with text in it | 930 | Both fallback fields present |
| A title, and no description a machine could read | 118 | The title and the URL only |
| Neither a title nor a description | 20 | The URL only |
| A description but no title | 0 | Did not occur once in the corpus |
| No description element at all | 117 | The element was never written |
| A description element with an empty content attribute | 21 | The field exists and was never filled |
Does a meta description matter for AI search?
The honest answer is that it matters in one specific place, and the vendors have said where. Google's own page on controlling snippets in search results, which carries a last updated date of 2026-04-20 UTC, states that snippets are primarily created from the page content itself, and that Google sometimes uses the meta description element if it might give users a more accurate description of the page than content taken directly from the page. That is a conditional, and it is the whole of what Google promises. The same page also says there is no limit on how long a meta description can be, and that the snippet is truncated as needed, typically to fit the device width. Both of those sentences are worth having in front of you before anybody quotes a character count at you as a rule.
Microsoft wrote the sentence that makes this a question about AI rather than a question about blue links. In a Bing webmaster post dated 22 September 2023, Microsoft set out two robots directives for chat answers: content tagged NOCACHE may be included in chat answers with only the URL, title and snippet displayed, and content tagged NOARCHIVE is not included in chat answers and is not linked from them. The post also says content carrying either tag still appears in ordinary search results. Read that against the Google sentence and the shape of the thing is clear. There is a tier of AI answer where your page is named but not quoted, and in that tier a title and a snippet are the entire representation of your site. We have written before about how Bing names the grounding query it ran while Google names none, and this is the same asymmetry seen from the publisher's side.
The element itself is not complicated and it is worth being precise about what it is. MDN's reference for the meta name attribute describes description as a short and accurate summary of the content of the page, usually referred to as a meta description, and notes that search engines like Google use the metadata to adjust how a page appears in results. It is document-level metadata, it lives in the head, and its value is the content attribute. Neither vendor page read for this post describes it as a ranking input, and neither is quoted here as doing so. What it is, for a page an engine declines to quote, is the only sentence about that page that the engine did not write itself.
That is why this sits inside AI visibility rather than beside it. A site can be perfectly crawlable, score well on the things this scanner grades, and still hand an answer engine nothing to print in the one state where the engine has decided not to reproduce the page. The practical question for a reader is narrow and answerable: on the page every crawler reaches first, is there a sentence there at all. The counts below are an attempt to answer that at the scale of a committed sampling frame rather than at the scale of one site, and the companion guide on getting cited in Google AI Overviews covers the directives that govern the same surface from the other direction.
Flow: Page fetched by an engine (default) to Engine quotes the page content; Page fetched by an engine (tagged) to NOCACHE: URL, title and snippet only; NOCACHE: URL, title and snippet only to Snippet may come from the meta description; Engine quotes the page content (sometimes) to Snippet may come from the meta description; Snippet may come from the meta description (if absent) to No title and no description: the URL alone.
How 1,419 hostnames became 1,068 readable home pages
The frame is committed rather than assembled for this post, which is the only reason the proportions below mean anything. worker/seeds/corpus-seeds-industry.json holds 1,027 hostnames in eight industry strata and worker/seeds/corpus-seeds-platform.json holds 392 in ten platform strata, 1,419 in total. Each hostname was asked once for /robots.txt as LantadBot/1.0, with redirects followed and a twenty second timeout, and every verdict was computed with this scanner's own parseRobotsTxt and evaluateRobots in core/src/robots.ts rather than inferred.
31 of the 1,419 robots.txt requests failed in the client before any status arrived. Of the rest, 1,109 answered a 2xx and parsed, 224 answered a 4xx, and 55 answered a 5xx. The two non-200 cases are not symmetric and the asymmetry is deliberate: a 4xx is treated as imposing no restrictions, which is what RFC 9309 says, and a 5xx is treated as a site-wide disallow, because that is what crawlers commonly do with a failing file. We set out why those two are opposites in a 404 on robots.txt allows every crawler and a 503 blocks them all. Thirteen of the parsed files disallowed LantadBot at the root by an actual rule. So 68 hostnames, the 55 plus the 13, were not asked for a page at all.
That left 1,320 home page requests. 1,068 answered HTTP 200 with an HTML content type and are the denominator for everything that follows. 218 answered HTTP 403, which is an edge or CDN decision rather than a robots.txt one and is counted here as a page nobody measured rather than as a page with no description. Ten answered 202 and eight answered 429. Five answered 404 at the apex, four answered 503, two answered 406, one answered 401, one answered 498, one answered 500, one answered 200 with a content type that was not HTML, and one failed in the client. The scale of the 403 group is itself a finding we have measured before and it has not moved much: see 103 of 1,089 sites serving an unknown bot and refusing GPTBot.
Reading the head is where a measurement like this usually goes wrong, so it is worth saying exactly how it was done. Comments, script, style, svg and template content were removed from the whole document before any element was matched, and the first remaining title element and every remaining meta element were then read. That choice is not cosmetic. An earlier pass of this run read only the span between the opening and closing head tags and returned 29 pages with no title. Reading the stripped document instead returned 20. Of the nine hostnames that left the count, seven were serving an entirely ordinary title that the span had missed, among them airtable.com, zappos.com, nubank.com.br and bl.uk; one, patagonia.com, was serving an interstitial titled "Hang Tight! Routing to checkout..."; and one, aliexpress.com, failed in the client on the run reported here and is not among the 1,068 at all.
Stripping svg content is the other half of the same care, and visa.com shows why. The first title element in its raw bytes is the string "pause", sitting inside an svg inside a button, where a title element is the graphic's accessible name rather than the document's. Its real title, further down the head, reads "Access payment solutions, security, and card benefits | Visa". A reader that takes the first title it finds would record the Visa home page as being called "pause". Being explicit about both of these is the point: a figure like 20 is only worth printing when the rule that produced it is stated clearly enough for somebody to disagree with it.
| Step | Count | What happened to the rest |
|---|---|---|
| Hostnames in the two committed seed files | 1,419 | 1,027 industry and 392 platform |
| robots.txt requests that failed in the client | 31 | No status arrived before the timeout |
| robots.txt answering 2xx and parsing | 1,109 | 224 answered 4xx, 55 answered 5xx |
| Disallowed LantadBot at the root by a rule | 13 | Plus 55 read as disallow for a 5xx file |
| Home pages requested | 1,320 | 68 hostnames were never asked for a page |
| Answered 200 with an HTML content type | 1,068 | 218 answered 403, 34 answered something else |
138 of 1,068 home pages served no description a machine could read
138 is 12.9 percent of the readable pages, and it splits two ways that are worth keeping apart. 117 pages carried no meta element named description at all, so the field was simply never written. 21 carried the element with an empty content attribute, which is a different failure: somebody or something put the field on the page and nothing filled it. The second group is the more diagnostic one, because an empty attribute is usually a template with a variable that resolved to nothing rather than an author who decided against writing a sentence.
The hosts in that second group make the point better than the count does. hku.hk, uni-heidelberg.de, albertahealthservices.ca, moh.gov.sg, news24.com, lloydsbank.com, kbc.com and hoshinoresorts.com all served an empty description element, and so did a run of small local businesses from the media and local strata: badwavebrows.com, sadiesfloral.com, myrootssalon.com, jimmyjoesplumbing.com, floresaestheticslv.com, skinbygabby.com, featherhaus.com, mealsbygenetla.com, nyanimalrescue.org, bosmun.org, barbaratatumlaw.com, lakeshorewindows.ca and giglaw.co. A university and a florist arriving at the same defect through entirely different toolchains is the ordinary shape of this kind of measurement.
The strata split is the part of this that should change what a reader does next. In the SaaS stratum, 1 of 117 readable pages had no usable description, which is 0.9 percent. In the Webflow stratum it was 1 of 41, in the Shopify stratum 1 of 34, and in the SaaS marketing stratum 1 of 37. Then the other end: 9 of 30 in the local media stratum, 29 of 102 in education, 12 of 54 on Wix and Squarespace, 16 of 85 in government and 12 of 62 in ecommerce. Commercial software marketing sites have this field filled almost without exception in this corpus. Universities, government departments and small local publishers are where the gap sits. This run did not test why, so the obvious explanation, that a marketing site is built on tooling which fills the field and a university home page is often not, is offered as a reading of the split rather than as a finding.
Two caveats belong here rather than in a footer, because they change what the 138 means. The first is that no JavaScript was executed, so a description injected by a client-side framework after load would read as absent. That is the correct measurement for a crawler that does not render, which is most of them, but it is not a claim about what a browser sees; the gap between those two documents is what this scanner calls prose parity. The second is that presence is all that was checked. Nothing here grades whether the 930 descriptions that exist are any good, accurate or unique, and a page with a bad description is not counted as a failure. That restraint is the same one applied in 141 of 382 home pages carrying no structured data in the raw HTML and in 15 of 1,088 home pages declaring no character encoding, and it is what keeps a presence count from quietly becoming a quality judgement. Getting the field filled is the floor, not the work; the work is what answer engine optimisation is about.
20 pages served no title, and not one of them was a home page
The 20 pages that carried neither a title nor a description are the headline's second clause, and they turn out to be a different finding from the one the count implies. Each of the 20 was requested a third time the same day and read by hand. Not one of them was a home page that had forgotten its head. All 20 answered HTTP 200 and served something else.
Six returned a body of 212 bytes or fewer containing no readable text at all: nus.edu.sg, heb.com, gtbank.com and zurich.com at 212 bytes each, rbc.com at 148 and irishrail.ie at 92. Two served a bot challenge whose visible text begins with the words "Request unsuccessful", those being statssa.gov.za and regions.com. Two served a redirect stub that does its redirecting in script, sciencespo.fr with the words "This page has moved" and contpaqi.com with "If you are not redirected in 2 seconds, click here". One, sundhed.dk, served an empty title element above a notice in Danish telling the reader to update their browser. The remaining nine were documents whose delivered bytes are almost entirely script: hamad.qa, aboutyou.de, gymshark.com, nordstrom.com, shopee.sg, agoda.com, hoshinoresorts.com, sj.se and calltree.ai. Four of the 20, sundhed.dk, nordstrom.com, agoda.com and hoshinoresorts.com, carried a title element with an empty value; the other 16 carried no title element anywhere outside script and svg content.
This is why a status code is a poor proxy for whether a page exists. All 20 of these answered 200, and a pipeline that counts 200 responses as pages would record 20 home pages with catastrophic metadata when what it actually has is 20 hosts that did not serve a home page to this client. The same confusion is why 418 of 1,419 corpus sites gave a crawler no words to read is a separate measurement from a robots block, and it is the same mechanism behind 3,291 of 7,124 custom elements arriving with no text. A crawler that does not run a browser gets the shell, and the shell has no title because the title is assigned later by code that the crawler never runs.
Worth stating plainly: several of these are large, competent organisations, and this is not a claim that their sites are broken for people. A browser running their JavaScript gets a titled, described page. The measurement is about what arrives in the first response to a plainly identified crawler, which is the document a crawler that runs no JavaScript works from. If you want to see your own site that way rather than take a general figure for it, that is what the GPTBot view tool does, and the same split between the delivered document and the rendered one is the thing prose parity exists to score.
-
Empty body under 212 bytes6 hosts nus.edu.sg, heb.com, gtbank.com, zurich.com, rbc.com, irishrail.ie -
Bot challenge page2 hosts statssa.gov.za and regions.com, text beginning Request unsuccessful -
Script redirect stub2 hosts sciencespo.fr and contpaqi.com -
Browser upgrade notice1 host sundhed.dk, empty title above a notice in Danish -
Script-only shell9 hosts Includes aboutyou.de, nordstrom.com, shopee.sg, agoda.com -
A home page missing its head0 hosts Not one of the 20 was that
725 of 802 descriptions repeated the Open Graph line word for word
829 of the 1,068 readable pages carried an og:description, 886 carried an og:title and 574 carried a twitter:description. 802 pages carried both a meta description and an og:description, and on 725 of those the two strings were identical after collapsing runs of whitespace and ignoring case. That is 90.4 percent of the pages that have both.
There is nothing wrong with this and it is not presented as a defect. It is what many content management systems do by default, and a social preview and a search snippet genuinely are trying to do a similar job. The reason to measure it is that it tells you the blast radius of one bad sentence. On 725 sites the fallback an answer engine may print and the card a person sees pasted into a chat window are the same string, written once, usually by whoever set up the template. If it is a keyword list, both surfaces get a keyword list. If it is the company tagline, both surfaces get the tagline instead of a description of the page. The duplication is not the problem; it is the multiplier.
The inverse group is small and worth naming. 27 pages carried an og:description and no meta description at all, which is a site that has thought about how it looks when shared and not about how it reads when quoted: archives.gov, governo.it, mit.edu, snu.ac.kr, iisc.ac.in, chop.edu, uw.edu.pl, unilag.edu.ng, mzcr.cz, cdiscount.com, canadiantire.ca, arcosdorados.com, vietnamairlines.com, oebb.at and bankofcanada.ca among them. Open Graph is a social sharing vocabulary, and a search engine is not promised to read it in place of the field it documents. We measured the state of that vocabulary separately in 370 of 948 home pages leaving out a required Open Graph property, and the two findings sit together: the social layer is widely present and widely incomplete.
Six pages went further and made the description an exact copy of the title: bogazici.edu.tr, glossier.com, flysafair.co.za, jollibee.com.ph, geico.com and snb.ch. A description that repeats the title adds nothing an engine did not already have from the title element, which is the one case where the field is present and still carries no information. Five pages carried more than one description element, which leaves the choice to the parser: kaust.edu.sa served three, the first of them empty, and jr-central.co.jp served two of which the second is a comma separated keyword list rather than a sentence. Duplicate head metadata has the same failure mode as a canonical tag naming a URL the page was not served at, which is that the page stops deciding and something else decides for it.
meta name=description
- 930 of 1,068 carried one with text in it
- 117 carried no description element
- 21 carried one with an empty content attribute
- 6 repeated the page title word for word
- 5 carried more than one description element
og:description
- 829 of 1,068 carried one with text in it
- 802 carried both fields
- 725 of those 802 were identical strings
- 27 carried og:description and no meta description
- 886 carried an og:title and 574 a twitter:description
What 930 descriptions look like when you measure the length
The advice everyone has heard is to keep a description near 155 characters. Google's own documentation does not say that. It says there is no limit on how long a meta description can be, and that the snippet is truncated in results as needed, typically to fit the device width, which is a statement about display rather than a budget. So the figures below are a description of what the web does, not a scoring of it against a number nobody published.
Across the 930 descriptions with text in them, the median length was 150 characters and the mean 151.7. 215 were 120 characters or shorter, 375 fell between 121 and 155, 321 between 156 and 320, and 19 ran past 320. The distribution is tight around the familiar advice, which suggests the advice has been followed widely enough to shape the corpus whatever its documentary basis. The tails are where the interesting cases are. dkfz.de served 1,485 characters, which is most of an abstract; gla.ac.uk served 634; publix.com, embl.org and justice.gov all served between 431 and 443.
At the short end, 15 descriptions were 30 characters or shorter and several carry no information at all. bnf.fr served a single full stop. snb.ch served "SNB BNS", glossier.com served "Glossier", flysafair.co.za served "FlySafair" and erikbrits.com served "Contact Card". hospitalitaliano.org.ar served the Spanish for "page description", which is placeholder text that survived into production. These are present by any automated check and useless to a reader, which is the gap between a field being filled and a field doing its job, and it is exactly why this post counts presence and says so rather than claiming to have graded quality.
One number from this run belongs in the reader's hands rather than in a conclusion. A description is the surface an engine shows when it declines to quote the page, and the directives that decide whether it declines live on the page too. We found zero of 81 home pages blocking their own snippet and 7 of 1,077 sending a noarchive tag, so on the pages measured in those two runs almost nobody had opted into this state deliberately. Whether an engine puts a given page there is its decision and was not measured. The useful response is not to rewrite 155 characters; it is to check that the sentence exists, that it describes this page rather than the company, and that a crawler which runs no JavaScript receives it. The method and the frame behind every figure here are set out in the crawlability study and on the snippet documentation that governs the surface.
The stability check is the last thing worth reporting, because a one-shot count of live sites deserves one. The entire corpus was read a second time the same day. 1,405 of the 1,419 hostnames reproduced the first read exactly on all three flags: whether a page was delivered, whether a description was present, and whether a title was present. Of the 14 that moved, 12 moved on whether a page was delivered at all, which is bot defence rather than markup. Only two were readable both times and changed their answer: temu.com and carpentercostin.com carried no description on the first read and one on the second. The second read gave 1,072 readable pages, 136 without a usable description and 20 without a title, against 1,068, 138 and 20 on the first. The finding this post is named for did not move.
| Length band in characters | Pages | Share of the 930 |
|---|---|---|
| 30 or shorter | 15 | 1.6 percent |
| 120 or shorter | 215 | 23.1 percent |
| 121 to 155 | 375 | 40.3 percent |
| 156 to 320 | 321 | 34.5 percent |
| Longer than 320 | 19 | 2.0 percent |
| Median length | 150 | Mean 151.7 |
Lantad
Published .
Every answer engine has a state it falls back to when it will not or cannot quote a page. Microsoft documented one in 2023 and stated it plainly: a page tagged NOCACHE can appear in a chat answer, but only its URL, its title and a snippet are shown. Google's snippet documentation describes the other half, which is that the snippet itself is built mostly from the page, and the meta description is reached for only when it would summarise the page better. So a meta description for AI search is not an input to the answer. It is the text that is left when the answer will not carry your prose, and that makes it worth measuring rather than assuming.
Common questions
Does a meta description for AI search affect whether an engine cites you?
Neither of the two vendor pages read for this post says it does. Google's snippet page, last updated 2026-04-20 UTC, says snippets are primarily created from the page content and that the meta description is used only when it would describe the page better. Microsoft's Bing webmaster post of 22 September 2023 says a page tagged NOCACHE appears in chat answers with only its URL, title and snippet. So the description is the fallback text in a state the engine chooses, not an input that wins the citation.
How many home pages have no meta description?
138 of the 1,068 home pages Lantad read on 19 October 2026 served none a machine could read, which is 12.9 percent. 117 carried no description element at all and 21 carried one whose content attribute was empty. The rate varies sharply by stratum: 1 of 117 in SaaS against 29 of 102 in education.
Is there a correct length for a meta description?
Google's documentation states there is no limit and that the snippet is truncated in results as needed, typically to fit the device width. Across the 930 descriptions in this run the median was 150 characters, 375 fell between 121 and 155, and 19 ran past 320. The commonly repeated 155 character figure describes display, not a rule anybody published.
Why did 20 pages have no title at all?
Because none of the 20 was a home page. Each was requested a third time and read by hand: six returned a body of 212 bytes or fewer with no readable text, two served a bot challenge, two a script redirect stub, one a browser upgrade notice, and nine a document that is almost entirely script. All 20 answered HTTP 200, which is why a status code alone is a poor test of whether a page was delivered.
See what AI can read on your site
Run a free scan and get a graded report of exactly what AI crawlers can and cannot read, with ranked fixes.