Categories
guide how-to SEO sports

Fantasy Sports Sites Need to be Faster

The web is a mighty big place and the fantasy sports market has grown by leaps and bounds over the past 5 years.  All of that growth spawned many sites that have come and gone, in the news one day and no where to be found 6 months later.  Some of today’s best fantasy sites are having record traffic numbers, and for good reason, because they provide incredible fantasy insight.

What people often forget about, is the technology behind these sites.  Are fantasy sports sites up to date using the latest technology and do they spend time optimizing the sites for speed?  I will be tackling the latter category in this blog post: speed.    The speed at which a website loads is a huge factor in end user satisfaction.  Below you will find the best known names in fantasy sports news and I will compare them to the big boys to see how they stack up in speed.  As most of you know by now, I developed a site called FantasySP and will also show you how FantasySP compares to these sites in terms of speed.

In order to test each website’s performance, I will be using Firebug 1.7.2 with YSlow 2.1.0 under Firefox 4.0.1. I will load each site’s homepage with advertisements shown and advertisements blocked (using AdBlock Plus).  I will also be using Pingdom’s Site Speed tool to test load times. This should give a fair comparison on the speed of each site.

#1) Rotoworld

Rotoworld needs no introduction as it is the premier site when it comes to fantasy news and analysis.  However, does the same hold true when it comes to page speed and size?

Rotoworld with Advertisements

With advertisements shown, you see 228 HTTP requests and a size of almost 2 meg on initial page load.  Your second page load has 212 HTTP requests and 104k in size.  Without a question, they do a terrible job at optimizing their site for speed.

Rotoworld - No Advertisements

Without advertisements, loading Rotoworld has 214 HTTP requests and around 1.8 meg in size.  The second pageload is at 202 HTTP requests and page size is about 40k.  Blocking advertisements at Rotoworld will save you a little bit of time, but not much since their site is in desperate need of optimization.

Pingdom Load time: 9.5 Seconds

2) Rotowire

Perhaps the second biggest name when it comes to fantasy news is Rotowire.  Are they any better when it comes to load times?

Rotowire with Advertisements

Rotowire has 165 HTTP requests and the size of the page is 1.6meg with advertisements. Second pageload will see 134 HTTP requests and around 150k in size.  Slightly better than Rotoworld, but still quite poor.

Rotowire without Advertisements

Without advertisements Rotowire has 103 HTTP requests at 1.3 meg in size.  The second pageload has 88 HTTP requests and 70k in size.  Rotowire has room for improvement, but it seems most of the extra requests and bloat come in the form of advertisements.

Pingdom Load Time: 4.8 seconds.

3) Kffl

kffl is another top fantasy news site in the industry, perhaps they can do a better job when it comes to speeds?

kffl with Advertisements

As you can see HTTP requests with advertisements are at 97 and the size of the page is around 1 meg.  Second page load shows 88 HTTP requests and 75k in size.  So far kffl does a much better job in terms of speeding up the site and minimizing requests and size of the page.

kffl without Advertisements

With no advertisements, initial page load has 83 HTTP requests with the size of the page at around 820k.  Second page load has 74 requests with 77k in size.  Not too bad at all.  In fact, if they fixed the amount of images that load and the amount of javascript files then they would be a lot closer to 50 http requests.

Pingdom Load Time: 10 seconds.  (Why 10 seconds? My guess is that their server isn’t as expensive as the other two and they are in desperate need of a CDN to help with load time)

4)  RotoInfo

RotoInfo isn’t a huge name, but Fanball is no more and these guys were the only other ones I could come up with for good fantasy analysis and news.  So let’s have a look at how they perform.

RotoInfo with Advertisements

Initial page load with advertisements has 158 HTTP requests and weighs in at a hefty 3.2 meg.  Second page load has 46 HTTP requests and 80k in size.  Looks like we have a new winner for total page size thanks to their enormous added size in images.

RotoInfo without Advertisements

With advertisements blocked, it has 147 HTTP requests at 3.1 meg.  Second page load has 35 HTTP requests at 72k.  They are pretty much as bad as Rotoworld and Rotowire.

Pingdom Load Time: 14.1 seconds.

Lets Pause for Reflection

