Resolved: WordPress hosting on GoDaddy Windows Server
Two months ago I transferred my domain to GoDaddy from a local web hosting service provider with whom I had been for last 7 years. The transfer process was very quick and I was very happy to see a good console panel, and 24x7 support until I noticed in Google Analytics that my site visitors had dropped by 50%. This was really sad and I knew nothing to get that number back to the original.
I started visiting my website and, my God, it took more than 1 minute to load and many a times it never loaded. When I filled in the contact form, it never sent me an email! I started googling and found many links each contradicting the other. So finally I installed few plugins
- Installed WP Total Cache plugin (to speed up Go-Daddy)
- Installed Fix Rss Feeds (since RSS feeds were not working)
- Installed Configure SMTP (since mails stopped working)
And I slept in peace thinking my site would work now! After a week, I again visited my site and it took lesser than 1 minute. But it was still slower than earlier (with my local hosting provider). I started following up with GoDaddy Support. The support team is very supportive and have great deal of patience, but somehow they don't have technical expertise on WordPress. My website was hosted on Windows- 4GH hosting on GoDaddy, and they suggested me to migrate to Linux. Now, PHP works great on Windows and I needed Windows hosting to be able to host other services. So switching to Linux was not an option! On top of this, their Windows server in Singapore data center, on which my website was hosted, was down! I had >3 days of website downtime and was not able to find a way out.
I dig into the WordPress code, and understood the internals. Now I am not a PHP expert but having worked on many languages since last 15 years I can fairly understand PHP to be able to find out issues. My observations that got me started working are:
- Each web request to a page had many re-routes. First, the caching block redirected it to a static HTML page (generally placed in \wp-content\cache folder).URL 1: http://www.mywebsite.com/2011/10/10/my-post/ was translated to
URL 2: http://www.mywebsite.com/YYOOX/2011/10/10/my-post/Which then routed to internal WordPress cache engine
URL 2: http://www.mywebsite.com/YYOOX/2011/10/10/my-post/ was translated to
URL 3: http://www.mywebsite.com/YYOOX/ABCY/2011/10/10/my-post/Now your actual URL 1 becomes URL 3 which WordPress will never find for you in the database and you will get a 404 page.
Solution: Disable WP Total Cache plugin and all plugins to caching. With newer versions of WordPress they are not required.
- Once you have disabled Cache plugins, recycle the App Pool
- Delete the folder \wp-content\cache
- Delete the plugin folder from \wp-content\plugins
- Edit the wp-config.php in the blog root and ensure that WP_CACHE is disabled
define('WP_CACHE', false); - Activate any another theme and then re-activate back to the original theme. This is just to enable that site settings are altered and caching is over-ridden.
- Disable and uninstall YARP - Yet Another Related Post Plugin from WordPress. That takes time to load the results related to a post.
- Install plugin WP-Optimize to optimize the database
- Delete the entries that have cache
- Delete the entries that have YARP settings
- Install and activate plugin Clean UP to clean up the database - post versions
- Web Page Test - http://ln.Ghanshani.com/nvzPBm - This website runs a test on your website and tells us how many requests were generated to visit your website, and how much time each request took. In a way, it also tells you how much time JavaScript, Images, Plugins took. Much of it you can get using Fiddler2 as well.
- Browser Compatibility - http://ln.Ghanshani.com/oWedlR - This website checks the compatibility of your website on 76+ browsers