Skip to content

Latest commit

 

History

History
99 lines (47 loc) · 2.53 KB

File metadata and controls

99 lines (47 loc) · 2.53 KB

Merlin Unused ImageRemover v1.4.1 with Page Builder support. Removes all unused images from /pub/media that are not being used by products, cms pages, pagebuilder or Amasty's MegaMenu

** Changelog

v.1.4.1 Fix: Issue with detecting all pagebuilder images fixed.

v1.4.0 New: Page Builder extractor parses data-background-images JSON (even when HTML-entity encoded), src/srcset, and inline background-image:url(...) to keep PB assets. Minor: expanded generic HTML parsing for srcset and data-src attributes.

v1.3.3 Fix PHP syntax issues in previous builds; clean, validated classes. Keep logo/* by default and read logos/favicons from config.

v1.3.2 Preserve store logos & favicons via ConfigExtractor of core_config_data (e.g., design/header/logo_src, design/email/logo, sales/identity/logo, design/head/shortcut_icon). Default protection for logo/ (skip deletion).

v1.3.1 Hard-skip pub/media/amasty/webp/ (incl. wysiwyg/), add --exclude.

v1.3.0 Add Amasty Mega Menu extractor.

v1.2.0 Intensive DB scan with JSON/serialized/URL/HTML decoding; stop ignoring favicon/.

v1.1.0 Whole-DB scanner enabled by default; --no-db-scan to skip.

v1.0.x Initial product/category/CMS scans, dry-run, confirmations.

** Usage

Preview (no changes), verbose list:

bin/magento merlin:image-remover:scan --dry-run -v

Faster preview (skip deep JSON/serialized decoding but still DB-wide):

bin/magento merlin:image-remover:scan --dry-run --db-fast

Skip DB-wide pass entirely:

bin/magento merlin:image-remover:scan --dry-run --no-db-scan

bin/magento merlin:image-remover:scan

Actually delete (prompts 'yes/no'):

Delete without prompt:

bin/magento merlin:image-remover:scan -y

Exclude additional prefixes under pub/media (repeat -e):

bin/magento merlin:image-remover:scan --dry-run -e amasty/webp/wysiwyg -e logo -e vendor_x/cache

** Built-in protections

Skips cache/system dirs: catalog/product/cache/, tmp/, captcha/, import/, downloadable/tmp/.

Skips Amasty cache: amasty/, and hard-skips amasty/webp/ (including amasty/webp/wysiwyg/).

Hard-skip logo/ to never delete store logos by mistake.

Page Builder extractor preserves background images/icons referenced via data-background-images JSON.

Preserves favicons/logos and any refs found anywhere in your DB (thanks to the whole-DB + config scans).

Amasty Mega Menu extractor preserves icons/banners/backgrounds from mega menu configs.

** Optional Safeguards: If your homepage uses a known PB folder, you can temporarily exclude it:

bin/magento merlin:image-remover:scan --dry-run -e wysiwyg/homepage -e pagebuilder