HTML to Text
Turn HTML into clean plain text, with paragraphs, line breaks, lists and link addresses kept.
Runs in your browser. Nothing you enter is uploaded.
How to use HTML to Text
- Paste the HTML: the source of a page, an email template, or text copied from a CMS with the tags showing.
- The plain text appears as you type. Paragraphs, headings, line breaks, list items and table rows each get their own lines.
- Under Options, choose whether to show link addresses, list bullets and image descriptions.
- Copy the text, or download it as a .txt file.
Examples
A paragraph with a link
<p>Restart your router, then read the <a href="https://example.com/guide">setup guide</a>.</p> <p>Still stuck? Call us.</p>
Restart your router, then read the setup guide (https://example.com/guide). Still stuck? Call us.
The link text stays and its address follows in brackets. Each paragraph is its own block.
A table
<table> <tr><th>Plan</th><th>Speed</th></tr> <tr><td>Basic</td><td>100 Mbps</td></tr> <tr><td>Pro</td><td>1 Gbps</td></tr> </table>
Plan Speed Basic 100 Mbps Pro 1 Gbps
Each row is a line, with a tab between cells, so it pastes into a spreadsheet as columns.
Text only, with image descriptions
- Show link addresses: Off
- Show image descriptions: On
<p>Plug the cable into the yellow port. <img src="ports.png" alt="Back of the router"> See <a href="/help">Help</a>.</p>
Plug the cable into the yellow port. [Back of the router] See Help.
The link keeps only its text, and the image becomes its description in brackets.
How it works
The converter reads the HTML the way a browser lays it out, then writes what a reader would see as plain text:
| In the HTML | In the text |
|---|---|
| Paragraphs and headings | A block of text with a blank line before and after |
| Line breaks (br) and divs | A new line |
| List items | A line starting with • or 1. (nested lists are indented) |
| Table rows | One line per row, with a tab between cells |
| Links | The link text, then the address in brackets |
| Images | Nothing, or the alt text in [brackets] if you turn it on |
| Scripts, styles, comments and the head | Removed |
Spaces and line breaks in the code are collapsed the way a browser does it, so the text has the spacing you see on the page. Text inside pre blocks keeps its exact spacing.
Good to know
- Character codes like &, é and ’ are turned back into &, é and ’. A no-break space becomes a normal space.
- Links: page anchors (#top) and javascript: links don’t get an address. Email links show just the address. When the link text is already the address, it isn’t repeated.
- Tables paste into Excel or Google Sheets as columns, because cells are separated by tabs.
- Broken HTML still works: tags that are never closed are fine, and a < that doesn’t start a tag stays in the text.
- Safe: the HTML is only read as text. Nothing in it runs, no images are loaded, and nothing you paste leaves your browser.
Questions
How do I remove HTML tags in Excel?
Select the cells, press Ctrl+H, type <*> in Find what, leave Replace with empty and choose Replace All. The * matches anything between < and >, so every tag goes. Codes like & stay, so paste the text here if you need them turned back into characters.
How do I strip HTML tags in JavaScript or Python?
In a browser, new DOMParser().parseFromString(html, "text/html").body.textContent gives the text, but paragraphs and list items can run together. In Python, BeautifulSoup(html, "html.parser").get_text("\n", strip=True) puts a line break between each piece of text. A regex like /<[^>]*>/g breaks on > inside attributes and leaves codes like & in the text.
What happens to , & and other HTML codes?
They are turned back into the characters they stand for: & becomes &, é becomes é, and number codes like ’ become ’. becomes a normal space, and invisible soft hyphens are removed.
Is it safe to paste HTML from an email or a website?
Yes. The HTML is read as text and never runs: scripts are removed without running, and images and other files aren’t loaded. Nothing you paste leaves your browser.
Why does my text lose its line breaks when I remove the tags?
In HTML, line breaks come from tags like <p>, <br> and <li>, not from the line breaks in the code. Simple tag removers delete those tags and the text runs together. This tool turns them into line breaks and blank lines instead.
Related tools
- URL Decode and Encode Decode %-encoded links and list their parameters, or encode text.
- Invisible Character Remover Find and remove zero-width spaces and other hidden characters.
- Remove Line Breaks Fix text copied from PDFs and emails that breaks mid-sentence.
- JSON Formatter Format, validate and repair JSON, with the exact line of every error.
- Base64 Decode and Encode Decode Base64 to text, images or files, or encode text.
Updated October 23, 2026 · Works in current Chrome, Edge, Firefox and Safari · Runs entirely in your browser