Remove AMP from your URLs
AmputatorBot strips AMP from links and returns the canonical version — as a website, a Reddit bot , and a free public API . Built to push back on Google's power over independent publishers, protect user privacy, and support the Open Web.
Spot AMP URLs by looking for amp in the path, e.g. google.com/amp/… or bbc.com/n/amp/….
The case
The problem with AMP
AMP was Google's 2015 attempt at "speeding up the mobile web" — pages first, later extended to stories, ads, and email. On its face, a reasonable goal. The execution was less reasonable.
The premise was always shakier than the pitch. Real-world benchmarks against well-built non-AMP pages were mixed at best, and the gains required publishers to surrender most of the stack: AMP pages must use Google's component subset, drop their own JavaScript, and serve from Google's cache. Publishers traded functional richness and control over their own sites for placement Google was withholding by other means.
For five years, Google's Top Stories carousel on mobile, the most valuable real estate in Search, exclusively featured AMP pages. Publishers who declined to adopt AMP were sidelined there regardless of how good their actual journalism was. Plenty adopted AMP anyway, and then watched their ad revenue drop: internal Google documents (unsealed in the US antitrust case) show AMP pages brought publishers about 40% less revenue.
It gets worse. Those same internal emails surface lines like "how to publicly justify making something slower", because Google was throttling non-AMP ads with a one-second artificial delay to give AMP what one employee called a "nice comparative boost." Two members of AMP's own advisory committee, Jeremy Keith and Terence Eden, eventually resigned, both citing AMP's persistent hostility to users and publishers.
Cached AMP pages also keep users inside Google's ecosystem: the
publisher's domain is hidden behind a google.com/amp
prefix, and Google's own
support docs
note that "Google and the publisher that made the AMP page may each
collect data about you." Mozilla and Apple both publicly opposed the
standards Google introduced to paper over the URL-obfuscation issue.
Google dropped the AMP-exclusive Top Stories requirement in July 2021 after public backlash and antitrust scrutiny. AMP itself has been slowly declining ever since. But the damage to the web ecosystem was already done: Google normalized platform-controlled content delivery, distorted publishing incentives, and AMP URLs are still everywhere.
AMP's flaws threaten the Open Web — and user privacy along with it. AmputatorBot exists to empower individuals to push back.
Under the hood
1.7M+ AMP links converted since 2019
The original AmputatorBot was a Python bot held together with PRAW and good intentions. As of 2026 it's rewritten in Rust — both for the performance improvement and, frankly, because Rust is fun. It's now also a Devvit app for Reddit's new Developer Platform, with the legacy Python bot still running in parallel as a safety net during the transition.
Hosted in the EU on Scaleway (Paris/AMS), open source on GitHub, and free to use — same as it's been since day one. The API is public, has no auth, and accepts the same query shape it did in 2019, so any tool you've wired up against it keeps working.
While you're here
There are bigger problems than AMP
AMP links are annoying. An ongoing invasion killing civilians is much worse. United24 is Ukraine's official donation platform — humanitarian aid, reconstruction, and defense. This bot is quite cheap to run; if you can spare something, it'll do more good there than here.
How it actually works
Eleven ways to find the canonical
Stripping /amp from a URL gets you the right answer
roughly half the time. The other half it produces broken links,
wrong articles, or 404s — different sites bury the canonical in
different places, and there's no single tag we can rely on. So
AmputatorBot tries each of these in priority order, and falls
through to the next when one doesn't match. The result you get back
tells you exactly which one succeeded.
The last one, guess-and-check, is the interesting one: when nothing on the page tells us what the canonical is, we strip the AMP markers, fetch the resulting page, and compare its article text to the AMP page's article text. If they're similar enough, we trust the guess. If not, we return nothing — better no answer than a wrong one.
-
01 HTML canonical tag
The page declared its own canonical URL.
HTML <link rel="canonical" href="https://example.com/article" /> -
02 canurl URL parameter
The AMP URL carries a canurl pointing at the real page.
URL https://amp.example.com/article?canurl=https://example.com/article -
03 OpenGraph URL
Pulled from the page's social-sharing metadata.
HTML <meta property="og:url" content="https://example.com/article" /> -
04 Google AMP cache URL
Decoded straight from the Google AMP cache URL.
URL https://www.google.com/amp/s/example.com/article/amp/ -
05 Google AMP page JS redirect
Extracted from the cached AMP page's redirect handler.
JavaScript const redirectUrl = "https://example.com/article"; -
06 Bing AMP cache
Extracted from a Bing AMP cache marker.
JSON {"originalUrl": "https://example.com/article", ...} -
07 Schema.org metadata
From a JSON-LD <script> block on the page.
JSON {"@context": "https://schema.org", "@type": "Article", "mainEntity": "https://example.com/article"} -
08 t.co title heuristic
Read off Twitter's t.co interstitial page.
HTML <title>https://example.com/article — t.co</title> -
09 Meta refresh redirect
A <meta http-equiv="refresh"> on the page points at the real URL.
HTML <meta http-equiv="refresh" content="0; url=https://example.com/article" /> -
10 Heuristic URL transformation
Strip AMP markers from the URL; the orchestrator separately verifies via article-text comparison.
URL https://news.sky.com/story/amp/article → https://news.sky.com/story/article (orchestrator then fetches + compares article text to determine confidence) -
11 Cached from a previous run
AmputatorBot resolved this AMP URL within the past year.