Browsed by
Tag: Google

Photo Credit:
Continuing to Improve a Self-Hosted WordPress Blog

Continuing to Improve a Self-Hosted WordPress Blog

Last month, I took action to correct the ultra-slow loading time of my blog.  I cleaned up the site and used a few plugins to improve the performance.  I went from a “D” score to a middle “B” according to Google’s PageSpeed Insights.  Most importantly, the load time according to Pingdom went from 13.6 seconds to 0.914 seconds. This is a huge improvement, and I am delighted by the results.  I covered the steps I went through in my March 25th post.

Note:  I am not affiliated or compensated in any way by any company or service listed or linked.  This is my experience as I work to improve my website’s performance through trial and error.  If anyone has suggestions or recommendations to improve the performance of a self-hosted WordPress site, please post a comment.  Thank you for the help! –Mike

However, I noticed a few issues starting to creep up when the caching plugin was enabled. First off, the WordPress Admin page became very slow.  The login process could take 30 seconds or longer to complete.  Additionally, some of the images would show as broken links or be incorrectly sized until the page was refreshed.  I know some of this is fixable by

  1. Disabling the Object Cache
  2. Locating and moving some of the Java out of the minify settings. I would need to test and find the exact Java files that are causing the issue.
  3. Change the .JS loading to blocking.

The last thing I ran into was build errors related to the CSS/JS cache. From doing some reading, these errors seem like they could safely be ignored.  However, it was bugging me.

I started to look for a new cache plugin that has been updated more recently.  I came across WP Fastest Cache. The configuration of WP Fastest Cache is a snap to set up.  I placed check marks in all the available options listed in their settings’ tab.  That’s it.  Done. I waited for 24-hours before completing a set of tests.

Configuration changes from the original baseline.

  • Added basic SSL encryption: I used the .htaccess file to urge all sessions to connect over SSL.
  • Replaced the blog theme to Nisarg from Poseidon
  • Add plugin Redirection of help eliminate some old 404 errors when pages have been renamed
  • Stopped using CloudFlare as a CDN until I have a chance to configure it for SSL. For now, I will use Photon that is part of Jetpack as an image CDN.
  • Replaced the cache plugin

Results from Pingdom

Grade: 84
Requests: 31
Load Time: 1.08s
Page Size: 637.4kB

I would say that the plugin is working very well.  While the load time is 19% slower than my earlier results, the total size increased by 38%, and everything is now being delivered over SSL.  This adds more overhead and time for the site to load.  I have detected no performance issues, errors, or layout problems.

What more could I ask 🙂

Photo Credit:
Improved Self-Hosted WordPress Performance

Improved Self-Hosted WordPress Performance

My self-hosted WordPress website was slow. Google Analytics Site Speed showed page load times fluctuating from 8 to over 15 seconds.  I know that anything over 2 seconds is bad and results in lower traffic and search engine referrals.  I have put up with this slowness for years, but now I need to address this problem.  I spent time with Google searching and reading about WordPress settings, plugins, content delivery networks (CDNs), and web host configurations that are designed to improve site performance. There are links to many of the resources I used throughout this post. Furthermore, if you are hosted with an optimized WordPress hosting service, then these steps may not be necessary because of the hosting provider’s optimization.  Please check with your hosting company.

I am not an expert, and I addressed my website’s performance problem through trial and error.  I tried many combinations of plugins and setting before locking in on the below mix.  I am NOT being compensated for this post in any way.  It is my experience, and some of this information may very well be wrong.  If anyone has suggestions or recommendations to improve the performance of a self-hosted WordPress site, please post a comment.  Thank you for the help! –Mike

Initial Page Speed Assessment for

  • Google PageSpeed Insights Score: 64/100 (D)
  • Google Analytics Site Speed: 8-15 Seconds
  • Pingdom results using the New York Test Server
    • Grade: 65/100 (D)
    • Requests: 49
    • Load time: 13.6 seconds
    • Size: 1.6Mb
    • Slower than 88% of websites
  • These are very dismal results, and it is no wonder why my site traffic has fallen badly over the last couple of years.

