Louisville WordPress site hacked? I fix it.
Malware, spam redirects, a red Google warning, or a site that broke after an update: I clean it up, close the hole it came through, and keep it from happening again. You talk to me, not a ticket queue.
Or call or text (502) 387-1142
There has been a critical error on this website.
Learn more about troubleshooting WordPress.
GET https://yourbusiness.com/shop/ 500 (Internal Server Error)
Uncaught Error: Call to undefined function wc_get_cart_url()
at cart-addons.php:212 ca_render_mini_cart()
Failed to load resource: /wp-json/wc/store/v1/cart 500
PHP Fatal error: Allowed memory size of 268435456 bytes exhausted
Navigated to https://yourbusiness.com/checkout/
GET https://yourbusiness.com/checkout/ 500 (Internal Server Error)
Mixed Content: http://yourbusiness.com/wp-content/uploads/hero.jpg
Error establishing a database connection (wp-admin/admin-ajax.php)
POST https://yourbusiness.com/wp-admin/admin-ajax.php 500
jQuery.Deferred exception: $(...).slick is not a function
Uncaught TypeError: Cannot read properties of null (reading "submit")
Navigated to https://yourbusiness.com/contact/
GET https://yourbusiness.com/contact/ 500 (Internal Server Error)

$ tail -n 40 wp-content/debug.log
[13-Oct-2026 09:14:02] PHP Fatal error: Uncaught Error: Call to undefined function wc_get_cart_url()
[13-Oct-2026 09:14:02] in /wp-content/plugins/cart-addons/cart-addons.php:212
[13-Oct-2026 09:14:02] #0 wp-includes/class-wp-hook.php(324): ca_render_mini_cart()
$ wp plugin list --status=active --fields=name,version
cart-addons 2.1.0 (updated 06:02 by auto-update)
$ wp plugin deactivate cart-addons
Success: Deactivated 1 of 1 plugins.
$ curl -sI https://yourbusiness.com/shop/ | head -1
HTTP/2 200
$ wp core verify-checksums
Success: WordPress installation verifies against checksums.
$ wp plugin verify-checksums --all
Warning: File should not exist: plugins/contact-x/includes/.cache.php
$ mv plugins/contact-x/includes/.cache.php ~/quarantine/
$ wp db check
Success: Database checked.
$ wp cache flush && wp rewrite flush
Success: The cache was flushed.
> Restored cart-addons 2.0.4 from last night's snapshot
> Checkout test order placed and refunded
OK Site responding 200 in 0.21 s on every page

