I want to find out why BigCommerce stores are slow to return the initial HTML. In Australia, it is at least 700ms, making it hard for a page to pass Largest Contentful Paint.
So I devised a test.
I cleared out one of our demo stores and restored it to its original state. No apps, custom scripts, banners, widgets, etc. And I installed the latest Cornerstone (6.10.0). By mistake, I left GA3 switched on, so one custom feature.
Then I used WebPageTest to see how fast it loaded a page’s HTML. I ran it 5 times per test, no shaping of the connection/CPU, using a Chrome browser from California. Minimising network latency so delays are mainly down to BigCommerce’s response times
I’m interested in Time To First Bite, which tells us when BigCommerce first responded. And the more interesting one, Time to load HTML, which is when the HTML finishes loading.
Standard Cornerstone Speeds
| TTFB | Run 1 | Run 2 | Run 3 | Run 4 | Run 5 | Average |
|---|---|---|---|---|---|---|
| Home | 355 | 530 | 592 | 417 | 419 | 463 |
| Category | 433 | 458 | 389 | 423 | 590 | 459 |
| Product | 606 | 441 | 452 | 441 | 501 | 488 |
| Time to load HTML | Run 1 | Run 2 | Run 3 | Run 4 | Run 5 | Average |
|---|---|---|---|---|---|---|
| Home | 371 | 550 | 610 | 435 | 437 | 481 |
| Category | 502 | 472 | 453 | 494 | 609 | 506 |
| Product | 621 | 456 | 518 | 464 | 522 | 516 |
Hello World Speed
I removed all code from base.html apart from to say Hello Worlds. I ran the basic test a few times to get the new things cached. And then tested the home page.
This indicated that removing content processing from the page reduced response time by about 100ms. Or about 25%.
Bare bones
I removed assets and components, stripped out all page content, then worked to make the theme work again and be bundleable.
So that did not seem to help.
I removed GA3, and that made no difference.
Adding Apps
I reverted to the original theme. I then installed our apps with every feature enabled. And Tag Rocket has a lot of features.
Comparing this with the base Cornerstone test and the two apps adds 90ms to the HTML load time.
Conclusion
It’s not a very thorough test, but no matter how simple you make your theme, you will probably never get much under a 300ms HTML load time.