Skip to content
trending

Guides

Your HTML Aside Tags Are Invisible to AI Models

Content extraction libraries strip aside, nav, and footer tags before AI models read your page. That conclusion box you carefully wrote? It never reaches the model.

By 5 min read
Your HTML Aside Tags Are Invisible to AI Models

👁 113 reads

The conclusion of my article sat in an elegant box built with an aside tag. When I asked a language model about the thesis of that text, I got an answer composed of middle paragraphs - as if the box didn’t exist. I ran the page through a content extraction library and saw why: aside was removed before analysis, along with nav and footer.

The Bottom Line

Content extraction libraries like readability remove aside, nav, and footer before analyzing documents. This isn’t downweighting or deprioritization - it’s deletion. A conclusion box, comparison table, or call-to-action placed in aside disappears entirely and never reaches the language model. The same block moved to a plain div stays in the extracted text. If you keep anything in aside tags that should appear in AI responses, you’re giving it away for free.

Why This Happens: The Pipeline Reads Clean Text, Not Your Page

Language models don’t get your HTML. Between your page and the model sits a content extraction layer whose job is to throw out menus, footers, banners, and sidebars while keeping the article. This layer works on rules about document structure, not on the meaning of content.

The rule is brutally simple: aside semantically means “related content, but not main content.” Since the HTML spec author defined it that way and you used that tag, the library takes it as a declaration of intent. It cuts and moves on. It doesn’t check whether what’s inside is an ad or the most important paragraph in your entire text.

This is a trap for people who do things properly. You learn semantic HTML as best practice, and aside looks like the obvious choice for a frame, callout box, or “good to know” box. In the context of AI optimization, the same decision works exactly opposite to your intention.

What Exactly Disappears

I tested three types of blocks that most often sat in frames in my texts. The result was the same every time - and every time the fix was swapping one tag.

Block In aside tag In plain div
Conclusion box disappears entirely stays
Comparison table disappears entirely stays
Call to action disappears entirely stays

Notice the second row. A comparison table is usually the most information-dense fragment of an article - exactly the kind of material models eagerly cite because it has clear structure and concrete values. If your template wraps tables in aside to display them next to text, you’re throwing the best part of your text in the trash.

The third row is less painful content-wise, but worth noting. A call-to-action in aside disappears, so the model describing your material has no idea what you’re proposing the reader do. This is my opinion, but I think it’s one reason why AI responses about products often skip the specific offer and stay at the level of generalities.

nav and footer disappear along with aside, and here the logic is more understandable - they’re usually menus and contact information. The problem appears when someone uses these tags non-standardly.

I’ve seen footer used as a container for author information and update date. I’ve seen nav used for a table of contents with section descriptions. Both things are valuable for AI visibility: author and date are credibility signals, and a table of contents is a ready-made map of the article. Both get cut along with the main menu.

If you want a table of contents visible to extraction, make it a plain div with a list inside. Navigation through the document works identically because they’re still internal links, and the content stays in the extracted text.

How to Write for AI Without Breaking Accessibility

The first reaction I hear is: but semantic HTML exists so screen readers understand structure. That’s true, and you don’t have to give that up.

The solution is cheap. Use div as a container and describe the role and meaning of the block with visible text inside - a heading that says plainly what the block is. A heading like “The Bottom Line” does more for a language model than any structural tag, because it reaches the extracted text and unambiguously labels the fragment.

My working rule goes like this: I reserve aside for things that really can disappear without loss - related links, newsletter box, banners. Everything I want to see in the model’s response lands in a div. This reverses typical thinking about writing for AI: instead of adding tags, I remove those that signal “this is secondary.”

Most Common Places Where Aside Enters Without Asking

You rarely decide this consciously. The tag comes with the template or component.

  • Callout blocks in CMS systems - default markup often relies on aside because that looked “proper” when designing the component.
  • Pull quote frames and highlighted quotes - a classic case where aside is textbook correct but practically harmful.
  • Summary boxes at the top of articles - the worst possible choice because it’s usually the best-written fragment of the entire text.
  • Columns with technical tables displayed next to content on wide screens.

Checking takes a minute per template and works once for all future texts. Worth doing before the next round of writing, not after.

How to Check This on Your Site

  1. Choose one of your articles that has a conclusion frame, callout box, or table in a side column.
  2. Open the page source and search for aside. Note how many blocks and what content sits in this tag. While you’re at it, look for nav and footer used for something other than menus and footers.
  3. Run the URL through a content extraction library like readability - locally or through any clean text article preview.
  4. Compare the result with the original. Check whether content from frames is present in the extracted text. If it’s not there either in whole or in fragment - you have confirmation.
  5. Change the container from aside to div, keeping the same CSS classes. The appearance won’t change because class-based styling works identically.
  6. Add a heading inside the block that names its function, so the model gets a clear content label.
  7. Repeat extraction and check whether the block is now in the result.
  8. Ask a language model about the thesis or data from the table in this article and compare the answer with what you got before the change.
Google · Your sourcesQuantslant higher in your Google - one clickAdd to preferred sources →

Where These Numbers Come From

Own measurement, September 21, 2026. The test consisted of running one article through a readability-type content extraction library in two markup variants - with blocks in aside and with the same blocks in div - and comparing the extracted text with the original. Tested blocks: conclusion frame, comparison table, call to action. In the variant with aside, all three disappeared entirely; in the variant with div, all three stayed. Behavior regarding nav and footer follows from the same removal-before-analysis rule. Assessments regarding impact on quality of model responses about products and the recommendation to reserve aside exclusively for dispensable content are my opinion.

Kinetyra

// read next

More on this from QUANTSLANT

Piotr Olszewski

Editor and publisher · Quantslant

I edit and publish Quantslant. AI tools help with research, drafts and translation; choosing topics, running the tests, checking facts and the decision to publish are mine, and so is the responsibility for what appears here.

read next1980s AI Photos: Complete Prompt & 10 Examples That Workguides1980s AI Photos: Complete Prompt & 10 Examples That WorkWhy most attempts look like cyberpunk and what to change in your prompt. Complete text to copy and ten camera-film combinations that deliver the era.

Most read

  1. 1Best AI Video Generator Apps for Your Phone (2026)
  2. 2Claude Opus 5.5 Motion Graphics: 60s Showreel from One Prompt
  3. 3Wan 2.2 on RTX 4090: timings, VRAM and four test clips
// site map

This page in other languages1

Quantslant in numbers 1,427posts in archive25news from the last 7 days18video models in the observatory
🎬 AI Video Benchmarks: Higgsfield DoP vs OpenAI Sora • Higgsfield vs Runway Gen-3 • AI Video Credit Calculator
× ‹ enlarge ›