---
title: Designing Better Markdown for LLMs
date: 2026-07-10T09:00:00-04:00
author: John Morton
canonical_url: "https://supergeekery.com/blog/designing-better-markdown-for-llms"
section: Blog
---
# Designing Better Markdown for LLMs

*July 10, 2026* by John Morton

![Designing better markdown for llms](https://static.supergeekery.com/site-assets/designing-better-markdown-for-llms.png)

*Audio narration available for this post.*

One of the design goals of [LLM Ready](https://plugins.craftcms.com/llm-ready?craft5) was that it should work without requiring developers to think about AI at all.

Install the plugin and your pages immediately become available as clean Markdown. No duplicate content. No second set of templates. No additional maintenance.

I did include one escape hatch: a custom Twig template that lets you completely control the generated Markdown.

If you've looked at [the markdown version of this page](https://supergeekery.com/blog/designing-better-markdown-for-llms.md), you may have noticed I don’t actually use that feature myself.

I assumed I’d eventually discover situations where the Markdown served to an LLM should differ from the HTML served to a human. Months later, I’m still not convinced rewriting the content is the right answer.

That has led me to a simple question:

***Should the Markdown version actually say something different than the HTML version?***

My current thinking is: **mostly no.**

The Markdown version shouldn't become an "AI version" of your website. It should communicate the same information, just in a format that's easier for a language model to understand.

For example, a page designed for humans might rely on cards, icons, sidebars, or visual hierarchy to communicate relationships. A Markdown version can make those relationships explicit with headings, lists, and clearer organization without changing the underlying meaning.

**In other words, the Markdown representation shouldn’t be semantically different. It should be semantically richer.**

## **Abstracts**

The idea I like most is a short, factual abstract near the top of every Markdown page.

Something like:

> **Abstract:** This page documents the LLM Ready plugin for Craft CMS. It explains how the plugin exposes Markdown representations of pages through URL suffixes and content negotiation, generates `llms.txt` automatically, supports custom Markdown templates, and allows developers to customize the content served to AI systems without changing the HTML presented to human visitors.

This is intentionally different from a meta description.

A meta description exists to earn a click. It’s often marketing copy.

> Convert your Craft CMS content into AI-friendly Markdown with automatic `llms.txt` generation and customizable templates.

An abstract has a different purpose. It isn’t trying to persuade anyone—it exists to accurately describe what the page contains.

Humans rarely need this because they can skim headings, images, and page layout.

An LLM, however, often has to decide within a few sentences whether a page contains the information it’s looking for. A concise abstract functions much like the abstract of an academic paper: it provides high-value context.

[LLM Ready 1.4.0](https://github.com/johnfmorton/craft-llm-ready/blob/main/CHANGELOG.md#140---2026-06-07) already supports using the description field from several popular SEO plugins as the page’s abstract.

The more I’ve thought about it, though, the more I think those two fields serve different purposes. They often overlap, but I’m no longer convinced they’re the same thing—or that a meta description is the ideal source for a page’s machine-readable abstract.

## My Current POV

I still haven’t found a compelling reason to rewrite pages for AI.

But I have started to wonder whether every page should have an abstract—not for search engines or human readers, but as a machine-readable description of what the page actually contains.

That feels like a much more interesting direction.

If you’re generating Markdown for AI consumption, I’d love to hear how you’re approaching it. Are you serving the same content as your HTML pages, or have you found cases where the machine-readable representation should differ?

You can reach me by visiting the [contact page](https://supergeekery.com/contact).

---

**Tags:** ai, webdev, craftcms

## Related Posts

- [LLM Ready: The Craft CMS plugin I never imagined I&#039;d make](https://supergeekery.com/blog/llm-ready-the-craft-cms-plugin-i-never-imagined-id-make)
