WordPress Website Repair Guide for Small Business Owners

Your WordPress site is broken. Maybe it shows a white screen. Maybe it won’t let you log in. Maybe it’s been hacked. This guide shows you how to fix the most common WordPress problems yourself, without calling a developer for every issue.

This is written for business owners, not technical people. Each fix includes step-by-step instructions you can actually follow.

When to Fix It Yourself vs Hire Someone

Fix It Yourself If:

  • Your site is slow but functional
  • You’re locked out of admin
  • Plugins are causing conflicts
  • You see error messages
  • Images won’t upload
  • Pages won’t update

Hire a Developer If:

  • The site is completely hacked (redirects to spam)
  • The database is corrupted
  • The server is down
  • Custom code is broken
  • You see “Critical error” with no access
  • You’ve tried fixes below, and nothing works

Developer Cost Estimate:

  • Simple fixes: $100-200
  • Medium repairs: $200-500
  • Major recovery: $500-1,500

Essential Preparation (Do This First)

Create a Backup Right Now

Even if your site is broken, create a backup before attempting any fixes. You can always restore if something goes wrong.

If you can access your hosting control panel:

  1. Log into your hosting account (cPanel, Plesk, etc.)
  2. Find “Backup” or “Backup Wizard”
  3. Download full backup to your computer
  4. Keep it safe

If you can’t access anything:

Contact your hosting support and ask them to create a backup before you start repairs.

Find Your WordPress Credentials

You’ll need these for most fixes:

  • Hosting login (cPanel, Plesk, or hosting dashboard)
  • WordPress admin login (yoursite.com/wp-admin)
  • FTP credentials (host, username, password)
  • Database credentials (in wp-config.php file)

Don’t have them? Contact your hosting company for a password reset.

Problem 1: White Screen of Death (Blank Page)

What it looks like:
Your site shows a completely blank white page. No error message. Just white.

What causes it:

  • PHP memory limit exceeded
  • Plugin conflict
  • Theme conflict
  • Corrupted file

Fix 1: Increase PHP Memory Limit

Step 1: Access your site via FTP or File Manager (in cPanel)

Step 2: Find the file wp-config.php in your root directory

Step 3: Add this line right before /* That's all, stop editing! */:

define('WP_MEMORY_LIMIT', '256M');

Step 4: Save the file and check your site

Fix 2: Disable All Plugins

Step 1: Access your site via FTP or File Manager

Step 2: Navigate to wp-content/plugins/

Step 3: Rename the plugins folder to plugins-disabled

Step 4: Check if your site loads now

If it works:

  • Your problem was a plugin
  • Rename folder back to plugins
  • Rename each plugin folder one by one to identify the culprit
  • Delete or update the broken plugin

Fix 3: Switch to Default Theme

Step 1: Access your site via FTP or File Manager

Step 2: Navigate to wp-content/themes/

Step 3: Rename your active theme folder (add -disabled to the name)

Step 4: WordPress will automatically switch to a default theme

Step 5: Check if your site loads now

If it works:

  • Your theme was the problem
  • Download a fresh copy of your theme
  • Upload and activate it
  • If problem returns, contact theme developer

Problem 2: Locked Out of WordPress Admin

What it looks like:
You can’t log into yoursite.com/wp-admin. Wrong password message, or login page won’t load.

Fix 1: Reset Password via Email

Step 1: Go to yoursite.com/wp-admin

Step 2: Click “Lost your password?”

Step 3: Enter your email address

Step 4: Check email for reset link

Step 5: Create new password

If you don’t receive the email:
Your WordPress email isn’t working. Try Fix 2.

Fix 2: Reset Password via Database

Step 1: Log into your hosting control panel (cPanel)

Step 2: Open phpMyAdmin

Step 3: Select your WordPress database (usually starts with wp_)

Step 4: Find the wp_users table

Step 5: Click “Edit” on your username

Step 6: In the user_pass field:

  • Select MD5 from the Function dropdown
  • Enter your new password
  • Click “Go”

Step 7: Try logging in with your new password

Fix 3: Create New Admin User via Database

Step 1: Access phpMyAdmin (same as above)

Step 2: Select your WordPress database

Step 3: Click “SQL” tab at the top

Step 4: Copy and paste this code (replace the values in quotes):

INSERT INTO `wp_users` (`user_login`, `user_pass`, `user_nicename`, `user_email`, `user_status`)
VALUES ('newadmin', MD5('newpassword123'), 'newadmin', 'your@email.com', '0');

