Updates

Modernizing Back End Site Design

July 9, 2018 • By

In the race to get your website to the top of the Google rankings, the majority of a typical development team’s focus will be on front end design features intended to make the site stand out from its competitors.

This makes perfect sense, and indeed the front end of the site design is where most of the action is. What doesn’t help, however, is to neglect the back end from anything other than the most cursory consideration. Even worse would be to intentionally incorporate features into the back end that don’t provide any measurable benefit, or could even work to your detriment.

The problem is that many of the ideas that were applied to early website back end design haven’t been updated to reflect changes in the operating environment. Just because an old DC-9 will fly doesn’t mean it’s still the best way to travel across the Atlantic, and the same logic can be applied to the technology that drives our websites.

Your back end architecture makes a difference to your Google rank

Google cares about a lot of things when it comes to the user experience, and it can be discerned from the information Google provides that they care more about this than they do about the user interface of your site.

In other words, when it comes down to what Google cares about most, how your site functions is far more important than how it looks. One of the key criteria involved in Google’s assessment of a site is page loading time, and it’s easy enough to understand that some architectures are more efficient than others.

Server hardware choices

The first link in a very long chain of decisions is the server itself. It’s difficult to choose a specific hardware configuration to recommend as the best because there are just so many possibilities. The market leader is Hewlett-Packard, with approximately 52 percent of the market share for new server purchases, but this could be more to do with pricing than with efficiency.

If you have the money for it, the second ranked competitor, IBM, may actually provide the best value in terms of what you get for what you pay. IBM has obviously been around for a very long time, and one thing this manufacturer is very good at is building highly efficient and reliable hardware.

For smaller companies, the hardware is not such a big consideration because they won’t be supplying their own web servers, or even leasing dedicated servers. That means they don’t have the luxury of choice that blue chip companies can afford.

Windows or Linux?

The operating system you choose, on the other hand, can have a critical effect on the overall efficiency of your site. That isn’t always the priority for IT managers. Their job does not usually depend on how the company website performs. They will often have more concern for how quickly and easily any new technology can be set up and deployed.

There is no doubt that setting up a Windows server is usually a lot easier than setting up a Linux server, although the gap is being narrowed all the time. On the other hand, it could be argued that setting up a server is a job for an expert anyway, so it should not matter how easy it is to do.

The simplest way to understand the difference is that by default a Windows server has a lot of extra things running on it that don’t need to be running on a Linux server. That means Linux can dedicate more system resources to the task of actually serving the website, whereas Windows must set aside a portion of resources for its own internal consumption.

illustration courtesy of 

This is a major factor in why Linux is the most popular web server operating system by a large margin, along with its low cost and good security.

Considering all the relevant factors, it would appear that running Linux on an IBM server is the best choice. You will get the efficiency benefits from the better software and hardware architecture, and it will cost less than paying for Windows licenses.

Linux is also “future proof”, meaning that it can always be upgraded to accommodate changes in technology without additional cost. On the other hand, Windows can be relied on to support the widest range of hardware (when manufacturers write their drivers correctly), but this is pretty much irrelevant when it comes to servers.

HD format

The file system used for storage on your server is also significant. If you’re running a Windows server, the choice is very easy, because you can only logically use NTFS. If you’re running a Linux server you have a choice of Ext4, XFS, and NTFS (along with a slew of others, but they aren’t important).

Ext4 is hands down better than NTFS because it is highly efficient and doesn’t suffer from file fragmentation (which is why you don’t have to defrag it). XFS has good speed gains for very large media files, but is not efficient for storing large numbers of small files. Both Ext4 and XFS have better built in file security than NTFS. XFS has comparatively poor recovery if it becomes corrupted.

Based on this, we’d suggest that Ext4 on Linux on IBM would be the configuration that will suit most webmasters the best, and lo-and-behold, that is exactly what the most popular configuration is.

Server software

The main choices for server software are Apache and Microsoft IIS. The latter will only run on a Windows server, which the former will run on pretty much anything. There are other choices available, but they will probably not be the best choice until they gain more market share.

