My window to the world


Improving Geekzone page load time breaks ad blockers... Ask the ad blocker developers to fix their software

By Mauricio Freitas, in , posted: 18-Dec-2010 16:17

Warning: long-ish, geek-ish post ahead...

For the last few months I have spent at least a few hours every week trying to make Geekzone the fast as possible. I really believe the web needs faster websites, and the answer is not only on laying bigger pipes, but smartly using the technology available.

There are many reasons to have a fast website. For the publishers I can think of higher position on Google search results, reduced bounce rates, improving time on site, and many more. For readers the most obvious is that instant gratification when they can try loading a page and start using it almost instantly.

Our site is hosted in Auckland, mainly because 65% of our New Zealand traffic actually comes from that single city in the country. Also because it's closest to the point where most data traffic leaves New Zealand, which is one less hop for all our overseas readers (and we have a large number of those, almost 55% of the total visitors number).

We implemented domain sharding, by creating domains for our css, images, avatars, flags, etc. This was later replaced with a CDN using a base domain name different from our main Geekzone one, so to create a cookieless domain, avoiding unnecessary data traffic when browsers requested those resources.

I also spent some time changing our database schema, indexes and creating a session management that didn't rely on the standard ASP IIS session. This allowed us to increase the number of workers processing web requests.

One of the best changes we made was implementing Aptimize, a server-side software that transparently optimizes our pages by automatically creating image sprites, CSS inline graphics, and other special tricks. Running Aptimize pratically reduces the number of requests by half when loading the Geekzone front page, and cut the number of requests in our forum pages down by a third. Don't believe? Check this test with Aptimize off and a test with Aptimize on.

Aptimize also helped me create the CDN bits by automatically rewriting references to static resources to point to a domain of my choice.

Those and other changes (including  code changes) proved well worth the work so far. Average page load times were down from ten seconds to about six seconds (this includes overseas visitors), and New Zealand visitors see an average of two to three seconds load time. This includes the time to load advertising in our pages.

But we still had some other tricks, but let's talk about something else before going there.

Online advertising. Since 27th October 1994 we have lived with online ads. That's when HotWired ran the first banner ad on a webpage. Since then many content publishers, including myself, can only afford to continue providing their service for free because of banner ads.

It's a common misconception that publishers make money only if you click an ad, and since you won't be clicking an ad then blocking banner ads won't impact publishers. This is wrong. Online advertising comes in many "models", including CPM (Cost per thousand), and CPC (Cost per click). In CPM models publishers get paid by the number of impressions of an ad, regardless of how many clicks it gets. So this clearly means that blocking ads prevents publishers from realising important revenue - money that goes into paying hosting, traffic, CDN, software, development, salaries, etc. Some time ago Ars Technica wrote an important article on why Ad Blocking is devastating to the sites you love.

Back when the only way to access the Internet was on dial up people started using "ad blockers" because, seriously, any extra bit to download impacted on the time a browser spent loading a page. This is not true on bradband connections anymore. We are talking about seconds, down from minutes. And we are talking about seriously breaking the web when only large media companies could be able to run websites (and they still run ads on them anyway).

I once received a tweet from someone saying "hey, the Geekzone layout is broken when I use ad block, any chance to fix the layout?"... I know that person. As in I have met him before. And I seriously think he wouldn't work for free. But he was asking me to help him with a problem created by his own action while blocking ads on my site. Sorry but I couldn't spend time on that problem, seeing I still have the "Speed Project", the "API Project", and many other things to work on the site. Things that actually cost money to create. Money he was blocking me from making.

With that, we are now back in the performance topic. The latest change I made on Geekzone was to flick a switch on Aptimize to make script on Geekzone pages faster by loading javascript asynchronously.  Normally your browser receives the html, starts loading scripts and executing these, and only then render the page. This feature allows browsers to first receive the html, render and show the page, then load scripts and execute them.

By asynchronously loading and executing the javascript we can show our pages very quickly (usually under a second) and the script will load after this happens.

It's good for you isn't it? You can see our content in less than a second! I could be getting less ad impressions if you close the page before the ads are loaded, but at least I thought of you and presented the content first, even if it means a little less for me, right?

But there's the law of unintended consequences... Ad blockers actually block the script that loads all other scripts in our pages, the "mother script".

We use Google search embedded on Geekzone and being the search a script it will only show if it can execute inside your browser. And since the mother script is being blocked by ad blockers, our embedded Google search doesn't work anymore if you are running an ad blocker.

Also logged in users have a "Geekzone Live" feature in our home page, where they can see forum updates as they happen, instead of the static front page visitors see. That script is also not working, because the mother script is being blocked by ad blockers.

Since implementing this change I received many comments in our forums and in private. People are angry. They don't care the pages are loading in less than a second now. What they care is that search and live updates are not working anymore when they run ad blocking software. A few of these people actually think I made this change intentionally, to punish people using ad blocking software.

No, I did not do it to punish people using ad blocking software. What they don't realise though is the only broken thing here is the ad blocking software itself. If they still want to run that type of software they should ask the developers to make it work with new web technologies, and keep up with times.

Better still, people should just not use it. Just read why Ad Blocking is devastating to the sites you love again...



Other related posts:
Microsoft Ignite New Zealand, Microsoft Surface Studio
Geekzone data analytics with Power BI
Now with more fibre






comments powered by Disqus

freitasm's profile

Mauricio Freitas
Wellington
New Zealand


I live in New Zealand and my interests include mobile devices, good books, movies and food of course! 

I'm the Geekzone admin. On Geekzone we publish news, reviews and articles on technology topics. The site also has some busy forums.

Subscribe now to my blog RSS feed or the Geekzone RSS feed.

If you want to contact me, please use this page or email me freitasm@geekzone.co.nz. Note this email is not for technical support. I don't give technical support. You can use our Geekzone Forums for community discussions on technical issues.

Here's is my full disclosure post.

A couple of blog posts you should read:

Social networks presence

View Mauricio Freitas's profile on LinkedIn


My Blog by tags...

Blog...
Entrepreneurship...
Media...
Personal...
State of Browsers...
Technology...
Viral Marketing...
Web Performance Optimization...
Windows...
Windows Phone...

Other recent posts in my blog

Microsoft Ignite New Zealand, ...
If the headlines indicate the ...
Geekzone data analytics with P...
State of browsers Geekzone Mar...
2Cheap Cars discussion...
Now with more fibre...
Unlimited is not unlimited: Vo...
How bad is Vodafone cable at t...
Frustrated with Microsoft Fami...
State of browsers Geekzone Mar...

New posts on Geekzone