URL to Markdown Converter
Paste a link to any webpage and get clean Markdown — optimised for AI chatbot training and LLM ingestion. We fetch the page for you. Free, no signup, and nothing you submit is stored.
Already have the HTML source? Try the HTML to Markdown converter →
How to convert a webpage to Markdown
There are several good ways to turn a live web page into Markdown, and the right one depends on how often you do it and how much code you want to write. For a one-off, the converter on this page is the fastest way to convert a URL to Markdown — paste the link, we fetch the HTML and convert it. If you're scripting, or batch-converting many URLs, a one-liner or a small script will serve you better. Here are the methods that actually work.
(Searching for url to md or web page to markdown? Same thing — .md is simply Markdown's file extension, and this page turns any web page into a .md file.)
Use this free converter Fastest
- 1Paste the page's address into the box at the top of this page — any public page works, like
https://yoursite.com/help. - 2Click Convert to Markdown — we fetch the page's HTML server-side and convert it in seconds, with no signup.
- 3Copy the Markdown or download it as a
.mdfile, named after the page.
Under the hood it's the same engine Resolve247 uses to ingest websites for AI chatbot training: it fetches the page (following redirects), keeps the heading structure, lists, links and tables, and strips the noise — scripts, styles, navigation and other boilerplate that pollutes LLM context. If the link turns out to serve a PDF, the PDF engine takes over automatically. Nothing you submit is stored.
CLI: curl + pandoc One-liner
If you live in a terminal, piping curl into pandoc converts a live page in one line — the same pairing our HTML converter page covers, with the fetch bolted on the front.
brew install pandoc # macOS — or: apt install pandoc curl -sL https://example.com/page | pandoc -f html -t gfm -o page.md
The -L flag follows redirects, and -t gfm emits GitHub-flavored Markdown (tables included). Two caveats: pandoc converts the whole document faithfully — navigation, footers and cookie banners come along too — and JavaScript-rendered pages come back empty, because curl only sees the raw HTML the server sends.
Python: requests + markdownify Best for batches
In Python, fetch with requests and convert with markdownify — the most direct route when you're looping over many URLs.
pip install requests markdownify
import requests from markdownify import markdownify as md html = requests.get("https://example.com/page", timeout=30).text print(md(html, heading_style="ATX")) # ATX = "#" headings
Note it converts everything it's given — nav bars, footers and cookie banners included. For article-style pages, trafilatura is the boilerplate-stripping alternative: trafilatura.extract(downloaded, output_format="markdown") returns just the main content.
Node.js: fetch + turndown
In a JavaScript stack, the built-in fetch plus turndown does the same job — turndown runs in Node or the browser, and a plugin adds GitHub-flavored tables.
npm install turndown turndown-plugin-gfm
const TurndownService = require("turndown"); const { gfm } = require("turndown-plugin-gfm"); const html = await (await fetch("https://example.com/page")).text(); const td = new TurndownService({ headingStyle: "atx" }); td.use(gfm); // tables, strikethrough, task lists console.log(td.turndown(html));
Like the other library routes, it converts the full document — and a single-page app's served HTML may contain no content at all. For rendered-then-converted output you'd need a headless browser in front.
Quick guide to Markdown formatting
New to Markdown? It expresses formatting with plain characters instead of tags — which is exactly why LLMs parse it so reliably. Here's how to read (and write) everything this converter produces:
| Formatting | Markdown format | Notes |
|---|---|---|
| Heading | # Title ## Section ### Sub | 1–6 # marks set heading levels 1–6 — the equivalents of <h1>–<h6>. |
| Bold | **bold text** | Renders as bold text (<strong>). |
| Italic | *italic text* or _italic text_ | Renders as italic text (<em>). |
| Bold + italic | ***both*** | Renders as both. |
| Underline | — | There's no underline syntax in Markdown — <u> content converts as plain text. |
| Strikethrough | ~~crossed out~~ | Renders as |
| Bullet list | - item or * item | One item per line (<ul><li>); indent two spaces to nest. |
| Numbered list | 1. first item | Numbers auto-correct when rendered — 1. on every line also works. |
| Link | [link text](https://example.com) | Text in square brackets, URL in parentheses. |
| Image |  | A link with a leading !. (This converter outputs text only.) |
| Inline code | `code` | Backticks render text in monospace. |
| Code block | ``` … ``` | Triple backticks on their own lines fence off a multi-line block (<pre>). |
| Quote | > quoted text | A > at the start of a line renders a blockquote. |
| Table | | Col | Col | | Pipes separate cells; a | --- | --- | row under the header row defines the table. |
Why convert webpages to Markdown for AI?
A live web page is mostly not content. View source on any URL and the words you actually read are buried in scripts, stylesheets, navigation, cookie banners, tracking pixels and div soup — routinely 90% of the bytes. Feed a raw page to an LLM and you pay for every one of those junk tokens, while the markup noise actively distracts the model from the meaning.
Markdown is the opposite: pure structure, near-zero overhead. Headings stay headings, lists stay lists, tables stay tables — and everything else disappears. That structure is what makes RAG pipelines work well: chunking a page on its real heading boundaries keeps each chunk coherent, which directly improves retrieval and answer quality.
It's also why URL-to-Markdown conversion is the first step of AI chatbot training. When Resolve247 trains a support chatbot on a website, it crawls the site and runs this exact conversion on every page — clean source material is half of what makes an anti-hallucination guarantee possible. An AI can only answer from your content reliably if your content was ingested cleanly.
And beyond AI: a converted page is plain text. It diffs in git, edits in any editor, and converts onwards to anything — and when the live page changes, re-converting the URL takes one click.
Want to train an AI chatbot on this data?
Your clean Markdown is chatbot training material. Start a 30-day free trial of Resolve247 and turn it into an AI support agent that answers your customers 24/7 — and never makes things up.
Start a Free Trial30-day free trial. No credit card required.
URL to Markdown FAQ
Yes. Paste a link and download the Markdown with no signup, no card and no email. There's a fair-use rate limit to keep it fast for everyone — a Resolve247 free trial removes it.
Nothing is stored. We fetch the page, convert it in memory and return the Markdown in the same request — we keep neither the page's HTML nor the output once the response is sent.
Any public, server-rendered page works — articles, docs, help centres, product pages. Two kinds don't: pages that build their content entirely with JavaScript serve empty HTML (there's nothing to convert), and pages behind a login can't be fetched. For both, save the rendered page from your browser and use the HTML to Markdown converter instead.
This tool converts one URL at a time — paste the next link and convert again. To do a whole site in one go, start a Resolve247 free trial: it crawls your website and ingests every page automatically, using this same conversion engine.
It still works. If the link serves a PDF instead of a webpage, the converter detects it and runs the PDF engine automatically — you get the same clean Markdown out. (Converting a PDF you have as a file? Use the PDF to Markdown converter.)
Yes. <script> and <style> blocks are removed entirely, and boilerplate like navigation, footers and cookie banners is stripped where it's detectable — that's most of what makes the output clean enough for LLM ingestion. Content markup (headings, lists, links, tables, emphasis) is preserved as Markdown.
URL to MD is the same thing as URL to Markdown — .md is simply the file extension Markdown uses. To convert a URL to MD, paste the page's address in the converter above, click Convert to Markdown, and download the output as a .md file.
Not by URL — our server fetches the page anonymously, so anything it can't reach without your credentials fails with a "couldn't access that page" error. The workaround: open the page in your browser, save it (Ctrl/Cmd+S, "Webpage, HTML Only"), and convert the file with the HTML to Markdown converter.
Yes — that's what it's built for. This is the same conversion engine Resolve247 uses to ingest websites for its AI support chatbots, so the output is structured for chunking, embedding and chatbot training.