This page explains what we measure ourselves, how we measure it, and when an article relies on published specs and prices instead. If an article does not say “Hands-on tested”, it is a research-based comparison.
Two kinds of articles
Every article carries dated labels at the top:
- Prices checked: the date we last compared every price in the article with the vendor’s official page. Each pricing table links to its source.
- Hands-on tested: shown only when we used the product ourselves for the article. The article includes a “How we tested” box that lists the exact tests.
When there is no “Hands-on tested” label, we compared products on published specs, documentation and prices. We still read the pricing pages, fine print and documentation ourselves, but we do not pretend to have benchmarked something we did not run.
Our test server
FindNChoose runs on a Hostinger KVM 4 VPS in Boston, USA: 4 vCPU (AMD EPYC 9354P), 16 GB RAM and 200 GB NVMe storage, running Ubuntu 24.04 and CloudPanel 6 with nginx, PHP-FPM, Percona MySQL 8.4 and Redis. The same server hosts a few other production sites, so we run benchmarks at low CPU and disk priority and never in a way that could slow those sites down.
How we test VPS servers
- CPU:
openssl speedfor SHA-256 hashing and RSA-2048 signing, on one core and on all cores. These are repeatable and reflect TLS and hashing work a web server actually does. - Disk:
fiowith 4K random reads and writes (direct I/O, queue depth 32) and 1 MB sequential reads and writes. Random 4K results matter most for databases. We flag sequential results that look boosted by caching. - Network: a single-stream download of a large public test file, to show what one connection can pull. This is not a full bandwidth test.
- Load: we record the server load average before and after, so you can see the tests ran on a server that was not busy.
We publish the numbers we got, with the date. Results on another server of the same plan can differ, especially for disk and network.
How we test shared hosting
We do not load-test shared hosting, because it would affect other customers on the same server. Instead, we measure time to first byte (TTFB) of real WordPress sites we run on the plan, from our VPS and from a home connection, using curl. We measure both a cached page and an uncached request (a unique query string that bypasses the page cache), several times each, and report the median.
How we test WordPress resource use
For our WordPress RAM guide we measured the memory used by PHP-FPM workers, MySQL and Redis on this site with standard Linux tools, and served the site with ApacheBench at a modest request rate, cached and uncached, on the staging copy before launch.
How we review control panels and tools
For software we used to build this site (CloudPanel, wp-cli and Cursor), we describe what we actually did with it: which features we used, what worked and what got in the way. For tools we did not use for an article, the article says it is based on published plans and documentation.
How we compare prices
- We record the intro price, the contract length needed to get it, and the renewal price. When a vendor does not show a renewal price, we say so instead of guessing.
- Prices are list prices in US dollars before tax, as shown to a US visitor on the date checked. Coupon and checkout-only discounts are not included.
- For AI APIs we list price per million input, output and cached tokens. Where a vendor has announced a price change, we note the date.
How we score
Scores out of 5 appear only on reviews. They weigh value over the full term (including renewal), performance where we measured it, features for the target user, and ease of use. A score is a summary, not a substitute for the “Best for” and “Skip it if” notes.
Keeping articles current
We recheck prices on our most-read comparisons regularly and update the “Prices checked” date when we do. If you find something out of date, tell us.