Looking at the past 4 fantasy news websites, it is blatantly obvious that these guys aren’t the best when it comes to speeding up their sites. kffl is the best at keeping HTTP requests down and page size low, but that didn’t seem to translate to a fast page.  Rotoworld, Rotowire, and RotoInfo are remarkably bad at utilizing modern techniques to make sure their sites are as fast as they can be.  Some are lacking a CDN, others are riddled with too many HTTP requests, and most have both problems.  All of these things are fixable, and I urge them to fix these problems.

So you might be wondering, how does FantasySP fit in all of this?  FantasySP was built from the ground up to be fast.  It was built because I wanted a centralized location to keep an eye on player news and manage my fantasy teams.  What FantasySP does is grab news from your favorite fantasy sites (listed above), blogs, and newspapers and presents the information to you as fast as possible.  When you read something interesting, you head over to the source site to get the full scoop.

Before I show you how fast FantasySP is, let me show you how fast ESPN and CBSSports are since they are the best in the business with an unlimited budget.

1) ESPN

ESPN is one of the premier sports sites on the internet and they have recently undergone a major redesign.  Perhaps they need to show us how to create a speedy website?

ESPN with Advertisements

With advertisements, ESPN has 88 HTTP requests and weighs in at 800k.  The second page load has 26 HTTP requests with 62k in size.  Clearly, these guys know what they are doing.

ESPN without Advertisements

Without advertisements, ESPN has 76 HTTP requests and is 674k in size.  The second page load has 15 HTTP requests and 60k in size.  They do a fantastic job at minimizing HTTP requests, making sure the size of the page is small, and utilizing a CDN.  Even with their embedded video on the front page and interactive scoreboard, their site does a fantastic job at keeping things speedy.  Perhaps the only thing they could do to further improve things is to create a CSS sprite for some of their images.

Pingdom Load Time: 2.5 seconds. (Using the best techniques with the best hardware results in super fast load times, no surprise there)

2) CBSSports

How does CBSSports compare to ESPN?  Let’s find out.

CBSSports with Advertisements

CBSSports has 51 HTTP requests with 700k in total size with advertisements.  Second page load has 10 HTTP requests at 48k in size.  These are extremely impressive numbers considering they have advertisements shown.

CBSSports without Advertisements

Without advertisements CBSSports has 45 HTTP requests and about 700k in size again.  Second page load has 6 HTTP requests with 46k in size.  If they combined their javascript and created a CSS sprite then they would save even more HTTP requests and perhaps get it down to about 30 or 40.

Pingdom Load Time: 2.9 seconds.

FantasySP

I’ve talked a lot about load times and speed, so hopefully my site runs more like ESPN and CBSSports and less like Rotoworld.  Let’s find out:

FantasySP with Advertisements

With advertisements FantasySP has 55 HTTp requests at 358k in size.  On the second page load, 25 HTTP requests at 42k in size.  Clearly one of the best sites in terms of HTTP requests and the smallest in size.  This sounds great, but keep in mind that some of the other sites such as ESPN, CBSSports, and Rotoinfo have a richer user experience by including videos and/or interactive scoreboards. This is the main reason why I am able to keep page size so small.

FantasySP without Advertisements

Without advertisements FantasySP has 38 HTTP requests at 241k in size.  On the second pageload there are 9 HTTP requests with 29k in size.  When it comes to reading fantasy news, the end user might prefer FantasySP over any other fantasy site listed here based on speeds alone.  In fact, new signups to FantasySP get advertisements disabled to speed up their experience and they are replaced with Player Trends.  Hows that for enticing?

Pingdom Load Time: 1.0 seconds.

FantasySP utilizes modern techniques to improve the end user’s experience.  I use Cloudflare to speed up DNS, block bad traffic, and a whole bunch of other nuggets.  I use Amazon as my CDN. I minify and combine my javascript and css files.  I also use a CSS sprite to reduce HTTP requests.  For the backend I installed NewRelic so I can keep track of realtime performance and fix inefficiencies with the site.  I also automatically redirect mobile visits to my uber fast mobile site.  You could say I am addicted to speed, and I hope you are too.  I did all of this myself, so imagine if I actually had a team of developers and a group of people that share my vision. HINT HINT!

So What’s Your Point?

