HTML Stripper
Strip all HTML tags from a snippet or file, leaving just the visible text. Removes <script>/<style> content and comments entirely, decodes HTML entities, and turns block-level elements into line breaks.
Input
Settings
Output
Guides
What is an HTML stripper?
An HTML stripper removes markup from a page or snippet and leaves only the text a reader would actually see. It's the opposite of an HTML generator: instead of building tags, it takes tag-filled content — copied from a browser, exported from a CMS, or saved as a .html file — and reduces it to clean, plain text you can paste into an email, a spreadsheet, a search index, or a plain-text document.
How this tool works
- Paste your HTML into the HTML Input box, or upload an
.html/.txtfile with the uploader above it. - Adjust the Settings if needed:
- Preserve Line Breaks (on by default) turns
<br>tags and block-level elements (<p>,<div>, headings, list items, table rows, and similar) into line breaks, so paragraphs and list items land on their own line instead of running together. - Preserve Spaces keeps the original spacing and indentation instead of collapsing runs of whitespace down to a single space.
- Preserve Links (URLs) appends each link's destination in parentheses after its text —
Read more (https://example.com)— so hyperlink targets survive even though the anchor tags themselves don't.
- Preserve Line Breaks (on by default) turns
- The Plain Text Result updates automatically as you type. Copy it or download it as a
.txtfile.
What gets removed
- Every HTML tag — headings, divs, spans, tables, lists, and so on — is stripped, leaving only their text content.
<script>and<style>blocks are removed entirely, contents included. Their content was never visible to a reader, so it's never mixed into the plain-text result — unlike a naive tag-stripping regex, which can leak JavaScript or CSS as stray text.- HTML comments (
<!-- like this -->) are removed. - HTML entities in the remaining text are decoded to their literal characters, so
&becomes&,</>become</>,"becomes",'becomes', and common named entities ( ,—,©, currency symbols, and more) resolve to their real character rather than being left as escape codes.
Why not just use a browser's "Extract text" or innerText?
Grabbing an element's innerText/textContent in a browser works, but it depends on a live DOM and can't run outside one — which also means it can't be offered through this tool's API or scripted in a batch job. This tool parses the markup itself (script/style stripping, entity decoding, and block-boundary line breaks included), so it produces the same clean result whether you use it here, send it through the API, or run it against a whole folder of files in batch mode.
Common uses
- Cleaning copy-pasted content from Word, Google Docs, or a web page before pasting it somewhere that doesn't accept formatting.
- Turning an HTML email template or a scraped page into plain text for indexing or analysis.
- Stripping markup out of a CMS export before running a word count or spell check.
- Sanitizing HTML fragments down to their readable content for logs, notifications, or previews.
Privacy
This tool runs entirely in your browser. Your HTML is never uploaded to a server.