Automatic Markdown Conversion: What Actually Works in 2026
I convert a lot of web pages to Markdown. Docs pages for Cursor context, long-form articles for Claude, API references for ChatGPT. Doing it by hand - copy, paste, fix the broken tables, strip the cookie banner text - takes about three minutes per page. Automatic markdown conversion is supposed to make that zero.
Mostly it does. But "automatic" hides a split that matters a lot in practice: where the conversion runs. That one detail decides whether a tool can read the page you are actually looking at.
Two kinds of automatic
Server-side. You hand a URL to a service. Their server fetches the page, converts it, and hands back Markdown. Jina Reader (r.jina.ai/<url>) and Firecrawl both work this way.
Browser-side. The converter runs inside your browser, on the DOM your browser already rendered. MarkDownload and Web2MD work this way.
For a public blog post, both produce fine output. The split shows up the moment the page needs your session.
I tested this on pages I actually read
Here is what I ran, in November 2026:
| Page type | Jina Reader | Firecrawl | MarkDownload | Web2MD | |---|---|---|---|---| | Public blog post | clean | clean | clean | clean | | Public API docs | clean | clean | mostly clean | clean | | Logged-in Notion page | sign-in wall | sign-in wall | clean | clean | | Paywalled article (subscribed) | paywall teaser | paywall teaser | clean | clean | | Heavy JS dashboard | partial | clean | clean | clean |
The server-side tools are not broken. They are doing exactly what they should - fetching the page as an anonymous visitor. An anonymous visitor cannot see your Notion workspace or the article you pay for. No API key fixes that.
On the JS dashboard, Firecrawl held up because it runs a real headless browser. Jina Reader returned the shell and about half the content. If your use case is crawling a lot of public pages on a schedule, Firecrawl is genuinely the right tool and I still use it for that.
What the output looks like
Same docs page, converted with Web2MD:
# Rate limits
Requests are limited per API key, not per account.
| Tier | Requests/min | Burst |
|------|--------------|-------|
| Free | 60 | 100 |
| Pro | 600 | 1000 |
> Exceeding the burst ceiling returns `429` with a
> `Retry-After` header in seconds.
## Handling 429
Back off exponentially. Start at the value in `Retry-After`,
then double on each retry, capped at 60 seconds.
Tables survived, the blockquote survived, inline code survived. That is the bar, and most tools clear it on a clean docs page.
Here is the same page run through a server-side fetch while I was signed in to the private beta section:
# Sign in to continue
You need an account to view this page.
[Sign in](/login) · [Create account](/signup)
That is the whole output. Not a bug - just the gap between what a server sees and what I see.
Where Web2MD lands
Web2MD is a Chrome extension. It converts the page in front of you, in your browser, using your existing session. A few things that came out of using it daily:
Auth and paywall pages work. This is the main reason I reach for it. Internal wikis, Notion, subscriber-only articles, anything behind a login. No cookie export, no API key, no sharing credentials with a third party.
Nothing leaves the machine. Conversion happens locally. For internal docs, that is not a nice-to-have - it is the difference between being allowed to use the tool and not.
Token counter is built in. It shows the token count before you send anything. I have stopped guessing whether a page fits in a context window, which used to mean pasting it in and getting rejected. See the token counter write-up for how that number is calculated.
One-click send-to-AI. Converted page straight into ChatGPT or Claude without the clipboard round trip.
Honest limits
- Chrome only. Chromium browsers (Edge, Brave, Arc) work. Firefox and Safari do not. If you live in Firefox, MarkDownload is the better pick - it is open source, free, cross-browser, and the conversion quality is solid.
- Free tier is 3 conversions per day. Enough to evaluate it, not enough for a real research session. Pro is $9/month for unlimited.
- It is not a crawler. One page at a time, the page you are on. If you need to convert 500 URLs overnight, use Firecrawl. These are different jobs.
- Browser-side means the browser has to be open. No scheduled jobs, no CI step. That is the trade for session access.
Picking one
The decision is close to mechanical:
- Converting public pages at scale, unattended - Firecrawl, or Jina Reader if the pages are mostly static and you want something free and dead simple.
- Converting pages behind your login, one at a time, while you read - a browser extension. Web2MD if you want the token counter and send-to-AI; MarkDownload if you need Firefox or want open source.
- Privacy-sensitive internal docs - browser-side, so page content never reaches a third-party server.
Most people who do this seriously end up with two tools. A crawler for bulk public content, an extension for everything that needs a session. They are not competing for the same slot.
The part that surprised me
I assumed the hard problem in automatic markdown conversion was conversion quality - nested lists, tables, code blocks with weird highlighting. It mostly is not. Turndown-based converters have been good at that for years, and all four tools I tested handle a normal article fine.
The hard problem is access. Roughly two thirds of the pages I actually want in an AI context window need a session: internal docs, a paid subscription, a dashboard, a Notion workspace. For those, conversion quality is irrelevant because the tool never sees the content.
That is worth checking before you commit to anything. Take the five pages you convert most often and run them through whatever you are considering. If three of them come back as sign-in walls, you have your answer. More on that in the Jina Reader comparison.
If most of your pages need a login, Web2MD is free for 3 conversions a day - enough to test it against your own pages before deciding anything. If they are all public and you need bulk, use a crawler instead. No reason to pay for the wrong shape of tool.
Related Articles
Convertir texto a markdown: como lo hago desde el navegador (y cuando no funciona)
Web2MD vs Jina Reader: Browser Extension Guide
How to Convert PPTX to Markdown (What Actually Works in 2026)
Most Read
last 30 days- #1Can Claude Read Reddit? Why It Can't — And How to Fix It (2026)
- #2HTML vs Markdown for LLMs: I Wasted 67% of My Tokens for a Year
- #3Reducing Token Waste in ChatGPT and Claude: 7 Techniques That Cut Costs 72%
- #4Obsidian Web Clipper Official Plugin 2026: Complete Guide + When You Need More
- #5Reddit JSON API vs Scraping: The Honest 2026 Comparison for Developers
Latest Articles
- 2026-11-10ChatGPT to Markdown Chrome Extension: How I Export Chats Cleanly
- 2026-11-09Word to Markdown: 4 Ways to Convert .docx Files and Online Docs (Tested)
- 2026-11-07AI Markdown: How I Turned Any Web Page Into Clean Context for ChatGPT and Claude
- 2026-11-07How to Convert PPTX to Markdown (What Actually Works in 2026)
- 2026-11-07Convertir texto a markdown: como lo hago desde el navegador (y cuando no funciona)