The point of this whole post is to inform sites in the fantasy news space to spend the time to improve the user experience.  The size of your homepage should not be near 3 meg in size with 150+ HTTP requests.  Your products and news are great, and all you need are some fine tuning.  Major sports sites like ESPN and CBSSports are highly optimized and well oiled machines.  There is no reason why Rotowire, Rotoworld, Kffl, and RotoInfo can’t follow their lead.  I am a HUGE fan of these sites and FantasySP would not exist without them, so please use what I’ve talked about in this post and improve your sites.

Questions?  Comments? Glaring mistakes?  Please let me know.

UPDATE:  Here is a handy spreadsheet with speed data. Light green denotes best performing, dark green good performing, orange is bad performing.

UPDATE #2: As per request, I’ve taken a look at DraftSharks.  They have also been added to the spreedsheet above.

DraftSharks

DraftSharks with Advertisements

DraftSharks with advertisements has 80 HTTP Requests at 1.1 meg in size.  The second pageload has 6 HTTP Requests and 38k.  This puts DraftSharks on par or better than kffl.  Completely respectable job optimizing the site for speed.  Much like all the other sites, if they combined js files and created a CSS sprite then HTTP requests would be even lower.  It also wouldn’t hurt if they looked into a CDN solution if it fits in their budget.

DraftSharks without Advertisements

Without advertisements DraftSharks have 79 HTTP requests at 1.1 meg.  Second page load has 5 HTTP Requests at 38k.  Not much of a difference, mainly because most of their ads aren’t blocked by default by AdBlock Plus.

Pingdom Page Load: 7.2 seconds.  (The pageload slowdown is likely due to Pingdom adding 80 or so EXTRA images that I did not see based on my testing.)

Categories
SEO

Google instant previews for Twitter & Gawker are broken

Making websites javascript heavy seems to be all the rage these days. Some sites like Gawker (and related sites by the company) have been heavily criticized for their javascript heavy redesign. While others like Twitter have been mostly praised for their work.  Both sites are very similar in URL structure and functionality.  But did you know that Google Bot can’t seem to accurately capture a screenshot for either site?

Gawker

Gawker: Google Instant Preview

Twitter

Twitter: Google Instant Preview

Before you panic and exaggerate these findings, keep in mind that Google can crawl these sites just fine.  The problem is only with the screen capture and preview that is shown in the Google SERPs.  I guess the real question is, who is at fault here?  Googlebot for not being able to grab an accurate screenshot or the site developers for going a bit overboard on javascript?

Categories
cloudflare optimization

Does Cloudflare live up to the hype?

I have given Cloudflare a try for the past week or so for FantasySP.com and want to pass along my thoughts.  I saw a few reviews that were quite astonishing and decided to find out if they are accurate.  I have been reading great things about it and couldn’t resist trying it out.

Will Cloudfront Increase Pages Per Visit?

Unfortunately no.  The only reason you’ll see an increase in pages per visit is if you change the setting to add your Google Analytics code to every page.  I decided to use this myself and look at the results:

Pages/Visit

Notice the bump in pages/visit?  Almost double.  That is when I added the Analytics code to every page and it completely skewed everything out of whack.   Meanwhile GetClicky and awstats both showed them to be at normal levels.  So clearly this Cloudflare setting should not be used and anyone who shows these type of drastic results are just lying to themselves.

I obviously don’t think Cloudflare adds this setting to artificially increase analytics stats.  Although, I can’t explain why this happens, since they claim its fine to add without removing the old code.

Will Cloudflare Decrease Bounce Rate?

Probably not.  If anything, it could have a slight increase in your bounce rate depending on how much bad bot/spam traffic you were getting.  Although, a bad bot might even help your bounce rate because they are often times so abusive and load many pages.  If Google Analytics shows a drastic decrease in bounce rate then it is due to the Cloudflare setting to add the script to every page.  Have a look at my bounce rate:

Bounce Rate

Sorry folks, Cloudflare is no miracle bounce rate solution. 🙁

Will Cloudflare Increase the Speed of the Site?

Yes, even using their free service!  Cloudflare has a whole list of features that show how they can decrease the time it takes for a page to load.  They will cache content, similar to a CDN and provide optimized routes to your site, and block abusive traffic.  If you pay for their service then you will see even better benefits (none of which I have tested).