Final Optimization Results as of 03/23/2016 – a significant improvement in the site performance!

  • Grade: 83/100 (B)
  • Requests: 19
  • Load time: 0.914 seconds
  • Size: 460.6 kB
  • Slower than 9% of websites

What I Used
Note: the free plugin versions were used, but I believe in supporting the developers. Thanks and free press for the developers are nice gestures, but it does not pay their bills. All software takes time and serious skill to develop so buy their services & software if it is valuable to you.

Before We Begin, Backup…Backup…Backup

Anytime major changes are made to your blog, it is important to back up the site before starting.  If things go wrong, you can always restore the site. If you do not have a backup process already in place, it is simple to add.  Login into your site admin page, go to plugins, select “Add New” and search “Backup.”  Many of these backup plugins support multiple storage options, including writing the data to Google Drive, an FTP account, Amazon S3, and Azure. Please take to look them over a few seem to be shady, so taking some time with Google is in order.  I have purchased backup service through Automattic’s VaultPress, and it is working well.  Please, Please, and Please, take the time to back up your site—including the database—before continuing on with this post.

Creating a Blog’s Baseline Scores

Go to Pingdom and test your website as a baseline.  Click on “Settings” and pick a server in the “Test from” section.  Keep using the “Test from” server throughout the process.  If you are doing this over multiple days, you will want to test at roughly the same time to make sure you are comparing apples-to-apples. Once complete, visit Google’s PageSpeed Insights and complete a test. Be sure to document your results to see what changes are improving your scores. My initial scores are listed below.

  • PageSpeed Desktop Score: 64/100 (D)
  • Pingdom Grade: 65/100 (D)
    • Requests: 49
    • Load time: 13.6 seconds
    • Size: 1.6Mb
    • Slower than 88% of websites

Time for a clean-up

Review your installed plugins and deactivate and remove any plugins that you do not need or want.  Look at each plugin and think about what it will do for the performance of the site and does it help deliver your content.

Example: Page View Plugins to show most popular posts.
These write an entry to your database each time a page is loaded.  This will slow your website down, and what value does it bring to your readers?
Alternative: Use Google Analytics or the Site Stats component of Jetpack to understand your best posts.

Example: Related Posts Plugins
These are great and may help retain visitors longer.  However, many will process the data on your webserver and hit your database hard.  This slows down your website.
Alternative: Use a plugin that shifts the burden off of your site.  The Related Posts feature in Jetpack is one such plugin.

Do not have another cache or optimization plugin installed as it could conflict with the plugins that I listed in the What I Used section. Review the features included with Jetpack and disable anything you are not using.  If possible, see if you can disable any feature or option of the other plugins that are not being used.  Basically, if you are not using it, don’t enable it.  Since we are in clean-up mode, take a critical look at the widgets that are being used.  Do they serve the purpose in helping your visitors consume or find additional content?  Do they add value to the visitor’s experience or aid in establishing the blog’s authenticity?

Once complete, clear the cache from your web browser and visit your site.  Does it look right?  If so, complete another set of tests and see how your results compare.  If the site looks off, go back and enable one thing at a time until you find the feature you were looking to restore.

Are you considering changing your theme?  Now would be a great time to do it.  Once your new theme is active and the widgets set, run the tests once again.  The site is clean, and you have a solid performance baseline metrics for your WordPress site.

House Keeping (not speed related…but many people forget to do it)

Update WordPress, themes, and plugins to their latest versions.  Please do this frequently for improved security, stability, and performance. Next, we want to make sure that you have an updated SEO plugin.  The website title, description, keywords, Google Analytics tracking code, webmaster verification code, and any other headers that need to be added.  A good plugin should allow you to set your robots.txt file.  Jetpack will take care of creating a sitemap that should be submitted to Google and other search engines through their respective webmaster tools.

