{"id":22354,"date":"2011-08-25T00:07:30","date_gmt":"2011-08-25T06:07:30","guid":{"rendered":"http:\/\/hill-kleerup.org\/blog\/?p=22354"},"modified":"2011-08-25T00:07:30","modified_gmt":"2011-08-25T06:07:30","slug":"blog-performance-problems-maybe-sorta-fixed-knock-on-wood","status":"publish","type":"post","link":"https:\/\/hill-kleerup.org\/blog\/2011\/08\/25\/blog-performance-problems-maybe-sorta-fixed-knock-on-wood.html","title":{"rendered":"Blog performance problems maybe sorta fixed (knock on wood)?"},"content":{"rendered":"<p><a href=\"https:\/\/hill-kleerup.org\/blog\/wp\/wp-content\/uploads\/2009\/03\/wordpress.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-14125 alignright\" title=\"wordpress.jpg\" src=\"https:\/\/hill-kleerup.org\/blog\/wp\/wp-content\/uploads\/2009\/03\/wordpress.jpg\" alt=\"\" width=\"162\" height=\"45\" \/><\/a>In figuring out recent problems with my blog, and running many, many iterations of <a href=\"http:\/\/www.webpagetest.org\/\">WebPageTest<\/a>, it became clear that my biggest performance problem was Time to First Byte &#8212; i.e., how long it took my blog to actually respond to a request for information. \u00a0In general, it was taking about 20 seconds for my blog home page to load, the first 10-12 of which were that initial response.<\/p>\n<p>As a result, a variety of systems simply didn&#8217;t register my blog, including Google Plus (when I tried to link to posts) and <a href=\"http:\/\/wasitup.com\">WasItUp<\/a> (which you can use to monitor a \u00a0website and alert you if it goes down). \u00a0Worse, some of the automated systems around here (my Twitter digests, my Google Reader digests) were timing out, such that both hilarity and many, many copies of those digests ensued.<\/p>\n<p>I did several things to address this, which I lay out only as some things for others to try. \u00a0I&#8217;m not enough of a WordPress (let alone Apache) techie to know precisely what worked.<\/p>\n<p>1. <strong>Show Me the Cache<\/strong>: \u00a0I installed <a href=\"http:\/\/www.w3-edge.com\/wordpress-plugins\/w3-total-cache\/\">W3 Total Cache<\/a> plug-in, which does all sorts of cache-y goodness. \u00a0Any post you read these days about optimizing WP blogs will probably mention this one. \u00a0This did a lot of good &#8212; WebPageTest gave me back loads of 2 seconds with time to First Byte of half a second &#8230; for the <em>second retry<\/em> on the site. New users (or internal utilities) weren&#8217;t getting much.<\/p>\n<p>2. <strong>Reduce Clutter<\/strong>: WebPageTest showed me some files that were taking a while to \u00a0execute, a lot of them Fun Stuff in the sidebar. \u00a0I took an axe to the least important items, and cut things back a second or two.<\/p>\n<p>3. <strong>Deflater Mouse<\/strong>: \u00a0My <a href=\"http:\/\/hostmatters.com\">host<\/a> provides a convenient interface through CPanel to &#8220;Optimize Websites&#8221; &#8212; which means making use of <em>mod_deflate<\/em> in Apache to compress-on-the-fly files being served up (in particular &#8220;text\/html text\/plain text\/xml text\/css text\/javascript application\/x-javascript application\/ms* application\/vnd* application\/postscript&#8221;). This helped things a bit (and is generally recommended on most performance sites).<\/p>\n<p>4. <strong>Share the Wealth<\/strong>: \u00a0A lot of optimization info says to push your graphic images to a Content Delivery Network like Amazon A3 and the like. \u00a0Meh. Lots of work. But &#8230; the <a href=\"http:\/\/jasonpenney.net\/wordpress-plugins\/use-google-libraries\/\">Use Google Libraries<\/a> plug-in farms out loads of common javascript libraries to \u00a0Google&#8217;s AJAX Libraries CDN, rather than the sites WP versions. \u00a0Not only does this increase the chance of grabbing a cached copy, or making use of Google&#8217;s superior performance, but it breaks out the stacked requests to my host&#8217;s server, \u00a0improving parallel performance.<\/p>\n<p>5. <strong>Cram it In<\/strong>: I used the <a href=\"http:\/\/cranesandskyhooks.com\/wordpress-plugins\/delete-post-revisions\/\">Delete Post Revisions<\/a> plug-in to get rid of the many duplicate post revisions that WP had autosaved for me, cluttering up my blog database tables. Then I used the <a href=\"http:\/\/yoast.com\/wordpress\/optimize-db\/\">Optimize DB<\/a> plug-in to compress the database of all that extra space. \u00a0This didn&#8217;t help as much as I&#8217;d hoped (nor as much as various sites had suggested), but it&#8217;s good housekeeping anyway.<\/p>\n<p>6. <strong>Farewell, My Plug-Ins<\/strong>: \u00a0The initial negotiation between WP&#8217;s PHP code and the host&#8217;s database (MySQL, in my case) is impacted not just by what shows up on the page, but by all plug-ins that might draw on page data &#8230; even if there&#8217;s nothing they are displaying, and even if the plug-in is disabled from displaying. \u00a0So I looked at my plug-ins (many), and deleted those I wasn&#8217;t using, had disabled, or could do without. \u00a0One of the most significant was a second recent comments plug-in I&#8217;d played with some months back and then decided not to use, but also an RSS digest plug-in, a Google +1 button, and a couple of others were booted.<\/p>\n<p>By the time I was done with all of the above (esp., ultimately, the last one), I&#8217;d dropped down to a 12-odd second load of the page, with only 3-4 seconds to the First Byte. \u00a0That&#8217;s not fantastic, but it&#8217;s enough to resolve most of the performance problems \/ bad scores \/ duplicated items I was having problems with.<\/p>\n<p>Knock on wood.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In figuring out recent problems with my blog, and running many, many iterations of WebPageTest, it became clear that my biggest performance problem was Time to First Byte &#8212; i.e., how long it took my blog to actually respond to a request for information. \u00a0In general, it was taking about 20 seconds for my blog &hellip; <a href=\"https:\/\/hill-kleerup.org\/blog\/2011\/08\/25\/blog-performance-problems-maybe-sorta-fixed-knock-on-wood.html\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Blog performance problems maybe sorta fixed (knock on wood)?&#8221;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_seopress_titles_title":"","_seopress_titles_desc":"","_seopress_robots_index":"","_seopress_robots_follow":"","_seopress_robots_imageindex":"","_seopress_robots_snippet":"","_seopress_robots_primary_cat":"","_seopress_robots_breadcrumbs":"","_seopress_robots_freeze_modified_date":"","_seopress_robots_custom_modified_date":"","_seopress_robots_canonical":"","_seopress_social_fb_title":"","_seopress_social_fb_desc":"","_seopress_social_fb_img":"","_seopress_social_fb_img_attachment_id":0,"_seopress_social_fb_img_width":0,"_seopress_social_fb_img_height":0,"_seopress_social_twitter_title":"","_seopress_social_twitter_desc":"","_seopress_social_twitter_img":"","_seopress_social_twitter_img_attachment_id":0,"_seopress_social_twitter_img_width":0,"_seopress_social_twitter_img_height":0,"_seopress_redirections_value":"","_seopress_redirections_enabled":"","_seopress_redirections_enabled_regex":"","_seopress_redirections_logged_status":"","_seopress_redirections_param":"","_seopress_redirections_type":0,"_seopress_analysis_target_kw":"","_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[55],"tags":[],"class_list":["post-22354","post","type-post","status-publish","format-standard","hentry","category-blogging-technical"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack-related-posts":[{"id":14126,"url":"https:\/\/hill-kleerup.org\/blog\/2009\/03\/11\/wordpress-digests-of-rss-feeds.html","url_meta":{"origin":22354,"position":0},"title":"WordPress digests of RSS feeds","author":"***Dave","date":"Wed 11-Mar-09 9:22pm","format":false,"excerpt":"As noted previously, I've been trying to find a way to fold a snapshot of an RSS feed -- in this case my Google Reader shared items -- into a daily blog post. I did this a while back as a manual process, but ... well, it was a manual\u2026","rel":"","context":"In &quot;Blogging - Technical&quot;","block_context":{"text":"Blogging - Technical","link":"https:\/\/hill-kleerup.org\/blog\/category\/blogging\/blogging-technical"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/hill-kleerup.org\/blog\/wp\/wp-content\/uploads\/2009\/03\/wordpress.jpg?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":32884,"url":"https:\/\/hill-kleerup.org\/blog\/2013\/03\/24\/twitter-tools-and-archives.html","url_meta":{"origin":22354,"position":1},"title":"Twitter, Tools, and Archives","author":"***Dave","date":"Sun 24-Mar-13 12:08am","format":false,"excerpt":"My Twitter Tools daily archives on this page have been broken since early February, and I'm unable to get them working again at this point. Twitter Tools -- the Twitter\/WP plug-in I use -- for some reason isn't generating the daily (or weekly) digests it is supposed to. It will\u2026","rel":"","context":"In &quot;Blogging - Technical&quot;","block_context":{"text":"Blogging - Technical","link":"https:\/\/hill-kleerup.org\/blog\/category\/blogging\/blogging-technical"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/hill-kleerup.org\/blog\/wp\/wp-content\/uploads\/2013\/03\/Technical-difficulties.jpg?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":30586,"url":"https:\/\/hill-kleerup.org\/blog\/2012\/10\/16\/twitter-and-blogging-and-informational-domains-oh-my.html","url_meta":{"origin":22354,"position":2},"title":"Twitter and blogging and informational domains (oh my!)","author":"***Dave","date":"Tue 16-Oct-12 12:28am","format":false,"excerpt":"So I have this wildly complex and intricate informational ecology going on, including (for example) my Google Plus posts feeding into my blog.In fact, I consider my blog (https:\/\/hill-kleerup.org\/blog\/) the Site of Record for All Things Me. \u00a0Beyond G+, I also have the Twitter Tools plug-in in my WordPress blog\u2026","rel":"","context":"In &quot;~PlusPosts&quot;","block_context":{"text":"~PlusPosts","link":"https:\/\/hill-kleerup.org\/blog\/category\/blogging\/plusposts"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":583,"url":"https:\/\/hill-kleerup.org\/blog\/2001\/09\/14\/modern_risks.html","url_meta":{"origin":22354,"position":3},"title":"Modern RISKS","author":"***Dave","date":"Fri 14-Sep-01 6:56pm","format":false,"excerpt":"For a number of years now, I've subscribed to an e-mail version of comp.risks, RISKS-L. This list\/Usenet site details \"risks to the public in computers and related systems.\" While that...","rel":"","context":"In &quot;Hi-Tech&quot;","block_context":{"text":"Hi-Tech","link":"https:\/\/hill-kleerup.org\/blog\/category\/hi-tech"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":19731,"url":"https:\/\/hill-kleerup.org\/blog\/2010\/12\/31\/tweets-from-2010-12-31.html","url_meta":{"origin":22354,"position":4},"title":"Tweets from 2010-12-31","author":"***Dave","date":"Fri 31-Dec-10 11:45pm","format":false,"excerpt":"Lovely evening at Jim and Di's. Very late (or rather early) ... time for bed. # Initiating Stan into the Sacred Mysteries of In-N-Out Burger. Yum. # Wearing sandals. Neener-neener. # Helped Stan and Mary get phone-to-Flickr-to-blog stuff working, plus GReader digests for Stan, and a new non-bulbous theme. #wordpress\u2026","rel":"","context":"In &quot;~Tweets&quot;","block_context":{"text":"~Tweets","link":"https:\/\/hill-kleerup.org\/blog\/category\/blogging\/tweets"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":18558,"url":"https:\/\/hill-kleerup.org\/blog\/2010\/09\/13\/tweets-from-2010-09-13-6.html","url_meta":{"origin":22354,"position":5},"title":"Tweets from 2010-09-13","author":"***Dave","date":"Mon 13-Sep-10 11:30pm","format":false,"excerpt":"Well, that weekend blew away a good week of dieting. Plus, er, we now have many leftovers. # Rrg. Twitter Tools still randomly posting multiple dupes of daily Twitter digests on blog. Looking for alternatives. # Green Elf needs haircut, badly! # It was nice having Mary out, and will\u2026","rel":"","context":"In &quot;~Tweets&quot;","block_context":{"text":"~Tweets","link":"https:\/\/hill-kleerup.org\/blog\/category\/blogging\/tweets"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"_links":{"self":[{"href":"https:\/\/hill-kleerup.org\/blog\/wp-json\/wp\/v2\/posts\/22354","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hill-kleerup.org\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/hill-kleerup.org\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/hill-kleerup.org\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/hill-kleerup.org\/blog\/wp-json\/wp\/v2\/comments?post=22354"}],"version-history":[{"count":0,"href":"https:\/\/hill-kleerup.org\/blog\/wp-json\/wp\/v2\/posts\/22354\/revisions"}],"wp:attachment":[{"href":"https:\/\/hill-kleerup.org\/blog\/wp-json\/wp\/v2\/media?parent=22354"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/hill-kleerup.org\/blog\/wp-json\/wp\/v2\/categories?post=22354"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/hill-kleerup.org\/blog\/wp-json\/wp\/v2\/tags?post=22354"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}