So I guess the real question is, does Cloudflare make FantasySP faster?  Yes and no.  I have most of my static content already on Amazon’s Cloudfront.  My DNS before Cloudflare was Amazon’s Route 53.  So how much of a benefit am I really getting when some of Cloudflare’s services were already taken care of?  Here is a look at Googlebot’s time it takes to crawl FantasySP.com:

Googlebot Crawl Rate

According to Googlebot, the site isn’t faster, perhaps slightly slower if anything.  It could be that Amazon’s Route 53 provides equally as good routing for end users and I don’t see much of a difference.  Either way, there isn’t enough evidence to make a call on this.  What really matters is if there is a difference for the end user in a real browser.  For my site, javascript is what is holding back the end user experience.  Which brings up my next point, Rocket Loader.

Does Rocket Loader Improve Speeds?

To test Rocket Loader’s performance, I will be using NewRelic’s End User performance tracking.  I have been using this for well over a month and it should show any trends with end user speeds.

As you can see, there is a large decrease in pageload time and goes from 8 seconds to 6! Awesome right?  Well, unfortunately I noticed that Rocket Loader was screwing up some of the rendering of advertisements that were on the site.  Thus making my site’s javascript unusable.  Rocket Loader works fine with Google AdSense, but AdSense doesn’t generally hang as much because of their recent optimizations.

What I really wanted Rocket Loader to do, was to improve performance of the other ad networks that I use.  These are the ones causing all the slowndown.  Alas, it wasn’t meant to be.  Clearly it was making a difference, but it is a bit buggy at this point.  My next step is to selectively use Rocket Loader on certain javascript components and see if it will make a difference in overall load time without breaking things.  Stay Tuned for that!

So Where Does This Leave Us?

After reading all of this, you might think I’d come to the conclusion that Cloudflare isn’t worth the trouble.  Exactly the opposite.  Cloudflare delivers on a lot of the promises of the service.  Just be sure you don’t make mistakes like enabling Google Analytics on every page.  That feature just doesn’t make any sense to me.  (I’d love to hear your thoughts on this.)

If you aren’t using a CDN or a customized DNS service, then switching to Cloudflare should have an impact on quicker load times.  Even if you do have a CDN and a customized DNS service, the fact that Cloudflare blocks bad threats and saves your server resources and prevents lots of spam.  It’s also nice to see trending data for search engine bots and outbound links.

I’d love to try out Cloudflare’s pay only services to see if they improve upon speeds, but they do not offer a trial for such a thing.  Perhaps down the line I will test these as well.  I also think Rocket Loader will continue to improve and will truly make a difference for some users out there.

What do you guys think?

Categories
optimization php

My Review of New Relic, with some Performance Numbers

When optimizing your web application or server, the process can be a bit daunting.  In fact, its usually something that is never fully checked off your to-do-list.  The reason being is that you’ll never really know how your application will scale until it starts to show its growing pains.  Just when you thought that you’ve addressed the performance issues, a few weeks or months go by and new ones will crop up.

Before New Relic came along, I used to cat the slow-query-log.  I would address any queries that I saw took a while to execute.   Then there is the MySQL Performance Tuning Primer Script.  Also a great tool and will give you a good idea on how MySQL is performing as a whole.  I would continue to look at these things, but the load averages kept climbing and I could not figure out what the problem was.  I also couldn’t figure out which pages took the longest to load.

Enter New Relic

I actually considered throwing more hardware at the problem, since I could not figure it out through the usual means.  Then New Relic came along and I decided to give it a try. Here is my site performance graph since I first started using New Relic:

Performance

You’ll notice that when it was first turned on, the database was clearly the issue. The problem was UPDATING a table that has almost 2 million rows. (Duh.  Apparently, it was way more costly than I ever imagined)  Incrementing the view count on one of the main tables was the root cause to 90% of my problems.  I went ahead and created dedicated tables to hold these stats  and load averages eventually settled to around .20 across the board.  MySQL was no longer an issue.  FantasySP was silky smooth, once again!

The best part about New Relic is that once you set it up, you don’t have to spend time SSH’ing your box to find performance issues.  Everything you need is much easier to read, not to mention there is a performance breakdown based on each page/script.  Now I can easily see the pages, ajax requests, and background tasks that take the longest to complete.  All of these can be easily optimized now.  Their interface isn’t perfect, but it’s improving every day.

