Uninstall a module and the attribute is still in the catalog. Magento Admin will not drop it. Pass the attribute codes to one CLI command and Magento removes those EAV records. For developers and agencies cleaning up after a failed uninstall, a migration, or unused custom attributes.
One command, as many codes as you need
Run it from the Magento root. Codes are comma-separated. The CLI reports how many attributes were deleted. Empty input is rejected, so a blank delete does not run.
bin/magento emmo:delete
--Attributes=vendor_old_attr,legacy_option2 attributes were deleted.
When Admin Delete will not
A used custom attribute often has Delete greyed out, or the delete throws. This command is the cleanup after that, not a screen for browsing attributes.
The command loads an EAV collection filtered to the codes you pass. Each match is removed through Magento’s attribute model, not a raw SQL wipe of the catalog.
5cache:flush, then confirm the attributes are gone from Stores → Attributes.
After cache:flush
Stores → Attributes
vendor_old_attr Gone
legacy_option Gone
name Still there
No Admin grid. No restore. No scanner that deletes every unused attribute. You pass the codes you already know should go. Magento Open Source and Adobe Commerce. PHP 8.1–8.4. CLI and SSH. Command: emmo:delete --Attributes=code1,code2. Support: [email protected]