AI Deployment
Feature 30  ·  Rendering  ·  Edition Q1 2026

We audited a site
that served no content.

We audited a live site built by a modern AI development tool and found every page serving a document body containing one element: an iframe pointing at itself. Correct titles, correct canonicals, correct descriptions - and no content. A crawler received twenty-eight DOM nodes where three thousand words should have been. This is a worked example, and the class of failure it belongs to is now the most common technical defect in search.

This feature reports a single case in detail, because the general version of the problem is discussed constantly and almost never demonstrated.

In July 2026 we audited a production website built with a current AI-assisted development platform. The pages were well designed, the copy was finished, the metadata was correct. A reader visiting in a browser saw a complete site.

A crawler received this:

Figure 01
What the server actually returned
Body content on every audited route.
Present and correct
Everything in the document head
TitleAccurate, unique per route, correctly formatted.
Meta descriptionWritten, specific, within length.
CanonicalPresent and self-referencing correctly.
Open Graph tagsPopulated on every route.
Absent
Everything in the document body
HeadingsNone. Not one h1 through h6.
Body copyNone. Roughly three thousand words per page, invisible.
LinksNone. No internal linking signal of any kind.
Total DOM nodesTwenty-eight, including the document scaffolding.
This is our own audit, conducted in July 2026 on a single production site, verified two ways: live DOM inspection in a browser, and a server-side fetch that executes no JavaScript. One site is not a sample. We report it as a worked example of a failure class, not as evidence of prevalence.

The body contained exactly one child element: an iframe whose source was the page's own URL. The document loaded itself into itself, and the content rendered inside that nested frame.

Twenty-eight nodes. Every heading, every paragraph, every link and every figure sat inside a frame that the parent document described but did not contain.

Figure 01
What the crawler received
The document served to a non-executing crawler on the audited site.
Four-value panel: 28 DOM nodes served, 0 words, 0 headings, 0 links.
Source: the audit described in this feature. Values are the served document before client-side rendering.

Why this is invisible to everyone involved

The failure has a property that makes it unusually persistent: it is invisible to every routine check.

A human opening the page sees a complete site. A designer reviewing it sees correct layout. A stakeholder approving it sees finished work. The browser executes the JavaScript, resolves the frame, and paints everything as intended.

Even the checks that ought to catch it frequently do not. Automated SEO auditing tools that render JavaScript will report the page as fine. Metadata checkers pass, because the metadata is genuinely correct. Lighthouse scores well. The only things that see the empty document are the systems whose opinion actually matters: crawlers that fetch raw HTML, text extractors, reader modes, and the retrieval layer of every answer engine.

Which produces the specific pathology of this defect. It does not present as an error. It presents as a site that inexplicably fails to rank or be cited, months after launch, with no diagnostic pointing anywhere.

The class of failure

The self-referencing iframe is unusual. The category it belongs to is not.

Figure 02
Four ways a page renders for a person and not for a crawler
Ordered by how hard each is to detect.
01
Client-side rendering with no server fallback. The document arrives as a shell and the content is assembled in the browser. The most common version, and the best understood.
02
Content behind interaction. Text that only enters the DOM on click, scroll or tab selection. Present after the event, absent at fetch.
03
Framed content. The case above. The parent document describes the page; a child frame contains it. Attribution of the content to the parent URL is unreliable at best.
04
Rendering that succeeds slowly. The content arrives, eventually, after a crawler's rendering budget has expired. Passes every manual test and fails in production.
This classification is ours. It is an argument about detectability rather than a survey of prevalence. We have no data on how common any of these are, and we found no study measuring the incidence of rendering failure across the web - which is a notable gap given how much SEO advice addresses it.

Why it is getting worse, not better

Rendering problems are not new. What has changed is who builds sites and what the failure now costs.

The builder has changed. A growing share of production sites are assembled by AI development tools operating on natural-language instruction. These platforms optimise for what the requester can see, and the requester looks at a browser. Nothing in that loop inspects the served document, so a defect that is invisible in a browser has nothing to correct it.

The cost has changed. Under conventional search, a rendering failure cost you rankings - recoverable, and diagnosable through familiar tooling. Under retrieval-based answering it costs eligibility. Feature 22 on the Content desk established that four in five language-model citations come from pages outside the ranked set, which means retrieval is reaching pages that ranking never surfaced. A page that returns an empty body is not a low-ranked candidate. It is not a candidate.

What it used to cost
Rank
A recoverable position penalty, diagnosable with standard tooling and familiar to every practitioner.
What it costs now
Eligibility
Absence from the retrieval set entirely. Not a worse answer to the query - no answer, because the document has no content to extract.

The reason nobody caught it

It is worth being precise about the failure of process, because the technical fault is the less interesting half.

Everyone in the chain did their job. The developer shipped a site that worked. The reviewer opened it and saw a complete page. The stakeholder approved finished work. The content team delivered copy that was, in fact, published. No individual made a mistake.

