
Somewhere along the way, we forgot how to write HTML — or why it mattered in the first place. Modern development workflows prioritize components, utility classes, and JavaScript-heavy rendering. HTML becomes a byproduct, not the foundation. That shift comes at a cost: in performance, accessibility, resilience, and how machines (and people) interpret your content. This piece is about what we’ve lost — and why semantic HTML still matters for SEO, AEO (Answer Engine Optimization), and even AI visibility.
HTML Is a markup Language, Not Just a Render Target#
It’s easy to forget, but HTML isn’t just about drawing boxes on a screen. It’s a language with meaning.
<article>means “this is a self-contained piece of content.”<nav>signals navigation.<section>organizes a document into meaningful parts.<h1>to<h4>define hierarchy.<p>,<ul>,<ol>,<a>,<img>describe the building blocks of communication.
When we reduce everything to <div> and <span>, we strip that meaning away.
It’s not just “bad HTML” — it’s meaningless markup.
Meaningless markup isn’t neutral. It makes your site harder to render, harder to maintain, harder for assistive technology to parse, and harder for crawlers or AI agents to interpret.
👉 If everything is a <div>, then nothing is important.
Why Search Engines Care#
Semantic HTML directly affects SEO:
- Crawl efficiency → Search engines don’t want to render your full JS app just to find the article body. Proper
<article>and<h1>tags reduce indexing cost. - Ranking clarity → Heading hierarchy gives Google a clear map of your content’s topics and subtopics.
- Featured snippets / AEO → Structured lists, headings, and emphasis tags help systems extract answers cleanly.
- Accessibility = discoverability → Screen readers and crawlers rely on the same signals. If your page is unreadable to assistive tech, it’s also harder for bots.
⚠️ Semantic markup doesn’t guarantee higher rankings.
But it creates a foundation for search systems to work with — and that’s a competitive edge.
Why AI Agents Care#
The web isn’t just for people anymore. AI-powered agents, scrapers, summarizers, and LLMs increasingly consume your content.
Here’s the catch: most LLMs don’t render JavaScript.
They read raw HTML.
That means:
- If your article text is buried in
<div class="jsx-4fa1">, good luck getting cited. - If your button is just a
<span>with click handlers, an agent might not recognize it as actionable. - If your product card has no semantic structure, a crawler won’t extract brand, price, or CTA correctly.
Proper <article>, <header>, <footer>, and <button> tags aren’t just niceties — they’re instructions for machines.
They lower the chance of misinterpretation.
👉 If agents are the new “users,” semantic HTML is how you stay in the conversation.
The Performance Angle: Semantic Rot Hurts Speed#
Browsers are forgiving. They’ll guess what your <div> soup is trying to do.
But every guess costs cycles.
- Bloated DOMs → Every extra node increases layout and paint cost. Deep nesting magnifies reflow thrashing.
- Ambiguous markup → Makes it harder for browsers to isolate work, cache styles, or optimize animations.
- Redundant CSS → Componentized utility sprawl leads to duplication and expensive recalculations.
Semantic markup isn’t magic, but it creates conditions for optimization: clearer layout boundaries, predictable structures, smaller DOMs, and more effective GPU compositing.
💡 In other words: good HTML makes fast sites possible.
Structured Data ≠ Semantic HTML#
Some developers argue: “Why bother with semantic markup when we can just add JSON-LD?”
Here’s why:
- Structured data helps machines understand your entities.
- Semantic HTML helps machines understand your document.
Schema won’t tell Google where your main content begins, which link is the primary CTA, or what heading introduces your key argument.
🚀 The winning combo is semantic HTML + structured data.
One gives meaning, the other adds metadata.
Resilience Through Structure#
Semantic HTML also makes your site more resilient:
- If your CSS fails, the content is still structured.
- If JavaScript breaks, links and forms still work.
- If a screen reader loads the page, the experience is usable.
That’s not nostalgia. That’s infrastructure.
Semantic markup is the baseline for performance, accessibility, SEO, and AEO.
It’s how you build for a messy real world of flaky connections, low-end devices, and unpredictable agents.
My Rule of Thumb#
When building modern sites, I keep this checklist in mind:
- ✅ Start semantic → Reach for
<article>,<section>,<nav>first, not<div>. - ✅ Respect hierarchy → One
<h1>per page, structured subheadings. - ✅ Expose content in raw HTML → Don’t hide meaning behind JS.
- ✅ Enrich with structured data → Layer schema on top, not instead.
- ✅ Test with agents → Check your raw HTML. Could Google—or ChatGPT—understand it without rendering?
Closing Thought#
The web isn’t just pixels. It’s meaning.

👉 Don’t treat markup as an afterthought.
👉 Don’t let abstraction bury structure.
👉 Don’t build interfaces that only work when JavaScript and CSS align perfectly.
HTML is the foundation.
If we want a fast, resilient, AI-readable web, it’s time we remember how to write it — and why it matters.