WordPress for a very large website

I’ve searched and searched but I did not find an answer online. Also, I’ve posted this on StackOverflow and apparently it wasn’t ok and I reposted this here. I hope it’s ok.

I have this website which is very large: a lot of articles, comments, likes for articles (not Facebook likes but own likes), ratings for articles, multiple users that each have a blog, forum, user wall, user friends etc.

My team and I made it 5-6 years ago in CakePHP and now the client wants to remake it. I thought WordPress would be a good solution given the tendency towards articles and stuff, and WordPress (at least I think) knows best about articles and stuff. I’ve checked and WordPress supports multiple blogs, I can customize the user’s fields, I can make user relations, user galleries and everything; also, I’ve done a few themes in WordPress (about 10) and I really like the way it’s coded.

Is it a good solution to remake it in WordPress? Considering about 50,000 articles and each about 100 comments and about 100,000 users (worst case scenario), would WordPress be able to render the website in less than one second (just the server side, not including CSS, JS and other stuff).

As far as I know WordPress only has like 20-30 tables (MySQL), while the website has 180 tables now. So, it will fit 180 tables worth of information into about 20-30 tables. Won’t that get too slow, crowded, etc?

Sorry for the long question, but I want to be sure I’m making the right decision. In short: for a website with a lot (and I mean a lot) of content and a lot of traffic, is WordPress a viable solution?

Solutions Collecting From Web of "WordPress for a very large website"

…would WordPress be able to render the website in less than one

WordPress is perfectly scalable to the amount of content and user base you’re describing.

You just need the horsepower for httpd (apache/nginx) to be able show one second page loads and have the database server (mysql, maria) respond fast, too.

You also need to configure the server – using various httpd and mysql utilities – to handle the loads, as well as work with php configs and opcode caching.

There is already all kinds of information out there on high performance WP sites and scalability: http://www.google.com/search?q=is+wordpress+scalable

There are too many options to cover here; many will depend on the server, the host, and on and on. https://serverfault.com/ is much better for server questions, as much of the time, they won’t be WordPress-specific.

Here are a few things I use to optimize server-side on high-traffic sites. I’ve worked on WP sites with over 300K posts, so you are fine as long as your server is configured properly.

  1. I would recommend installing a caching plugin like W3 Total Cache. I’ve had great luck with this on large enterprise sites.
  2. Install memcached on your server for object and database caching. Configure your pool of caching servers in your plugin options. This really works well and most plugins/themes that use caching will utilize object cache through your specified memcached server. (i.e. wp_cache_set and wp_cache_get)
  3. Configure page caching either to disk or memcached using your caching plugin. This significantly speeds up page loads. The only issue with disk caching is file permissions on the cache folder have to be right or you can be hacked pretty easily. I use memcached for page caching so as to harden my file system.
  4. You also might try opcode caching with APC. If you’re running < PHP 5.4 this lends to heap corruption at times. APC caches the compiled output of your scripts so it doesn’t have to compile every request. APC also comes with an object caching mechanism. Mark Jaquith has a great plugin for configuring this with WP.
  5. Use a CDN as their architecture far surpasses what you
    can create by yourself and can give your viewers edge nodes near
    their geographic location. There are some free options to try out
    such as Cloudflare. This also gives you a layer of security as well.
  6. For commenting, use a third-party service like Livefyre especially if you have a busy blog. This will keep your DB load down and page cache won’t interfere. There are plugins that will sync your post comments with the third-party service so you can maintain legacy content. I’ve found these services also provide easier moderation tools as well. Your users can log in with oAuth from their favorite service as well and track their comments.

If the above doesn’t help on a single server instance, your site would probably be a candidate for using a load balanced cluster on AWS EC2 instances.

Hope this helps!