Module Disable Groups¶
Modules that can be disabled together as a unit. Ordered from "disable today, zero risk" to "needs decoupling first."
Tier 1: Disable Today — Zero External Blockers¶
These modules have no external dependencies. Disable via bin/magento module:disable with no impact on the rest of the system.
Group: SendFriend (2 modules)¶
"Email to a friend" — legacy social sharing. Nobody uses this.Group: Swagger (3 modules)¶
API documentation UI at/swagger. Never expose on production.
Group: LoginAsCustomer (10 modules)¶
bin/magento module:disable \
Magento_LoginAsCustomer Magento_LoginAsCustomerAdminUi \
Magento_LoginAsCustomerApi Magento_LoginAsCustomerAssistance \
Magento_LoginAsCustomerFrontendUi Magento_LoginAsCustomerGraphQl \
Magento_LoginAsCustomerLog Magento_LoginAsCustomerPageCache \
Magento_LoginAsCustomerQuote Magento_LoginAsCustomerSales
Group: Weee / FPT (2 modules)¶
Fixed Product Tax. Zero inbound coupling. Most stores outside US/EU don't need it.Group: Marketplace (1 module)¶
Admin "Magento Marketplace" page. Zero coupling.Group: ReleaseNotification (1 module)¶
"What's new" admin popup. Note: AdminAnalytics has 1 import — make param nullable or disable AdminAnalytics too.Group: ApplicationPerformanceMonitor (2 modules)¶
bin/magento module:disable Magento_ApplicationPerformanceMonitor Magento_ApplicationPerformanceMonitorNewRelic
Group: Stomp (1 module)¶
STOMP protocol MQ transport. Zero coupling.Group: MysqlMq (1 module)¶
MySQL queue fallback. Zero coupling. Only if RabbitMQ (Amqp) is configured.Group: SwatchesLayeredNavigation (1 module)¶
Empty module — literally justregistration.php. No code.
Tier 2: Disable Today — Minor Side Effects¶
These can be disabled but some admin features degrade gracefully.
Group: MediaGallery + MediaContent (24 modules)¶
bin/magento module:disable \
Magento_MediaGallery Magento_MediaGalleryApi \
Magento_MediaGalleryUi Magento_MediaGalleryUiApi \
Magento_MediaGalleryCatalog Magento_MediaGalleryCatalogIntegration \
Magento_MediaGalleryCatalogUi Magento_MediaGalleryCmsUi \
Magento_MediaGalleryIntegration Magento_MediaGalleryMetadata \
Magento_MediaGalleryMetadataApi Magento_MediaGalleryRenditions \
Magento_MediaGalleryRenditionsApi Magento_MediaGallerySynchronization \
Magento_MediaGallerySynchronizationApi Magento_MediaGallerySynchronizationMetadata \
Magento_MediaContent Magento_MediaContentApi \
Magento_MediaContentCatalog Magento_MediaContentCms \
Magento_MediaContentSynchronization Magento_MediaContentSynchronizationApi \
Magento_MediaContentSynchronizationCatalog Magento_MediaContentSynchronizationCms
media-gallery-metadata and media-gallery-synchronization. Keep those 2 if using S3.
Group: NewRelicReporting (3 modules)¶
bin/magento module:disable \
Magento_NewRelicReporting Magento_ApplicationPerformanceMonitorNewRelic Magento_GraphQlNewRelic
Group: Analytics (7 modules)¶
bin/magento module:disable \
Magento_Analytics Magento_AdminAnalytics \
Magento_CatalogAnalytics Magento_CustomerAnalytics \
Magento_QuoteAnalytics Magento_ReviewAnalytics \
Magento_SalesAnalytics Magento_WishlistAnalytics
Group: Persistent (1 module)¶
Persistent shopping cart (remembers cart across sessions). Zero inbound coupling. Most stores use full-page cache which conflicts with persistent sessions anyway.Tier 3: Disable After Decoupling¶
These need the fixes documented in our decoupling reports before they can be cleanly disabled.
Group: Newsletter (2 modules)¶
# After decoupling (see docs/decoupling/newsletter.md)
bin/magento module:disable Magento_Newsletter Magento_NewsletterGraphQl
Group: Review (3 modules)¶
# After decoupling (see docs/decoupling/review.md)
bin/magento module:disable Magento_Review Magento_ReviewAnalytics Magento_ReviewGraphQl
DefaultProvider returns empty string — no stars shown.
Group: Wishlist (3 modules)¶
# After decoupling (see docs/decoupling/wishlist.md)
bin/magento module:disable Magento_Wishlist Magento_WishlistAnalytics Magento_WishlistGraphQl
Group: Multishipping (1 module)¶
# After decoupling (see docs/decoupling/msrp_multishipping_mysqlmq.md)
bin/magento module:disable Magento_Multishipping
Group: MSRP (3 modules)¶
# After decoupling (see docs/decoupling/msrp_multishipping_mysqlmq.md)
bin/magento module:disable Magento_Msrp Magento_MsrpConfigurableProduct Magento_MsrpGroupedProduct
Tier 1b: Previously Unscanned — Also Zero Inbound Coupling¶
All verified: zero external modules depend on these. Disable freely.
Group: Google Tracking (3 modules, 20 files)¶
bin/magento module:disable Magento_GoogleAdwords Magento_GoogleAnalytics Magento_GoogleGtag Magento_GoogleOptimizer
Group: Contact / Rss / Robots (3 modules, 32 files)¶
Contact form, RSS feeds, robots.txt generator. Often replaced by CMS or custom solutions.Group: Backup (1 module, 27 files)¶
Database/media backup via admin. Everyone uses proper backup tools instead.Group: InstantPurchase (1 module, 41 files)¶
One-click purchase for stored-card customers. Rarely used.Group: ProductAlert (1 module, 35 files)¶
"Notify me when price drops / back in stock" emails. Note: Catalog has a composer require on it, but no PHP imports — likely a phantom dep that can be removed.Group: ProductVideo (1 module, 15 files)¶
YouTube/Vimeo video on product pages.Group: CheckoutAgreements (1 module, 30 files)¶
"Terms and conditions" checkbox at checkout.Group: AdminNotification (1 module, 41 files)¶
Admin notification bar (security alerts, updates).Group: AdvancedSearch (1 module, 29 files)¶
Advanced search form page. Most stores rely on catalog search + layered navigation.Group: OrderCancellation (3 modules, 28 files)¶
bin/magento module:disable Magento_OrderCancellation Magento_OrderCancellationGraphQl Magento_OrderCancellationUi
Group: Cookie / Csp (2 modules, 75 files)¶
Cookie consent notice and Content Security Policy headers. Caution: CSP may be required for security compliance. Only disable if handled externally.Group: CardinalCommerce (1 module, 10 files)¶
3D Secure authentication for credit cards. Only if not using 3DS.Group: CurrencySymbol (1 module, 15 files)¶
Custom currency symbol override in admin.Group: SampleData (1 module, 8 files)¶
Sample data installation framework. Never needed on production.Group: AsyncConfig (1 module, 8 files)¶
Async config save via message queue. Only useful for large multi-store configs.Group: Import/Export Extensions (4 modules, 36 files)¶
bin/magento module:disable \
Magento_BundleImportExport Magento_GroupedImportExport \
Magento_CustomerImportExport Magento_TaxImportExport
Group: Search Engine (pick one, disable the rest)¶
# If using OpenSearch:
bin/magento module:disable Magento_Elasticsearch8
# If using Elasticsearch 8:
bin/magento module:disable Magento_OpenSearch
Group: AwsS3 / RemoteStorage (2 modules, 37 files)¶
# Only if NOT using S3/remote storage:
bin/magento module:disable Magento_AwsS3 Magento_RemoteStorage
Group: PaypalCaptcha (1 module, 3 files)¶
Captcha on Paypal checkout. Only needed if using Paypal + captcha.Group: WebapiAsync (1 module, 18 files)¶
Async REST/SOAP API endpoints. Only if you don't use async webapi.Not Scanned — Core Infrastructure (Cannot Remove)¶
These 27 modules are foundational. Every Magento install needs them:
| Module | Files | Role |
|---|---|---|
| Authorization | 20 | ACL |
| Backend | 345 | Admin panel framework |
| Captcha | 40 | CAPTCHA framework (disable only if using external CAPTCHA) |
| CatalogUrlRewrite | 76 | Product/category URL rewrites |
| CmsUrlRewrite | 8 | CMS page URL rewrites |
| Config | 187 | System configuration |
| Deploy | 67 | Static content deployment |
| Developer | 37 | Developer mode, profiler hints |
| Directory | 96 | Countries, regions, currencies |
| Eav | 177 | Entity-Attribute-Value framework |
| 48 | Transactional email framework | |
| EncryptionKey | 14 | Encryption key management |
| ImportExport | 102 | Import/export framework |
| Indexer | 60 | Indexer framework |
| Integration | 111 | OAuth/REST integrations |
| JwtFrameworkAdapter | 19 | JWT token handling |
| JwtUserToken | 21 | JWT user auth tokens |
| LayeredNavigation | 12 | Layered navigation framework |
| PageCache | 48 | Full page cache (Varnish/built-in) |
| Quote | 254 | Shopping cart/quote |
| RequireJs | 3 | RequireJS config generation |
| Rule | 23 | Rule engine framework (used by SalesRule, CatalogRule) |
| Search | 87 | Search framework |
| Security | 37 | Admin security (password, 2FA prep) |
| Store | 144 | Multi-store/website/storeview |
| Theme | 177 | Theme framework |
| Translation | 23 | i18n translation |
| Ui | 180 | UI components framework |
| UrlRewrite | 43 | URL rewrite engine |
| User | 66 | Admin users |
| Variable | 22 | Custom variables |
| Version | 2 | Version info |
| Webapi | 44 | REST/SOAP API framework |
| WebapiSecurity | 3 | API rate limiting |
| Widget | 64 | Widget framework |
| CacheInvalidate | 5 | Cache invalidation (Varnish PURGE) |
Quick Reference: Total Removable¶
| Tier | Modules | Files (approx) | Effort |
|---|---|---|---|
| Tier 1 (today, zero risk) | 48 | ~400 | Zero |
| Tier 1b (today, newly verified) | 26 | ~440 | Zero |
| Tier 2 (today, minor side effects) | 35 | ~350 | Zero |
| Tier 3 (after decoupling) | 12 | ~280 | Medium |
| Total | ~121 | ~1,470 |
That's roughly 121 modules and 1,470 PHP files that can be removed from a typical Magento installation. Core infrastructure is ~35 modules. Everything else is optional features.