Yes, WordPress supports Markdown, just not quite the way most people expect. The block editor (Gutenberg) turns Markdown shortcuts into blocks while you type, and it converts Markdown you paste into proper blocks. What it doesn’t do is save your post as Markdown. If you want to write and keep real Markdown, you need a plugin, like Jetpack’s Markdown block.
In this article I’ll show you all three: typing, pasting, and plugins. I also cover how to export WordPress posts to Markdown and the newer trend of serving Markdown versions of your pages to AI tools. I tested everything in this article on WordPress 7.1.
Markdown shortcuts in the block editor
Start a new paragraph block and type one of these. WordPress converts it the moment you type the space (or the last character, for code blocks and separators):
| You type | You get |
|---|---|
# then space | Heading 1 |
## then space | Heading 2 |
### to ###### then space | Heading 3 to Heading 6 |
- or * then space | Bulleted list |
1. or 1) then space | Numbered list |
> then space | Quote block |
``` (three backticks) | Code block |
--- (three or more hyphens) | Separator |
`text` | Inline code |
A few things I learned while testing these:
- They only work in a paragraph block, at the very start. Only the exact characters in the table count:
+doesn’t start a list, and3.doesn’t start a numbered list. You can also convert a paragraph you already wrote: put the cursor at the beginning, type##and a space, and the whole paragraph becomes a heading. - The code block and separator shortcuts need an empty paragraph. As soon as the block contains exactly
```or---, it turns into a Code block or Separator. - Inline code works anywhere in the text. Type a backtick, some text, and a closing backtick, and the text becomes code. Even quicker: select some text and type a single backtick to wrap it.
- You can undo a conversion. If WordPress converts something you meant literally (say, a sentence that starts with “1. “), press Backspace or Escape right after it happens.
The official Heading block documentation only mentions the # shortcut, so I tested every row of this table myself in a fresh WordPress 7.1.3 install.
Bold, italic, and links don’t work as you type
This trips people up. Typing **bold**, _italic_, ~~strikethrough~~, or [text](https://example.com) in the editor does nothing: you end up with literal asterisks and brackets in your post. Backticks for inline code are the only inline Markdown the editor converts while you type.
For the rest, use the keyboard shortcuts instead. They’re just as fast once your fingers know them:
| Format | Windows / Linux | Mac |
|---|---|---|
| Bold | Ctrl + B | ⌘ + B |
| Italic | Ctrl + I | ⌘ + I |
| Link | Ctrl + K | ⌘ + K |
| Inline code | Shift + Alt + X | Ctrl + Option + X |
| Strikethrough | Shift + Alt + D | Ctrl + Option + D |
Two more keyboard tricks that aren’t Markdown but feel like it: type [[ to search for one of your own posts and link to it, and type / followed by a block name (/table, /code, /image) and press Enter to insert any block. The full list is on the WordPress keyboard shortcuts page.
Pasting Markdown into WordPress
This is the feature I use most. When you paste plain text that contains Markdown into the block editor, WordPress converts it to blocks. Bold and italic work here too, even though they don’t work while typing. Try it: copy this and paste it into an empty paragraph block.
## WordPress supports Markdown
This paragraph has **bold**, *italic*, ~~strikethrough~~, `inline code`, and a [link](https://markdown.land).
- A bulleted list
- with two items
1. A numbered list
2. with two items
> A quote
| Shortcut | Block |
| -------- | --------- |
| `##` | Heading |
| `---` | Separator |
```python
print("Hello from a code block")
```
---
The end.
You get these blocks, in this order:
- A Heading block (H2)
- A Paragraph block with bold, italic,
strikethrough,inline code, and a working link - A bulleted List block
- A numbered List block
- A Quote block
- A Table block with a header row
- A Code block
- A Separator block
- A final Paragraph block
That covers most of what I write. If you need a refresher on the table syntax, see my Markdown table guide. Pasting a single line works too: Just **bold** here pasted into an existing paragraph is inserted as formatted text, without creating a new block.
What doesn’t survive the paste
- The code block language. The
pythonafter the backticks is dropped, because the core Code block has no language setting and no syntax highlighting. If you want highlighting, you need a plugin. I explain fenced code blocks in my Markdown code block article. - Task lists and footnotes.
- [ ] todobecomes a plain list item without a checkbox, and[^1]footnotes stay as literal text instead of becoming the editor’s own footnotes. - Column alignment. A table with
:---:in the separator row comes in as a normal Table block without the alignment. Set it again with the Table block’s column alignment button. - Single line breaks are kept. Most Markdown processors join two lines of one paragraph into one line. WordPress keeps the line break, so don’t hard-wrap your text before pasting it.
- Images stay where they are.
becomes an Image block, but it still points to the original URL. WordPress doesn’t copy the file into your Media Library for you.
When pasting doesn’t convert
WordPress only treats your clipboard as Markdown when it’s plain text. Some apps, like VS Code and many note apps, put a formatted (HTML) copy on the clipboard as well. WordPress then uses that version, and you end up with literal ## and ** characters in your post.
The fix is to paste as plain text: Ctrl + Shift + V on Windows and Linux, ⌘ + Shift + V in Chrome on a Mac. Safari uses ⌘ + Option + Shift + V. Copying an answer from an AI chat tool with its copy button usually works fine, since those answers are Markdown under the hood.
WordPress stores HTML, not Markdown
Both the shortcuts and the paste feature are one-way conversions. Once WordPress has turned your Markdown into blocks, the Markdown is gone. Open the Code editor (Ctrl + Shift + Alt + M, or ⌘ + Shift + Option + M on a Mac) and you’ll see HTML wrapped in block comments, like this:
<!-- wp:heading --> <h2 class="wp-block-heading">WordPress supports Markdown</h2> <!-- /wp:heading -->
For most bloggers that’s fine. Markdown is just a fast way in. But if you want to keep your source as Markdown, edit it later as Markdown, or keep the same files in Git, you need a plugin.
Jetpack’s Markdown block
Jetpack adds a Markdown block to the editor. You write plain Markdown inside the block, and a Preview button on the block toolbar shows the result. Unlike pasting, the block keeps your Markdown source, so you can come back and edit it as Markdown later.
According to the Jetpack documentation, the block uses the markdown-it parser, which follows the CommonMark spec. It’s free, but Jetpack needs a connection to a WordPress.com account.
Jetpack works in the Classic Editor too. Under Jetpack → Settings → Writing, turn on “Write posts or pages in plain-text Markdown syntax”, and there’s a separate setting to allow Markdown in comments.
My take: Jetpack is a big plugin. If you already run it, the Markdown block is a nice bonus. I wouldn’t install Jetpack just for Markdown.
WordPress Markdown plugins in 2026
There are hundreds of Markdown plugins on wordpress.org, and many of the popular ones from a few years ago are now closed or abandoned. These are the ones I’d look at today. All of them were updated in 2026 and are tested with WordPress 7.1:
| Plugin | What it does | Good for |
|---|---|---|
| Jetpack | Markdown block for the block editor, Markdown setting for the Classic Editor and comments | Sites already running Jetpack |
| Markup Markdown | Replaces the editor with a Markdown editor (EasyMDE). Posts are saved as Markdown and rendered on the fly. | Writing everything in Markdown, like in a code editor |
| Ultimate Markdown | Imports .md files as posts, converts Markdown to blocks inside the editor, keeps a library of Markdown documents | Writing elsewhere, publishing in WordPress |
Markup Markdown is the closest you’ll get to “WordPress as a Markdown CMS”. Keep in mind that it replaces the block editor, and since your post content is stored as Markdown, switching away later means converting those posts.
Markdown plugins to avoid
Older tutorials (including the first version of this one) recommend plugins that you shouldn’t install anymore:
- WP Githuber MD: closed on wordpress.org in October 2024 because of a security issue.
- WP Editor.md: closed in April 2025, also for a security issue.
- Parsedown Party: closed in June 2024 at the author’s request.
- WP-Markdown: still listed, but not updated since 2017.
If you’re on one of these, plan a move. Before you install any plugin, check “Last updated” and “Tested up to” on its wordpress.org page. A Markdown plugin parses content, which makes it a classic place for security bugs.
Export WordPress posts to Markdown
Going the other way is a common need too, for example when you move to a static site generator or want a Markdown backup of your writing. Here are the options, from one post to the whole site:
- One post at a time: Simple Export to Markdown adds a panel to the block editor to download the current post as a
.mdfile (with front matter) or copy it as Markdown. - The whole site, from the dashboard: Static Site Exporter converts all posts and pages to Markdown files with YAML front matter and gives you a ZIP. It’s aimed at Jekyll, but the files work with Hugo and other generators too.
- The whole site, from the command line: export everything under Tools → Export, then run the open-source
wordpress-export-to-markdownscript on that XML file. It also downloads your images.
# Needs Node.js. Starts a wizard that asks for your export file. npx wordpress-export-to-markdown
For a single page, Pandoc works too. Save the page as HTML and convert it to GitHub Flavored Markdown:
pandoc -f html -t gfm page.html -o page.md
Expect some cleanup with every tool: shortcodes, page-builder layouts, and embeds don’t have a Markdown equivalent.
Markdown for AI: llms.txt and .md pages
There’s a newer reason WordPress sites care about Markdown: AI tools. Language models read Markdown far more easily than a full HTML page with menus, ads, and scripts. Two ideas have caught on:
- llms.txt: a Markdown file at the root of your site that lists your most important pages with a short description, following the llms.txt proposal. Yoast SEO and All in One SEO can generate one, and the standalone Website LLMs.txt plugin has over 50,000 active installs.
- Markdown versions of each page: plugins like LLM Markdown serve a clean Markdown copy of a post when you add
.mdto its URL. Others return Markdown when a client asks for it with anAccept: text/markdownheader.
To be clear: llms.txt is a proposal, not an official standard, and it isn’t clear how much the big AI crawlers actually use it. If your SEO plugin already has a toggle for it, it costs you nothing to try. I wouldn’t install three extra plugins for it.
FAQ
Does WordPress support Markdown without a plugin?
Partly. The block editor converts Markdown shortcuts (headings, lists, quotes, code, separators) as you type, and converts pasted Markdown into blocks. It doesn’t store Markdown or let you edit a post as Markdown. For that you need a plugin.
Why doesn’t **bold** work when I type it in WordPress?
Because the editor only has typing shortcuts for blocks and for inline code. Bold, italic, strikethrough, and links aren’t converted while typing. Use Ctrl/⌘ + B and I, or paste the Markdown instead: pasting does convert it.
How do I convert Markdown to WordPress blocks?
Copy the Markdown as plain text and paste it into an empty paragraph block. WordPress creates headings, lists, quotes, tables, code blocks, and separators automatically. To import whole .md files, use a plugin like Ultimate Markdown.
Can I use Markdown in WordPress comments?
Not by default. Jetpack has a setting that lets visitors write comments in Markdown.
Is WP Githuber MD still safe to use?
No. It was closed on wordpress.org in October 2024 because of a security issue, so it no longer gets fixes. Move to a maintained plugin or to the built-in shortcuts and paste conversion.
Keep learning
- New to Markdown? Start with my introduction to Markdown.
- For all the syntax on one page, see the Markdown cheat sheet.
- Writing tutorials with code? Read how to create Markdown code blocks.
- Pasting tables? My Markdown table guide covers alignment and the common gotchas.