{"id":130666,"date":"2024-05-02T16:02:32","date_gmt":"2024-05-02T20:02:32","guid":{"rendered":"https:\/\/www.boldgrid.com\/support\/?p=130666"},"modified":"2024-08-01T15:35:06","modified_gmt":"2024-08-01T19:35:06","slug":"rest-api-testing","status":"publish","type":"post","link":"https:\/\/www.boldgrid.com\/support\/w3-total-cache\/pagespeed-tests\/rest-api-testing\/","title":{"rendered":"REST API Cache &#8211; Google PageSpeed Experiment"},"content":{"rendered":"<!DOCTYPE html PUBLIC \"-\/\/W3C\/\/DTD HTML 4.0 Transitional\/\/EN\" \"http:\/\/www.w3.org\/TR\/REC-html40\/loose.dtd\">\n<?xml encoding=\"utf-8\" ?><html><body><p>In our recent <a href=\"https:\/\/www.boldgrid.com\/support\/pagespeed-tests\/\">Google PageSpeed Experiments<\/a> we have been testing the various features and benefits of W3 Total Cache. In this experiment we are testing the <a href=\"https:\/\/www.boldgrid.com\/support\/w3-total-cache\/rest-api\/\">REST API caching features<\/a>. However, Google PageSpeed is a tool meant to test pages and websites. Since we are working with the WordPress REST API in this experiment, we don&rsquo;t have a page we can test with Google PageSpeed. In this experiment we used tools such as loader.io to demonstrate and understand the impact of REST API caching on website performance.<br>\n\t  \n\t<div class=\"bg-proof bg-shadow\">\n\t\t<div>\n\t\t\t<span class=\"bg-green-circle\">40%<\/span>\n\t\t\t<span class=\"bg-green-description\">Less Server Resources<\/span>\n\t\t<\/div>\n\t\t<div>\n\t\t\t<p>In this test, using REST API caching reduced our <strong>Average Server Load <\/strong>by 40%! <a href=\"https:\/\/www.boldgrid.com\/support\/w3-total-cache\/rest-api\/\">Check out the documentation<\/a> to see how to take advantage of this feature on your site!<\/p>\n\t\t\t<p>\n\t\t\t\t<a class=\"button-primary\" href=\"https:\/\/www.w3-edge.com\/checkout-standalone-1\/?utm_source=boldgrid&amp;utm_medium=support-on-page&amp;utm_campaign=BoldGrid\" style=\"background: #21759b;padding: 6px 10px;\">Upgrade to W3 Total Cache Pro<\/a> and improve your PageSpeed Scores today!\n\t\t  \t<\/p>\n\t\t\t<div class=\"bg-proof-meta\">\n\t\t\t\t<div><strong>Audit:<\/strong> Average Server Load<\/div>\n\t\t\t\t<div><strong>Before:<\/strong> 0.62<\/div>\n\t\t\t\t<div><strong>After:<\/strong> 0.37<\/div>\n\t\t\t<\/div>\n\t  \t<\/div>\n\t<\/div>\n\t  \n    <\/p>\n<h2 id=\"control-website\">Control Website<\/h2>\n<p>On our control website we installed WordPress and used the FakerPress plugin to generate some generic posts to use for our WP REST API requests. For our test we used the REST API to pull a single post from the site.<br>\nRequest from control website: <a href=\"https:\/\/wordpress-speed-test.com\/043024_site1\/wp-json\/wp\/v2\/posts?per_page=1&amp;_fields=id,title,excerpt&amp;page=1\">https:\/\/wordpress-speed-test.com\/043024_site1\/wp-json\/wp\/v2\/posts?per_page=1&amp;_fields=id,title,excerpt&amp;page=1<\/a><\/p>\n<h2 id=\"experimental-website\">Experimental Website<\/h2>\n<p>With our experimental website, we made a clone of our control website to include the same plugins and posts from our Control site.<\/p>\n<p>We also installed <a href=\"https:\/\/www.boldgrid.com\/w3-total-cache\/\">W3 Total Cache Pro<\/a> and turned on REST API Caching.<br>\nRequest from experimental website: <a href=\"https:\/\/wordpress-speed-test.com\/043024_site2\/wp-json\/wp\/v2\/posts?per_page=1&amp;_fields=id,title,excerpt&amp;page=1\">https:\/\/wordpress-speed-test.com\/043024_site2\/wp-json\/wp\/v2\/posts?per_page=1&amp;_fields=id,title,excerpt&amp;page=1<\/a><\/p>\n<h3 id=\"experimental-website-changes\">Experimental Website Changes<\/h3>\n<p>We used the requests listed above to ensure that the same amount of data is pulled from both sites and narrowed it down to a single post so that it is easy to compare and see that the same data is being returned.<\/p>\n<p>REST API requests in a vacuum are small and relatively quick, but often will be done repeatedly or in larger amounts. While a single request doesn&rsquo;t have much impact, several requests can add up and be taxing on server resources.<\/p>\n<p>On our experimental website we simply enabled the Cache option in the REST API section of the page cache settings as shown in the screenshot below:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"bg-border alignnone size-full wp-image-130668\" src=\"https:\/\/www.boldgrid.com\/support\/wp-content\/uploads\/2024\/05\/Pasted-image-20240502125116.png\" alt=\"\" width=\"843\" height=\"243\" srcset=\"https:\/\/www.boldgrid.com\/support\/wp-content\/uploads\/2024\/05\/Pasted-image-20240502125116.png 843w, https:\/\/www.boldgrid.com\/support\/wp-content\/uploads\/2024\/05\/Pasted-image-20240502125116-300x86.png 300w, https:\/\/www.boldgrid.com\/support\/wp-content\/uploads\/2024\/05\/Pasted-image-20240502125116-768x221.png 768w\" sizes=\"auto, (max-width: 843px) 100vw, 843px\" \/><\/p>\n\t  \n\t<div class=\"bg-proof bg-shadow\">\n\t\t<div>\n\t\t\t<span class=\"bg-green-circle\">84.5%<\/span>\n\t\t\t<span class=\"bg-green-description\">API Response Time<\/span>\n\t\t<\/div>\n\t\t<div>\n\t\t\t<p>In this test, using REST API caching sped up our <strong>API Responses <\/strong>by 84.5%! <a href=\"https:\/\/www.boldgrid.com\/support\/w3-total-cache\/rest-api\/\">Read the documentation<\/a> to learn how you can cache your API Requests.<\/p>\n\t\t\t<p>\n\t\t\t\t<a class=\"button-primary\" href=\"https:\/\/www.w3-edge.com\/checkout-standalone-1\/?utm_source=boldgrid&amp;utm_medium=support-on-page&amp;utm_campaign=BoldGrid\" style=\"background: #21759b;padding: 6px 10px;\">Upgrade to W3 Total Cache Pro<\/a> and improve your PageSpeed Scores today!\n\t\t  \t<\/p>\n\t\t\t<div class=\"bg-proof-meta\">\n\t\t\t\t<div><strong>Audit:<\/strong> Average Response Time<\/div>\n\t\t\t\t<div><strong>Before:<\/strong> 968ms<\/div>\n\t\t\t\t<div><strong>After:<\/strong> 150ms<\/div>\n\t\t\t<\/div>\n\t  \t<\/div>\n\t<\/div>\n\t  \n    \n<h2 id=\"how-the-test-was-run\">How the test was run<\/h2>\n<p>We conducted two separate tests on both sites using loader.io. We also tracked the load average on the server during each test to get a full picture of how the REST API requests perform with and without the caching feature enabled.<\/p>\n<h3 id=\"the-first-test\">The first test<\/h3>\n<p>This test was to simulate typical medium levels of traffic. We wanted to see what happens when 250 clients make the same REST API request in a 60 second time span.<\/p>\n<h4 id=\"control-site-results\">Control Site Results<\/h4>\n<p>On our control site all of our visitors were able to make their request without any errors. It took just under a second on average for each client to receive a response from the API. We included a screenshot of the results below. One important thing to note is the fluctuation on the average time and the average time scale on the left.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"bg-border alignnone size-full wp-image-130669\" src=\"https:\/\/www.boldgrid.com\/support\/wp-content\/uploads\/2024\/05\/loderio_rest_n1.png\" alt=\"\" width=\"653\" height=\"411\" srcset=\"https:\/\/www.boldgrid.com\/support\/wp-content\/uploads\/2024\/05\/loderio_rest_n1.png 653w, https:\/\/www.boldgrid.com\/support\/wp-content\/uploads\/2024\/05\/loderio_rest_n1-300x189.png 300w\" sizes=\"auto, (max-width: 653px) 100vw, 653px\" \/><\/p>\n<h4 id=\"experimental-site-results\">Experimental Site Results<\/h4>\n<p>Just as on our control site, all of our visitors to the experimental site were able to make their requests successfully without any errors. The results show that the response time of each request was much more consistent and took 150ms to complete on average. We included a screenshot of the results, be sure to note the average time scale on the left.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"bg-border alignnone size-full wp-image-130670\" src=\"https:\/\/www.boldgrid.com\/support\/wp-content\/uploads\/2024\/05\/loderio_rest_c1.png\" alt=\"\" width=\"659\" height=\"406\" srcset=\"https:\/\/www.boldgrid.com\/support\/wp-content\/uploads\/2024\/05\/loderio_rest_c1.png 659w, https:\/\/www.boldgrid.com\/support\/wp-content\/uploads\/2024\/05\/loderio_rest_c1-300x185.png 300w\" sizes=\"auto, (max-width: 659px) 100vw, 659px\" \/><\/p>\n<h4 id=\"load-average\">Comparing Request Response Times<\/h4>\n<p><a href=\"https:\/\/www.boldgrid.com\/support\/wp-content\/uploads\/2024\/05\/2024-05-24-14_16_46-Mozilla-Firefox.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-131842\" src=\"https:\/\/www.boldgrid.com\/support\/wp-content\/uploads\/2024\/05\/2024-05-24-14_16_46-Mozilla-Firefox.png\" alt=\"\" width=\"910\" height=\"375\" srcset=\"https:\/\/www.boldgrid.com\/support\/wp-content\/uploads\/2024\/05\/2024-05-24-14_16_46-Mozilla-Firefox.png 910w, https:\/\/www.boldgrid.com\/support\/wp-content\/uploads\/2024\/05\/2024-05-24-14_16_46-Mozilla-Firefox-300x124.png 300w, https:\/\/www.boldgrid.com\/support\/wp-content\/uploads\/2024\/05\/2024-05-24-14_16_46-Mozilla-Firefox-768x316.png 768w\" sizes=\"auto, (max-width: 910px) 100vw, 910px\" \/><\/a>As we can see, the Responses were much faster on the cached site, this indicates that the requests to the REST API are completing more quickly and efficiently.<\/p>\n<h4 id=\"load-average\">Load average<\/h4>\n<p>During the test we recorded the load average on the server and created a chart to illustrate the impact of the test on the server load:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"bg-border alignnone size-full wp-image-130671\" src=\"https:\/\/www.boldgrid.com\/support\/wp-content\/uploads\/2024\/05\/Pasted-image-20240501153409.png\" alt=\"\" width=\"995\" height=\"515\" srcset=\"https:\/\/www.boldgrid.com\/support\/wp-content\/uploads\/2024\/05\/Pasted-image-20240501153409.png 995w, https:\/\/www.boldgrid.com\/support\/wp-content\/uploads\/2024\/05\/Pasted-image-20240501153409-300x155.png 300w, https:\/\/www.boldgrid.com\/support\/wp-content\/uploads\/2024\/05\/Pasted-image-20240501153409-768x398.png 768w\" sizes=\"auto, (max-width: 995px) 100vw, 995px\" \/><\/p>\n<p>While both sites were able to complete all requests without any issues, the control site nearly topped out on resources, this could have led to errors or impacted the performance of any subsequent requests. Had the test been longer than 60 seconds we likely may have seen some errors in the loader.io results. In contrast, the cached site was able to handle the requests faster and without significantly increasing the server load.<\/p>\n<div class=\"boldgrid-section\">\n<div class=\"container\">\n<div class=\"row\" style=\"padding-top: 0px; padding-bottom: 0px;\">\n<div class=\"col-lg-12 col-md-12 col-xs-12 col-sm-12\">\n<h4 id=\"average-traffic-test\">Average Traffic Test<\/h4>\n<table class=\"bg-table table table-responsive-xs table-responsive-sm hide-header-responsive table-striped\" style=\"width: 100%; height: 152px;\" data-num-cols=\"7\" data-num-rows=\"2\">\n<thead>\n<tr style=\"height: 68.4062px;\">\n<th class=\"\" style=\"width: 15%; height: 68.4062px;\" data-label=\"Site\">Site<\/th>\n<th class=\"\" style=\"width: 20%; text-align: center; height: 68.4062px; border-style: solid; border-width: 0px 0px 2px; background-color: #000000;\" data-label=\"Avg Response Time\"><span class=\"bg-span\" style=\"color: #ffffff;\">Avg Response Time<\/span><\/th>\n<th class=\"rest-api-black-background\" style=\"width: 15%; text-align: center; height: 68.4062px;\" data-label=\"Min\/Max Response Time\">Min\/Max Response Time<\/th>\n<th class=\"\" style=\"width: 15%; text-align: center; height: 68.4062px;\" data-label=\"Successful Responses\">Successful Responses<\/th>\n<th class=\"\" style=\"width: 15%; text-align: center; height: 68.4062px;\" data-label=\"Timed Out Responses\">Timed Out Responses<\/th>\n<th class=\"\" style=\"width: 15%; text-align: center; height: 68.4062px;\" data-label=\"Bandwidth Sent \/ Received\">Bandwidth Sent\/Received<\/th>\n<th class=\"\" style=\"width: 15%; text-align: center; height: 68.4062px;\" data-label=\"Average Server Load\">Average Server Load<\/th>\n<th class=\"\" style=\"width: 15%; text-align: center; height: 68.4062px;\" data-label=\"Highest Server Load\">Highest Server Load<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr style=\"height: 43.2031px;\" data-row=\"1\">\n<td class=\"\" style=\"width: 15%; height: 43.2031px;\" data-label=\"Site\">No cache<\/td>\n<td class=\"\" style=\"width: 20%; text-align: center; height: 43.2031px; border-style: solid; border-width: 1px 0px 0px; background-color: #000000;\" data-label=\"Avg Response Time\"><span class=\"bg-span\" style=\"color: #ffffff;\">968 ms<\/span><\/td>\n<td class=\"\" style=\"width: 15%; text-align: center; height: 43.2031px;\" data-label=\"Min\/Max Response Time\">708 \/ 2680 ms<\/td>\n<td class=\"\" style=\"width: 15%; text-align: center; height: 43.2031px;\" data-label=\"Successful Responses\">250<\/td>\n<td class=\"\" style=\"width: 15%; text-align: center; height: 43.2031px;\" data-label=\"Timed Out Responses\">0<\/td>\n<td class=\"\" style=\"width: 15%; text-align: center; height: 43.2031px;\" data-label=\"Bandwidth Sent \/ Received\">42.48 KB \/ 215.82 KB<\/td>\n<td class=\"\" style=\"width: 15%; text-align: center; height: 43.2031px;\" data-label=\"Average Server Load\">0.62<\/td>\n<td class=\"\" style=\"width: 15%; text-align: center; height: 43.2031px;\" data-label=\"Highest Server Load\">0.87<\/td>\n<\/tr>\n<tr style=\"height: 42.2031px;\" data-row=\"2\">\n<td class=\"\" style=\"width: 15%; height: 42.2031px;\" data-label=\"Site\">W3 Total Cache<\/td>\n<td class=\"\" style=\"width: 20%; text-align: center; height: 42.2031px; border-style: solid; border-width: 1px 0px 0px; background-color: #000000;\" data-label=\"Avg Response Time\"><span class=\"bg-span\" style=\"color: #ffffff;\">150 ms<\/span><\/td>\n<td class=\"\" style=\"width: 15%; text-align: center; height: 42.2031px;\" data-label=\"Min\/Max Response Time\">140 \/ 328 ms<\/td>\n<td class=\"\" style=\"width: 15%; text-align: center; height: 42.2031px;\" data-label=\"Successful Responses\">250<\/td>\n<td class=\"\" style=\"width: 15%; text-align: center; height: 42.2031px;\" data-label=\"Timed Out Responses\">0<\/td>\n<td class=\"\" style=\"width: 15%; text-align: center; height: 42.2031px;\" data-label=\"Bandwidth Sent \/ Received\">42.48 KB \/ 199.46 KB<\/td>\n<td class=\"\" style=\"width: 15%; text-align: center; height: 43.2031px;\" data-label=\"Average Server Load\">0.37<\/td>\n<td class=\"\" style=\"width: 15%; text-align: center; height: 43.2031px;\" data-label=\"Highest Server Load\">0.39<\/td>\n<\/tr>\n<\/tbody>\n<tfoot>\n<tr>\n<td style=\"width: 15%; height: 42.2031px;\" data-label=\"Site\">Improvement<\/td>\n<td class=\"\" style=\"width: 20%; text-align: center; height: 42.2031px; border-style: solid; border-width: 1px 0px 0px; background-color: #000000;\" data-label=\"Avg Response Time\"><span class=\"bg-span\" style=\"color: #ffffff;\">84.5%<\/span><\/td>\n<td class=\"\" style=\"width: 15%; text-align: center; height: 42.2031px;\" data-label=\"Min\/Max Response Time\">80.2% \/ 87.7%<\/td>\n<td class=\"\" style=\"width: 15%; text-align: center; height: 42.2031px;\" data-label=\"Successful Responses\">0%<\/td>\n<td class=\"\" style=\"width: 15%; text-align: center; height: 42.2031px;\" data-label=\"Timed Out Responses\">0%<\/td>\n<td class=\"\" style=\"width: 15%; text-align: center; height: 42.2031px;\" data-label=\"Bandwidth Sent \/ Received\">0% \/ 7.5%<\/td>\n<td class=\"\" style=\"width: 15%; text-align: center; height: 43.2031px;\" data-label=\"Average Server Load\">40%<\/td>\n<td class=\"\" style=\"width: 15%; text-align: center; height: 43.2031px;\" data-label=\"Highest Server Load\">55.17%<\/td>\n<\/tr>\n<\/tfoot>\n<\/table>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n\t  \n\t<div class=\"bg-proof bg-shadow\">\n\t\t<div>\n\t\t\t<span class=\"bg-green-circle\">x25<\/span>\n\t\t\t<span class=\"bg-green-description\">More API Requests<\/span>\n\t\t<\/div>\n\t\t<div>\n\t\t\t<p>In this test, using REST API caching allowed us to serve 25 times the amount of API requests under high traffic using less server resources. <a href=\"https:\/\/www.boldgrid.com\/support\/w3-total-cache\/rest-api\/\">Read the documentation<\/a> to learn how you can cache your API Requests.<\/p>\n\t\t\t<p>\n\t\t\t\t<a class=\"button-primary\" href=\"https:\/\/www.w3-edge.com\/checkout-standalone-1\/?utm_source=boldgrid&amp;utm_medium=support-on-page&amp;utm_campaign=BoldGrid\" style=\"background: #21759b;padding: 6px 10px;\">Upgrade to W3 Total Cache Pro<\/a> and improve your PageSpeed Scores today!\n\t\t  \t<\/p>\n\t\t\t<div class=\"bg-proof-meta\">\n\t\t\t\t<div><strong>Audit:<\/strong> Total API Requests<\/div>\n\t\t\t\t<div><strong>Before:<\/strong> 169<\/div>\n\t\t\t\t<div><strong>After:<\/strong> 6670<\/div>\n\t\t\t<\/div>\n\t  \t<\/div>\n\t<\/div>\n\t  \n    \n<h3 id=\"the-second-test\">The second test<\/h3>\n<p>For the second test, we simulated a burst of traffic. We wanted to see how well both sites performed when repeated requests are made by multiple clients over the course of one minute. Starting from 0 clients up to 250, each client would repeat the request after the previous request was completed.<\/p>\n<h4 id=\"control-site-results\">Control Site Results<\/h4>\n<p>On our control site, a total of 269 request were made but only 125 were completed successfully. Real clients may have experienced errors or timeouts and the requests took significantly longer than they did on the first test at an average of 12 seconds. We included a screenshot of the test results below, be sure to note the time scale on the left goes up to 30 seconds.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"bg-border alignnone size-full wp-image-130672\" src=\"https:\/\/www.boldgrid.com\/support\/wp-content\/uploads\/2024\/05\/loderio_rest_non.png\" alt=\"\" width=\"651\" height=\"709\" srcset=\"https:\/\/www.boldgrid.com\/support\/wp-content\/uploads\/2024\/05\/loderio_rest_non.png 651w, https:\/\/www.boldgrid.com\/support\/wp-content\/uploads\/2024\/05\/loderio_rest_non-275x300.png 275w\" sizes=\"auto, (max-width: 651px) 100vw, 651px\" \/><\/p>\n<h4 id=\"experimental-site-results\">Experimental site results<\/h4>\n<p>After letting the server recover from this test on the control site, we ran it again, this time on the cached site. We received significantly less errors and timeouts and the requests all completed in under a second on average. We included a screenshot of the results below, be sure to note that the time scale values on the left only goes up to 3 seconds on this one:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"bg-border alignnone size-full wp-image-130673\" src=\"https:\/\/www.boldgrid.com\/support\/wp-content\/uploads\/2024\/05\/loderio_rest_cached.png\" alt=\"\" width=\"648\" height=\"701\" srcset=\"https:\/\/www.boldgrid.com\/support\/wp-content\/uploads\/2024\/05\/loderio_rest_cached.png 648w, https:\/\/www.boldgrid.com\/support\/wp-content\/uploads\/2024\/05\/loderio_rest_cached-277x300.png 277w\" sizes=\"auto, (max-width: 648px) 100vw, 648px\" \/><\/p>\n<h4 id=\"load-average\">Comparing Request Response Times<\/h4>\n<p><a href=\"https:\/\/www.boldgrid.com\/support\/wp-content\/uploads\/2024\/05\/2024-05-24-14_23_09-Mozilla-Firefox.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-131843\" src=\"https:\/\/www.boldgrid.com\/support\/wp-content\/uploads\/2024\/05\/2024-05-24-14_23_09-Mozilla-Firefox.png\" alt=\"\" width=\"908\" height=\"377\" srcset=\"https:\/\/www.boldgrid.com\/support\/wp-content\/uploads\/2024\/05\/2024-05-24-14_23_09-Mozilla-Firefox.png 908w, https:\/\/www.boldgrid.com\/support\/wp-content\/uploads\/2024\/05\/2024-05-24-14_23_09-Mozilla-Firefox-300x125.png 300w, https:\/\/www.boldgrid.com\/support\/wp-content\/uploads\/2024\/05\/2024-05-24-14_23_09-Mozilla-Firefox-768x319.png 768w\" sizes=\"auto, (max-width: 908px) 100vw, 908px\" \/><\/a><\/p>\n<p>On our cached site, we initially saw much quicker responses and our average was still under a second. If we look at the previous charts we can see that the un-cached site started encountering timeouts and slow responses less than halfway through which drove up our average and max response figures. Our cached site was able to make it 55 seconds in before running into similar issues. If we look at the server load statistics we can see what&rsquo;s happening.<\/p>\n<h4 id=\"load-average\">Load Average<\/h4>\n<p>Just as we did on our first test we also recorded the server load average for both sites:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"bg-border alignnone size-full wp-image-130674\" src=\"https:\/\/www.boldgrid.com\/support\/wp-content\/uploads\/2024\/05\/Pasted-image-20240501153544.png\" alt=\"\" width=\"994\" height=\"522\" srcset=\"https:\/\/www.boldgrid.com\/support\/wp-content\/uploads\/2024\/05\/Pasted-image-20240501153544.png 994w, https:\/\/www.boldgrid.com\/support\/wp-content\/uploads\/2024\/05\/Pasted-image-20240501153544-300x158.png 300w, https:\/\/www.boldgrid.com\/support\/wp-content\/uploads\/2024\/05\/Pasted-image-20240501153544-768x403.png 768w\" sizes=\"auto, (max-width: 994px) 100vw, 994px\" \/><\/p>\n<p>At first glance the cached site does appear to perform better but the graph still shows the server load increasing significantly on the cached site. To understand why, we took a look at the total number of requests from each test on both sites. The control site received a total of 269 requests while the cached one received a whopping total of 6677 requests. So while the chart shows similar changes in server load the cached site is still seeing less resources used in total for nearly 25 times the number of requests.<\/p>\n<div class=\"boldgrid-section\">\n<div class=\"container\">\n<div class=\"row\" style=\"padding-top: 0px; padding-bottom: 0px;\">\n<div class=\"col-lg-12 col-md-12 col-xs-12 col-sm-12\">\n<h4 id=\"high-traffic-test\">High Traffic Test<\/h4>\n<table class=\"bg-table table table-responsive-xs table-responsive-sm hide-header-responsive table-striped\" style=\"width: 100%; height: 152px;\" data-num-cols=\"6\" data-num-rows=\"2\">\n<thead>\n<tr style=\"height: 68.4062px;\">\n<th class=\"\" style=\"width: 15%; height: 68.4062px;\" data-label=\"Site\">Site<\/th>\n<th class=\"\" style=\"width: 20%; text-align: center; height: 68.4062px; border-style: solid; border-width: 0px 0px 2px; background-color: #000000;\" data-label=\"Avg Response Time\"><span class=\"bg-span\" style=\"color: #ffffff;\">Avg Response Time<\/span><\/th>\n<th class=\"rest-api-black-background\" style=\"width: 15%; text-align: center; height: 68.4062px;\" data-label=\"Min\/Max Response Time\">Min\/Max Response Time<\/th>\n<th class=\"\" style=\"width: 15%; text-align: center; height: 68.4062px;\" data-label=\"Successful Responses\">Successful Responses<\/th>\n<th class=\"\" style=\"width: 15%; text-align: center; height: 68.4062px;\" data-label=\"Timed Out Responses\">Timed Out Responses<\/th>\n<th class=\"\" style=\"width: 15%; text-align: center; height: 68.4062px;\" data-label=\"Bandwidth Sent \/ Received\">Bandwidth Sent\/Received<\/th>\n<th class=\"\" style=\"width: 15%; text-align: center; height: 68.4062px;\" data-label=\"Average Server Load\">Average Server Load<\/th>\n<th class=\"\" style=\"width: 15%; text-align: center; height: 68.4062px;\" data-label=\"Highest Server Load\">Highest Server Load<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr style=\"height: 43.2031px;\" data-row=\"1\">\n<td class=\"\" style=\"width: 15%; height: 43.2031px;\" data-label=\"Site\">No cache<\/td>\n<td class=\"\" style=\"width: 20%; text-align: center; height: 43.2031px; border-style: solid; border-width: 1px 0px 0px; background-color: #000000;\" data-label=\"Avg Response Time\"><span class=\"bg-span\" style=\"color: #ffffff;\">12466 ms<\/span><\/td>\n<td class=\"\" style=\"width: 15%; text-align: center; height: 43.2031px;\" data-label=\"Min\/Max Response Time\">1582 \/ 24082 ms<\/td>\n<td class=\"\" style=\"width: 15%; text-align: center; height: 43.2031px;\" data-label=\"Successful Responses\">125<\/td>\n<td class=\"\" style=\"width: 15%; text-align: center; height: 43.2031px;\" data-label=\"Timed Out Responses\">144<\/td>\n<td class=\"\" style=\"width: 15%; text-align: center; height: 43.2031px;\" data-label=\"Bandwidth Sent \/ Received\">110.79 KB \/ 536.69 KB<\/td>\n<td class=\"\" style=\"width: 15%; text-align: center; height: 43.2031px;\" data-label=\"Average Server Load\">34.55<\/td>\n<td class=\"\" style=\"width: 15%; text-align: center; height: 43.2031px;\" data-label=\"Highest Server Load\">86.08<\/td>\n<\/tr>\n<tr style=\"height: 42.2031px;\" data-row=\"2\">\n<td class=\"\" style=\"width: 15%; height: 42.2031px;\" data-label=\"Site\">W3 Total Cache<\/td>\n<td class=\"\" style=\"width: 20%; text-align: center; height: 42.2031px; border-style: solid; border-width: 1px 0px 0px; background-color: #000000;\" data-label=\"Avg Response Time\"><span class=\"bg-span\" style=\"color: #ffffff;\">985 ms<\/span><\/td>\n<td class=\"\" style=\"width: 15%; text-align: center; height: 42.2031px;\" data-label=\"Min\/Max Response Time\">144 \/ 20214ms<\/td>\n<td class=\"\" style=\"width: 15%; text-align: center; height: 42.2031px;\" data-label=\"Successful Responses\">6660<\/td>\n<td class=\"\" style=\"width: 15%; text-align: center; height: 42.2031px;\" data-label=\"Timed Out Responses\">17<\/td>\n<td class=\"\" style=\"width: 15%; text-align: center; height: 42.2031px;\" data-label=\"Bandwidth Sent \/ Received\">1.15 MB \/ 5.20 MB<\/td>\n<td class=\"\" style=\"width: 15%; text-align: center; height: 43.2031px;\" data-label=\"Average Server Load\">26.19<\/td>\n<td class=\"\" style=\"width: 15%; text-align: center; height: 43.2031px;\" data-label=\"Highest Server Load\">61.5<\/td>\n<\/tr>\n<\/tbody>\n<tfoot>\n<tr>\n<td style=\"width: 15%; height: 42.2031px;\" data-label=\"Site\">Improvement<\/td>\n<td class=\"\" style=\"width: 20%; text-align: center; height: 42.2031px; border-style: solid; border-width: 1px 0px 0px; background-color: #000000;\" data-label=\"Avg Response Time\"><span class=\"bg-span\" style=\"color: #ffffff;\">92%<\/span><\/td>\n<td class=\"\" style=\"width: 15%; text-align: center; height: 42.2031px;\" data-label=\"Min\/Max Response Time\">90.8% \/ 16%<\/td>\n<td class=\"\" style=\"width: 15%; text-align: center; height: 42.2031px;\" data-label=\"Successful Responses\">5228%<\/td>\n<td class=\"\" style=\"width: 15%; text-align: center; height: 42.2031px;\" data-label=\"Timed Out Responses\">88%<\/td>\n<td class=\"\" style=\"width: 15%; text-align: center; height: 42.2031px;\" data-label=\"Bandwidth Sent \/ Received\">962% \/ 891%<\/td>\n<td class=\"\" style=\"width: 15%; text-align: center; height: 43.2031px;\" data-label=\"Average Server Load\">24%<\/td>\n<td class=\"\" style=\"width: 15%; text-align: center; height: 43.2031px;\" data-label=\"Highest Server Load\">28.55%<\/td>\n<\/tr>\n<\/tfoot>\n<\/table>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n\t  \n\t<div class=\"bg-proof bg-shadow\">\n\t\t<div>\n\t\t\t<span class=\"bg-green-circle\">24%<\/span>\n\t\t\t<span class=\"bg-green-description\">Less Server Resources<\/span>\n\t\t<\/div>\n\t\t<div>\n\t\t\t<p>In this test, using REST API caching reduced our <strong>Average Server Load <\/strong>by 24% under during a major traffic spike! <a href=\"https:\/\/www.boldgrid.com\/support\/w3-total-cache\/rest-api\/\">Check out the documentation<\/a> to see how to take advantage of this feature on your site!<\/p>\n\t\t\t<p>\n\t\t\t\t<a class=\"button-primary\" href=\"https:\/\/www.w3-edge.com\/checkout-standalone-1\/?utm_source=boldgrid&amp;utm_medium=support-on-page&amp;utm_campaign=BoldGrid\" style=\"background: #21759b;padding: 6px 10px;\">Upgrade to W3 Total Cache Pro<\/a> and improve your PageSpeed Scores today!\n\t\t  \t<\/p>\n\t\t\t<div class=\"bg-proof-meta\">\n\t\t\t\t<div><strong>Audit:<\/strong> Average Server Load<\/div>\n\t\t\t\t<div><strong>Before:<\/strong> 34.55<\/div>\n\t\t\t\t<div><strong>After:<\/strong> 26.19<\/div>\n\t\t\t<\/div>\n\t  \t<\/div>\n\t<\/div>\n\t  \n    \n<h3 id=\"comparing-the-results\">Comparing The Results<\/h3>\n<p>Unlock exceptional performance improvements for your WordPress site with the W3 Total Cache plugin, as shown by our detailed performance analysis. When REST API caching is enabled, the results are simply transformative.<\/p>\n<p>For standard operations, the average response time is dramatically reduced by 84.5%, decreasing from 968 ms to just 150 ms, and server load is lowered by 40%, ensuring smoother and more stable site operation. The plugin effectively manages bandwidth while maintaining a high rate of successful responses.<\/p>\n<p>For more intensive scenarios involving higher traffic and data loads, the impact is even more pronounced: Average response times see a 92% improvement, from 12,466 ms to 985 ms. The plugin also significantly reduces the incidence of timed-out responses by 88% and supports a more than 5000% increase in successful responses. Server load experiences a noticeable reduction, enhancing site resilience under heavy demand.<\/p>\n<p>Implementing W3 Total Cache not only elevates site performance during everyday usage but also ensures robustness and reliability under peak conditions, making it an indispensable solution for any WordPress site aiming to optimize efficiency and user experience.<\/p>\n<\/body><\/html>\n","protected":false},"excerpt":{"rendered":"<p>In our recent Google PageSpeed Experiments we have been testing the various features and benefits of W3 Total Cache. In this experiment we are testing the REST API caching features. However, Google PageSpeed is a tool meant to test pages and websites. Since we are working with the WordPress REST API in this experiment, we [&hellip;]<\/p>\n","protected":false},"author":1305,"featured_media":137122,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_bbp_topic_count":0,"_bbp_reply_count":0,"_bbp_total_topic_count":0,"_bbp_total_reply_count":0,"_bbp_voice_count":0,"_bbp_anonymous_reply_count":0,"_bbp_topic_count_hidden":0,"_bbp_reply_count_hidden":0,"_bbp_forum_subforum_count":0,"bgseo_title":"","bgseo_description":"","bgseo_robots_index":"index","bgseo_robots_follow":"follow","footnotes":""},"categories":[971,692],"tags":[],"class_list":["post-130666","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-pagespeed-tests","category-w3-total-cache"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.boldgrid.com\/support\/wp-json\/wp\/v2\/posts\/130666","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.boldgrid.com\/support\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.boldgrid.com\/support\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.boldgrid.com\/support\/wp-json\/wp\/v2\/users\/1305"}],"replies":[{"embeddable":true,"href":"https:\/\/www.boldgrid.com\/support\/wp-json\/wp\/v2\/comments?post=130666"}],"version-history":[{"count":19,"href":"https:\/\/www.boldgrid.com\/support\/wp-json\/wp\/v2\/posts\/130666\/revisions"}],"predecessor-version":[{"id":137121,"href":"https:\/\/www.boldgrid.com\/support\/wp-json\/wp\/v2\/posts\/130666\/revisions\/137121"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.boldgrid.com\/support\/wp-json\/wp\/v2\/media\/137122"}],"wp:attachment":[{"href":"https:\/\/www.boldgrid.com\/support\/wp-json\/wp\/v2\/media?parent=130666"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.boldgrid.com\/support\/wp-json\/wp\/v2\/categories?post=130666"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.boldgrid.com\/support\/wp-json\/wp\/v2\/tags?post=130666"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}