Guide
Stripping HTML tags without losing the structure of the text
HTML is text wrapped in instructions. Getting the text back out sounds like deleting everything between < and >, but the result of that shortcut is hard to read: paragraphs run into each other, list items lose their bullets, table cells merge, & and stay as codes and the contents of scripts and style sheets end up in the middle of your text. This tool reads the HTML the way a browser does and writes out what a reader would see.
Structure is kept
Headings, paragraphs and other block elements become separate paragraphs, with or without an empty line between them. Line breaks from <br> stay line breaks. List items get a bullet of your choice, and items of numbered lists keep their numbers, including a list that starts at a number other than one. Nested lists are indented. A horizontal rule becomes a short separator line.
Tables
Each table row becomes one line. Cells are separated by tabs, so pasting the text into Excel or Google Sheets puts every cell in its own column, or by a vertical bar for reading. Header and body rows are treated alike.
Links and images
Links can be reduced to their text, written as “text (address)”, or turned into numbered references with the list of addresses at the end, which works well for emails and printed documents. Links whose text is already the address are not repeated. Images normally disappear, but their alternative text can be kept in square brackets, which preserves information such as chart descriptions.
Entities, scripts and hidden content
Character references like &, é, ’ and are decoded into the characters they stand for. Scripts, style sheets, templates, inline SVG drawings, embedded frames, media players and form controls are dropped, as is anything marked hidden. Whitespace from the HTML source is collapsed as a browser would show it, except inside preformatted blocks.
Safe with untrusted HTML
The HTML is parsed by your browser into an inert document that is never displayed. Scripts cannot run and nothing is loaded from the internet, not even images, so it is safe to paste the source of a suspicious email or an unknown page. Nothing is uploaded.
Where it helps
Translators get clean source text from a CMS export. Support teams paste an HTML email template to proofread its wording. Developers extract content for search indexes or tests. Researchers collect the text of saved web pages for analysis.
A worked example
The snippet with a heading “Spring menu”, a paragraph with a link to “our farm”, a two-item list and a small table becomes: Spring menu, an empty line, the paragraph text, an empty line, “• Asparagus soup – €7” and “• Lamb with mint sauce”, then “Day” and “Opening” separated by a tab, and “Mon–Fri” and “12–22” on the next line. The script and style blocks at the end leave no trace.
Checking the result
Compare the plain text with the page as it appears in a browser. Headings and paragraphs should be separated, list items should start with a bullet or number and table cells should line up when pasted into a spreadsheet. If words run together, the source probably uses spans or line breaks for layout instead of paragraphs; the Text Cleaner can then fix the spacing.
Related tools
Remove Markdown formatting with Markdown to Plain Text, encode or decode entities with the HTML Encoder, tidy the result with the Text Cleaner, or list the page’s links with Extract URLs.
Checked against the current version of the Strip HTML Tags on .

