Tag: Themes

Improving Netmix

Over the past few weeks, you may have visited Netmix and found our stylesheet broken. There was no background and the layout of the site was somewhat in dissaray. Text and images were still apparent, but the site was, for all intent and purpose not functioning correctly. We apologize. This was the unintended consequence of fixing Netmix over the last 14-days and a learning experience we had to go through ourselves to make positive changes to improve the site for the future.

First, we realized that the site needed a new theme. We’ve had the same generic WordPress theme framework from a third party for a few years and it was time for a simple refresh. So, we downloaded the free “Make” theme from Theme Foundry (https://thethemefoundry.com/wordpress-themes/make/), which sets the trend for a new class of professional themes. Make separates the presentation layer from the content layer, which is supremely helpful to those who publish data intensive sites. Here is why.

Today, many premium theme developers – in an arms race to sell themes with more features than than their competitors – provide complex theme options that should really be left for plugins. This can lead to losing or orphaning specific content that is not native to WordPress when you want to implement a new theme. For example, maybe you created a database in WordPress of craft beer or a restaurant menu that had its own custom post type. You swapped themes with a new one, but the custom post type for one is not in the other, unless you’re buying a theme from the same developer. Maybe they both use the same methods to store data and the same exact database format. Too many themes on ThemeForest and MOJO Themes have integrated custom post types with themes and most good WordPress developers tell you that shouldn’t be the case. Unless you know you are never going to swap your theme, creating a custom post type called “Events” into your theme is going to leave Events orphaned once you switch. Sure, the other theme may have something called “Events,” But that doesn’t mean its a one to one match. The first theme may have very specific fields for an event while the second theme may take a generalist approach. They just won’t match up.

A custom post type is simply another type of post that WordPress allows a developer to define and create beyond simple Pages, Posts, Links and Media. When you publish a “post” in WordPress, you are accessing the Post Type of Post. All the fields you see on the editor page are specific to a blog post. For example, you’ll see a text field for the post body and excerpt, as well as panels to select a featured image, check off a category or to add tag. These may be true to for all blogs posts, but using custom post types, you can add new text fields, drop down menus, radio buttons or other settings onto a post page. You can make that post specific to a data set of something you want to store. For example, if Netmix published a list of DJs, we might utilize a custom post type of “DJs” and we might add first name, last name, DJ name, city, state and zip code and bio to the post editor, in order to store each specific piece of data in the database on its own.

In the example below, Post, Media, Links, Pages and Comments are post types that come with WordPress. They are pre-existing post types when the system is installed. Custom post types in the example are Slides and Products. Those did not come with WordPress and had to be added separately.

Example image of a WordPress Custom Post Type
Custom Post Type Example

One registered, the data you enter into a custom post type of, for example, Products, can ultimately be displayed on a web page in a specific location or hierarchy that does not look like a blog post or page. Instead of using a text editor to try and layout that data like you would a Word document, the website can store a piece of data and put it on the web page in a very specific place, then style that text piece of image one way and the rest of the content another.

I think you get the point. The issue is, if the custom post type belongs to the theme and is not an independent plugin, once you replace the them, you break the connection between the current theme and the new theme and you have to write rules into the new theme to retrieve all the data left orphaned by the switch.

Here’s a good Smashing Magazine tutorial by WordPress developer, Daniel Pataki, on how to register and work with custom post types in a theme.

Not to belabor the point, but let’s discuss one more example. Maybe the time has come to swap out your theme. The new theme may not have a custom post type of “DJ” (or whatever you named it). Once you enable the new theme, you can no longer add new DJ data. And, where the data was then laid out on the old site is now broken in the new site, because the theme you’ve chosen doesn’t support data set for DJ.

Maybe the both have DJ as a custom post type, but both theme enhancements weren’t written and developed the exact same way, so they don’t sync up. You’re stuck with data in the database you cannot display. The underlying HTML and PHP code that pulled the custom post type data from the database and displayed it on a web page is gone. The new theme has no way to call up the data and display that content on the appropriate, corresponding page.

Rarely, if ever, do WordPress theme developers support each others themes. That’s why it’s better to use a plugin, which is theme agnostic (independent of any theme) to create your data sets.

Good WordPress theme and plugin developers who track and follow where WordPress is going know this, but we’ve watched over the last few years as the arms race to build all kinds of features into premium themes ensued anyway. People wanted more value, so theme developers gave them critical plugin functionality in the theme itself, when that shouldn’t have been the case. The more cool stuff you could do with one theme, the less reliant you were on 3rd-party plugins. I think it’s clear why changing your theme and using custom post types for content is important.

As Netmix grows, we want to be able to add data independent of our theme and not lose that data three years from now, if we decide to update our theme when the times comes. Hopefully, the “Make” theme we’ve chosen will grow with us and we won’t have to. We’ll just be able to use the tools Make Themes provide. Although it’s better to be safe then sorry.

Increase Page Speed

Another issue to address was how to increase our page speed. The site was dreadfully slow to load. Over 3 seconds, which is not all that bad considering all of the sites out there that load slower. But, in the blogosphere, it surely needs to be zippy for those who have little time to read. In fact, Buffer recently published stats that say the ideal length of a blog post is 1200 words and can be read in 7 minutes.  Google’s algorithm for search engines like sites that load quickly. Gone are the days when you could rely on cheap web hosting and achieve a high page rank. If your site is slow due to environmental issues at your web host, your site can be penalized. Google wants to deliver to those searching for content your pages quickly. If Google can find a relevant hit on a search that has excellent content and is fast, it’s potentially going to rank that page higher in search.

That being said, our sister company, Digital Strategy Works, employs page caching and a content delivery network for client sites, but we were slow to add this important component to Netmix.

NGINX and Varnish

An important aspect of page speed is the web server you are running. Most web hosts run Apache and that is perfectly fine for general uses. If you’re a highly trafficked site, you want your web server to be able to deliver more pages using less system resources. NGINX is a recent advancement in web server technology that many WordPress sites are now employing on top of Apache. Most web hosts do not support NGINX, so you have to install and configure it yourself.

Here at Netmix, we’re both social and global. We use a ton of online resources and work virtually. To find a system administrator to help us, we turned to oDesk, where we found someone in Poland to help optimize our NGINX configuration for WordPress. While you can install the base NGINX (which we had done previously) there are additional configuration parameters recommended on the WordPress.org codex.

Page Caching and CDN

Not only did we employ NGINX, we also installed a page caching plugin almost anyone working extensively with WordPress knows as W3 Total Cache. The plugin delivers WordPress pages to you – the reader – far more efficiently than without it.

Once a post is published to Netmix, every time you read it, WordPress has to pull the post data from the database and build the entire post page dynamically. Imagine if WordPress had to do this thousands of times a second. The web server might crash, because it would “overheat” if you will, running out of precious memory that is needed for WordPress to run.

With Total Cache, WordPress renders a new post post dynamically by calling the database, configuring the layout once and then stores it as a flat HTML file. The next person to request the content gets the flat HTML page instead of waiting for the page to build itself dynamically. It’s more efficient and uses less system resources, which gives Netmix room to breathe during traffic spikes, leaving the the reader with the optimal user experience.

We’ve also employed Amazon’s AWS as a Content Delivery Network. You may hear some refer to this using an acronym: CDN.

 

A CDN does distributes your cached pages and multimedia (images, audio, video) to web servers in located near major metropolitan centers around the world. When someone requests a page with a multimedia asset, the page is then delivered from the closest point to the requestor, instead of a web server somewhere on the other side of the world. When milliseconds count, delivering web pages to your browser from the closest set of servers is far faster than serving those same pages over a great distance. Yes, fiberoptics is lighting fast, but when milliseconds count, delivering content from the closest point to the requestor is important.

Advertising and Job Boards

Netmix has to generate revenue to pay for all these improvements and enhancements, right? That means we have to have advertising, among other revenue generating ideas.

In the right sidebar, you’ll now see an improved 300 x 250 ad unit (top) from Burst Media, our banner ad network. Additionally, there are two ads from Google’s AdSense program. One is located underneath the Burst ad unit and the other as you scroll to the bottom of the page.

For a few days, we saw video autoplay in the Burst Ad Unit, so we asked Burst to turn that off. We didn’t want to annoy our readers any further with video that we had no idea was playing either! There were also some sizing issues with the Burst ad unit, where an older ad format was stuck in the cache. We also stopped the ads from the National Pork Bureau, which don’t match with our site content or visitors demographic.

No Design

While we could have gone into a design round and come up with something slick and tricked out like our sister company, Digital Strategy Works, did for OneBeat.tv, we thought to keep it simple for now. What you see is really the base theme for Make with no extraneous style. It’s the out of the box framework for now. In the future, we may design, but today…keeping it simple.

Jobs

We’ve also recently added a Jobs board. It’s a work in progress and there are some kinks to work out. And, we partnered with Simply Hired. In the right sidebar, you’ll see a Simply Hired widget which targets music industry jobs in your area. We’re working to build out these tools and make them more robust.

We’re excited about the changes here at Netmix. Truthfully, this isn’t our full time gig. But we’re committed to really making this blog something special, so stay tuned for more changes and more content coming over the next few weeks. If you want to contribute to Netmix as a writer or designer/developer, you can get in touch with us here.