Custom code tends to accumulate in whatever location was most convenient at the time it was added — directly in the theme’s functions.php file, inside a dedicated snippets plugin, buried in a now-unrelated plugin’s custom fields — and after enough time and enough different people involved, nobody has a clear picture of what custom code actually exists or why, which makes future changes riskier than they need to be. The risk isn’t hypothetical either — a well-meaning attempt to remove or update one piece of custom code can inadvertently affect something else entirely unrelated, simply because nobody realised the two were ever connected in the first place.
Check your theme’s functions.php for custom additions
If you have file access, open your active theme’s functions.php file and look for code that clearly isn’t part of the theme’s own core functionality, often set apart with a comment or added toward the bottom of the file.
Finding a substantial amount there, alongside a separate snippets plugin also in use, is a reasonable early sign this audit has real value.
It’s also worth thinking about how many different developers or agencies have touched the site’s code over time, since each transition tends to leave its own layer of custom additions behind. More hands involved over the years generally means more scattered, undocumented code to untangle. A single long-term steward tends to leave a comparatively tidier trail. Neither situation is a problem in itself, just a different starting point. Either way, the audit itself proceeds the same regardless. Nothing is skipped based on how much background we’re given.
Custom snippet audit & relocation
Custom code snippets scattered across your theme's functions file, a snippets plugin, and old plugins. We audit them and relocate to one clean place.
- Full backup taken before we start
- If we can’t fix it, you get your money back
- We never ask for your own password
What we need from you
- File access, or confirmation of which locations you already suspect hold custom code
- Any documentation you have, even informal, about why specific snippets were added
- Whether you have a preferred single location to consolidate everything into
This or something else?
| Custom code is scattered across multiple locations and needs auditing and relocating | This fix covers it |
| You want must-use plugins specifically documented, not custom snippets | mu-plugins audit & documentation, a different service |
| Hardcoded theme edits specifically need moving to a child theme | Hardcoded theme edits relocated to child theme, a related but distinct fix |
| A specific snippet is actively causing a problem right now | A different, more urgent diagnosis |
| All your custom code already lives in one clean, documented location | Worth confirming first; this service may not add much value in that case |
What we do
- Locate every piece of custom code across functions files, snippets plugins, and elsewhere
- Determine what each snippet actually does and confirm it’s still needed
- Consolidate everything into a single, appropriate, well-documented location
- Verify every relocated snippet continues functioning identically after the move
- Remove genuinely obsolete snippets only with your explicit confirmation
- Deliver a written record of what exists, what it does, and where it now lives
What is included
- A full audit of custom code across every location it’s currently scattered in
- Consolidation into a single, well-documented location
- Verification that every relocated snippet functions identically afterward
- A written record of what exists and what each piece does
Not included
- Removing any snippet without your explicit confirmation it’s genuinely obsolete
- Rewriting or improving the underlying code beyond relocating it safely
- Relocating hardcoded theme file edits, which is a separate, related fix
- Documenting snippets added after this audit — this covers what exists today
Questions about this fix
Will consolidating snippets into one place make my site less flexible?
No — the code itself and what it does stays the same; this changes where it lives and how well-documented it is, not its actual functionality.
What if a snippet's purpose is completely undocumented anywhere?
That's common, and part of what we work out through careful testing and inspection, rather than something you need to already know before ordering.
Is it risky to move custom code around?
There's inherent risk in touching working code, which is why we verify functionality after every single relocation rather than moving everything at once and hoping nothing breaks.
Will this protect my custom code from being lost in a future theme update?
Yes, if code currently sits directly in the theme's functions.php file, consolidating it into a proper snippets plugin or child theme protects it from being overwritten.
How do you decide what's genuinely obsolete versus just old?
We look at whether the code still executes anything meaningful given your site's current configuration, and confirm with you before removing anything even slightly ambiguous.
Related fixes
If this is the second time this year
A bad update breaking the site is a symptom of updates not being tested first. Care plans run every update on a staging clone before it reaches your live site, which is the actual fix for this happening again.
Your access, your rules
Create a separate admin account for us and delete it when we are done. For anything else, we get in touch and agree a method — never a form field on this site, never by reply to an email.
We back up first, always
Before anything is touched we take a full backup and keep it for 30 days. If a fix goes wrong, we put the site back exactly as it was.
If it is not what you bought
If the problem turns out smaller than what you ordered, we refund the difference. If it is bigger, we stop and send a quote before doing any extra work.
If we cannot fix it
You get back what we received. Diagnosis is on us — you only pay when the problem is actually solved. The payment processor takes its fee before the money reaches us, so we never hold it and it is not ours to return. That is true here as everywhere else.
If it comes back
Reply within seven days of delivery and we put it back on the bench at no cost. The fix is not finished until it holds.
What we are responsible for
If something goes wrong with a fix, our responsibility is limited to what you paid for it. We take a full backup first so mistakes can be undone, and we tell you before doing anything outside what you bought.