Are WordPress Developers In Demand?

As someone who regularly hires WordPress developers, I can confirm that good developers are in demand.

Note that I’ve said good developers.

WordPress Developers ARE In Demand

WordPress currently powers 30% of the web – which equates to tens of millions of websites (roughly speaking).

This includes a massive portion of small business websites and blogs combined with a decent chunk of enterprise portals, SaaS solutions, eCommerce stores running WooCommerce, LMS platforms, large and complex magazines and much more.

This has led to a number of roles within the WordPress ecosystem such as:

  • WordPress plugin developer
  • WordPress theme developer
  • WordPress performance engineer
  • WordPress extension developer for plugin X
  • WordPress framework engineer
  • WordPress security expert
  • WordPress migrations specialist

Sure, most of those roles are not advertised this way for marketing purposes. Clients tend to look for “WordPress developer” which leads to some ambiguity whenever you attempt to find someone appropriate for the job.

WordPress Developers are Web Developers

A professional developer using WordPress can easily specialize in other tangible areas.

You may get discouraged after browsing Upwork or even your LinkedIn network, discovering a large volume of WordPress developers.

But the majority of them merely do provide “site building services” or generic maintenance. Many of them are able to find freelance gigs every now and then, or they work as WordPress folks in marketing/creative studios.

The market needs more professional PHP and JavaScript developers capable of solving complex problems for the platform.

As long as you are proficient in PHP and familiar with WordPress’s life cycle and its numerous APIs, you should be able to find all sorts of job opportunities as a WordPress developer.

Is Adding More Features Slowing WordPress Down?

As other respondents have noted, new features are usually slowing down a website – but only under specific circumstances.

WordPress – and the other web application platforms and frameworks – generate web pages rendered at the browser with HTML, CSS, and JavaScript (together with other assets such as images and fonts). Those are processed depending on dynamic criteria computed with PHP, server-side JavaScript, and SQL queries to the database (fetching posts, users data, comments, taxonomies, and other options).

Adding new features (through plugins or additional snippets) leads to additional code that should be executed and processed in order to provide the new functionality.

Some of those features may be tiny, and add insignificant load to your site (talking about nanoseconds). Others are far more complicated, and could increase the load time with anywhere from 100ms to 1–2 seconds. Good examples for those are multilingual plugins, eCommerce solutions, LMS platforms and others on top of WordPress as the database grows and requires more time to sift through data and provide the correct results.

Often times, those features are essential to a business. The good news is that there are successful strategies for optimizing a WordPress website that allow for compressing images, combining and minifying scripts and styles in order to reduce the HTTP requests and the size of a page, caching resources in several different layers, using a Content Delivery Network and more.

A common misconception in the WordPress space is that the number of plugins is directly related to the load time of the website. In fact one plugin may be complex and heavy enough to outnumber dozens of small and simple plugins that are only executed in certain cases (and on specific screens).

WooCommerce vs. Magento and Shopify – eCommerce Web Development

I’m a bit biased since I’ve been profiling in WordPress for a while now but I’ll share some objective points.

That said, Magento has been a leading solution for eCommerce stores for quite some time. It does one thing and does it well – handling large volume of products, orders, and customers for online shops.

WooCommerce = eCommerce + CMS

Unlike WooCommerce (being a WordPress plugin), you don’t get the added overhead of a traditional CMS if you don’t need one. The WordPress Core is over 300,000 lines of code handling posts management, custom post types and taxonomies, comments, various settings, a template hierarchy layer, a robust rewrite API and a number of bits that may incur additional code debt if you don’t need them.

For a pure eCommerce platform handling hundreds of thousands of products, Magento may be a better choice from a scalability standpoint. WordPress is designed to be a generic CMS which could be extended for all sorts of solutions. This leads to a denormalized database schema and a larger number of database queries.

Product Database Serialization

It’s not uncommon for plugins to store data as serialized arrays in order to overcome that obstacle. That said, filtering and searching among serialized arrays in PHP/MySQL is rough and often causes troubles. The problem gets amplified if we consider product categorization – since there are multiple database tables for terms and taxonomies which aren’t intuitive and could be structured better if we aim purely for eCommerce.

Most performance challenges in WordPress are “resolved” via object caching (memcached/redis) and page caching. Given the dynamics of an eCommerce store (for logged in customers), certain areas cannot be cached effectively – adding on top of the performance hogs.