INSERT INTO `wp_usermeta` (`umeta_id`, `user_id`, `meta_key`, `meta_value`)
VALUES (NULL, (Select max(id) FROM wp_users), 'wp_capabilities', 'a:1:{s:13:"administrator";s:1:"1";}');

INSERT INTO `wp_usermeta` (`umeta_id`, `user_id`, `meta_key`, `meta_value`)
VALUES (NULL, (Select max(id) FROM wp_users), 'wp_user_level', '10');

Step 5: Click “Go”

Step 6: Log in with:

  • Username: newadmin
  • Password: newpassword123

Step 7: Change your password immediately after logging in

Problem 3: Site Hacked or Shows Spam

What it looks like:

  • Site redirects to spam/casino sites
  • Strange links in footer
  • Can’t access admin
  • Google warns “This site may be hacked”

Immediate Actions (Do These First)

Step 1: Change All Passwords

  • Hosting account password
  • WordPress admin password
  • FTP password
  • Database password

Step 2: Contact Your Host
Tell them your site is hacked. Many hosts offer free malware scanning and removal.

Fix 1: Use Security Plugin to Scan

Step 1: If you can access WordPress admin:

Step 2: Install Wordfence Security (free plugin)

Step 3: Go to Wordfence → Scan

Step 4: Click “Start New Scan”

Step 5: Wait for scan to complete (can take 30+ minutes)

Step 6: Review flagged files and delete/repair them

Fix 2: Manual Malware Removal

Step 1: Download fresh WordPress files from wordpress.org

Step 2: Access your site via FTP

Step 3: Replace these core folders with fresh copies:

  • /wp-admin/
  • /wp-includes/

DO NOT replace:

  • wp-config.php
  • /wp-content/ folder

Step 4: Check all files in /wp-content/themes/ for suspicious code

Step 5: Delete any plugins you don’t recognize

Step 6: Update all remaining plugins and themes

Fix 3: Restore from Clean Backup

If you have a backup from before the hack:

Step 1: Log into your hosting control panel

Step 2: Find “Backup” or “Restore”

Step 3: Upload your backup file

Step 4: Restore the backup

Step 5: Immediately update WordPress, all plugins, and themes

Step 6: Change all passwords

Problem 4: Internal Server Error (500 Error)

What it looks like:
“Internal Server Error” or “500 Error” message when you try to access your site.

What causes it:

  • Corrupted .htaccess file
  • PHP memory limit
  • Plugin conflict
  • Theme conflict

Fix 1: Reset .htaccess File

Step 1: Access your site via FTP or File Manager

Step 2: Find .htaccess file in root directory (same folder as wp-config.php)

Step 3: Download it as backup

Step 4: Delete the .htaccess file

Step 5: Try accessing your site

If it works:

Step 6: Log into WordPress admin

Step 7: Go to Settings → Permalinks

Step 8: Click “Save Changes” (this recreates .htaccess)

Fix 2: Increase PHP Memory

Same as White Screen Fix 1 (add memory limit to wp-config.php)

Fix 3: Disable Plugins

Same as White Screen Fix 2 (rename plugins folder)

Problem 5: Can’t Upload Images or Files

What it looks like:
Upload button doesn’t work, or you get error messages when uploading images.

Fix 1: Check File Permissions

Step 1: Access site via FTP

Step 2: Navigate to wp-content/uploads/

Step 3: Right-click the uploads folder

Step 4: Select “File Permissions” or “CHMOD”

Step 5: Set permissions to 755 or 775

Step 6: Check “Apply to directories recursively”

Step 7: Click OK

Fix 2: Increase Upload Limits

Step 1: Access cPanel File Manager

Step 2: Create new file named php.ini in root directory

Step 3: Add these lines:

upload_max_filesize = 64M
post_max_size = 64M
max_execution_time = 300

Step 4: Save and try uploading again

Alternative: Create .htaccess file with:

php_value upload_max_filesize 64M
php_value post_max_size 64M
php_value max_execution_time 300

Problem 6: Site Extremely Slow

What it looks like:
Pages take 5+ seconds to load. Admin dashboard is sluggish.

Fix 1: Install Caching Plugin

Step 1: Log into WordPress admin

Step 2: Go to Plugins → Add New

Step 3: Search for “WP Super Cache” or “W3 Total Cache”

Step 4: Install and activate

Step 5: Go to plugin settings and enable caching

