Free tool — no signup required

Turn any webpage into clean Markdown.

Strips the nav, ads, scripts and footer and returns just the readable article text as Markdown — ready to paste into ChatGPT, Claude or a RAG pipeline. With word count, reading time and auto keywords.

Try:
Fetching and converting to Markdown…
https://en.wikipedia.org/wiki/Markdown 200 OK ⚡ 72.12 ms
1170
words
5.8
min read
7018
markdown chars
Markdown output
## History

## Rise and divergence

## CommonMark

## Variants

## Examples

### GitHub Flavored Markdown

### Markdown Extra

Markdown [ 9 ]  is a  lightweight markup language  for creating  formatted text  using a  plain-text editor .  John Gruber  created Markdown in 2004 as an easy-to-read  markup language . [ 9 ]  Markdown is widely used for  blogging ,  instant messaging , and  large language models , [ 10 ]  and also used elsewhere in  online forums ,  collaborative software ,  documentation  pages, and  readme files .

The initial description of Markdown [ 11 ]  contained ambiguities and raised unanswered questions, causing implementations to both intentionally and accidentally diverge from the original version. This was addressed in 2014 when long-standing Markdown contributors released  CommonMark , an unambiguous specification and test suite for Markdown. [ 12 ] [ better   source   needed ]

Markdown was inspired by pre-existing  conventions  for marking up  plain text  in  email  and  usenet  posts, [ 13 ]  such as the earlier markup languages  setext  ( c.   1992 ),  Textile  ( c.   2002 ), and  reStructuredText  ( c.   2002 ). [ 9 ]

In 2002,  Aaron Swartz  created  atx  and referred to it as "the true structured text format". Gruber created the Markdown language in 2004 with Swartz as his "sounding board". [ 14 ]  The goal of the language was to enable people "to write using an easy-to-read and easy-to-write plain text format, optionally convert it to structurally valid  XHTML  (or  HTML )". [ 5 ]

Another key design goal was  readability , that the language be readable as-is, without looking like it has been marked up with tags or formatting instructions, [ 9 ]  unlike text formatted with "heavier"  markup languages , such as  Rich Text Format  (RTF), HTML, or even  wikitext , each of which have obvious in-line tags and formatting instructions which can make the text more difficult for humans to read. [ citation needed ]

Gruber wrote a  Perl  script,  Markdown.pl , which converts marked-up text input to valid,  well-formed  XHTML or HTML, encoding angle brackets ( < ,  > ) and  ampersands  ( & ), which would be misinterpreted as special characters in those languages. It can take the role of a standalone script, a plugin for  Blosxom  or  Movable Type , or of a text filter for  BBEdit . [ 5 ]

As Markdown's popularity grew rapidly, many Markdown  implementations  appeared, driven mostly by the need for additional features such as  tables ,  footnotes , definition lists, [ note 1 ]  and Markdown inside HTML blocks. [ citation needed ]

The behavior of some of these diverged from the reference implementation, as Markdown was only characterised by an informal  specification [ 17 ]  and a  Perl  implementation for conversion to HTML. [ citation needed ]

At the same time, a number of ambiguities in the informal specification had attracted attention. [ 18 ]  These issues spurred the creation of tools such as Babelmark [ 19 ] [ 20 ]  to compare the output of various implementations, [ 21 ]  and an effort by some developers of Markdown  parsers  for standardization. However, Gruber has argued that complete standardization would be a mistake: "Different sites (and people) have different needs. No one syntax would make all happy." [ 22 ]

Gruber avoided using curly braces in Markdown to unofficially reserve them for implementation-specific extensions. [ 23 ]

In 2012, a group of people, including  Jeff Atwood  and  John MacFarlane , launched what Atwood characterised as a standardization effort. [ 12 ]

A community website now aims to "document various tools and resources available to document authors and developers, as well as implementors of the various Markdown implementations". [ 26 ]

In September 2014, Gruber objected to the usage of "Markdown" in the name of this effort and it was rebranded as "CommonMark". [ 13 ] [ 27 ] [ 28 ]  CommonMark.org published several versions of a specification, reference implementation, test suite, and "[plans] to announce a finalized 1.0 spec and test suite in 2019". [ 29 ]  A finalized 1.0 spec has not been released, as major issues still remain unsolved. [ 30 ]

Nonetheless, several websites and projects have adopted CommonMark, including  Codeberg ,  Discourse ,  GitHub ,  GitLab ,  Reddit ,  Qt ,  Stack Exchange  ( Stack Overflow ), and  Swift .

In March 2016, two relevant informational Internet  RFCs  were published:

Websites including  Bitbucket ,  Diaspora ,  Discord , [ 32 ]   GitHub , [ 33 ]   OpenStreetMap ,  Reddit , [ 34 ]   SourceForge [ 35 ]  and  Stack Exchange [ 36 ]  use variants of Markdown to make discussions between users easier.

