I hate it
I work for 10up, an agency with some big name clients and one of the biggest contributors to WordPress core. Our team loves WordPress, and it continues to be at the center of almost everything we build.
When you work with WordPress, you need to accept it for what it is. It's a CMS that needs to run on a variety of hosting platforms, from a highly scalable, redundant, distributed platform like WordPress VIP down to a $5/month shared host. It needs to support sites built by well-trained engineers who scrutinize every line of code they write for performance & security issues, and it needs to let an amateur bash together some plugins & a free theme to put their business online. Any system that needs to work in such a wide variety of circumstances is going to have compromises.
We rarely use off-the-shelf themes or plugins, and when we do we subject them to an intensive audit. We start with the WordPress Coding Standards for PHP Code Sniffer and move on to a manual review of the code. We only use something if it meets our standards. If it doesn't, we reach out to the original author to see if they'll merge our changes in so everyone can take advantage of our improvements. If not, we'll fork the code so our clients can feel comfortable with the code behind their site.
Our custom code is expected to follow our Engineering Best Practices, which we enforce through code reviews.
WordPress itself has a concept of an Object Cache, where it will store query results so it's not hitting the database constantly. And plugins & themes can take advantage of this feature as well. We prefer memcached for our Object Cache backend. We also tend to use Batcache, a lightweight full-page cache which uses memcached for storage. Of course, it's really best if page requests can skip PHP entirely, so we often add Varnish or Nginx micro-caching to the mix.
WordPress's native search is built to work with a stock MySQL install, so it doesn't get too fancy. So, we've built ElasticPress which connects WordPress to an ElasticSearch no-SQL database and uses it pretty much anywhere WP_Query is invoked. This gives us a highly-performant query engine and the ability to do things like geolocation search results, weighted relevancy, and Unicode normalization for words with accents.
PHP 7's runtime engine gives WordPress a huge performance boost, and there's very few reasons to be running 5.x anymore.
We use tools like New Relic to see exactly how our code performs at scale and tweak things that need it. We've also built our own tools to give New Relic insight into WordPress internals.
And it's not necessarily a performance improvement per se, but building React front-ends that access WordPress through its REST API lets us improve the perceived performance. It also lets us turn our front-end engineers loose building fun, modern web experiences. We're proud of the React-based site we built for WAMU public radio. I remember when having a persistent music/radio player on a site meant using an iframe! It wasn't that long ago!
On the subject of front-end development, we've open sourced a WordPress Component Library enabling rapid development of performant, accessible front-end code on WordPress.
I'm the first to admit WordPress has its flaws. But we've used it to build some pretty exciting online publishing platforms over the years and will continue to use it as long as it delivers value to our clients.
Hashnode is a friendly and inclusive dev community.
Come jump on the bandwagon!
💬 Ask programming questions without being judged
🧠 Stay in the loop and grow your knowledge
🍕 More than 500K developers share programming wisdom here
❤️ Support the growing dev community!
I hated it for years and years. Still do - anytime I see any website > a restaurant website or actual blog, I criticize for using it.
3 or 4 years ago, I was going for a job interview on Monday - it was a Thursday or Friday when I scheduled it. They specifically wanted WP experience. So I spent the weekend learning it; built a sample website - a Pizza review blog. I made a custom theme, couple custom plugins, installed some plugins, did some custom queries, etc... Enough to show them I knew what I was doing and could learn easy. I got the job, lol...
In the years since, I've built probably 20-30 WP websites. Some at that job, a lot freelance.
If WP is ALL you know - keep diversifying. If you know WP plus can work in PHP by itself or with Laravel or frontend or server admin - WP can be great for making a quick buck.
Wordpress is a misunderstood product. Wordpress is an MVP machine.
Show me any other framework that I can hand to incompetent web developers and have them build an entire web community. No SSH, no dependencies, just a fast 5-minute install on any server with PHP/mySQL (_which is way more than Node_). Been in a cave for 5 years as a web dev? No problem, just spin up your old LAMP and go.
There's no way any other library or framework has that kind of flexibility, with a robust marketplace for free and paid extensions. If you need any functionality, there's probably a Wordpress plugin for it (ACF, WooCommerce, etc), or it's built in to the core (REST API, user login/registration, commenting, etc).
Are you building an enterprise application at scale that connects to a myriad of platforms? Need a load time of less than 2 seconds? Go build it in whatever framework is best for your company.
Are you building a landing page + blog for a company that's either tanking in two years or redesigning anyway? Don't waste your time making a custom stack with your own scripted admin panel and whatnot -- slap Wordpress on that server with a few optimization plugins and watch how comfortable the client gets managing their site. Especially when they want a new feature but they're too cheap to pay for it, they'll love the ability to install a plugin and run with it.
And that's not to say Wordpress is only for simple sites. There are plenty of projects that run WP at scale by leveraging technology like Memcached, Redis, CDNs, and MVC-style React based themes. _However_, I'll be real and admit that getting Wordpress to scale requires hacking the core and dropping a lot of plugins (since they're all so poorly written, they slug down the site).
If I had to make a new web app, and the budget allowed for it, I'd pick another CMS/framework.
TLDR: If I had a client who was high standards and a low budget? I go with Wordpress.
me 2 but I understand if people specialize in it -> low effort high income when you're trained in it. you can always find plugins there are millions of templates and so on.
I still hate it, still I understand that webagencies specializes in it and here's the thing .... most companies don't care if their homepage is a hack on a hack on hack on hack based on a prototype written 17years ago .... or as other people would call it .... wordpress .... btw fun fact this also is true for pip the python package manager and the C library integration ;D ....
anyhow .... customers don't care, so you don't have to care or switch to drupal or somthing similar.
I think the answer is: It depends. Personally, it is NOT my "go to" solution. I still shudder at having to support a multi-user WP site. It feels like a bit of a witch's brew finding the right balance of a security, speed, and ease-of-use. I can't knock it, though. There's a reason why it's powering more than 25% of websites in the world. Content is king and WP makes it really easy for content creators to get their stuff published.
The Dev Community
(Free, friendly and inclusive)
A network for software developers to learn new things and get insight into the world of programming