Clean Web Clipper Add to Chrome (free)

Under the hood · ·

How Clean Web Clipper extracts an article, and where it stops

How Clean Web Clipper extracts an article comes down to four steps that run inside the page you are looking at: find the article, remove the furniture, convert to Markdown, and refuse a page that holds no article. The extraction pipeline never calls a server; the only address the extension talks to is our statistics endpoint.

How does it find the article on a page?

First the extension looks for the obvious containers an article usually lives in. When there is no such container – and on a lot of real sites there is not – it falls back to measuring text density: which block holds the most paragraph text that is not inside a link. The narrowest block that still holds almost all of that text wins.

A block whose text is mostly link labels is a menu or a feed, not an article, and it is rejected – unless it holds more than about 1200 characters of real text, because long articles legitimately contain many links.

The Clean Web Clipper window with a Wikipedia article as Markdown: frontmatter with title, source, date and extraction: dom
The same Wikipedia article in the Clean Web Clipper reading view, with 13,001 words, 4 tables and 99 footnotes found
Clean Web Clipper refusing a page with “I can’t read this page yet”, the page address and an “I need this site” button
Add to Chrome (free)Free, no account · tested on 512 pages in August 2026, 0 crashes. Extraction works offline; one switch in settings stops usage events.For Chrome on a computer

Remove menus, banners and repeated navigation

Then the known non-content elements go: navigation, banners, share bars, cookie notices, paginators, “read next” feeds and logo strips. Repeated lines are removed, because navigation duplicated in every section is the single biggest source of noise in a clipped page.

what other clippers keep

[Skip to content](#main) [Log in](/login) [Sign up](/register)
[Home](/) [News](/news) [Sport](/sport) [Culture](/culture) [More](/more)

We use cookies and similar technologies to improve your experience.
[Accept all] [Manage preferences]

# The article you came for

Actual first paragraph of the text.

<div class="promo-inline">

## Read next
[Another headline](/a) [One more headline](/b) [And a third](/c)

what ends up in the note

# The article you came for

Actual first paragraph of the text.
The same news page: what a typical clipper keeps, and what Clean Web Clipper saves

Convert tables, code and footnotes to Markdown

Tables are serialised by the extension itself rather than a generic plugin, because generic converters break on a cell containing a list or a code block. Code fences take the language from the page’s own markup. Reference links are collected into Markdown footnotes before the sanitiser strips the ids they rely on – the order matters, and getting it wrong silently loses every footnote. How many tables each engine kept on the same 109 pages is counted on the benchmark page.

When does it answer “no article”?

On a storefront, a feed or a search result there is no article. The extension checks the finished Markdown – if more than a quarter of it sits inside link labels, it reports “no article” rather than handing you three hundred links. That refusal is deliberate, and it is why the character counts here are lower than tools that always return something.

If it refuses a real article, send us the address of that page.

Know what it does not do

Find answers to common questions

How long does a clip take?
In a run on 17 live pages on 12 September 2026, a ready Markdown preview took 90–820 ms from opening the window: ordinary articles took 123–400 ms, and the slowest was an 86,000-character Stack Overflow thread. The timing is shown in the corner of the clip window.
Does it work on single-page applications?
Yes. Clean Web Clipper reads the DOM after rendering, so a documentation site built in JavaScript is captured as you see it.
What is the jsonld-articlebody extraction mode?
Some pages ship the article text in their structured data but never finish rendering it. When the structured data holds substantially more text than the DOM, the extension uses it and records that it did.
Add to Chrome (free)Free, no account · tested on 512 pages in August 2026, 0 crashes. Extraction works offline; one switch in settings stops usage events.For Chrome on a computer