Depending on implementation, basic inline  HTML tags  may be supported. [ 37 ]

Italic text may be implemented by  _underscores_  or  *single-asterisks* . [ 38 ]

Many platforms implement spoiler formatting that hides text until hovered, clicked or tapped. The most common markup is ||spoiler|| used by Discord [ 39 ] , Telegram [ 40 ] [ 41 ] , various Matrix clients [ 42 ] , now defunct Guilded [ 43 ] , a forum called Flarum [ 44 ] , a NodeBB plugin [ 45 ] , the imageboard engine JSChan [ 46 ]  and possibly more.

GitHub  had been using its own variant of Markdown since as early as 2009, [ 47 ]  which added support for additional formatting such as tables and nesting  block content  inside list elements, as well as GitHub-specific features such as auto-linking references to commits, issues, usernames, etc.

In 2017, GitHub released a formal specification of its  GitHub Flavored Markdown  (GFM) that is based on  CommonMark . [ 33 ]  It is a  strict superset  of CommonMark, following its specification exactly except for tables,  strikethrough ,  autolinks  and task lists, which GFM adds as extensions. [ 48 ]

Accordingly, GitHub also changed the parser used on their sites, which required that some documents be changed. For instance, GFM now requires that the  hash symbol  that creates a heading be separated from the heading text by a space character.

Markdown Extra is a  lightweight markup language  based on Markdown implemented in  PHP  (originally),  Python  and  Ruby . [ 49 ]  It adds the following features that are not available with regular Markdown:

Markdown Extra is supported in some  content management systems  such as  Drupal , [ 50 ]   Grav (CMS) ,  Textpattern CMS [ 51 ]  and  TYPO3 . [ 52 ]

* John Gruber
* RFC   7763   –   " The text/markdown Media Type, " [ 2 ]   Informational.   Introduces  MIME  type  text/markdown .
* RFC   7764   –   " Guidance on Markdown: Design Philosophies, Stability Strategies, and Select Registrations, " [ 7 ]   Informational.   Discusses and registers the variants  MultiMarkdown ,  GitHub Flavored Markdown  (GFM),  Pandoc , and Markdown Extra (among others). [ 31 ]
* Markdown markup inside  HTML  blocks
* Elements with id/class attribute
* "Fenced code blocks" that span multiple lines of code
* Tables [ 49 ]
* Definition lists
* Footnotes
* Abbreviations

The Markdown reader is one of nine checks in the full API — SEO audit, tech stack detection, security-header grading, public contacts, and product data, all from the same one HTTP call. Free tier, 1,000 requests/month, no card required.

Try the full API free →

Why convert a webpage to Markdown

Markdown is the format large language models read most reliably, and it is far lighter than the raw HTML a page ships with. Converting a website to Markdown before you use it gets you:

How the converter works

Give it a URL and it fetches the page once, runs readability extraction to isolate the main content, drops the navigation, sidebars, ads, cookie notices, scripts and styling, then converts what is left to Markdown. You also get a word count, an estimated reading time and the top keywords pulled from the text.

It reads the server-rendered HTML, so a page that builds its entire body client-side with JavaScript may return little text. Most articles, blog posts, documentation and news pages render server-side and convert cleanly.

URL to Markdown vs copy-paste vs a scraping API

Copy-pasting from the browser drags in invisible formatting and loses the link and heading structure. A general readability library gives you clean HTML but not Markdown, and you still have to host and run it. Firecrawl and Jina Reader do a similar job well but are built around paid plans at volume. This page is free for one-off conversions, and the API behind it has a free tier of 1,000 requests a month for when you need it inside a pipeline — alongside eight other checks from the same one HTTP call.

Frequently asked questions

How do I convert a website to Markdown?

Paste the page's URL into the box above and press Check. The tool fetches the page, strips the navigation, ads and scripts, and returns the main article as clean Markdown you can copy with one click.

Is there a free URL to Markdown API?

Yes. This page is free with no signup, and the API it is built on has a free tier of 1,000 requests a month that returns the same Markdown plus word count, reading time and keywords as JSON.

Why convert HTML to Markdown for an LLM or RAG pipeline?

Markdown keeps headings, lists and links as structure the model understands while removing the boilerplate that wastes context and tokens. It is the cleanest way to feed a web page to ChatGPT, Claude or a retrieval pipeline.

Does it work on JavaScript-rendered pages?

It reads the server-rendered HTML, so a page that builds its whole body client-side may return little text. Articles, blog posts, docs and news sites almost always render server-side and convert cleanly.

Can I convert several URLs at once?

Not on this page, which does one URL at a time. The full API has a batch endpoint for up to 10 URLs per call alongside the single-URL endpoint, on the same free tier.