URL to Markdown Converter
Paste a page into a chat window and half your context goes on navigation and cookie notices. The model reads the menu instead of the article. This converter keeps the content, drops the furniture, and tells you exactly what it removed.
Why convert a webpage to markdown for llm work?
Because raw HTML wastes the budget you care about. Class names, wrapper divs and inline styles all consume tokens and none of them mean anything to a model.
Plain text solves the waste and creates a different problem. Strip everything and a heading becomes an ordinary sentence, a list becomes a paragraph, and the model has to infer structure you already had.
Markdown sits between the two. A ## costs two characters and tells the model a section started. A - marks a list item unambiguously. In our experience that trade — a handful of tokens for explicit structure — is the best value in the whole pipeline.
It also stores well. A markdown file is readable by a person, diffable in git, and ready for a retrieval system without another conversion step.
What gets stripped when you turn a website to markdown
Three passes, in order. Scripts, styles, iframes and forms go first, because they are never content.
Then the furniture: nav, header, footer and aside elements, plus any block whose class or id reads like navigation, sidebar, cookie banner, share widget or advert.
Finally, if the page marks up an article or main element, we take that and ignore the rest. A page that labels its own content is more reliable than any heuristic we could write.
Every converter does roughly this. The difference here is that we tell you what went. The amber panel after conversion lists each removal with a count, so when a section you wanted is missing you know immediately rather than re-reading the source to work out why. Turn off main content mode and it comes back.
The honest failure case: a site that names its article container something like promo-body will lose real content to the junk filter. Rare, but it happens, and the removal note is how you catch it.
How to keep output llm ready without wasting tokens
Turn links off first. On a documentation page or anything link-heavy, inline markdown links can account for a large share of the output, and a model cannot follow a URL anyway.
Images next.  is a lot of characters for information the model cannot see. Keep them only when the alt text carries meaning you need.
Tables are the exception worth paying for. A markdown table keeps rows and columns aligned, and flattening one into prose reliably confuses a model about which value belongs to which heading.
The token counter is a guide, not a measurement. It divides characters by four, which is a rough English average — code and non-Latin scripts tokenise very differently. There is more on budgeting in keeping inside a token budget.
Where a markdown extractor online falls short
One limit matters more than the rest. We fetch the first HTML response and convert that. On a site that builds its content with JavaScript, that response is close to an empty shell.
You get an error saying so rather than a blank file, which at least tells you what happened. The reasons are covered in pages that render client-side.
Services like Jina Reader run a real browser to get around this. We have chosen not to. Rendering pages server-side is expensive per request and a much larger attack surface than a plain fetch, and we would rather be clear about the limit than quietly become a browser farm.
Sites can also refuse us outright. A 403 usually means the origin blocks requests that do not look like a browser session, which no converter routes around reliably.
Other ways into the same output
Already have the HTML? Skip the fetch entirely — our HTML to text converter strips tags from markup you already hold, and never touches a server.
Need the whole page rather than the article, including meta tags and images as separate groups? The website content extractor is the broader tool, with the same fetch behind it.
Writing markdown rather than extracting it, the README generator covers the structure most projects need.
Getting clean output from a URL to markdown converter
Convert with main content on, read the removal note, and only widen the net if something is missing. That order saves the most time.
Strip links and images when a model is the reader. Keep tables always. Check the token estimate before pasting rather than after your context fills up.
If you are publishing rather than consuming, the llms.txt convention is one attempt at pointing automated readers at markdown versions of your own pages — worth understanding, though adoption is far from settled.
Frequently Asked Questions
Why is markdown better than plain text for a model?
+
How accurate is the token estimate?
+
The converter removed a section I needed. What now?
+
Why does it prefer the article element over the whole page?
+
Should I turn links off before feeding output to a model?
+
Why do some code blocks lose their language tag?
+
Does this work on pages that build content with JavaScript?
+
What happens to tables?
+
Is the output the same as what Jina Reader or similar APIs return?
+
Can I convert several pages at once?
+
Related Tools You Might Like
JSON Formatter
Format, validate, and minify JSON data
HTML Minifier
Minify HTML code for better performance
Color Picker
Pick colors and generate beautiful color palettes
Website Content Extractor
Extract structured content, meta tags, and SEO data from any website
Google Dork Generator
Build advanced search operator queries without memorising the syntax
Google Search Operators
Every search operator, tagged with whether Google still supports it