Plugin Overview

  1. Jetpack by Automattic
    This is a powerhouse plugin and has a ton of features to offer including an image CDN. Use Photon if your web hosting provider does not have a relationship with a CDN that comes with your service.  Media Temple uses CloudFlare as their CDN partner and a basic subscription is included with my hosting service.  This is becoming more popular, and you should check your host’s control panel.
  2. WP Smush
    Images can represent a huge slowdown for websites. WP Smush optimizes your images as you add them to your media center in WordPress.  Additionally, it can optimize your images already in your blog in batches.  This can take time, and you must stay on the page to do it.  Do not skip this step!
  3. W3 Total Cache
    This is a great caching plugin. It will create static HTML files for your website.  These files are much faster to deliver than the PHP files that WordPress uses.  Additionally, this plugin will update these static files as you make new posts or when they need to be refreshed because of age.  The plugin will require some configuration, but it is well worth it.  There was some concern regarding the continued active development of this plugin.  WordPress Tavern did a nice write-up on its status.

Setup Details

Jetpack by Automattic
Install and activate the plugin.  This is straight forward.  I disabled the following features: beautiful math, carousel, comments, Gravatar, JSON, Likes, Markdown, Monitor, Photon, Post by Email, Single Sign On, Site Verification, Galleries, VideoPress, and Data backup.  I use Disqus as my comment system, so I use the Disqus Conditional Load plugin. If you do not have a CDN that comes with your web hosting services, then you should enable Photon.

WP Smush by WPMU Dev
Install and activate the plugin. From the plugin page under WP Smush, click on “Settings.” Place a check mark in “Smush images on upload” and then “Save Changes.” Next, under “Smush in Bulk,” press “Bulk Smush Now” until all of your prior images have been optimized. This will take a while based on how many images are in the media library.  The free version limits it to 50 images per press.  I pressed “Bulk Smush Now” a lot… Once complete, I averaged a 20% reduction across my entire media library.

W3 Total Cache by Frederick Townes
Before installing this plugin, open another browser window in Incognito or InPrivate mode. Then go to your blog’s home page in that private window. Once you are at your home page in the private browsing window, Right Click on the page and view the page source code. In Google Chrome, the option is “View page source.” In Microsoft Edge, this option is “View Source.”  You will need this code window later so do not close it.

NOTE: If you use the mobile theme that is part of Jetpack or WP Touch, then your desktop users may see mobile versions of pages.  Some additional steps are required to address this issue.  I am working on these steps and will do a separate post once it is complete. One quick option is to disable the Jetpack mobile theme support and see how your theme looks on your mobile phone.  Many newer themes work great.  Another workaround is to make a few changes. These are temporary workarounds, and I know it.

Now, move back to your main browser window that is logged into the WordPress admin page.  Go to plugins and install/activate W3 Total Cache. I did not have to reset any security permissions as they were all set correctly way by default. There is an excellent setup guide completed by Ahmad Awais, and I do not believe in reinventing the wheel.  The Guide is broken into a few parts and takes you through all the key configuration steps.

Our option configurations were very close.  We diverged in the advanced minify area.  The options I used are listed below.  You should test both methods (Ahmad Awais first) to see what works best for your site.  This includes speed and functionality.

Minify Details Page (Performance | Minify)


  • Line break removal: Enable


  • Minify for all three options and select Embed type: “Non-blocking using async”

This is where it starts getting more complex. I went back to the other browser window where I have the code for the web page displayed. I then searched through that code to find all the Java files. There are three sections where these files will typically live. You will need to look closely, but find file names ending in “.js” after the <head> and before </head>, after the <body> tag but close to it, and before the closing </body> tag. In looking through the View Source and using the search function, it is pretty easy to find all the files that end with “.js”. Please be aware that some of these files will have parameters after the .js that begin with a “?”. Please see the below screenshot for what some of my entries look like. You need to be sure to group the Java files in the correct section and in the same order as what was listed in the View Source. It is not hard to look through the page source and find these files. You may want to view the source on some of the other pages and posts to see if the Java files are used consistently throughout the site. If not, you can specify the Java files by template page type. In my particular case, all “.JS” files were consistent across the different page and post types, so I was able to apply them to “All Templates”.

W3_Total_Cache_JS_SectionClick image for a larger view


I specified the .css files in the same way as I did for the Java files above.

W3_Total_Cache_CSS_SectionClick image for a larger view

Even though my screenshots only include a few files listed, I had 16 Java files and 8 CSS files.

Wrapping It All up and Publishing