The defect existed in the space between two questions that nobody was assigned to ask together: does this look right, and does this serve right. Both have obvious owners in most organisations. The gap between them has none.

This is characteristic of the class. Rendering failures do not produce error messages, failed builds or unhappy users. They produce a site that is fine in every respect a human can perceive and absent in the only respect a retrieval system cares about - which means the feedback loop that normally catches defects is entirely bypassed.

What made this instance harder

Two properties of this particular case defeated the checks that might otherwise have applied.

The metadata was correct. A page serving no content but perfect titles, descriptions and canonicals passes every metadata audit, appears correctly in a link preview, and produces a plausible entry in any tool that reads the document head. The head was doing the work of reassuring everyone that the body existed.

The frame resolved to the same URL. Because the iframe pointed at the page's own address, a casual inspection of the network activity showed the correct URL being requested and the correct content arriving. Nothing looked foreign. The document was, in a sense, working exactly as built - it had simply been built to contain itself.

The check that finds it

The diagnostic is trivial and almost nobody runs it, which is the most useful sentence in this feature.

Fetch the page without executing JavaScript and read what comes back. View-source in a browser, or any request that does not render. If the body does not contain your headings and your paragraphs as text, no amount of content strategy will help you.

Three things make this worth institutionalising rather than doing once:

  • It is a deployment-time property, not a design-time one. A site correct at launch can regress when a framework, hosting configuration or build setting changes, with no visible symptom.
  • It cannot be delegated to a rendering-based auditor. Tools that execute JavaScript before checking will report success on a page that serves nothing.
  • It costs seconds. Against a failure mode that silently removes an entire site from consideration.

About this case

The audit reported here was conducted on a site we were engaged to review, and the finding formed part of that engagement. We are not naming the site or the platform, because the point is the failure class rather than any particular product, and because a single case does not support a claim about a platform's general behaviour. Marketing Legendary sells technical audit work, which makes a feature arguing that technical audits find things a self-interested one. The check we recommend takes seconds and requires nobody's help, including ours.

What to do about it

View-source every important route today. Home, top templates, and your highest-value pages. Confirm your h1 and your body copy are present as text in what the server returns.

Add the check to deployment. A test asserting that a known string from the page body appears in the raw response. Ten lines, catches the entire failure class, and runs on every release.

Do not trust a rendering-based audit alone. If your SEO tool executes JavaScript before evaluating, it is answering a question crawlers are not asking.

Ask your build tool what it serves, not what it shows. For AI-assisted platforms specifically, "does this look right" and "does this serve right" are different questions and only one of them is being optimised.

Check the frame case explicitly. If body content sits inside an iframe, the parent URL - the one in your canonical, your sitemap and every link you have earned - is not the document containing your content.

Figure 03
The audited case, in full
One production site, July 2026.
ElementFinding
Document head
TitlePresent, unique per route, correct
Meta descriptionPresent and specific
CanonicalPresent, self-referencing
Open Graph tagsPresent on every route
Document body
Total DOM nodes28
Direct children of body1 - an iframe
iframe sourceThe page's own URL
Headings0
Body text0 characters
Links0
Verification
Live DOM inspectionConfirmed
Server-side fetch, no JavaScriptConfirmed - head only, empty body
Appearance in a browserComplete and correct
One site, one audit, our own. Reported as a worked example. It establishes that this failure occurs in production on a well-built modern site. It establishes nothing about how often.

How we did this

Source
Tier 1 - our own audit, July 2026, on a single production site. Verified by live DOM inspection in Chrome and by an independent server-side fetch that executes no JavaScript.
Sample
One site. Not a sample, not a survey, and we make no prevalence claim from it.
Not named
The site and the platform are deliberately unnamed. One case does not support a claim about a product's general behaviour.
What's ours, not the source's
The four-way failure classification, the detectability argument and the rank-versus-eligibility framing are ours.
Interest
Disclosed in the body. We sell technical audit work. The recommended check requires no vendor.

What this doesn't prove

  • How common this is. One case. We found no study measuring rendering-failure incidence and do not estimate one.
  • That AI development tools produce this systematically. We observed it once on one platform. That is not a pattern.
  • How search engines handle framed content specifically. We assert attribution to the parent URL is unreliable. We could not obtain documentation confirming the behaviour.
  • That the site suffered measurable harm. We identified the defect. We do not have before-and-after traffic or citation data isolating its effect.
  • That retrieval systems behave identically to crawlers here. The eligibility argument follows from retrieval requiring extractable text. It is reasoning, not a tested finding.
  • Anything about the other three failure modes in Figure 02. They are named for completeness. Only the framing case was observed.

Sources for this feature

  1. Marketing Legendary technical audit, July 2026. Single production site, verified by live DOM inspection and server-side fetch. Straight from the source - primary, our own, n=1
  2. Feature 22 of this edition, on citation from outside the ranked set. Another feature in this edition
SE
The practice behind this desk

SEO Legendary

We check what a crawler actually receives before we discuss rankings, because the two are not the same document.