Impact on Google Bot & Organic Search

Of course when you optimize your website you do so for the end user experience.  The added plus to this is that Google Bot gets a huge benefit from it too.  I’ve been reading over and over about how load time is now a ranking factor.  Sure, but it’s not that big of a deal, right?  Well, lets take a look at how Google Bot responded to these tweaks:

FantasySP.com | Pages Crawled Per Day
FantasySP.com | Time Spend Downloading
m.FantasySP.com | Pages Crawled Per Day
m.FantasySP | Time Spend Downloading

Clearly, the faster the response time, the more pages that can be crawled in a given day.  The average response time for FantasySP.com is now at around 100ms.  The average response time for Mobile FantasySP is at 72ms.  Google Bot quickly realized that the site is performing faster and ramped up its crawl rate.

So you might be wondering, has the faster and more responsive site resulted in more search engine traffic from Google?  So far, the answer is yes.  By about 5 – 10% the past 7 straight days. Coincidence?  I doubt it.  Getting a bump in SERPs for being a considerably faster site is very real.  There is no question that the easier it is for Google Bot to crawl, the better off I’ll be in the long run.

Conclusion

New Relic has just released a whole bunch of new changes such as Real User Monitoring , an improved install process, and a much more affordable pricing structure.  It doesn’t matter if your a company of 15 developers or just one developer working on a side project. . . New Relic will be worth it.  In fact, for smaller sites you should be able to take advantage of New Relic’s 14 day professional trial and be done optimizing by the time your trial is finished.  However, I’ve been addicted to the stats and will eventually subscribe to their “Standard Package”.

New Relic essentially takes the guesswork out of optimization.  Now you can easily track down costly plugins in WordPress and even compare performance numbers from week to week.  This is by far the best tool you can use to make your site or app run faster.  Spend the time and install it, or submit a support ticket and have your host do it.

I can go on and on about New Relic and you will probably get a bit lost in the data for a few days.  So go ahead and give it a try.

Categories
social

Social Buttons are Bad for the Internet

Have you ever watched Man Vs Wild on Discovery and noticed that every time he went to some small tropical island there are always plastic bottles washed ashore?  Those plastic bottles are social buttons on the web.  They litter headers, footers, everything in between!  No matter what website you go to, small or large, you will find these social buttons.

The things we do for traffic.

What Harm Do They Do?

The social buttons have adverse affects:

  1. They slow down load times, especially if you want counts for tweets, likes, diggs, etc.
  2. They can cause unforeseen consequences and introduce weird bugs, such as the fb_xd_fragment Facebook bug
  3. You look desperate for traffic. This may be my personal opinion, but think about what adding buttons suggest. Admit it, your traffic hungry and will do anything for it.
  4. Your promoting their brands on your page, for FREE.

The Future of Social Buttons

My fear is that these social buttons will get worse before they get better.  Just recently Google created a sort of social button called “+1” and LinkedIn just joined the party.  We are beyond overkill now.  At some point they will reach a critical mass.  Perhaps in a few years people will grow tired of Facebook and its usefulness will decline?  I can only hope.

Don’t get me wrong, I don’t hate social buttons. [Correction. Yes I do hate them].  Social buttons are the crack of the internet.  Once you are hooked you want more and more.  Pretty soon you turn into a bloated social sharing monster like Huffington Post.

Ultimately they really are the plague of the internet.  And the worst thing about it is that you basically have no choice but to give in.  Just ask Gawker.

Categories
browser wars chrome firefox opera

Browser Wars: The Truth about Firefox 4.0

I was just reading Maximum PC’s article reviewing modern browsers and they crowned Firefox 4 the best browser out there.  This is extremely unfortunate for a multitude of reasons and this post is my rebuttal.  It feels like Firefox 4.0’s feature list was created in response to using Opera and Chrome.  To put it more bluntly, Firefox 4.0 is nothing more than Firefox catching up to the competition.

I just heard a bunch of geeks gasp and clutch their mouse in complete horror.  How dare I say such a  thing! It has GPU acceleration out of the box, for christ sakes!   It’s gotta be good!  (Yes, thats a Maximum PC article dig)