I then “Saved all settings” and went to the Dashboard underneath Performance. If you have not done so already, deploy your configuration. If you have already saved this configuration, you will simply need to empty all caches. At this point, I opened up another browser in incognito mode, emptied its temporary files, and thoroughly tested the site. I was not able to detect any visual or functional anomalies for my site. I tested search, navigation, links, comment forms, and the feedback form. I logged in and out of the admin portal several times, and everything worked as it should.

Retesting to Assess the Results

I performed new PageSpeed Insights and Pingdom test.  The results were phenomenal. The improvement was dramatic, and I was shocked at how fast I could navigate the site after the cache was seeded.

  • Grade: 83/100 (B)
  • Requests: 19
  • Load time: 0.914 seconds
  • Size: 460.6 kB
  • Slower than 9% of websites

Furthermore, take a look at my server load below. I use a shared hosting platform so GPUs represent an allocation of CPU resources. Can you tell when I deployed the cache?


After this was completed, I enabled the content delivery network, CloudFlare, that comes with my hosting provider. My performance decreased slightly but that CDN offers several advantages, including greater website security. For now, I am leaving the CDN enabled and seeing how it performs over time. Currently, it is reducing server bandwidth by 20%. I will spend some time tweaking its configuration to figure out how to get the best performance out of it.

I hope this information helps, and please let me know if you have other tips or alternative configuration settings that produce better results.

Photo Credit: Ramirez
Back to School Night

Back to School Night

Google is taking over Macs in schools!  Chromebooks and Google Classroom seem to be making some serious inroads in the K-12 education.  For every Mac we saw tonight, I saw a technology cart full of Chromebooks.  It is fascinating to see the adoption of technology in the classroom. The students seem to love it and enjoy the content. Teachers were more dubious.  With all new technologies, some glitches were experienced and some people adapt to new technologies faster than others.

A couple of teachers seemed less than thrilled, but everyone else had positive comments as to the role of the new electronic tools. Many teachers prefer the Chromebooks to Macs for the students.  They commented on cost and the benefit of having one for every student.  In addition, they liked how students could start on an assignment at school and finish it at home.  They days of “I forgot my assignment at home” are gone since all the data is stored in the cloud.

It will be fascinating to see how the technology evolves over the next decade.

Opportunities at the Application Layer

Opportunities at the Application Layer

I saw a headline earlier today that Bill Gates spent the day installing Windows 8.1.  I too, in my free time, have spent the last couple days beginning to set up a new Windows 8.1 laptop.  I am certainly known to be an advocate for Microsoft since I built much of my career on their products, but by no means would I consider myself a fanatic.

The installation of the operating system has gotten easier with every release of Windows since the early days.  No matter if you are a Microsoft or Apple fan, I would argue that every release of the operating system for both platforms continues to get better with time.  I certainly am not enjoying the wipe and reload process related to replacing a laptop, but it is certainly better than what 5 or 10 years ago.  Back then, it was a balmy 8 to 10 hours to complete the job.

The operating system is probably the easiest part to get installed.  Drivers and Windows updates come down extremely easily. My frustration with the entire process continues to be the application layer.  It takes absolutely forever to install all the applications and utilities back on your computer after replacing the hardware or just completing a fresh start with a clean operating system.

It will take about an hour to get an operating system installed and patched, but it could easily take me 4 to 6 hours to download install and configure every application utility that I use.  Each time I do this, I always swear that I am going to make an image of the hard drive before I start using it.  The idea being that the very next time I need to do this, I can just drop an image on it and be done.  Needless to say, I never do it for some strange reason.  Maybe it is just my own morbid fascination with the process.

The market is beginning to challenge application providers to come together with easier and more portable application installation and preference retention methodologies using the cloud.  It unquestionably should not be that hard to track all of your application settings and write those preferences to the cloud. Imagine the very next time you install the software and login, it will bring down all of your preferences to the device.  Time Saver!!

Google with Chrome certainly has done this and Microsoft has made significant strides with the latest version of Office that are tied to a Microsoft account.

These are two examples where the software manufacturers got it right, but there are myriad of other applications and utilities out there that do not leverage this simple time-saving and customer beneficial enhancement.  Mobility is driving innovation with applications that span all platforms and remember whom you are no matter what device you are using.  This is the new frontier and opportunity for all application vendors to innovate and modernize their platforms to become more customer-focused.

