Somewhere between "let me just check the one-star reviews before I buy this spatula" and "I have strong opinions about which review-checking service is least compromised" sits a quieter thought: none of this is helping.
So this extension removes it. All of it.
Stars, rating counts, the review section, the AI summary that cheerfully informs you that customers appreciate the battery life, the seller's 98% positive score, the histogram, the "customers say" cards. Amazon goes back to being a catalogue — a product, a price, a description, and your own judgement.
It's not a trust-scoring tool. It doesn't grade reviews, flag fakes or rank sellers — there are plenty of extensions for that, and they all still leave a number on the screen for you to argue with. This one removes the number. Which turns out to be remarkably restful.
Amazon has flirted with the idea themselves: in 2024 they tested search results with no star ratings at all. This just makes the test permanent, on every page, for you.
Four independent switches, plus a master one. Everything is on by default — turn back on whatever you actually miss.
| Switch | What disappears |
|---|---|
| Products → stars & counts | Rating block under the title, star icons in search results and carousels, the "Customer reviews" row in the spec table, the review filter in the search sidebar |
| Products → reviews | The entire review section, the AI-generated summary and insight cards, the review photo/video carousel |
| Sellers → rating | Feedback summary on the seller page, the star histogram, the rating next to "Sold by…" in the buybox, ratings in the other-sellers list |
| Sellers → feedback | The written feedback list, its filters, counts and pagination |
With both seller switches on, the whole Reviews panel on a seller's profile goes too — heading, frame and all — instead of leaving a tastefully empty box behind.
Works on 24 Amazon marketplaces (.com, .co.uk, .de, .fr, .it,
.es, .co.jp, .ca, .com.au, .in, and friends). Adding another is one
line in manifest.json.
To try it: open about:debugging#/runtime/this-firefox →
Load Temporary Add-on… → pick manifest.json. It's gone when you restart
the browser.
To keep it: release and beta Firefox refuse unsigned add-ons permanently, so it needs Mozilla's signature. This is free and takes minutes:
powershell -ExecutionPolicy Bypass -File tools\make-zip.ps1Upload amazon-unrated.zip to
addons.mozilla.org as
an unlisted add-on — private, not in the public gallery, signed
automatically without human review. Download the signed .xpi and install it
from about:addons.
Don't build the zip with
Compress-Archiveon Windows PowerShell 5.1: it writes path separators as backslashes instead of the forward slashes the ZIP spec requires, and files undersrc/andicons/may not resolve.make-zip.ps1builds the archive correctly and leavestools/out.
Developer Edition, Nightly and ESR can skip all this by setting
xpinstall.signatures.required to false in about:config. Release and beta
ignore that pref.
Same manifest.json, no separate build. Works on Edge, Brave and Opera too.
- open
chrome://extensions - turn on Developer mode
- Load unpacked → select this folder (the folder, not the manifest)
It survives restarts, no signing needed — but Chrome nags about developer mode
on every launch until you publish it to the Web Store. Chrome will also flag
browser_specific_settings as an unrecognised key: that's just a warning, the
key is Firefox's add-on ID and needs to stay.
Three problems, three answers.
Reviews must never flash on screen. The CSS is injected at
document_start and its rules are on by default — they're written as
html:not(.hr-off) …, so everything is already hidden during the few
milliseconds it takes content.js to read your settings. Turning a switch
off is what adds a class to <html>; the rules then stop matching. Worst
case you get a blink of missing content, never a blink of reviews.
Stars are easy to hit, the numbers next to them aren't. The icon has a
class. The 4.3 and the 1,234 ratings beside it live in sibling elements
with no stable id. So content.js walks up from the icon and hides the
containing row instead — stopping the moment that container starts holding
anything else (an image, a price, a heading), so a search result never loses
half its card.
Amazon uses the same star sprite for products and sellers. Which makes
independent switches interesting. content.js looks at where the star sits:
inside the buybox, the other-sellers list or a seller-profile block it's
marked .hr-hidden-seller, otherwise .hr-hidden. The two classes land in
different CSS groups. One approximation remains: on a seller's own profile
page every generic star counts as the seller's, including those on products in
their storefront.
Throughout, JavaScript only ever marks elements — CSS decides whether they're visible. That's why flipping a switch takes effect without re-scanning the page.
manifest.json MV3 manifest + the Amazon domain list
_locales/*/ UI strings — English default, Italian included
src/hide.css the hiding rules, injected at document_start
src/content.js applies preferences, classifies stars, marks clusters
src/popup.html toolbar popup
src/popup.css
src/popup.js
icons/icon.svg artwork source
icons/icon-*.png 16/32/48/128 — Chrome won't accept SVG in a manifest
tools/make-icons.ps1 regenerates the PNGs
tools/make-zip.ps1 builds amazon-unrated.zip for AMO signing
Amazon changes its markup constantly and runs A/B tests, so sooner or later
something will reappear. Inspect it, grab its id or data-hook, and add it
to the right group in src/hide.css. The groups are numbered and commented:
| block | switch |
|---|---|
| 1 | generic star icons (context-dependent) |
| 2 | productStars |
| 3 | productReviews |
| 4 | sellerStars |
| 5 | sellerReviews |
| 6 | the seller's whole review panel |
One deliberate omission: the "Rate this seller" button stays. It's an
action, not something to read. Add & #leave-feedback, to block 5 if you
disagree.
Most extensions in this space try to work out which reviews to trust. That's a different bet — and a harder one. If it's the bet you want to make:
- Amazon Review Guardian — grades individual reviews A–F on trust signals
- Amazon Fake Reviews Hider (Firefox) — filters paid and Vine reviews
- Amazon Review & Rating Filter (Chrome) — hides products by star distribution thresholds
- knockoff — filters pseudo-brand junk out of search results
- de-sponsor-amazon — removes sponsored results
- hide-ratings-extension — same idea as this one, for IMDb, Goodreads, MyAnimeList and Letterboxd
Unrated is the blunt option: no scoring, no heuristics, nothing to tune. The ratings simply aren't there.
Nothing is collected, nothing is transmitted. There is no background script,
no network access, no analytics. The only stored data is your five switches,
in storage.local, on your disk.
The manifest declares this to Mozilla as
data_collection_permissions.required: ["none"]. AMO rejects packages without
that declaration, so don't remove the key.
The only permission requested is storage. Not tabs, not <all_urls> — the
content script is limited to Amazon domains and does nothing but hide things.
English by default, Italian when the browser is set to Italian. Nothing to
configure — browser.i18n picks the locale.
Adding a language is one file. Copy _locales/en/messages.json to
_locales/<code>/messages.json, translate the message fields (leave the
keys and the description fields alone — those are notes for translators),
and open a PR.
The manifest resolves __MSG_*__ on its own; HTML doesn't, so popup strings
are swapped in by popup.js via data-i18n attributes. The English text
written inline in popup.html doubles as the fallback if a key is ever
missing.
MIT — see LICENSE.