Three ways to diagnose a broken WordPress site.

When working on a site, sometimes an a rogue plugin or caching problem can take your whole site offline with little to no indicator as to what caused it. Here are a few places to check if your site breaks.

If you come to your site and only the homepage works, you may have a permalink problem. I had to recover a backup and activate it once, and afterword only the home page worked. This new backup changed the settings I had in the htaccess file. When you change the location of an install or create a new .htaccess file, you will need to reset the permalinks. To fix this, simply go to Settings –> Permalinks and click Saves Changes.

HTACCESS File

The .htaccess file controls a lot of information. If you use W3 Total Cache or Super Cache, they store settings in the htaccess folder to affect the changes. While using these plugins, it can be very easy to create settings that block everyone, including you, from visiting the site. Breaking the .htaccess should return a 500 error.

In order to fix this, you will need FTP access for your install, and be able to see invisible files (the “.” at the beginning will hid it). Each FTP is different but should provide documentation on how to turn on invisible/hidden files. The .htaccess folder is located in the root directory of your WP install. More often than not, you will need to delete everything out of your .htaccess except the following:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ – [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

Debug Mode

If you’re site is still giving you a WSOD (White screen of death), then it may be more than a rewrite problem/caching issue. If you’re site was recently worked on or you updated a plugin, a PHP error might be preventing the page from rendering. Normally wordpress hides these while the site is live but if you have FTP access you can turn on debug mode to show these errors on the front end.

To turn on debug mode, log into your server and navigate to the root directory (this is the top most folder that holds your WordPress folders). Locate the wp-config.php and open it in your text editor of choice ( I highly recommend Coda 2 for professionals, and Sublime for mac users who don’t use this very often).

define( 'WP_DEBUG', true );

If you can’t find it already in the file, add it in. I’ve build a LESS complier into my theme, and sometimes it compiles wrong causing a WSOD. Turning on WP debug helps me find out where in the file I missed up.

Finally, if you’ve turned Debug mode on and you don’t understand what it says, contact your hosting support to see if they can help you, or send me a tweet and i’ll look at it. If you have other problems or solutions, comment and I’ll add them!