Feature-wise, Magento has a large pool of well-tested and popular extensions for payments, transactions, upsells/downsells and other important areas for online store businesses. WooCommerce is catching up quickly and its extension ecosystem is growing rapidly, though.

WooCommerce – a Winner for Small Projects

WooCommerce is a no-brainer for smaller stores and serious platforms that already rely on WordPress as a CMS. If you’re already maintaining a WordPress platform, introducing WooCommerce as an eCommerce extension may be a reasonable choice.

That also allows for mixing additional payment options – paid training courses, subscriptions, protected forums for members. Since everything is designed as a custom post type, managing different entries is extremely easy and allows for flexible archive pages or search queries.

WooCommerce Acquired by Automattic

WooCommerce has been acquired by Automattic a couple years ago (the company behind the hosted WordPress.com). This would increase the popularity of WooCommerce for hosted WordPress installs along with additional resources allocated on new features, performance improvements, stability, and tons of new extensions.

Some businesses may choose to use WordPress for a CMS and set up Magento separately for their eCommerce module. It’s becoming less common but still happens every now and then.

That said, Shopify has been gaining popularity quite a lot. Since it’s hosted, it handles payments, security, ongoing updates and the like. Businesses often use WordPress along with a Shopify plan in order to reduce their maintenance costs and offload that to Shopify.

Is WordPress Suitable for Serious Web Development Projects?

Because building a complex WordPress platform depends on intimate familiarity with the CMS and a careful selection of a theme and plugins (if any).

WordPress Site Building

Most vendors either discard WordPress entirely or create a LEGO by bundling dozens and dozens of randomly picked plugins combined with a premium WordPress theme. Both approaches are flawed.

People tend to blame WordPress all the time. I’ve described the pros and cons of the platform in a relevant Quora answer: WordPress is maybe the worst designed and legacy coded (not totally OOP), among popular PHP software out there, but why is it still so demanded in the market?

The reason WordPress is so badmouthed is due to its plugin and theme ecosystem.

WordPress Plugin and Theme Reviews

The plugin review process is extremely loose. There’s a small review theme (comprised of 3 volunteers as far as I know) who run a basic test and a static code review for major flaws. But it’s not extensive and isn’t performed anymore after the plugin is accepted.

Which is why plugin authors can inject almost anything they want. It’s rarely malicious, although that had happened previously. There are some automated scanners checking for malicious scripts but they can’t catch everything.

Also, there are various 3rd party plugins – and many free plugins have upsells to their premium versions. Those are not moderated by the community, either.

The theme review process is great – but that’s limited to WordPress.org themes. Most people buy premium themes from ThemeForest or other marketplaces who accept templates containing tons of 3rd party libraries (and often, embedded plugins). That has a massive impact on performance, stability, and security.

WordPress Development Isn’t LEGO

So yeah, it’s easy to grab a bunch of plugins and bundle them into your WordPress installation. This may very well cause various problems – but that depends entirely on the quality of the plugins you’ve picked.

That’s what I’ve described further in “Don’t call yourself a developer if you don’t code.

After all, you can integrate any 3rd party system or a random library and risk the stability or security of your website. Blaming WordPress here is a fallacy.

Which is why professional tech companies using WordPress may pick the WordPress core and build almost everything else from scratch. Or pick from a small list of trustworthy, well-developed plugins known for their quality.

This makes complete sense when your platform depends on a CMS itself. Magazines, business listing platforms, training systems, and many more revolve around content management. A real estate listing platform is a good candidate here, too.

Custom Builds vs. WordPress Projects

The more your scope goes beyond a CMS (whereas the WordPress Core incurs some overhead), the more it makes sense to consider a custom build. I personally won’t suggest building a Twitter or an Instagram clone on top of WordPress – there are far too many features integrated into the Core that won’t be used and will impact the load times.

But the vast majority of the platforms out there do need pages, some forms of organized textual content (categorized), admins or editors managing information, media uploads – which are well-tested and proven to work in WordPress.

In some specific cases, the limitation of a generic platform (be it WordPress, Drupal, Joomla) may lead to slower load times. This can be prevented with a custom build, but WordPress provides mature mechanisms for dealing with that (object caching for database queries, image optimization libraries for lossless compression, page caching serving static content through the web server, to name a few).

But the database schema is somewhat generic – and denormalized. If you are to process hundreds of millions of records, a different relational schema may work better. That said, if the rest of the CMS is still helpful, you can easily decouple the content layer and store data in custom database tables – overcoming that limitation once again.