Saying Good-Bye to Some Old Apps

Saying Good-Bye to Some Old Apps

All good things must come to an end so goes the saying. And with the recent scheduled shutdown of Google’s Reader service, my mind goes back to a couple of my other favorite Internet services.

For instance, does PointCast‘s ring a bell? This was one of the first, or maybe even the first, push-based content services. What was that, 20 years ago…I loved the fact that it pushed news and information to me through a simple application interface and came with a great screensaver. The company could have been sold for a huge sum of money, but ultimately, it was not enough for the ownership.  They held on too long, and if memory serves, it was sold for only a fraction of what the highest offer once was.

Google is in the process of killing another of my favorite services.  iGoogle has to be one of the best home pages out there.  I found it to be a great service for holding everything from bookmarks to RSS feeds.  There were widgets of every possible combination that can be plugged into the page.  It loaded insanely quick and enabled me to access the same content information from any browser on any computer.  When the service finally dies at the end of the year, I will greatly miss it.  Netvibes is the closest replacement I have been able to find.

Even a few years back, Microsoft bought a company that offered an application that indexed your Outlook email.  It had a great search syntax and user interface.  Evidently, the technology was to be integrated in a future version of Outlook, but nothing Microsoft has released has come close to the ease-of-use and accuracy of that Outlook add-in.  I must be getting rather old because I cannot even remember the name of the application anymore.

Photo Credit: Google
Using Site Speed in Google Analytics

Using Site Speed in Google Analytics

Today, I was looking through my Google Analytics account and found something new. In reality, it is not really that new; I am just late finding it. The feature that I am speaking about is called Site Speed.

Site Speed is a feature that I am most excited about as it offers us Google’s perspective on the average time it takes to load various pages on our websites.  This is not blinded aggregated benchmarks but the actual load times for various pages on our websites.  Google has given us this powerful and amazing feature.  No more will we have to guess or beat our collective heads into the wall by using various small or inconsistent players in order to help determine page load times.  Do not get me wrong, there are good services that help with this determination, but Google will quickly become the de facto standard for its broad-based consistency and ease of use.

A simple change is required in your Google Analytics Tracking code.  You need to add “_gaq.push([‘_trackPageLoadTime’]);” to your tracking code.  Please see the below example for placement.

Read More Read More

Photo Credit:
High Expectations and Low Tolerances

High Expectations and Low Tolerances

High expectations with a low tolerance for frustration typically make for cranky customers. The web has turned the vast majority of wired people into cranky customers. I just cannot accept that my (insert application name here) is not working or accessible to me right this instant. I can think back to just a few years ago when an outage of a Google service was a minor annoyance and did not make me cranky in the slightest. Now, I am upset and frustrated if I get the “page cannot be displayed” error message for more than five seconds. I, like most users, feel let down when a service provider has any problem that affects our usage of their service. Almost everyone expectations have been raised over the last several years by all the great web applications and service levels. We, the web users, all now border on unrealistic.

Admit it, you know a few people that picked up and moved right across that boarder. You wave at them from time to time, that is, when they are not ranting about some site that is messing with their customers or other such nonsense.

I work in IT, so I understand what managing infrastructure is like. It is a thankless job where the only time you hear from anyone is when there is a problem, and the users are chanting for your head on a stick. I have now become one of “them,” the complainers, and I am currently looking for my pike and torch to join an angry mob. My current gripe is with a site that I use frequently, but it will not allow me into my profile settings page, so I cannot integrate it with another site. Can you believe how annoying it is when you cannot access one site’s content from another site? Seriously, I know this is trivial at best, but it is indicative of where I think we are heading.

The demand for perfect uptime is getting ridiculously high. When the maximum acceptable system downtime is 1/10 of 1%, things start to get complex to say the least. My hat is off to all the great engineers out there who work their tails off tirelessly to maintain the crazy uptime percentages that we users demand. The truly sad part is the demand for perfect uptime is only gaining momentum. Which you could say, is great for the cloud and the broader adoption of virtualization and distributed computing of sorts.

See, every dark cloud does have an unseen benefit for some enterprising company.