Remove HTML Tags
Strip the markup and keep the words — script and style bodies dropped, entities decoded, and the paragraph structure of the page still readable.
Runs 100% in your browser•Nothing is uploaded to a server•Instant results
Options
Also clean up
Each of these runs the same code as its own page. The full set, all switched on at once, is the text cleaner.
Input
Before and after
Stripping the markup without stripping the meaning
Pasting HTML into a plain-text field and deleting everything between angle brackets by hand produces something readable about half the time. The failures are consistent: the body of a <script> block is not markup, so removing the tags around it leaves a line of JavaScript sitting in the middle of the prose. Entities like &, and ’ are not tags, so they survive the pass and show up literally. And every paragraph, heading and list item runs into the next one, because the line breaks in an HTML document live in the tags rather than in the text.
Each of those is a checkbox here. Keep line structure turns the closing edge of a block element — </p>, </li>, </h2>, </tr> — and the two self-contained breaks, <br> and <hr>, into a newline, while inline elements like <strong> and <a> vanish without leaving a seam. That is the difference between a readable list and one long run-on line. Drop script and style removes those elements including their contents. Decode entities converts the named, decimal and hexadecimal forms back to the characters they stand for.
The tidy pass at the end collapses the runs of spaces and blank lines that the source indentation leaves behind, which is almost always what you want, since HTML source is indented for the developer rather than for the reader. Switch it off if you are extracting from a <pre> block where the spacing is content.
Nothing here renders the HTML. The text you paste is treated as a string and processed with pattern matching, never inserted into the page, so pasting markup from an untrusted source cannot execute anything — and, like every tool on this site, it never leaves your browser.
A card copied out of page source
<p>Revenue rose <strong>12%</strong> year on year.</p> <ul><li>North – steady</li></ul>
Default settings: Revenue rose 12% year on year. North – steady
HTML Tags questions
Will pasting a page with JavaScript in it run anything?
No. What you paste is handled as text from the first character to the last — it is matched against patterns and never written into the document, so there is no point at which a browser could parse it as markup or execute it. The contents of script, style, noscript and template elements are removed outright by default, so they do not end up in the output either.
What happens to &, and ’?
With the decode option on they become &, a space and ’ respectively. Entities are not tags, so a strip-the-angle-brackets pass leaves them behind as literal text, which is the most common reason a stripped page still looks wrong. Named entities, decimal references and hexadecimal references are all handled. Turn the option off if you are working on the markup itself and want the source form preserved.
Why is my list all on one line?
Because the line-structure option is off. HTML has no line breaks of its own — the visual layout comes from the block elements — so removing the tags without translating them collapses everything into a single paragraph. With the option on, the closing tag of each block element becomes a newline, so paragraphs, headings, list items and table rows each land on their own line.