According to the few surveys I’ve seen, WordPress isn’t used as much for blogging as for making “brochure” websites. There’s a bit of a product-market mismatch.
The program is so huge once you add Jetpack and a few other plugins that you need to purchase a more expensive hosting plan with 1 Gig of RAM.
The built-in onboarding/user registration code is not only not-OO, it’s spaghetti code. Modifying it is difficult, limiting the ways it can be used for growth hacking.
The entire plugin system isn’t OO at all. It’s based around a huge and complex events system called hooks. IMNSHO throwing and catching events is like the old GOTO.
Despite these problems, the WordPress platform keeps doing well because they created a big ecosystem of plugins and themes. Automattic forces plugin and theme developers to a quality control check, so the experience of using these extensions is less-than-nightmarish. Other platforms lack these marketplaces, or were late to the game. This marketplace allows some designers and developers to have royalty-based income to supplement their contract web development work.
WordPress does automatic updates, and allows updating via the web interface, which most other CMSs don’t allow. Their adherence to backward-compatibility is ahead of other CMSs, that have forced complex upgrades. This saves end users who are customers a lot of money by keeping the webmaster out of the upgrade process. (This is really important – if a company relies on upgrade income to exist, it’s at risk for being undercut by WordPress. A company selling WordPress can focus more on customer acquisition and less on retaining accounts. The accounts probably won’t leave.)
The menu editing UI is good, making one of the more tedious and error prone tasks simple. You no longer need to check that your menu links work. This work can be performed by a non-programmer.
The API for saving options as serialized objects helps developers avoid creating new tables in the database. This is really useful.
The WP-CLI is… well, it’s complex as heck, and feels like a bolt-on, but at least it exists. Scripted automation is necessary so you can automate both creating websites, and restoring websites. Each website can now have its own creation script that will download code and install plugins. If you put all your site changes into a plugin, your bespoke work can be carried over to a new site easily. (This is relevant to being able to focus on acquiring new customers rather than retaining old ones for income.)