Speed Up MyBB and Increase Performance

Today we will be going over ways to speed up MyBB and increase performance of your MyBB forum. For a live demo of speed and performance increase with some of the modifications please check out our MyBB theme community forum or home page. Our entire site is powered by MyBB – excluding our blog.

1. Move to a better web host – easy

There are many affordable web hosts that you can use. Two decent (and affordable) web hosts that we recommend is 1) HostGator and, 2) Arvixe . Both web hosts provide plenty for around $5 per month. Stay away from GoDaddy and look for hosts that provide CPanel.

2. Disable “forum jump” element – easy

In my experience, not many people use the forum jump that is at the bottom of most forums. Disabling forum jump reduces queries.

Go to: Home » Board Settings » General Configuration

3. Use GZIP compression – easy

GZIP, according to Wikipedia, is used for file compression and decompression. Most shared hosts have this available on servers. Performance is greatly increased because html, js, css, and text files are compressed on the fly. Simply put – there’s less download required for the client (visitors).

Go to: Home » Board Settings » Server and Optimization Options

Set Use GZip Page Compression? to Yes

Set GZip Page Compression Level to 4 or 5.

4. Minimize CSS and JavaScript files – easy

By default, CSS and JS may not be optimized. To minimize, in short, is to reduce the size of the file content by removing spaces. The less characters in a file, the less there is for the client to download.

Go to: Home » Board Settings » Server and Optimization Options

Set Minify Stylesheets? to Yes.

5. Load style sheets before JavaScript – easy

Structuring your CSS before JavaScript will make your CSS files load first so your site seems to load faster. JavaScript is a “render blocking script.” Meaning, it must finish loading first if it precedes CSS.

If you’re using the default MyBB theme (or any theme for that matter) you’ll want to move the following code to the top of your template file.

Go to: Home » Template Sets » Default Templates » Edit Template: headerinclude

Move:

{$stylesheets}

To the top if headerinclude and click save.

6. Use a plugin – easy

Preparser Cache – is a MyBB 1.6 plugin created by ZiNgA that speeds up the MyBB MyCode parser “by caching the result so that the parser does not have to be run on every single page request.” Version 1.12 works with MyBB 1.8 for those that are on the latest version of MyBB.

7. Compress images – hard

Reducing the size of images used by your theme is a simple way to increase speed of your MyBB forum. Yahoo’s Smush.it online tool is great for reducing images. FileOptimizer is also a good image optimizer if you’re a Windows user.

8 .Use a content delivery network (CDN) – hard

A content delivery network works by caching files on servers and then serving the files to your visitors. The idea is to reduce latency by having files hosted on servers closer to visitors. We recommend using CDNSUN because they are cheap at $49 per TB and have many locations globally. They have a 15 day free trial if you want to test things out.

9. Leverage browser caching – easy

Indicating file types that browsers should cache will reduce the amount of content that needs to be served thereby increase the speed of your forum. If your host is running Apache, you’re probably in luck.

The html5 boilerplate .htaccess file is a great place to steal the cache control code you need:

# ----------------------------------------------------------------------
# Expires headers (for better cache control)
# ----------------------------------------------------------------------

# These are pretty far-future expires headers.
# They assume you control versioning with filename-based cache busting
# Additionally, consider that outdated proxies may miscache
#   www.stevesouders.com/blog/2008/08/23/revving-filenames-dont-use-querystring/

# If you don't use filenames to version, lower the CSS  and JS to something like
#   "access plus 1 week" or so.

<IfModule mod_expires.c>
  ExpiresActive on

# Perhaps better to whitelist expires rules? Perhaps.
  ExpiresDefault                          "access plus 1 month"

# cache.appcache needs re-requests in FF 3.6 (thanks Remy ~Introducing HTML5)
  ExpiresByType text/cache-manifest       "access plus 0 seconds"

# Your document html
  ExpiresByType text/html                 "access plus 0 seconds"

# Data
  ExpiresByType text/xml                  "access plus 0 seconds"
  ExpiresByType application/xml           "access plus 0 seconds"
  ExpiresByType application/json          "access plus 0 seconds"

# Feed
  ExpiresByType application/rss+xml       "access plus 1 hour"
  ExpiresByType application/atom+xml      "access plus 1 hour"

# Favicon (cannot be renamed)
  ExpiresByType image/x-icon              "access plus 1 week"

# Media: images, video, audio
  ExpiresByType image/gif                 "access plus 1 month"
  ExpiresByType image/png                 "access plus 1 month"
  ExpiresByType image/jpeg                "access plus 1 month"
  ExpiresByType video/ogg                 "access plus 1 month"
  ExpiresByType audio/ogg                 "access plus 1 month"
  ExpiresByType video/mp4                 "access plus 1 month"
  ExpiresByType video/webm                "access plus 1 month"

# HTC files  (css3pie)
  ExpiresByType text/x-component          "access plus 1 month"

# Webfonts
  ExpiresByType application/x-font-ttf    "access plus 1 month"
  ExpiresByType font/opentype             "access plus 1 month"
  ExpiresByType application/x-font-woff   "access plus 1 month"
  ExpiresByType image/svg+xml             "access plus 1 month"
  ExpiresByType application/vnd.ms-fontobject "access plus 1 month"

# CSS and JavaScript
  ExpiresByType text/css                  "access plus 1 week"
  ExpiresByType application/javascript    "access plus 1 week"

</IfModule>

What does the code do? The code above will tell the browser to cache CSS, HTML, JS and many other things.

If you don’t have one yet, create a .htaccess file then copy & paste the code above into your file.

Upload to forum root folder. If you’re on a CPanel enabled host, your forum root is probably in /public_html .

Conclusion

The biggest speed increase, from my experience, will be gained by using your .htaccess to leverage browser caching. I hope you found this guide on how to speed up MyBB and increase performance helpful.

2 thoughts on “Speed Up MyBB and Increase Performance

  1. Jose Rinaris

    Right now my forum it’s growing up so quickly and i use a free host because i don’t have much money to, I have the 1.8.12 version it’s that the latest? and this version can support like 500-600 hundred users?

    Reply

Leave a Reply

Your email address will not be published. Required fields are marked *