How to Upload HTML to Claude
Claude does not reliably handle HTML through its standard upload. Convert to Markdown first, then paste or upload the Markdown — that is the path with the fewest dead ends.
Claude is happy to accept an HTML upload — it is the downstream behavior where things get interesting. Claude does not accept HTML files natively in the standard upload flow, so you have to convert first. This guide walks through the whole path: where to drop the file, what usually breaks, and when it is worth converting to Markdown before you upload. Web pages bring their furniture with them. Navigation, cookie notices and footers all convert just as faithfully as the article you actually wanted. Claude takes uploads via Paperclip attachment in a chat, or the Project Knowledge panel inside a Project, caps individual files around 30MB, and works with roughly 200,000 tokens of context on its default variant. The short version: give Claude clean structure — headings, lists, tables that survived the trip — rather than a raw HTML and the hope that the parser does the right thing.
Why convert to Markdown before uploading
The case for a Markdown intermediate step, specifically for HTML in Claude.
- Markdown is token-efficient. You can fit substantially more of an HTML document inside Claude's context window (currently around 200,000 tokens, give or take depending on the plan and model variant) once formatting overhead is gone.
- Claude respects Markdown structure. Headings become navigable sections, lists stay as lists, and tables that survive conversion stay readable for the model.
- You get a predictable failure mode. When an HTML parser inside Claude silently drops a page or column, you rarely notice until the answer is wrong. With Markdown, what you see is what the model sees.
- Batch and reuse get easier. A Markdown file drops cleanly into Custom GPTs, Claude Projects, NotebookLM notebooks, or a RAG pipeline without per-tool quirks.
- HTML uploads carry nav bars, cookie banners, and inline scripts that pollute the context. Markdown conversion strips the chrome and keeps the actual content.
Claude is especially strong at parsing Markdown structure — headings become navigable sections, and the long context window stays clean. Converted HTML files come through at around 98% text accuracy, with table fidelity we would call excellent. The usual catch with HTML: javaScript-rendered content requires pre-processing. Convert once and reuse the Markdown across Claude chats rather than re-uploading the original every time.
Step-by-step: HTML into Claude
- 1
Skip the direct HTML upload
Claude does not reliably accept HTML in the standard flow. Do not waste time wrestling with it — go straight to a Markdown conversion.
- 2
Convert the HTML file to Markdown
Open markdownconverters.com/conversion/html, drop your HTML file in, and download the .md output. Strip navigation and cookie banners first if you can. Otherwise the boilerplate ends up in your Markdown and competes with the actual content.
- 3
Skim the Markdown before you upload
Open the output in any text editor. Check that the main article survived and that navigation lists did not end up as content. Thirty seconds here saves an hour of debugging answers that were never going to be right.
- 4
Upload to Claude
In claude.ai, open the chat or Project where you want the file. Click the attachment icon and upload the .md file. Inside a Project, use Project Knowledge so Claude keeps it in context for every new chat.
- 5
Prompt with structure in mind
Reference the file by name, then point at a section rather than asking broadly. That means quoting the heading: "In the 'Pricing' section, what is the tier for..." instead of "what does this say about pricing". Claude retrieves noticeably better when you narrow it yourself.
- 6
Verify against the source
Ask Claude to quote the passage it is citing. If the quote does not appear in the Markdown, you have either a retrieval miss or a hallucination — re-check the conversion or narrow the prompt.
Gotchas with HTML in Claude
The specific failure modes we see most often — worth knowing before you spend an afternoon debugging "bad" model answers that are really upload problems.
- Claude has a 30MB-per-file cap and a total project knowledge cap around 200k tokens
big PDFs chew through it fast
- Excel files sometimes get parsed as plain CSV-like text, losing multi-sheet structure
Excel files sometimes get parsed as plain CSV-like text, losing multi-sheet structure
- PowerPoint uploads are not always consistent; Claude sees text but miss visual hierarchy
PowerPoint uploads are not always consistent; Claude sees text but miss visual hierarchy
- PDFs containing form fields or scanned pages may return partial text only
PDFs containing form fields or scanned pages may return partial text only
Getting better answers from Claude
- Upload through Paperclip attachment in a chat, or the Project Knowledge panel inside a Project — that is the path Anthropic actually supports, and the one least likely to silently truncate your file.
- Claude holds roughly 200,000 tokens, about 145k words. Converted HTML content is compact, but a long document plus a long conversation still competes for the same budget.
- Stay under about 10MB per file even though the hard cap is 30MB. Retrieval quality degrades well before the limit, particularly on dense HTML content.
- Claude reads Markdown structure well, so ask it to cite the heading it answered from. If it cannot name one, your content was not retrieved.
- Convert the article URL rather than a saved page where you can. Saved HTML tends to carry inlined scripts and styling that survive as noise in the Markdown.
Frequently asked questions
Can I upload an HTML file to Claude directly?
Not reliably. Claude either does not accept HTML at all or accepts it with heavy restrictions. The supported path is to convert to Markdown (or PDF, in a pinch) and upload that.
What is the file-size limit on Claude?
As of this writing, Claude typically caps individual uploads around 30MB, with a context window of roughly 200,000 tokens on the default variant. These numbers shift with releases and differ by plan, so verify in the app before relying on a specific figure. The practical limit is lower than the hard cap anyway — retrieval quality starts to degrade well before you hit it, especially for dense technical documents. Smaller, focused files beat one enormous one.
Does converting HTML to Markdown lose information?
Markdown drops visual formatting — fonts, colors, exact page layout — because it is a semantic format. It preserves headings, lists, tables, and text content, which is what LLMs actually use. For HTML specifically, the things that matter (Web scraping projects, Blog content migration) survive cleanly. Things like decorative styling do not, and usually should not.
How many HTML files can I upload to Claude at once?
Claude Projects cap Project Knowledge around 200k tokens total across all files. A single chat accepts multiple attachments, but the ~30MB per-file limit is the bottleneck for large HTMLs.
Is this safe — what happens to my HTML file?
When you upload to Claude, the content is processed by Anthropic's infrastructure under their terms. If the document is sensitive, consider using the enterprise tier (where retention and training policies differ), or convert locally where possible. Markdown Converters does not retain your uploaded files beyond the conversion window.
Keep going
Drop HTML files in and download Markdown ready to upload to Claude.
Check how much of your converted HTML will actually fit inside Claude's context window.
Same workflow, tuned for ChatGPT's upload quirks and context window.
Same workflow, tuned for Gemini's upload quirks and context window.
Working with PDF instead of HTML? The gotchas are different.
Background on why clean Markdown consistently outperforms native uploads across every major assistant.
Convert HTML for Claude in one step
Clean Markdown output ready to drop into Claude. Free tier, no account required to try.