Firefox copies features:

  • Firefox copied Opera’s menu in the top left-hand corner.
  • Firefox copied Chrome’s rapid development schedule.
  • Firefox copied Opera and Chrome’s simplistic interface motto (For example, Firefox now has tabbed extensions).

Firefox Improvements Debunked:

  • Firefox is FINALLY competitive in Javascript performance to Opera and Chrome.  However, Firefox 4 is not the fastest.
  • To improve security, Firefox 4 implemented something called HSTS (HTTP Strict Transport Security). The only problem is that no one supports this yet.
  • Firefox has GPU acceleration.  There actually is nothing wrong with that, but so does Chrome if you enable the labs feature.  In fact, I leave it disabled because GPU acceleration means little to nothing to me right now.
  • Firefox scores a 97 on the ACID 3 test, hurray!  Chrome and Opera only managed to get 100.  That was close.

Firefox’s Downfalls:

  • Firefox does not run plugins and tabs into separate processes like Chrome does.
  • Firefox does not bundle Flash with the browser for improved stability and security.
  • Firefox still takes longer to open on a PC than Opera or Chrome.

So how exactly is Firefox the best browser?  Because of their 1,000,000 extensions?  By now, 99% of the good ones are available on Chrome too.  If you want to tell me Firefox is better for web developers then I agree.  Firebug, yslow, and pagespeed all kick butt.  That is what I use Firefox for, but not for daily browsing.  There are plenty of subtle things that Chrome does that I love, but I don’t have time to get into them now.

Now don’t get me wrong, I want to praise Firefox for finally doing some development work.  They must feel really good finally catching up to a 1 year old browser (Chrome).  Boy I sound bitter huh?  Maybe because I was a huge Firefox fan for 5 years and then a brand new browser came along and opened my eyes to Firefox’s flaws.

Sorry that this post sounds amatureish, but I don’t have time to develop a well thought out article.  I just had to get this off my chest. Feel free to leave comments about your thoughts.  I’ll be more than happy to update this post.

Categories
apple verizon

Verizon has the iPhone 4 and it means absolutely nothing

Verizon Wireless finally has the iPhone 4.  There have been commercials running for the iPhone by both Apple and Verizon for the past month.  Fans rejoice, our savoir has arrived. . . right?  You couldn’t be more wrong.

The iPhone is coming out during a time when 4G and dual core phones have already been announced or are already out in stores by some carriers.  Verizon is potentially weeks away from releasing their next gen 4G  dual-core phone running on Android.  Now that is drool worthy.

The iPhone 4 is a nice addition to Verizon’s lineup, but it’s too late to jump on the Apple train.  True, we should be happy that it is here and when Apple gets around to releasing iPhone 5 then it will certainly be worth the hype, but for now do yourself a favor and hold off.

Categories
cloud

Amazon Route 53 Benchmark Comparisons

It’s been a few months now since Amazon Route 53 was released to the public.  Some of you may have forgotten about it, while others are hesitant to change their DNS servers because there may not be much upside to it.  Lucky for you, I couldn’t help myself and jumped on board within the first week of it being released.  I have never experienced any DNS issues since the switch and from my untrained eye, things seemed to be more consistent.  But what I really wanted was a reliable Amazon Route 53 benchmark to prove it.

Here is a DNS benchmark comparison of FantasySP.com provided by indeep76.com.  Below you’ll see how much of an improvement Route 53 makes from various locations:

During the last 2-3 months using Amazon Route 53, the DNS lookups are more consistent and more reliable, not only from the USA, but all over the world.  Depending on your current nameserver’s reliability, your results may vary.  Use indeep76 to check or use a monitoring service like mon.itor.us or pingdom to give you a nice baseline.  If you are getting anything close to 200ms + response times, then there is room for improvement.  If you want to use Route 53 on your domain, then head over to dns30 and make sure to have your Amazon AWS API keys handy.  It’s a simple setup and will make your site that much faster.

Sound like too much work for not enough payoff?  Scared of changing nameservers and risking your site be unaccessible?  I don’t blame you.  However, I will say that if you are obsessed about page speed and have already optimized your site via gzip compression, minification, JS packing, and a CDN, then optimizing your DNS lookup time is your final step.