When you have thousands of Mangas/Novels and thousands of visits per day, it’s time to carefully consider the performance issue.
The first thing to keep in mind is that to improve site performance, you will need more than a good plugin or theme. There are many aspects contributing to site performance:
- Server power: number of CPUs, SSD storage instead of HDD, number of RAMs, network connection…
- Web Server + Database configuration: Nginx or Apache, cache, load balancing…
- CDN (content delivery network): for images, static content, caching
- Number of content on your site
- Number of concurrent users on your site
- Number of plugins on your site
- Madara + Madara-core
So probably you will need a webmaster to help you setup all those things for a great performance site.
Looking into Madara + Madara-core , there are several features which can contribute to a slow load:
- Ajax-based features including View Counts, Reading History, Lazy-load images & chapters, Chapter Navigating…
Ajax-based helps your site to focus on loading important & visible parts first, thus improve experience. However, if there are a lot of users at the same time and your server configuration is not optimized for concurrent requests, then the site will be suffered from high CPU load (from calling to many ‘wp-ajax.php’ script). Some features can be turned off, such as Lazy-load or Chapter Navigating. Some cannot.
- Number of mangas/novels on your site. You will probably see your database size goes up to 10GB easily. That’s normal if you have thousands of mangas and each manga has thousands of chapters.
The bigger the database, the more time needed to query the data. Thus, you will probably need a good cloud hosting service so your database server is configured properly and efficiently to handle such large data
- Due to nature of WordPress, the wp_options & wp_usermeta & wp_postmeta tables (in database) will be large. There are several data in Madara stored in those tables including Bookmarked Items, Manga Rating and Chapters Notification (for Web Push feature)
In the latest version of Madara (188.8.131.52+), we added an option to limit number of Bookmarked Items for each user (previously it is unlimited). You should use this value to limit the data stored in database.
If your mangas have a lot of rating, then the _postmeta table will be large as well. No plan for changing this feature yet.
About Web Push feature, in previous versions of Madara, the data for Web Push is stored permanently which causing the site to load slowly because of fetching such big data. Updating to Madara 184.108.40.206+ will solve this.
In latest version, some transient values (values which are stored temporarily for fast access) are set to not auto-load so it reduces the amount of data fetched from database in one load. This helps to improve performance.
- The wp_options are used a lot to store site configuration by most of plugins. For example WP Rocket plugin stores its caching data here which makes this table really big (that’s why we don’t recommend WP Rocket plugin). WordPress calls to this table a lot, so one trick to improve performance here is to set index NO for “auto_load” column in this table (you can use phpMyAdmin app on your server to do this). Doing this will significantly increase the query speed for this table.
- We also recommend you using a good CDN (for your static content & images) and caching methods to improve your site performance. This topic is quite big and we will continue in another post)
I hope you are now having a better understanding on your site performance. We are still working on identifying any potential issues which might affect the performance and wish to prove our customers the best product that we can make 🙂