Apache is by far the most popular server system. It can do everything you need it to do, it costs nothing, and it is very easy to understand. IIS is similar but there are some reports indicating that it may perform marginally better.

Based on this, there is no clear winner, but IIS may have a slight performance edge. That edge is offset by the fact that it limits you to one specific operating system and will indirectly cost more due to the licensing fees required for that operating system.

Programming language and database choices

There are several thousand different programming languages to choose from, which is amazing. There are more computer programming languages in existence today than there are spoken languages, according to some sources. So how do you know which ones to choose?

Well the simplest answer to that is the programming languages your developers are most familiar with, because that will get you the fastest results in terms of development time. In the unlikely scenario that you’re planning to fire your whole development team and start from scratch, there’s another way to choose the best languages.

That method is to look at what the top websites are using and copy their method. If those sites, with the millions of transactions they process every day, can cope by using the languages that they do, your site will surely also cope with whatever load is placed on it.

Here is a list of top websites according to Alexa, and the programming languages they self-report as using:

  1. Google: C, C++, Java, PHP, MySQL
  2. Facebook: C++, PHP, MySQL
  3. YouTube: C, Java, MySQL
  4. Yahoo: C, C++, Java, PHP, MySQL
  5. MSN: ASP.net, SQL Server
  6. Microsoft Live: ASP.net, SQL Server
  7. Wikipedia: PHP, MySQL
  8. Amazon: C++, Java, J2EE
  9. WordPress: PHP, MySQL

Apart from the MSN and Microsoft Live sites which are owned by Microsoft, none of the other sites among the leading sites use ASP.net or SQL Server. This could reflect that these entities do not consider that the technologies are the best to suit their needs.

Based on the findings so far, it would seem the best choices for 2018 would be Ext4 on Linux on IBM with Apache, using C, C++, Java, PHP, and MySQL.

illustration courtesy of 

Development philosophy

Having determined the hardware and software configuration that is most likely to give the best results, you will be well on the way to improving the efficiency of your website. A more efficient website means faster loading times, and fast loading times make Google happy.

Now it’s time to make sure your website isn’t committing any of the cardinal sins that back end developers are often in the habit of building into a site. These are practices that once may have had some value, but now have been rendered virtually obsolete by changes in browser technology and user habits.

These problems have the potential to slow down your website beyond any benefit they may offer, may harm your reputation, and may lower trust levels for consumers visiting your site.

In no particular order, here are the most common useless extras developers include in sites that have been rendered virtually pointless to include:

  1. Useless security scripts. If you’re doing things like trying to block right-clicking or other similar gimmicks, all you are doing is inconveniencing legitimate users while doing nothing at all to block malicious users or prevent people doing the actions you’re trying to prevent.
  2. Tracking. It no longer works reliably. There are too many technologies users have that provide automatically faked tracking data, so the data is unreliable. You can’t make sound business decisions based on unreliable data.
  3. Plug-in aversion. The logic here is reasonable enough. Sites that rely on advertising revenue want to protect their content from ad-free access. The problem is that again, it no longer can be counted on to work. So your efforts to block these users by detecting their plug-in status is not the right solution. It is too easy to circumvent. The right solution is to deliver ethical advertising that the plug-ins won’t block.
  4. Region-based language selection. You should let the user select the language, or at least provide a way to over ride automatically made selections if your site is available in more than one language.

Conclusions

Some of the issues described above can have a major effect on the performance and ranking of your site, while others are less serious but still a concern because they cause unnecessary annoyances for the users.

Fixing the back end of your site is mostly a matter of making good server selection choices that are appropriate for the site.

Hardware should be the best you can afford, because it can be expected to provide better performance.

The operating system and web server software should be appropriate to your needs.

Your choice of programming languages and database solutions should ideally be unrestricted, chosen in conference with your developers, or should be selected from the best and most popular solutions chosen by the top website providers.

You should avoid development practices that may harm the relationship between your organization and the site users who visit your website.

By following these simple steps, you give your site the best chance to prosper.

header image courtesy of