---
title: "LLM Markdown 1.1: What’s New and How It Works"
id: "509"
type: "post"
slug: "llm-markdown-1-1-whats-new-and-how-it-works"
published_at: "2026-10-21T06:19:45+00:00"
modified_at: "2026-10-21T06:49:28+00:00"
url: "https://compiledrogue.com/articles/llm-markdown-1-1-whats-new-and-how-it-works/"
markdown_url: "https://compiledrogue.com/articles/llm-markdown-1-1-whats-new-and-how-it-works.md"
excerpt: "LLM Markdown 1.1 brings editor previews, per-post controls, improved content extraction diagnostics, and expanded SEO compatibility to WordPress. Here's how the plugin works, what's new, and how to expose your existing content as clean Markdown for AI agents."
taxonomy_category:
  - "Open Source"
taxonomy_post_tag:
  - "AI Agents"
  - "LLM Markdown"
  - "Markdown"
  - "Plugin Development"
  - "WordPress"
---

##### October 21, 2026 Open Source

## LLM Markdown 1.1: What’s New and How It Works

LLM Markdown 1.1.0 is now available in the [WordPress plugin directory](https://wordpress.org/plugins/llm-markdown/)
. It’s a free, open-source plugin that exposes public WordPress content as Markdown without requiring a separate content model, an external conversion service, or a second publishing workflow.

The 1.1 release focuses on the parts that make the feature usable in production: previewing output, debugging content selection, controlling availability, and helping clients discover Markdown endpoints.

**Note****Release summary:** Version 1.1 adds Markdown preview and copy tools in the block and Classic Editors; per-post opt-outs; a content-extraction test with selector diagnostics; expanded noindex integrations; and HTTP `Link` headers for Markdown discovery. Existing `.md` URLs and the optional, disabled-by-default `Accept: text/markdown` feature remain in place.

## What problem does it solve?

A WordPress article might be assembled from Gutenberg blocks, ACF fields, shortcodes, and custom templates. The browser receives the rendered page, but a content-ingestion tool may only want its title, structure, text, links, tables, and code.

LLM Markdown starts with the server-rendered HTML, selects the meaningful content region, and converts it to Markdown. It doesn’t rewrite your original WordPress content and doesn’t create a parallel set of physical `.md` files.

For a longer discussion of why I chose that architecture, read [The CMS Isn’t the Problem. The Boundary Is.](https://compiledrogue.com/articles/the-cms-isnt-the-problem-the-boundary-is/)
, which also has [its own Markdown representation](https://compiledrogue.com/articles/the-cms-isnt-the-problem-the-boundary-is.md)
.

## Try it on a live WordPress site

These are two different representations of the same Compiled Rogue case study:

HTMLMarkdown

BASH

```
curl -L https://compiledrogue.com/case-studies/sentinelone/
```

BASH

```
curl -L https://compiledrogue.com/case-studies/sentinelone.md
```

The Markdown response uses `text/markdown` and begins with YAML front matter, including metadata derived from WordPress: title, post ID, content type, slug, timestamps, canonical and Markdown URLs, and optionally an excerpt and public taxonomies when available.

The page itself stays in WordPress. Publish or edit it through the normal workflow; LLM Markdown generates the alternate representation from the public result.

## What’s new in 1.1.0?

## 1. Inspect Markdown without leaving the editor

Both the block editor and Classic Editor now provide a Markdown view, a copy action, and a link to the public `.md` URL. This lets an editor check what an agent would receive without juggling terminal windows or guessing whether the configured selector is correct.

The block-editor sidebar also shows the last public response status, word count, approximate token count, and document size. The token estimate is a rough size indicator, not a model-specific billing calculation.

The preview reflects the saved public response. It’s intentionally not a way to publish draft or private material through an anonymous Markdown URL.

## 2. Exclude individual posts

Enabling Markdown for a public post type doesn’t mean every document in it should have a Markdown representation.

Version 1.1 adds **Disable Markdown for this content** to the editing interface. It leaves the normal HTML URL alone, disables the corresponding Markdown endpoint, suppresses alternate-format discovery, and invalidates the affected cached Markdown.

The opt-out is reversible and doesn’t require excluding the entire post type.

## 3. Find out what your selectors are really matching

Different WordPress themes put content in different places. The DOM & Selectors tab now includes a **Content Extraction Test** for a public URL.

It shows the configured selector matches, identifies the selected element, reports when extraction falls back to `main`, `article`, or `body`, and displays a short Markdown preview after exclusions.

This is particularly useful on sites where the actual article is surrounded by navigation, CTAs, forms, related content, or page-builder wrappers.

The selector settings support elements, IDs, classes, descendants, and direct-child relationships. They intentionally don’t attempt to implement every CSS selector feature.

## 4. Respect more noindex configurations

The optional **Honor Noindex** setting now covers WordPress search-engine visibility, Yoast SEO, Rank Math, and All in One SEO.

When enabled, supported noindex signals can suppress both the Markdown response and its discovery links. This complements the existing rules for unpublished, password-protected, or otherwise ineligible content; it is not a substitute for authentication or a general-purpose membership system.

Developers can still implement additional access decisions using `llm_markdown_can_serve_post` and noindex checks through `llm_markdown_is_noindex_post`.

## 5. Advertise Markdown in HTTP headers

Eligible HTML pages already include an alternate-format link in the document head. Version 1.1 also emits an HTTP `Link` header so clients can discover the Markdown representation from the response metadata:

Example response header

```
Link: <https://example.com/article.md>; rel="alternate"; type="text/markdown"
```

The Markdown response, in turn, points back to the canonical HTML URL. This keeps the relationship between the representations explicit.

As with any discovery mechanism, advertising the endpoint doesn’t guarantee that a crawler or AI service will retrieve it.

## Existing capabilities worth knowing about

The original feature remains the simplest one: append `.md` to the permalink of an enabled public post, page, or custom post type. A static front page can also use `/index.md`.

The Markdown converter supports headings, lists, links, emphasis, blockquotes, inline and fenced code, simple tables, figures, and captions. Images are optional and disabled by default.

Anonymous Markdown responses use temporary WordPress transient caching, with a default lifetime of 12 hours and invalidation tied to content and relevant configuration changes. The Tools tab includes a manual cache-clear action. Failed internal rendering doesn’t cache an empty document; the endpoint returns a non-cacheable 503 response instead.

## Optional `Accept: text/markdown` requests

Header-based Markdown delivery was introduced in 1.0.2 and remains an advanced, opt-in setting in 1.1. A client can request Markdown from the canonical URL:

Content negotiation

```
curl -i \
  -H 'Accept: text/markdown' \
  https://compiledrogue.com/case-studies/sentinelone/
```

This sends `Vary: Accept` on eligible responses, but **it must only be enabled after checking your hosting and CDN cache behavior**. A cache that doesn’t vary correctly could return HTML to Markdown clients or Markdown to normal visitors. Separate `.md` URLs avoid that particular ambiguity.

## Getting started

1. Install **LLM Markdown – Markdown Endpoints for AI Agents** from WordPress.org.
2. Open **Settings → Markdown Output** and enable the public post types you want to expose.
3. Visit an eligible post and open its `.md` URL.
4. Use the editor tools or **DOM & Selectors → Content Extraction Test** to confirm that the output includes the meaningful content and excludes page chrome.
5. Adjust the main-content and excluded-content selectors if needed. Keep header-based negotiation off unless you’ve tested the caching infrastructure.

For a quick HTTP-level check, try:

Inspect response metadata

```
curl -I https://compiledrogue.com/case-studies/sentinelone/
curl -I https://compiledrogue.com/case-studies/sentinelone.md
```

The first response can advertise the alternate Markdown URL through a `Link` header; the second should identify itself as Markdown. If you don’t see the expected headers, check your CDN and page-cache behavior before assuming WordPress failed to emit them.

## What it doesn’t do

LLM Markdown isn’t a crawler, an AI content generator, or a promise of better AI-search rankings. It doesn’t ship an external dashboard, require API keys, or create a second repository of static files.

It does one job: expose the public content you’ve already published in a structured format that compatible tools can request.

That might be exactly what your ingestion workflow needs, and it might not. At least the behavior is explicit and testable.

The plugin is [free on WordPress.org](https://wordpress.org/plugins/llm-markdown/)
. Install it, check a couple of representative pages, and see whether it solves the problem. Ideally, that’s the end of the project. **Sorted.**
