DEV Community

Discussion on: Why wordpress?

Collapse
gsarig profile image
Giorgos Sarigiannidis • Edited on

I mostly build custom sites on WordPress. I believe that a major distinction that needs to be made is that between a custom made theme and setup of a ready-made theme from ThemeForest or elsewhere without touching the code most of the time. Most of the drawbacks mentioned in the article are related to the second approach.

The main benefits I find on WordPress are the following:

  1. Great documentation and a vast community. It is very rare that you have a question that hasn't been answered already. Even if it doesn't, though, it's fairly easy to dig into the core, figure out how things work, and build it yourself as a plugin.
  2. A great content editor that is familiar to most people due to the project's popularity. I've seen a lot of clients asking beforehand for the site to be in WordPress because they are already familiar with its environment.
  3. Easy to find support. being open source and so popular makes it easy to find support. A few years back I've worked with a few companies promoting their own custom CMS and clients preferred them. In the long run, it turned out that most of the time it was a drawback, as this locked them to that company, which charged excessively even for simple tasks, and because of the custom implementation they couldn't assign the support to someone else. WordPress, on the other hand, is probably the most convenient when you need to find someone to support your site. After a few years, those clients came back asking to remake their site, this time specifically with WordPress, for the aforementioned reason (and some of the companies ditched their own CMS for WordPress).
  4. Good backward compatibility. That has been criticized by many developers and in some regard, it can be considered as a drawback too, but it sure has its benefits, as I've been updating websites built almost a decade ago with no issues.
  5. Gutenberg. This has been one of the most controversial topics, as people who prefer to build sites based on ready-made themes tend to hate it. Personally I love it because if you are a developer making custom themes, it can give you unprecedented freedom to build your backend however you like, very easily. In fact, the way Gutenberg works by default, outputting plain HTML, allows you to build a very fast website, minimizing the database queries.
  6. You don't have to use WordPress for your frontend if you don't want to (see Headless WordPress). You can build the backend with it and implement your frontend in whatever technology you like (e.g. JavaScript), using the WP Rest API.
  7. Due to its popularity, WordPress is often the first (and sometimes the only) CMS to be supported by a new service with official plugins.
  8. WordPress is a very much live project, constantly evolving, with a clear roadmap for the next few years.

Of course, that doesn't mean that WordPress is perfect or that it is the right tool for every job. Having started as a blogging platform inherited some problems that are hard to get rid of. For example, the database structure could be better, there could be less focus on backward compatibility in favor of embracing new technologies and multilingual support should be implemented to the core instead of relying on third-party plugins (fortunately, the latter is something that will, eventually, happen as it is in the roadmap).

Collapse
fmctaggart profile image
Fraser McTaggart Author

Thanks for the thorough response! I believe that I did make it clear that the main issue I had was with premade templates. You mention that you don't use prebuilt templates - how do your sites perform in lighthouse for example? I have seen near perfect scores, yet this is very rare and realise that templates add a lot of unneeded bloat. Is this an issue with the premade templates, or are there more fundamental issues?
It is a huge community, that is a great point. It is something that is easily overlooked. I haven't needed to use the community for Netlify CMS or Strapi as the both work as described in the docs.
I have read about the REST api for wordpress, however haven't used it. Perhaps I'll give it a shot.
As I mentioned, I see that Wordpress can work in many scenarios and can see why people use it. I've been asked to use it a few times, but turned away the jobs instead.
Do you feel that you are locked into using wordpress now? Do you just do wordpress sites, or do you do other things too?

Collapse
gsarig profile image
Giorgos Sarigiannidis

Premade templates aim at satisfying a broad audience, so they inevitably come with too many features that you don't need. Also, they rely too much on third-party libraries and frameworks (Bootstrap, jQuery, etc) that bloat the end-result even more. So, it is very likely that you end up with much more CSS than you actually need and load dependencies like jQuery that you could avoid if you aim at a high score on PageSpeed tests, which, by the way, I don't think that it should be an end in itself. The important thing is for your site to load fast to your users without compromising functionality.