Websites I have built for Kentucky businesses
What clients say
Rated 5.0 on Google across 29 reviews.
“Shaun did excellent work recently for my website. He is my go to with all things media. One of the best in the business!”
“Shaun made the whole website process simple. Great communication, quick changes, and a site we’re proud of.”
“Highly recommend Shaun! He's responsive, knows what he's doing and our website has made a real difference in our business.”
Whatever broke it, I have fixed it before.
Hacked or defaced, white screen, update broke it, malware warnings, locked out or slow to a crawl: all of it lands here every week, on sites I have never seen before.
Hack & malware cleanup
Infected files removed, backdoors closed, “Deceptive site ahead” and other blacklist warnings cleared, and the hole that let them in sealed.
Crash & white-screen recovery
Fatal errors, database crashes, and the dreaded blank page, diagnosed at the root and brought back.
Plugin & theme conflicts
When a plugin update breaks the site, I untangle the conflict without losing your content or settings.
Speed rescue
Bloated pages, slow hosting, and heavy plugins tuned until the site loads the way it should. Deeper slowdowns get full website speed optimization.
Backups, updates & care
Ongoing care plans: updates handled, backups verified, and someone watching so small issues stay small.
Hosting & migration fixes
DNS tangles, SSL errors, and website migration to better hosting, handled without downtime drama.
Twenty years of WordPress. Zero drama.
A broken site is stressful enough. You get straight answers about what happened, what it takes to fix, and what it costs, then I get to work. You deal directly with the Louisville WordPress developer doing the repair, not a ticket queue.
How every rescue runs: Diagnosis first, so you never pay to fix the wrong thing. Your content and data protected before anything is touched. Plain-English updates while the work happens. A prevention plan when the fix is done.
If it was a hack, start with the first-hour guide. If the site simply fell behind, a redesign built to protect your rankings may be the better fix.
Like what you see? Tell me about your business.
A few lines is plenty. I read every message myself and usually reply the same day.
Not ready for a quote? Get a free review of your current site and I will tell you what is costing you calls.
Hacked WordPress sites
The three ways a hack usually shows up
Most owners find out from a customer, a red warning in Google, or an email from their host. Here is what each one means, and what I do about it.
Malware and spam redirects
Visitors land on a pill, casino or fake prize site instead of yours. It often hits only phones, or only people arriving from Google, so it can look fine when you check from your office. Pop-ups you never added and pages full of foreign-language spam in your search results are the same family of problem.
Google says "This site may be hacked"
Google adds that line under your listing, or Chrome shows a full red "Dangerous site" screen, and calls and form leads stop. The warning only comes off after the site is actually clean and a review is requested in Search Console. I do both, and I tell you honestly that Google decides how long the review takes.
Outdated PHP, plugins and themes
This is usually how they got in. An old plugin with a known hole, a theme nobody has updated in years, or a server still running a PHP version that no longer gets security fixes. Cleaning up without closing that door just means doing it again next month.
Not sure if yours is hacked or just broken? Take the free "Is my WordPress site hacked?" self-check.
How I clean it up
Clean it, close the hole, then prove it is clean
Louisville WordPress site hacked? I fix it myself, and you talk to me the whole way through, not a ticket queue.
- Copy everything firstA full copy of the files and database before I touch anything, so nothing you need is lost and the evidence is kept.
- Find how they got inServer logs, error logs, file dates and user accounts tell the story. Knowing the way in is the difference between a cleanup and a fix.
- Remove what they plantedHidden files, backdoor plugins, injected code and fake administrator accounts. WordPress core files are checked against the official copies, and every PHP file is scanned, not just the obvious ones.
- Close the doorThe vulnerable plugin or theme updated or replaced, PHP brought up to a supported version, and every password, security key and connected service key changed.
- Clear the warnings and explain itGoogle review requested in Search Console where needed, and a plain-English write-up for you of what happened, what was exposed and what changed.
A recent cleanup
A Kentucky distillery's online store
In October 2026, while reviewing a distillery's WooCommerce store, I found signs of a break-in that had been sitting quietly for months. Nothing on the storefront looked wrong. That is common, and it is why a site can look fine and still be hacked.
An old slider plugin had a known hole that let anyone upload files. Someone used it to drop a disguised control panel on the server, then added a fake administrator and a backdoor dressed up as an image plugin. I traced it through the store's logs to the exact plugin and the exact minute it was used, and contained it the day I found it.
- Traced the way inError logs pointed to the old slider plugin, which had already been replaced with a fixed version.
- Quarantined every planted fileThe control panel, both backdoor plugins and an abandoned staging copy that was left open to anyone, kept as evidence and taken offline.
- Locked out the intruderFake admin removed, every admin password and security key changed, unused store API keys deleted.
- Proved the rest was cleanEvery PHP file and upload scanned, core files matched to official checksums, no card-skimming code found.
- Watched it from then onAlerts on any new administrator and a daily security scan.
Keeping it from happening again
Hosted on my own server, watched by me
Once it is clean, the sites I host and care for get the same protection as my own.
Updates
WordPress, plugins, themes and PHP kept current, with a snapshot taken first so a bad update can be rolled back.
A firewall
A web application firewall on the server plus Cloudflare rules in front, blocking common attacks and login abuse before they reach WordPress.
Monitoring
Every site is checked around the clock, and problems alert my phone. Security scans look for new admins and changed files.
Backups
Off-site backups stored away from the server, so a clean copy exists even if the worst happens.
Ongoing care is covered on WordPress maintenance. If you just found the problem, start with what to do in the first hour.
Sites I keep running
The sites behind me when I say it will be fine
These are live WordPress sites I host, update, and answer the phone for. Some I built. Some arrived broken and stayed. Either way, when one of them goes sideways at 6 a.m., I am the person who fixes it - not a ticket queue.
Todd Lewis Law
A solo practice that needs the phone to ring, not a maintenance headache.
Aerial Photography Louisville
My own aerial brand - the site that ranks #1 in Louisville for drone photography.
Years building and fixing websites
Kinds of repair handled every week
Steps from triage to protected
Developer who answers, no ticket queue
How a rescue runs.
Triage
Tell me the symptoms through the form below. Screenshots and error messages help, but are not required.
Diagnose
I find the root cause, not just the symptom, and give you a clear picture of the damage and the fix.
Fix & verify
The repair happens on protected copies where possible, then gets tested before your visitors ever see it.
Protect
Updates, backups, security hardening, and an optional care plan so this is the last time I meet like this.
From a Google review
“My website had been hacked and the person who built it had disappeared. I was panicking. Shaun called me back the same day, told me exactly what had happened and what it would take to fix, and then rebuilt the site properly so it would not happen again. He kept me updated the whole way and never made me feel stupid for the mess I was in. I finally have someone I can call. Highly recommend.”
Straight answers, before you pay for anything.
My site is hacked. What do I do right now?
Do not delete anything. Change your passwords if you still can, then send me the details below. Evidence helps us find how they got in. The full first-hour checklist is in what to do when your WordPress site is hacked. See how a hacked physician website was rebuilt and relaunched in the Dr. Stephanie Moore case study, and read what happens after the first hour: the rebuild, the redirects and the Google cleanup.
Can you fix a site someone else built?
Yes. Most rescues are sites I have never seen before, on every builder and host imaginable.
Will I lose my content?
My first move is protecting what is there. In most repairs your content, images, and orders come through untouched.
How do I keep this from happening again?
A care plan: managed updates, verified backups, security hardening, and monitoring. Most break-ins start with an outdated plugin nobody was watching.
Get your site back.
Describe what happened below and I will tell you exactly what it takes to fix it.
Connect with me
Tell me about the project.
What happens next
- 01I reply, usually the same day. Every message comes straight to me, not a ticket queue.
- 02A short call. What the site needs to do, who it is for, and what has not worked before.
- 03A written scope and flat quote. Before any work starts, with hosting and ongoing care listed separately.
5.0 on Google · 29 reviews · I usually reply the same day






