Auditing a store’s module estate
A store a few years old accumulates modules installed for a one-off campaign, replaced without being removed, or inherited from a previous contractor. The audit establishes the real list of what runs, what it costs, and what can go.
Why that inventory almost never exists
Nobody keeps a list of a store’s modules, because each was added for a good reason at some point, and that reason is written down nowhere. Two years later nobody knows whether the promotional banner module is still used, or why there are three statistics modules.
That vagueness has a direct cost. It prevents deciding what to update, it makes every upgrade riskier than it should be, and it spreads the diagnosis of each failure across the whole estate rather than onto an identified suspect. The audit repairs nothing by itself: it makes the following decisions possible.
What I look at, module by module
-
What it does, and whether it is still used
I cross its function with actual use: a reviews module that has recorded nothing for a year, a comparison tool nobody uses, a seasonal campaign module left active all year.
-
Its maintenance state
Date of the last release, supported platform and PHP versions, whether a publisher answers. That is what separates an old module from an abandoned one.
-
Its runtime cost
Queries added per page, assets loaded, calls to outside services during rendering. Measured, not estimated.
-
Its grip on the rest
Core class overrides, tables created, templates copied, scheduled jobs. That determines how hard it will be to remove later.
What I hand back at the end
A list, sorted by decision rather than alphabetically: what can be removed with no consequence, what must be updated promptly, what must be replaced because its publisher no longer follows, and what stays as is. For each module concerned I state what to check before touching it and what is likely to break.
I add two things that weren’t asked for but always come out of an audit: traces of already deleted modules still in the database, and modules installed twice under different names for the same function. Those two points explain a significant share of the slowness and conflicts found afterwards.
The audit is reading and measuring work, not intervention. I remove nothing during it: the store stays exactly as it was, and decisions are taken afterwards with the list in hand.
Related pages
-
Modules that slow the store down
The performance measurement part, detailed module by module.
-
Abandoned modules and extensions
What the modules the audit classes as abandoned mean on the security side.
-
Uninstalling a module cleanly
The logical follow-up to the audit for everything that has to go.
-
Incompatible modules after a migration
The problem a prior audit lets you anticipate.
- 2019 e-commerce developer since
- 3 platforms: PrestaShop, WooCommerce, Shopify
- 3 working languages: FR, EN, TR
- 100 % direct contact with the developer
No middleman: the person who replies is the one who works on the code.
Describe your need in one minute
A few targeted questions so I can reply with an estimate rather than another questionnaire.