In general, frontend issues that PageSpeed scores report have nothing to do with WordPress and can be dealt with like they would in any other solution. You can build a theme in WordPress with any HTML markup, CSS, and JS you want, without a CMS-specific restriction.

On the other hand, WordPress, as a CMS, queries the database, and if you implement every piece of your content using meta fields you might end up doing a lot of queries, some of them expensive, that could be avoided. Caching can do a good job at speeding things up, but on this subject, the new Gutenberg editor helps even more, because it can store your content in plain HTML, no matter how complicated your content's structure might be (unless, of course, you have very specific requirements on some occasion). If you know JavaScript and React, I believe that you might like Gutenberg, as it gives you a lot of freedom when it comes to building your site's backend.

In the end, it is not too hard to build a fast website with WordPress. In fact, even improving the speed of a site with a ready-made theme isn't always out of the question. It just depends on the quality of the theme, on the amount and the quality of your plugins, and the site's general functionality. Of course, custom or not, a WordPress site will never be as fast as a static one, but I think that this should be the case with any dynamic CMS.

At the end of the day, it depends on the project's requirements. If the site is relatively small and doesn't get updated very often and speed is the absolute priority, a static solution, with Headless WordPress or something else, would be better. If, on the other hand, it is big and needs to get updated too many times even within the same day, then maybe a more classic approach is preferable as the rebuilding process can be time-consuming in a static solution, as far as I know.

As for the last question, before WordPress, I used to work with Joomla and I had some experience with Plone too (waaaaay back). I also do a lot of frontend-work (not always for WordPress) and occasionally some small PHP-only and JS-only projects. Before getting involved with development I was an Information Architect, which didn't have much demand on Greece, so I shifted my interests.

I wouldn't say that I feel "locked" in WordPress in any way. I like building themes and plugins and there is always something new to learn, which keeps me from getting bored. In fact, JAMStack with a Headless WordPress is something that I intend to try at some point, as I find it to be a very interesting approach for many scenarios.

Thread Thread
fmctaggart profile image
Fraser McTaggart Author

If the user was looking for a basic 'brochure' style site, would you ever use a website creator, such as square space or wix? Why or why not?

I agree that page speed isn't the most important factor, yet it isn't something that can be ignored. Page speed has some sort of weighting in Google's search rankings and can be a good place to start when reviewing a site's performance.

I hadn't heard about Gutenburg before your original post, I'll have to go and take a look. Being Scottish, I like (freedom)[youtube.com/watch?v=lLCEUpIg8rE].

In regards to jamstack, I agree that it usually doesn't make sense to rebuild 100 times a day. For 'really' dynamic content I would use an api call instead. But there have been many advances with rebuilds and I can only see it getting faster. Gatsby and Nuxt ( and I'm sure many more frameworks ) have atomic deploys where it can take less than a second to rebuild.

I'm glad the post has sparked a bit of discussion! I have also used Joomla, a bit of a blast from the past. I just checked and they are still in active development. TIL.
I suppose I feel that the nature of wordpress, with plugins etc. makes it easy for someone to make a bad performing and bloated site. I feel it's important to strive for the best solution, which I usually find isn't the quickest one. But that is just my own view and I appreciate that not everyone has the same mindset.

But Philip has raised some very valid points as well which has helped me see the other side of the coin.

Thread Thread
gsarig profile image
Giorgos Sarigiannidis

If the user was looking for a basic 'brochure' style site, would you ever use a website creator, such as square space or wix? Why or why not?

Personally, I wouldn't for the sole reason that I am not familiar with it and learning it would require some time. I might prefer using a ready-made WordPress theme instead. I wouldn't be against using Wix, though, if it was for a small site that you are certain that you will not need to extend with extra functionality that needs custom development in the future.

I've seen nice implementations even with Wix and ready-made WordPress themes.

Knowing your tools well and being able to make the most out of them depending on the occasion is often more important than using the "best" tools that there is in a suboptimal way.