The best and most reputable professional agencies are acquainted with the pros and cons of WordPress (or any other platform they specialize in). They can reuse whatever the CMS provides out of the box and use proven techniques whenever the go-to approach isn’t the most suitable one.

Can I Learn PHP Through WordPress Development?

Learning PHP through WordPress is possible, although I wouldn’t recommend it.

Learning PHP From WordPress

In all honesty, I know of a couple dozen people who followed that route. One of the smartest minds in my network did that – but it happened over a decade ago when email lists and support forums were still heavily used.

He was genuinely interested in learning – and did his due diligence on various questions and problems daily, submitting sample code snippets and helping people out.

He now leads an enormous team in one of the largest WordPress companies worldwide, handling development, security, performance, automated testing and more.

Lazy PHP Learning

The problem with studying PHP through WordPress is the ease of use of the platform. It offers a large set of reusable components that you can use out-of-the-box.

  • You can easily work as a plugin developer for years without having to:
  • Design a new database schema from scratch
  • Create a brand new dashboard for users
  • Define and architect user roles, sessions, authentication, email confirmation
  • Create a media management dialog
  • Deal with importers or exporters (too much hassle)
  • Handle discussion options and comments (including spam management)

Once you accept that all of those (and many, many more) are available and should be reused as a best practice, it isn’t your top priority to learn how to build them yourself.

PHP Through WordPress Plugin Development

Still, it’s possible to make it work. When we organize internships or onboard developers who don’t know WordPress, we give them a plugin framework I designed which represents a collection of functions and libraries interacting with the most popular platform APIs.

That combined with WordPress APIs ” WordPress Codex can be a great starting point for junior developers eager to learn more at a later point.

If you join a team of professional WordPress developers and follow a similar track, you can advance by working on complex projects with seniors helping out. But there’s a lot more to programming than building more post types for an existing website or designing a yet another widget.

PHP is Required for WordPress Development

Complex WordPress projects do require expert familiarity in PHP and JavaScript. You may have to extract existing components or replace them with more optimal ones. That often requires a new set of databases suitable to your business case.

Migrating platforms from and to WordPress also depends on a good amount of experience with the platform. Optimizing for performance is a whole different beast. Security code reviews matter a lot – and while there are plenty of suitable functions in WordPress and its nonces, you still need to understand how handling requests works on a lower level.

Best-case scenario, you would learn PHP, build a couple applications from scratch, spend some time with a framework like Laravel or Symfony and switch to WordPress. But if you have already found a job opportunity as a WordPress developer, it’s still not too late to teach yourself PHP along the way.

How to Include a WordPress Plugin in a Non-WordPress Project?

Short answer: You can’t.

The long answer is complicated and should be avoided if possible. That said, there are always workarounds…

Rewrite the plugin

The most viable (and rightful) option is often rewriting the core logic of the plugin. It’s the most time consuming one, but it doesn’t depend on the WordPress Core.

Plugins tend to rely on a huge pile of WordPress Core code and its APIs so it’s usually a hassle.

Load the WordPress Core

It’s possible to set up a clean WordPress install in a subfolder and include wp-load.php on top of your plugin. It won’t work for every plugin and it will effectively load the entire WordPress Core. But simple plugins may work this way.

That said, it’s just loading the WordPress Core altogether. But you can limit it to a single endpoint or a callback – instead of loading WordPress for each and every HTTP request.

Port Certain APIs

You will almost inevitably hit some limits and a number of dependencies along the way. But some APIs are lightweight and somewhat decoupled – such as the HTTP API, the XML-RPC specification, the RSS feeds.

Running cachegrind or another debugger may help you browse the entire stack that a plugin requests. For instance, you can set up a basic front-end page with a lightweight header/footer and inject your plugin function there, finding out what gets loaded and triggered along the way.

WordPress REST API

WordPress has designed and incorporated a REST API some three years ago. You can set up a WordPress install elsewhere, blacklist most requests and open a certain endpoint loading your plugin code. IP whitelisting for your server would avoid some DDoS attacks, too.

Iframes

For plugins loading some code on the front-end, adding an iframe to your website embedding a generated screen off of WordPress may work. It will impact your SEO but it’s an option.

A custom extension/add-on

You can set up WordPress, your plugin, and a custom extension extracting whatever you need and passing it through REST/SOAP in a way that your site can parse and render.

You can generate the HTML output, a JSON data array, or new endpoints for adding and fetching data as needed.

Again, it’s far from ideal, but you want to support a tiny extension relying on 300,000+ lines of code.