So let’s be honest, one of the main draws of WordPress besides the low price is the freedom to do what you want to with your website. But like most things in life, freedom comes with responsibility.
This blog post came out of a WordPress meetup that I was recently hosting for the Baltimore WordPress group. One of the participants asked, “What could go wrong?” when we were talking about being careful when running updates. The answer is about the same as what could go wrong with your car? A lot of things, far fewer if use a good mechanic and don’t put off preventative maintenance.
What do I do to mitigate risk?
Before we get into the issues that can happen with WordPress, I wanted to take a moment to talk about mitigating the risk. So here are some of the things that I do regularly to mitigate risk:
- Subscribe to over a dozen WP mailing lists from big names in the industry for news and security vulnerabilities
- Participate & follow along with a number of Facebook groups for industry news and general issues people are finding.
- Use solid hosting companies that don’t give me grief and take care of their servers
- Read, take webinars and online classes on all sorts of stuff related to the web
- Chat regularly with other developers
- Proactively update
- Proactively secure websites & auto-check websites against security vulnerabilities from two different databases
- Monitor uptime & SSL status
- Monitor performance daily
- Backup in two separate locations
- Only use automated updates on a set schedule with reports generated every time it happens
There’s such a thing as a healthy level of concern. All hardware will eventually fail, so taking actions to mitigate that failure is just good practice.
General debugging for WordPress
The first thing to do with a lot of errors is to wait 5 minutes. Yup, go get a glass of water, take your dog outside and play some ball. Just wait for a few. Sometimes these errors are caused by your server getting updates (or your server just having a bad few minutes). And it will resolve itself in about 5 minutes. This is why I set my uptime monitors for a 5-10 delay on notifying me.
Try Incognito
Many people add a lot of extensions to their browsers, and rack up a lot of cached files/cookies/etc. One of the quick fixes for a number of issues is to just try incognito mode. For example, I can’t ever get Google domain’s DNS changer to work in anything but incognito mode.
Always have a backup
You need to have a backup, I recommend at least daily. For busier sites, I recommend multiple times a day.
You should always have a backup on a separate server from your website. The server could fail, and if that happens you would lose both your site & the backups. Also, don’t assume that premium hosting companies who keep backups actually store them on a separate server.
Additionally, your backup is as good as your ability to restore it. If you can’t restore your backup, then you’ll need to contact someone who can. Many backup solutions require your WordPress site to be functioning properly for the backup to load. In the event of an issue, your website is probably not functioning.
Replace the code
Sometimes a plugin or theme doesn’t get 100% updated. So literally replacing the code using SFTP can fix it.
Turn on WP Debug
If you’re using a company like Flywheel or Kinsta you turn on debug through their admin panel (try googling: hosting company name and turn on debug). Otherwise, you modify your wp-config.php file to set the debug to true.
Make sure to turn OFF debug when done. It can expose potentially dangerous information to hackers.
Test for conflicts: Switch to default theme & deactivate other plugins
First: caution when you are considering doing this.
Second: always do this in a STAGING area!
Third: doing this can take down your entire website. I mean white screen of death, only someone who knows what they are doing can bring it back.
Now that I’ve covered the warnings, this is actually a really important step in testing. To do this, you will first make up that you have a backup of your whole site and can restore it. Then, you’ll make sure you’re doing this in a staging area. And then you’ll switch to the default twenty-twenty theme (or any other default WP theme) and deactivate all plugins except the problem one & any plugins that the problem on directly depends on.
What the heck is “directly depends on”? If the problem is with a WooCommerce add-on, then you need to have WooCommerce installed. Similarly, if it’s an add-on for your page builder, you need to have the main page builder plugin installed.
For more info on debugging, Kinsta has a nice article on it.
How to get WordPress help
Write a Good Error Report
If you want help with your issue, the best thing you can do is to write a good error report. That includes all of the following:
- Exact set of steps that you took to get the error (if the error can’t be reproduced they will not fix it)
- The details of the computer you are on (Ie: operating system, version)
- The details of your browser (ie: which one, version, and have you actually tried incognito mode with no extensions enabled — yes, browser extensions can break a website)
- URL where the error occured
- And as long as you aren’t posting private information on a public forum, send a video. I can get a help ticket resolved far faster and with far less work on my end if I just take a short 1-5 min screen video of showing the WordPress dashboard and then the exact set of steps to reproduce the error.
- Write exactly what happened, and exactly what you wanted to happen. Sometimes the error is just that your expectation didn’t match what the code is supposed to do.
Theme/Plugin Developers
Getting help with free themes & plugins
Typically, these come from the WordPress repository, although they can also come from github and private developer websites. The WordPress repo has a number of strict standards to get your code into the repo. Many of those standards have nothing to do with how “safe” the code is.
For example, themes are banned from including shortcodes. Plugins are allowed to use shortcodes all the plugin wants, but themes are banned. Shortcodes aren’t bad or dangerous, but if a theme has shortcodes it’s not allowed in the repo.
To get help with free themes & plugins, check the item’s info page. Most come with a readme file, so read it. Also check the webpage for it (repo, github, etc). They will normally tell you where to get help. If they direct you to a forum, check for a post at the beginning of the forum with instructions on what info to send.
Do NOT post login info for your website on any public location!
Getting help with paid themes & plugins
If you want help with a paid product, the first thing you need to check is if you have a valid license and are still within your support window.
For example, if you bought a theme off of ThemeForest you would have lifetime updates, but you would only have support for the first 6 months. If you want support beyond that, you’ll have to pay for another 6 months of support.
You also need to check if you ever even got a license. If you had a developer build your site, the odds are that you don’t have any licenses. I say this from the experience of having done intake on hundreds of already built WP sites. Less than 10% of those came with proper licenses for the themes/plugins they used. In fact, most people didn’t even know they needed licenses.
Will your hosting company help you with WP?
The answer is MAYBE. As a general guide (there are of course exceptions), here’s the kind of support you should expect:
- For 500 series errors (500, 503, 504) it’s likely that only your hosting can fix it cause it’s an issue with the server. However, always wait at least 5 min, as temporary updates to servers can cause the server to go down for a few minutes.
- If you are paying under $10/month for hosting, then you are NOT paying for support. Don’t expect them to help. In fact, you can expect them to literally hang up on you if you try to get help for anything other than a definite server issue.
- If you are with a cPanel or Plesk company, then they are frequently unable/unwilling to help with issues related to anything besides their servers.
- If you are with a managed WP company, specifically one that focuses on just WP hosting (ie: Flywheel, Kinsta, WP Engine, WPMU), they will likely try to help you with issues, but beyond a certain point, they will stop. What does that mean? It means they will frequently get you to the point “there’s an error being reported on this line of this file in your theme”. You’ll need to contact the theme author or a professional developer for anything beyond that.
- If the company offers their own paid services for support, expect to just be directed to those. Also, if the company is named “GoDaddy” expect those services to be crap.
It is NOT the responsibility of your hosting company to fix your theme or plugins.
Hire a developer
Generally, the problems come down to the various plugins/themes either not being configured properly or not playing well together. Authors will frequently help with configuration, but will frequently NOT help with interactions between other plugins.
So, you’ll need to hire a developer.
Functional issues
Your theme or plugin was discontinued
It’s important to periodically check your website for discontinued plugins and themes. It’s not uncommon for companies to go out of business and abandon their plugins and themes. It’s happened with small plugins that only have a few downloads, and it’s happened with themes that have over a million active installs.
To check for this, go through your themes and plugins and check when was the last time they were updated. If it’s been more than 6 months, look for activity on the plugin support to see if the author is still responding. Also check the author’s other plugins and themes, see if those are getting activity.
If it’s been more than a couple of years, you should generally consider the item abandoned and go ahead and replace it.
Your site is experiencing a technical issue
I wrote a whole separate blog post on this one, click here to read the article on your site is experiencing a technical issue.
Can’t log in
If you can’t log into your WordPress site on the first couple of tries, stop trying the thing that isn’t working. Instead, take a look at these:
- Use the password reset. Below the password form is a link for forgot your password. It will send you a link that you can use to reset your password.
- If you’ve tried that and are getting the response that your user doesn’t exist, then you’ll need to go manually to the database (see below).
- If you’ve tried that and you aren’t getting the email or there is an error displayed saying the site can’t send email, you’ll need to go manually to the database (see below).
- If needed, manually reset your password in the database.
- It’s also possible your site was either hacked or corrupted, in which case you need professional help.
- It’s also possible you have a theme or plugin misbehaving and need to deactivate them.
- It’s also possible that site URL and/or home URL are set incorrectly in the database.
- It’s also possible your permalinks have errors or you have redirects set up causing an issue.
- And of course, if you can’t find your login page, then you likely have a plugin, theme, or manually added code that has moved your login page to a new URL. You’ll likely need professional help to find this.
404 errors
If you are getting a 404 on all of your URLs, then your permalinks are likely the cause (see next item).
If you are getting 404s on just one thing, then it’s likely that thing. Make sure you didn’t accidentally delete the piece of content or move it to another URL.
It may be a URL conflict. For example, if you upload an item to the media library and it takes the URL /my-item/ and then you try to create a page with the URL /my-item/ you are going to have a conflict cause that URL is already taken.
This can get particularly interesting if you have a URL /events/ and then install an event plugin which hijacks that URL for its own purposes. You’ll need to change the plugin settings to use something else or move/delete your previous events page.
Permalink errors
Sometimes you need to resave your permalinks, twice. Literally, don’t change any settings, just go to Settings > Permalinks and save it, twice. Frequently it comes from an issue with your .htaccess file. If you’ve got a few different plugins that can write to it (or your hosting server did an update which made a change to it) then the .htaccess can get messed up. Resaving updates it and frequently fixes it.
Website can’t send mail
If your website can’t send mail or your email is sending up in everyone’s spam folder, the solution is the same. Get a transactional email system setup.
WordPress search is broken
On all WordPress sites, basic search is built in. But sometimes the results pages aren’t displaying the right results (frequently just the most recent posts).
The first thing to check is that you have a proper search page actually being queried. One of the most common issues is that a theme or plugin is overriding the search page and displaying something else. I recently ran into this issue with an Elementor site that had accidentally set the search results page to display the most recent posts results in their template settings.
Content is missing
If your content has “vanished” then either it got deleted, or a script isn’t loading right.
Content can get mysteriously deleted when your website is having issues with AJAX. Basically, a lot of WordPress uses AJAX in a lot of processes, and if there is a glitch in your AJAX then all sorts of stuff can go wrong. For example, if AJAX can’t function properly, many page builders will stop functioning and may even delete the data by accident. A number of other plugins can also have a lot of issues if AJAX is broken.
So how does AJAX get broken? There are two main ways: you have code in your website which broke it; or your server has gremlins. To figure out if it’s code in your website, follow the debugging section at the beginning of this article. To find out if it’s your server, clone the website to another server (with a different hosting company) and see if the issues are still there.
If content has vanished on the front end of your website and there’s a blank box where the content should be, then your issue is likely a script not loading right. This can be a simple fix of just needing to update your theme or plugin, or it can be a complex issue where you need to get a new plugin and replace the functionality.
Internal Server Error (500 Error)
Perhaps the most confusing WordPress error that a beginner may come across is “Internal Server Error”, or sometimes “500 Internal Server Error”.
The first thing to do is wait 5 minutes.
If that didn’t work, and you made a recent change to your website (or a plugin or theme updated — check SFTP for last updated times if you don’t know or you allow automated updates).
Site not loading
The first thing to do is check if it’s everyone, or just you. If it’s just you, then wait a few hours or try a different IP address (ie: your mobile phone connected to mobile data).
Otherwise, if it’s just a blank white screen, scroll down to “white screen of death”.
If it’s partially loading, then there’s usually a PHP or JS error.
PHP errors
Most PHP errors will not be displayed on your website unless you have WP_DEBUG turned on. However, they are frequently printed to your error log. Typically, the error log is found in your main website file directory. However, it could be in a lot of other places depending on your hosting company. You should search for where to find your error log with the name of your hosting company. If your hosting offers multiple types of hosting, you’ll all need to check where it is based on the type of hosting you have.
Now that you have your errors, the simple answer is just read the error. It will tell you where the error was called from with the file path. Typically, that file path leads to one of your plugins or your theme.
For more on debugging PHP errors, check out Kinsta’s article.
JS errors
Javascript errors are normally reported to the console. If you don’t know how to find the console, read this article. The JS error will normally report with the file path. So just like with PHP errors you can figure out which plugin or theme is causing the issue. As far as fixing the issue, you can try searching the internet for suggested fixes (just be careful attempting any fixes you find out there as many are from forums and could potentially damage your site).
File permissions gone wrong
The symptoms for this one are usually “things behaving strangely”. It might also be attempting to upload images to the media library and they won’t upload (with something like “directory not writeable”). A number of hosting companies have a quick script that can be run on your WP install to reset all of your permissions.
There are also some plugins which can misbehave and do some damage to your file permissions. If you start having the problem repeatedly, you likely have an errant plugin or theme, or you’ve been hacked.
Privacy issues
Privacy is getting focused on front and center. Many states are putting out new privacy laws and in those laws, they are allocating funds to actively pursue violators. That means state attorney offices will be writing web crawlers to literally hunt for offenders. And remember, these offices have easy access to the lists of everyone who’s filed taxes or has registered a business or non-profit in that state. Also, many laws cross state lines and they will be checking other states once they are done with their own.
The easiest offense to spot? If they scan your homepage and the word “privacy” isn’t found.
The easiest way to prevent this? Two-fold: first get a privacy policy, and second learn the basics of privacy law and what is and isn’t a no-no.
Accessibility issues
Speaking of lawsuits, another big arena is website accessibility. Questionable lawyers are out there having scripts written to literally crawl websites and scan them for accessibility violations. So it’s a good time to take a look at your accessibility and improve it. A good first step is to run an accessibility checker plugin on your website.
Also, be aware that those overlay tools frequently make accessibility worse. In fact, a quick look at their advertising websites generally reveals a whole slew of accessibility issues.
Slow website
There are a lot of reasons for a slow website. Kinsta has a rather extensive article on speeding up your website.
Issues from outside sources
Cron is broke
If you are having cron issues with your website, there is a decent chance it’s your hosting company. If you are at a low end shared hosting provider, I’d recommend making a test site on a better provider and seeing if the issues still happen there.
SSL didn’t renew or requires manual install
SSLs error occasionally. I have all of my maintenance clients on SSL monitoring so I know if there is an issue with their SSL before it actually affects them.
- If you have a Let’s Encrypt SSL, typically it just needs to be reissued. Check your hosting company for how to do that.
- If you have a paid SSL, it normally must be manually installed. Check with the SSL provider and your hosting company for how to do that.
Database connection error
There are a number of possible reasons. One is just a temporary outage. Wait 5 minutes. If it’s still there, try this article.
Hosting/email/registration didn’t renew
I recommend that everyone checks their accounts annually to make sure that all billing information is up to date and accurate. Either your billing info being off or something not set to auto-renew is generally the reason for this.
Server gremlins
Sometimes a website just has issue after issue. All sorts of strange stuff happening. And frequently when this happens, the problem is the hosting company. Or as I like to call it “server gremlins”. Basically, something in the web server’s configuration is messing up AJAX calls which calls all sorts of strange issues. Especially related to CRON and saving of anything.
Do you know if your site is up?
One of the biggest issues is not having uptime monitoring. A simple way to monitor if your website is up & running is to use a monitoring service like Uptime Robot. Their basic free plan allows you to monitor your site at 5 minute intervals and have them email you if your website has a problem.
Security issues
Google ads or search console notified you of a hack
If you get a notification, then there is a good chance you’ve been hacked. The first step is to remove the hack, and the second step is to get your reputation cleaned up. Note that for Google you may have to submit a whole chain of tickets to get someone to manually review your sites. It can take weeks.
Theme or one of your plugins has a known vulnerability
There are theme and plugin vulnerabilities released every week. The reason is, it’s very very hard to write perfect code. So when a vulnerability is found, the author patches the plugin and you need to update it. Using a premium security plugin or service which notifies you of vulnerabilities is essential to getting these vulnerabilities patched quickly.
Poor website reputation
Most people don’t think to check their domain reputation across major antivirus systems. And that’s a mistake. On almost any hosting account you get, you’re going to get a previously used IP address. And that IP address may have some poor reputation you inherit. Think of it like a new phone number. When you get a new number you usually get some calls that went to the previous owner.
You should at least annually check your website reputation across a number of antivirus systems.
Getting emails or calls that there is a problem with your website
First, if you are getting those emails about your site having problems and some random person is trying to sell you audit or SEO services, that is junk. Delete those.
Now, if you are getting issues from actual customers or potential customers, those you should pay attention to. Issues fall into two categories: something is technically wrong with your site, and you have poor user experience/design.
If something is technically wrong with your site, then you’ll need to look into it (it probably falls into the category somewhere else on this post).
If the customer is saying “your links don’t work”, then it’s quite possible you have a very poor user experience. For example, I had one client who insisted on using blue text for emphasis. Now, over 20 years of the internet have taught people blue text equals a link. But, until his customers actually called saying his site was broken, he didn’t believe me. Shortly after, we corrected the site to identify links vs emphasized text properly.
Insecure content
If you are getting an insecure content warning, head over to whynopadlock.com and enter your URL. It will tell exactly which resources are causing your issues.
Redirecting to a new location
There are times when websites have been hacked and the hacker has used a redirect to send visitors to a new location. One of the insidious ways this can be used is to only redirect some of your traffic. This can be done via javascript inserted into your website which specifically targets visitors. I one time saw a hack where 10% of mobile traffic was redirected. This meant web visitors on phones were experiencing it sometimes, but the website owner never experienced it.
You don’t have a backup and/or can’t restore it
Things go wrong, this is merely a fact of life. You should always have a backup and be able to restore it. If you have been using a backup system that relies on your WP site functioning properly, then there can be cases where you can’t restore it.
For example, if a plugin update completely crashed your site. In this case, you’d need to manually go into via SFTP to get your site back online. If you can’t do that, then you’ll need to hire a developer who can. Or you can save yourself a lot of headaches and get on a low-cost maintenance plan which gives you access to a developer when you need one.
Caching & resource issues
You didn’t check incognito
It’s always important to check your website in incognito (or private) browsing mode to make sure that your browser cache isn’t showing you different results from what general visitors would receive.
You didn’t clear the cache after running updates
After nearly any update to plugins or themes, you need to clear your cache. Not doing so can result in a mix of old and new files attempting to load. Which can cause some surprising and unpleasant experiences.
Over your CDN quota
Content Delivery Networks (CDNs) can be powerful tools for your website, especially if you have a geographically diverse audience. But many of them have limits, or quotas, on how much data you can use each month. Depending on the policy, they will either bill you more when you go over the limit or they will shut down the CDN.
One time I was called in to fix a site where suddenly all of the images had disappeared. It turned out the cause was all of their images were offloaded to a CDN and they were over quota. Increased their plan at their CDN, and cleared the caches and the site was back showing all of the images.
Over your bandwidth allotment
Similarly to over CDN quota, you can also go over your bandwidth allotment. And different hosting companies will treat this differently.
- Some hosting companies will merely allow it, this is called a “soft limit”.
- Other hosting companies will charge you additional fees for your extra usage.
- And still others will put restrictions on your site which could significantly affect your user experience.
Update problems
.maintenance file got stuck
When updates run on WordPress a file named .maintenance is created. Upon successful completion of updates, this file is supposed to be deleted. Unfortunately, on some low-quality hosting (GoDaddy and others) this file does not get deleted. And then your website is stuck in maintenance mode.
You have to manually get into your SFTP and delete the .maintenance file in order to bring your site back online. You may also have to delete & upload clean copies of a plugin or theme if that update got interrupted (Yoast is one of the most common).
White Screen of death
The “white screen of death” is when your website is just a white screen. No content, no errors, nothing. The good news is, that there are a lot of ways to fix it.
Update failed: The package could not be installed
Most of the time the package can’t be installed because it’s either not available or the license is not working. See next item.
Update not available due to invalid license
This one usually means that you don’t have a license for the plugin or theme you are trying to update. That could be because the license system disconnected, you never had a license in the first place, or your license expired. Check the plugin or theme’s license page for details on what you need to do.
Database update required
WordPress usually requires a couple of database updates a year and several plugins are known for requiring them. When your site asks for a database update, go ahead and update the database.
Don’t put off database updates, because delaying them can cause issues.
Plugin not reactivated after update
I’ve seen this happen on all manner of hosting companies, you updated a plugin and it didn’t reactivate. This is a reason why it’s always important to check your list of plugins after updates to make sure they all made it through the update just fine.
You may need to just reactivate the plugin, however, more likely than not the plugin didn’t update properly. You’ll need to get a fresh version of the plugin and update it via SFTP before you can reactivate it.
Theme settings need to be resaved after update
There are a few themes known for needing to have their settings resaved after updates. Themes from Qode, like the Bridge theme are well known for their issues after updates. Once you update the theme, you have to go into the theme settings and click on save. No changes needed, but you need to click save.
Update only partially installed
Sometimes a theme or plugin gets only partially installed before an error happens. This can leave a bit of a mess in your file system. Frequently you need to go into your SFTP and manually remove the newly installed version and replace with a fresh copy of the theme or plugin files. You may also need to remove the older version of the plugin.
Your settings disappeared
There have been several instances over the years of settings disappearing in various themes and plugins. This is part of why it’s so important to have a good maintenance plan in place. The general answer is that you can go back to a previously saved backup and get your settings back.
Third party service decided to disconnect
If you are using a third-party service, periodically it may need to be reconnected. One of the most common is any plugin that connects to social media. Typically there are updates to the APIs and when this happens, you need to reconnect. In this case, you’ll usually see a notification on your admin dashboard.