Prerendering for Joomla!

Make your Joomla! use new browser features. HTML5 added new performance features, but Joomla doesn't use them at all. Here's our shot at improving it.

HTML5 prerendering

Prerendering is a feature introduced in the HTML5 standard, and implemented by browsers such as Chrome, Firefox and MSIE11. Using simple markup, a page you're viewing can tell your browser to start fetching another page in the background. This way, when you click a link to this page, it will display immediately.

For example, this page instructed your browser to prerender the Varnish-Joomla page on our server. If you're using a supported browser, by the time you're reading this, it has a running copy of that page in the memory of your computer. Click the link and see yourself - it should display faster than other pages you're visiting here.

If it's still unclear, the Google engineers wrote a nice article about what prerendering is, and why it's good for performance. They even made a video about it!

MassiveScale.net has developed a Joomla! plugin which gathers statistics on how users are moving between pages on your website, and adds prerendering/prefetching tags for the most common trails. It's fully automated.

How does it work?

First, our plugin gathers data. It tracks your visitors' steps and saves it to a database - just like Google Analytics does, but locally. The data looks like this:

Source pageDestination pageNumber of clicks
http://yoursite.com/http://yoursite.com/blog/200
http://yoursite.com/http://yoursite.com/login/10
http://yoursite.com/http://yoursite.com/shop/5
http://yoursite.com/blog/http://yoursite.com/shop/50
http://yoursite.com/blog/http://yoursite.com/2

What this data tells us is that 200 users visiting your front page subsequently clicked on a blog link, so it would be reasonable to prerender the blog when the user is viewing the home page. When visiting the blog, a majority of users goes to the shop - so it makes sense to prefetch it.

Secondly, if our plugin has the necessary statistics on the currently visited page, it adds a tag telling the browser to prerender the most probable next page.

How to use it?

First, install and enable it.

The plugin has several modes of operation. The simplest one is Automatic, in which it learns every day in a given time interval (by default it's between 10am and 1pm). When it's not learning, it's serving prefetching tags.

For more advanced users, there are the Learning and Prefetch modes, which force learning or prefetching at all times.

If you're just starting to use the plugin, you may want to leave it in learning mode for a longer period, then switch to Automatic or Prefetch mode. This will accelerate learning.

Order now

Click on the button below and you will be redirected to 2checkout.com, our reseller and payment processor. Prepare your credit card or PayPal details. Contact us if you prefer a different payment option (bitcoin, bank transfer, payoneer). If you need an EU VAT invoice, send us your company details and DO NOT order via 2checkout.com - they will issue a US invoice.

2CheckOut.com Inc. (Ohio, USA) is an authorized retailer for goods and services provided by Enmasse (Szczecin, POL).

Secure online payments are being processed by a 3rd party company, 2Checkout.com, Inc. We do not process or store any credit card data. Our physical address is: Enmasse, Iwaszkiewicza 73/9, 70-786 Szczecin, Poland.

License

This patch is licensed as GPL v2. Free as in speech, not as in beer.

Questions?







FAQ

What is included in the $15 package?

A plugin for Joomla! 2.5+ (and 3.x) and email support.

What are the requirements?

Joomla! 2.5+ and MySQL with InnoDB support (about every installation has InnoDB enabled).

Performance impact

This plugin uses cache to retrieve statistics. If it's not in learning mode, the impact on loading time should be neglible. Even more so if you're using memcache or XCache.

Of course, supported browsers will visit twice the number of pages, so your server must be ready to handle more traffic than it's handling now.

In learning mode, it's performing 1 extra database query per request.

Does it work with Varnish?

It's perfect with Varnish, but you will want to disable Varnish caching when in learning mode. When it's caching, statistics gathered on Joomla level will not be meaningful, so you should enable the Prefetch mode to make sure it's not learning.

Will it help my e-commerce site?

It could help if you have featured products or categories. Take a look at your Google Analytics and check if there are often visited trails.

What about 1.5/1.6/1.7?

Sorry. It's portable to the earlier versions and we can do it if you are paying by the hour.

Which extensions are supported?

Since our predictions are made using statistics, not heuristics - the plugin operation shouldn't interfere with any extensions.

Prefetching or prerendering? Make up your mind!

Actually, both. The <link rel="prerender prefetch" ...> tag is used.

What is your refund policy?

Reasonable reasons for a refund are accepted. "It does not display the tag in my Joomla" is reasonable, "It doesn't make my site faster" is not.

What payment options are available?

Paypal and credit cards when ordering online (order now). Bank transfer, Payoneer, and Bitcoin are available after contacting us.