Immediate improvement: 40-60% faster load times

Fix 2: Optimize Images

Step 1: Install “ShortPixel” or “Smush” plugin

Step 2: Run bulk optimization on existing images

Step 3: Set plugin to auto-optimize new uploads

Fix 3: Disable or Remove Unused Plugins

Step 1: Go to Plugins → Installed Plugins

Step 2: Deactivate plugins you don’t actively use

Step 3: Delete deactivated plugins

Rule: If you haven’t used a plugin in 30 days, delete it

Fix 4: Update Everything

Step 1: Go to Dashboard → Updates

Step 2: Update WordPress core

Step 3: Update all plugins

Step 4: Update theme

Note: Backup first (use UpdraftPlus plugin)

Problem 7: Database Connection Error

What it looks like:
“Error establishing a database connection” message.

Fix 1: Check wp-config.php Database Settings

Step 1: Access site via FTP

Step 2: Download wp-config.php file

Step 3: Check these lines are correct:

define('DB_NAME', 'your_database_name');
define('DB_USER', 'your_database_user');
define('DB_PASSWORD', 'your_database_password');
define('DB_HOST', 'localhost');

Step 4: Contact your hosting to confirm correct values

Step 5: Update if necessary and re-upload file

Fix 2: Repair Database

Step 1: Add this line to wp-config.php (before “That’s all”):

define('WP_ALLOW_REPAIR', true);

Step 2: Visit: yoursite.com/wp-admin/maint/repair.php

Step 3: Click “Repair Database”

Step 4: After repair, REMOVE the line from wp-config.php

Fix 3: Contact Hosting Support

Database errors often mean:

  • Database server is down
  • Database was deleted
  • Hosting account suspended

Contact your host immediately if fixes 1-2 don’t work.

Problem 8: Plugin or Theme Causing Errors

What it looks like:
Site broke immediately after updating or installing plugin/theme.

Fix 1: Access Safe Mode

Step 1: Add this to wp-config.php:

define('WP_DISABLE_FATAL_ERROR_HANDLER', true);

Step 2: This may show actual error message

Step 3: Google the error message for specific fix

Fix 2: Reinstall Problem Plugin/Theme

Step 1: Access site via FTP

Step 2: Delete the problematic plugin folder from wp-content/plugins/

Step 3: Re-download fresh copy from WordPress.org

Step 4: Upload via FTP

Step 5: Activate and test

Fix 3: Check for Compatibility

Step 1: Check plugin’s WordPress.org page

Step 2: Read “Compatibility” section

Step 3: Verify plugin works with your WordPress version

Step 4: Read recent reviews for reported issues

If incompatible: Find alternative plugin or contact developer

Problem 9: Updates Breaking Site

What it looks like:
Site broke after updating WordPress, plugin, or theme.

Prevention (Do This Before Every Update)

Step 1: Create backup (use UpdraftPlus plugin)

Step 2: Update on staging site first (if available)

Step 3: Update one item at a time (not all at once)

Step 4: Check site after each update

Recovery: Restore Previous Version

Option 1: Via Plugin

Step 1: Log into WordPress (if possible)

Step 2: Go to UpdraftPlus → Restore

Step 3: Select backup from before update

Step 4: Click Restore

Option 2: Via FTP

Step 1: Download previous version of plugin/theme

Step 2: Access site via FTP

Step 3: Delete current version

Step 4: Upload previous version

Step 5: Test site

Option 3: Downgrade WordPress

Not recommended unless critical

Step 1: Download older WordPress version from wordpress.org/download/releases/

Step 2: Upload and replace wp-admin and wp-includes folders

Step 3: Visit yoursite.com/wp-admin to run downgrade

Problem 10: SSL Certificate Errors

What it looks like:
“Not Secure” warning in browser, or mixed content warnings.

Fix 1: Install Really Simple SSL Plugin

Step 1: Log into WordPress admin

Step 2: Install “Really Simple SSL” plugin

Step 3: Activate plugin

Step 4: Click “Go ahead, activate SSL”

Done: Plugin automatically fixes most SSL issues

Fix 2: Update Site URLs Manually

Step 1: Log into phpMyAdmin

Step 2: Select your WordPress database

Step 3: Click SQL tab

Step 4: Run this query (replace with your domain):

UPDATE wp_options SET option_value = replace(option_value, 'http://yourdomain.com', 'https://yourdomain.com') WHERE option_name = 'home' OR option_name = 'siteurl';

