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

  1. Paste the HTML: the source of a page, an email template, or text copied from a CMS with the tags showing.
  2. The plain text appears as you type. Paragraphs, headings, line breaks, list items and table rows each get their own lines.
  3. Under Options, choose whether to show link addresses, list bullets and image descriptions.
  4. Copy the text, or download it as a .txt file.

Examples

A paragraph with a link

Settings Default settings
Input
<p>Restart your router, then read the <a href="https://example.com/guide">setup guide</a>.</p>
<p>Still stuck? Call us.</p>
Result
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

Settings Default settings
Input
<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>
Result
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

Settings
  • Show link addresses: Off
  • Show image descriptions: On
Input
<p>Plug the cable into the yellow port. <img src="ports.png" alt="Back of the router"> See <a href="/help">Help</a>.</p>
Result
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 &amp;, &eacute; and &#8217; 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 &amp; 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 &amp; in the text.

What happens to &nbsp;, &amp; and other HTML codes?

They are turned back into the characters they stand for: &amp; becomes &, &eacute; becomes é, and number codes like &#8217; become ’. &nbsp; 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.

Updated October 23, 2026 · Works in current Chrome, Edge, Firefox and Safari · Runs entirely in your browser