UPDATE wp_posts SET post_content = replace(post_content, 'http://yourdomain.com', 'https://yourdomain.com');

UPDATE wp_postmeta SET meta_value = replace(meta_value,'http://yourdomain.com','https://yourdomain.com');

Step 5: Clear cache and check site

Essential Tools for WordPress Repair

Required Access Methods

FTP Client:

  • FileZilla (free, Windows/Mac)
  • Download from filezilla-project.org
  • Lets you access and edit site files

Where to find FTP credentials:
Your hosting control panel or welcome email

Must-Have Plugins (Install These Now)

UpdraftPlus (Free)

  • Automatic backups
  • One-click restore
  • Saves to cloud storage

Wordfence Security (Free)

  • Malware scanning
  • Firewall protection
  • Login security

WP-Optimize (Free)

  • Database cleanup
  • Image compression
  • Cache cleaning

Health Check & Troubleshooting (Free)

  • Built-in WordPress plugin
  • Enables troubleshooting mode
  • Helps identify conflicts

Helpful Browser Bookmarks

Save these for when you need them:

  • Your hosting control panel login
  • WordPress.org plugin directory
  • phpMyAdmin login (in cPanel)
  • Your FTP bookmarks
  • Your site’s staging URL (if you have one)

Preventive Maintenance Checklist

Do these monthly to avoid most problems:

Monthly Tasks

  • [ ] Create full backup (database + files)
  • [ ] Update WordPress core
  • [ ] Update all plugins (one at a time, test after each)
  • [ ] Update theme
  • [ ] Delete unused plugins
  • [ ] Delete spam comments
  • [ ] Run security scan (Wordfence)
  • [ ] Check site speed (PageSpeed Insights)
  • [ ] Test contact forms
  • [ ] Check for broken links

Quarterly Tasks

  • [ ] Review and optimize database
  • [ ] Check disk space usage
  • [ ] Review security logs
  • [ ] Test all site functionality
  • [ ] Update emergency contact information
  • [ ] Verify backups actually work (test restore)

Annual Tasks

  • [ ] Renew domain name
  • [ ] Renew SSL certificate
  • [ ] Review hosting plan (upgrade if needed)
  • [ ] Delete old backups
  • [ ] Full site audit
  • [ ] Password changes (all accounts)

When to Call a Professional

Don’t waste days trying to fix:

Call immediately if:

  • Site is completely inaccessible for 4+ hours
  • You’ve been hacked and can’t clean it
  • Database corruption messages appear
  • You’ve tried multiple fixes with no improvement
  • Your business is losing money every hour site is down

Where to find help:

Budget Option ($50-150):

  • Fiverr (search “WordPress fix”)
  • Upwork (post your problem)
  • Codeable (vetted WordPress experts)

Premium Option ($150-500):

  • WP Buffs (maintenance + repairs)
  • Maintainn (monthly maintenance)
  • Local WordPress developer

Emergency Option (24/7):

  • WP Fix It (premium emergency service)
  • Your hosting’s paid support

What to provide developer:

  • Clear description of problem
  • What you tried already
  • WordPress admin login
  • FTP credentials
  • Hosting login (if needed)

Emergency Contact Template

Save this information somewhere safe (not on your WordPress site):

WORDPRESS EMERGENCY INFO

Site URL: _______________
WordPress Admin: _______________
Username: _______________
Password: _______________

Hosting Company: _______________
Hosting Login: _______________
Username: _______________
Password: _______________

FTP Host: _______________
FTP Username: _______________
FTP Password: _______________

Database Name: _______________
Database User: _______________
Database Password: _______________

Domain Registrar: _______________
Login: _______________

DNS Provider: _______________
Login: _______________

Emergency Developer Contact: _______________
Phone: _______________

Last Backup Date: _______________
Backup Location: _______________

Final Advice

Before touching anything:

  1. Create a backup
  2. Document what’s broken
  3. Try the simplest fix first
  4. Change only one thing at a time
  5. Test after each change

If you break something worse:

  • Don’t panic
  • Restore from backup
  • Call a professional
  • Learn from the experience

Most important rule:
Backup before attempting any fix. Always. No exceptions.

Your WordPress site will break eventually. That’s normal. What matters is how quickly you can fix it. Bookmark this guide and refer to it when problems happen.

Most WordPress issues have simple solutions. Start with the easy fixes, and only escalate to professionals when necessary. You’ll save time and money while learning how your website actually works.

Leave a Comment