{"id":872,"date":"2026-08-05T23:50:09","date_gmt":"2026-08-05T23:50:09","guid":{"rendered":"https:\/\/affordablevpsserver.com\/blog\/?p=872"},"modified":"2026-09-23T22:04:01","modified_gmt":"2026-09-23T22:04:01","slug":"static-sites-budget-vps-serving-100k-visitors-low-ram","status":"publish","type":"post","link":"https:\/\/affordablevpsserver.com\/blog\/static-sites-budget-vps-serving-100k-visitors-low-ram\/","title":{"rendered":"Static Sites on a Small VPS: Real Capacity Numbers for 100,000 Monthly Visitors"},"content":{"rendered":"<p class=\"wp-block-paragraph\">A static site is the cheapest workload you can run on a VPS, and the numbers make the case without exaggeration. A single nginx worker on one vCPU delivers tens of thousands of static requests per second. A site with 100,000 monthly visitors averages 3&ndash;4 requests per second across a day. The server is not the constraint at that scale; DNS resolution and page weight are.<\/p><p class=\"wp-block-paragraph\">The important question is not whether a cheap server can handle it &mdash; it can &mdash; but how to size the plan correctly, serve it efficiently, and know exactly when to change something.<\/p><h2 class=\"wp-block-heading\">Static vs Dynamic: Where the Resources Go<\/h2><figure class=\"wp-block-table\"><table><thead><tr><th>Metric<\/th><th>Static site<\/th><th>WordPress<\/th><th>Ratio<\/th><\/tr><\/thead><tbody><tr><td>Idle RAM<\/td><td>30&ndash;80&nbsp;MB<\/td><td>400&ndash;700&nbsp;MB<\/td><td>&asymp;10&times;<\/td><\/tr><tr><td>Requests\/sec (1 vCPU)<\/td><td>5,000&ndash;20,000<\/td><td>50&ndash;300<\/td><td>&asymp;50&times;<\/td><\/tr><tr><td>Disk per page<\/td><td>5&ndash;50&nbsp;KB<\/td><td>DB row + PHP overhead<\/td><td>&mdash;<\/td><\/tr><tr><td>CPU per request<\/td><td>near zero<\/td><td>process + query<\/td><td>&mdash;<\/td><\/tr><tr><td>Cache layer needed<\/td><td>no<\/td><td>usually yes<\/td><td>&mdash;<\/td><\/tr><\/tbody><\/table><\/figure><p class=\"wp-block-paragraph\">The gap comes from work-per-request. A dynamic request boots PHP, opens a database connection, runs queries, and renders HTML. A static request reads a file and hands it to the network stack. Eliminating that work eliminates the resource ceiling.<\/p><h2 class=\"wp-block-heading\">What 100,000 Monthly Visitors Actually Requires<\/h2><p class=\"wp-block-paragraph\">Break the traffic down before sizing hardware:<\/p><ul class=\"wp-block-list\"><li>100,000 views\/month &asymp; 3,300\/day &asymp; 4 requests\/second average<\/li><li>A realistic 5&times; peak &asymp; 20 requests\/second<\/li><li>Average static page &asymp; 50&nbsp;KB compressed &asymp; 1&nbsp;MB\/s at peak<\/li><li>Bandwidth &asymp; 5&nbsp;GB\/month plus assets<\/li><\/ul><p class=\"wp-block-paragraph\">A 512&nbsp;MB \/ 1&nbsp;vCPU plan handles this with headroom measured in orders of magnitude. The genuine limits are the 1&nbsp;TB bandwidth allowances common on budget plans and the plan&rsquo;s disk &mdash; both generous for text-heavy sites. Our <a href=\"https:\/\/affordablevpsserver.com\/\">budget VPS comparison<\/a> breaks down which plans include adequate transfer for content sites.<\/p><h2 class=\"wp-block-heading\">Serve Static Files Properly<\/h2><p class=\"wp-block-paragraph\">Default nginx configuration works, but three settings materially improve performance on small servers:<\/p><pre class=\"wp-block-code\"><code>sendfile on;                 # kernel-level file transfer\ntcp_nopush on;               # batch response headers\ngzip_static on;              # serve pre-compressed .gz files<\/code><\/pre><p class=\"wp-block-paragraph\"><code>gzip_static<\/code> is the highest-value change: pre-compress assets at build time and nginx serves them without spending CPU per request.<\/p><h2 class=\"wp-block-heading\">When Static Stops Being the Right Choice<\/h2><p class=\"wp-block-paragraph\">Static sites are the correct answer until you need one of these:<\/p><ul class=\"wp-block-list\"><li>User accounts, logins, or sessions<\/li><li>Server-side rendering with per-user data<\/li><li>Frequent content edits published by non-technical users<\/li><li>Real-time features such as chat or live search<\/li><\/ul><p class=\"wp-block-paragraph\">If none apply, static hosting cuts hosting cost to the smallest plan a provider sells. If some apply, a hybrid works well: static marketing pages on the VPS, dynamic application on a separate small instance.<\/p><h2 class=\"wp-block-heading\">The Build Pipeline Is the Real Cost<\/h2><p class=\"wp-block-paragraph\">Static hosting is cheap; the build step is where effort lives. A typical workflow:<\/p><ul class=\"wp-block-list\"><li>Generate with Hugo, Eleventy, or Astro &mdash; sub-second builds for most sites<\/li><li>Output to <code>\/var\/www\/site<\/code>, served directly by nginx<\/li><li>Deploy with <code>rsync -az --delete public\/ user@vps:\/var\/www\/site\/<\/code><\/li><li>Keep the previous release in a numbered directory for rollback<\/li><\/ul><p class=\"wp-block-paragraph\">A site rebuilt in seconds and deployed by rsync needs no container runtime, no database service, and no application server &mdash; which is precisely why its memory footprint stays in the tens of megabytes.<\/p><h2 class=\"wp-block-heading\">Cost Reality Check<\/h2><p class=\"wp-block-paragraph\">Running the same content on WordPress requires 512&nbsp;MB minimum and comfortably 1&nbsp;GB, with caching plugins and tuning. The static version fits on the smallest plan a provider offers and leaves headroom. Over a year the difference is often $30&ndash;$60 &mdash; small in absolute terms, but it is money spent on overhead rather than output.<\/p><h2 class=\"wp-block-heading\">Choosing a Plan Without Overspending<\/h2><p class=\"wp-block-paragraph\">Static workloads reward the cheapest competent tier. The relevant specs are narrow:<\/p><ul class=\"wp-block-list\"><li><strong>RAM<\/strong> &mdash; 512&nbsp;MB is sufficient; more changes nothing<\/li><li><strong>Storage<\/strong> &mdash; 10&ndash;20&nbsp;GB holds thousands of pages and images<\/li><li><strong>Bandwidth<\/strong> &mdash; the only spec worth upgrading for on media-heavy sites<\/li><li><strong>CPU<\/strong> &mdash; one shared vCPU is rarely a limiting factor<\/li><\/ul><p class=\"wp-block-paragraph\">A cost trap appears when buyers size static sites as if they were application servers, paying for 4&nbsp;GB of RAM and 2 vCPUs that sit idle. The correct approach is to buy the smallest plan, monitor bandwidth, and upgrade only when transfer approaches the allowance.<\/p><h2 class=\"wp-block-heading\">Adding a CDN Changes the Equation<\/h2><p class=\"wp-block-paragraph\">A free CDN tier in front of a static site reduces origin requests to a small fraction of total traffic. HTML is cached at the edge, so the VPS handles only cache misses and deploy invalidations. The effect on a fledgling content site is that the 1&nbsp;TB allowance on a budget plan becomes effectively unbounded for practical purposes, and p95 latency improves because pages are served from locations near visitors.<\/p><p class=\"wp-block-paragraph\">With a CDN in place, the correct plan for a static site is frequently the minimum configuration a provider sells &mdash; no upgrades required regardless of growth.<\/p><h2 class=\"wp-block-heading\">Deployment Without Downtime<\/h2><p class=\"wp-block-paragraph\">The build-and-rsync model can briefly serve half-updated files. A versioned directory layout solves it cleanly:<\/p><pre class=\"wp-block-code\"><code>rsync -az --delete public\/ \/var\/www\/releases\/2026-09-24\/\nln -sfn \/var\/www\/releases\/2026-09-24 \/var\/www\/current\nsudo nginx -t &amp;&amp; sudo systemctl reload nginx<\/code><\/pre><p class=\"wp-block-paragraph\">The symlink swap is atomic on Linux. Rolling back means pointing <code>current<\/code> at the previous release directory &mdash; no rebuild, no restore from backup.<\/p><h2 class=\"wp-block-heading\">Where the Real Costs Sit<\/h2><p class=\"wp-block-paragraph\">The server is the smallest line item in a static site operation. Domain renewal runs $10&ndash;$15 per year, and a CDN free tier covers most small sites. Effort concentrates in templates, content, and build automation &mdash; areas where spending more on hosting delivers no benefit whatsoever.<\/p><p class=\"wp-block-paragraph\">That is the practical argument for static hosting: the workload&rsquo;s ceiling is so far above the smallest plan that the decision becomes trivial. Compare entry tier specifications in <a href=\"https:\/\/affordablevpsserver.com\/#providers\">our VPS comparison table<\/a>, then put the savings into the parts of the site visitors actually see.<\/p>","protected":false},"excerpt":{"rendered":"<p>A static site is the cheapest workload you can run on a VPS, and the numbers make the case without exaggeration. A single nginx worker on one vCPU delivers tens of thousands of static requests per second. A site with 100,000 monthly visitors averages 3&ndash;4 requests per second across a day. The server is not [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"iawp_total_views":2,"footnotes":""},"categories":[2],"tags":[],"class_list":["post-872","post","type-post","status-publish","format-standard","hentry","category-budget-vps-guides"],"blocksy_meta":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.1 (Yoast SEO v26.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Static Sites on a Small VPS: Real Capacity Numbers for 100,000 Monthly Visitors - Affordable VPS Server Blog<\/title>\n<meta name=\"description\" content=\"A static site is the cheapest workload you can run on a VPS, and the numbers make the case without exaggeration. A single nginx worker on one vCPU\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/affordablevpsserver.com\/blog\/static-sites-budget-vps-serving-100k-visitors-low-ram\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Static Sites on a Small VPS: Real Capacity Numbers for 100,000 Monthly Visitors\" \/>\n<meta property=\"og:description\" content=\"Static Sites on a Small VPS: Real Capacity Numbers for 100,000 Monthly Visitors\" \/>\n<meta property=\"og:url\" content=\"https:\/\/affordablevpsserver.com\/blog\/static-sites-budget-vps-serving-100k-visitors-low-ram\/\" \/>\n<meta property=\"og:site_name\" content=\"Affordable VPS Server Blog\" \/>\n<meta property=\"article:published_time\" content=\"2026-08-05T23:50:09+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-09-23T22:04:01+00:00\" \/>\n<meta name=\"author\" content=\"Affordable-Vps-Server-Author\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Affordable-Vps-Server-Author\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/affordablevpsserver.com\/blog\/static-sites-budget-vps-serving-100k-visitors-low-ram\/\",\"url\":\"https:\/\/affordablevpsserver.com\/blog\/static-sites-budget-vps-serving-100k-visitors-low-ram\/\",\"name\":\"Static Sites on a Small VPS: Real Capacity Numbers for 100,000 Monthly Visitors - Affordable VPS Server Blog\",\"isPartOf\":{\"@id\":\"https:\/\/affordablevpsserver.com\/blog\/#website\"},\"datePublished\":\"2026-08-05T23:50:09+00:00\",\"dateModified\":\"2026-09-23T22:04:01+00:00\",\"author\":{\"@id\":\"https:\/\/affordablevpsserver.com\/blog\/#\/schema\/person\/685a02c93a3c45030f7427ec928b0df7\"},\"description\":\"A static site is the cheapest workload you can run on a VPS, and the numbers make the case without exaggeration. A single nginx worker on one vCPU\",\"breadcrumb\":{\"@id\":\"https:\/\/affordablevpsserver.com\/blog\/static-sites-budget-vps-serving-100k-visitors-low-ram\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/affordablevpsserver.com\/blog\/static-sites-budget-vps-serving-100k-visitors-low-ram\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/affordablevpsserver.com\/blog\/static-sites-budget-vps-serving-100k-visitors-low-ram\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/affordablevpsserver.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Static Sites on a Small VPS: Real Capacity Numbers for 100,000 Monthly Visitors\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/affordablevpsserver.com\/blog\/#website\",\"url\":\"https:\/\/affordablevpsserver.com\/blog\/\",\"name\":\"Affordable VPS Server Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/affordablevpsserver.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/affordablevpsserver.com\/blog\/#\/schema\/person\/685a02c93a3c45030f7427ec928b0df7\",\"name\":\"Affordable-Vps-Server-Author\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/affordablevpsserver.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/8fa20973a7dd04621d396c26ba26b5c5e6c19595583335121958527393f6f95e?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/8fa20973a7dd04621d396c26ba26b5c5e6c19595583335121958527393f6f95e?s=96&d=mm&r=g\",\"caption\":\"Affordable-Vps-Server-Author\"},\"sameAs\":[\"https:\/\/affordablevpsserver.com\/blog\"],\"url\":\"https:\/\/affordablevpsserver.com\/blog\/author\/affordablevpsserver\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Static Sites on a Small VPS: Real Capacity Numbers for 100,000 Monthly Visitors - Affordable VPS Server Blog","description":"A static site is the cheapest workload you can run on a VPS, and the numbers make the case without exaggeration. A single nginx worker on one vCPU","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/affordablevpsserver.com\/blog\/static-sites-budget-vps-serving-100k-visitors-low-ram\/","og_locale":"en_US","og_type":"article","og_title":"Static Sites on a Small VPS: Real Capacity Numbers for 100,000 Monthly Visitors","og_description":"Static Sites on a Small VPS: Real Capacity Numbers for 100,000 Monthly Visitors","og_url":"https:\/\/affordablevpsserver.com\/blog\/static-sites-budget-vps-serving-100k-visitors-low-ram\/","og_site_name":"Affordable VPS Server Blog","article_published_time":"2026-08-05T23:50:09+00:00","article_modified_time":"2026-09-23T22:04:01+00:00","author":"Affordable-Vps-Server-Author","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Affordable-Vps-Server-Author","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/affordablevpsserver.com\/blog\/static-sites-budget-vps-serving-100k-visitors-low-ram\/","url":"https:\/\/affordablevpsserver.com\/blog\/static-sites-budget-vps-serving-100k-visitors-low-ram\/","name":"Static Sites on a Small VPS: Real Capacity Numbers for 100,000 Monthly Visitors - Affordable VPS Server Blog","isPartOf":{"@id":"https:\/\/affordablevpsserver.com\/blog\/#website"},"datePublished":"2026-08-05T23:50:09+00:00","dateModified":"2026-09-23T22:04:01+00:00","author":{"@id":"https:\/\/affordablevpsserver.com\/blog\/#\/schema\/person\/685a02c93a3c45030f7427ec928b0df7"},"description":"A static site is the cheapest workload you can run on a VPS, and the numbers make the case without exaggeration. A single nginx worker on one vCPU","breadcrumb":{"@id":"https:\/\/affordablevpsserver.com\/blog\/static-sites-budget-vps-serving-100k-visitors-low-ram\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/affordablevpsserver.com\/blog\/static-sites-budget-vps-serving-100k-visitors-low-ram\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/affordablevpsserver.com\/blog\/static-sites-budget-vps-serving-100k-visitors-low-ram\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/affordablevpsserver.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Static Sites on a Small VPS: Real Capacity Numbers for 100,000 Monthly Visitors"}]},{"@type":"WebSite","@id":"https:\/\/affordablevpsserver.com\/blog\/#website","url":"https:\/\/affordablevpsserver.com\/blog\/","name":"Affordable VPS Server Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/affordablevpsserver.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/affordablevpsserver.com\/blog\/#\/schema\/person\/685a02c93a3c45030f7427ec928b0df7","name":"Affordable-Vps-Server-Author","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/affordablevpsserver.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/8fa20973a7dd04621d396c26ba26b5c5e6c19595583335121958527393f6f95e?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/8fa20973a7dd04621d396c26ba26b5c5e6c19595583335121958527393f6f95e?s=96&d=mm&r=g","caption":"Affordable-Vps-Server-Author"},"sameAs":["https:\/\/affordablevpsserver.com\/blog"],"url":"https:\/\/affordablevpsserver.com\/blog\/author\/affordablevpsserver\/"}]}},"_links":{"self":[{"href":"https:\/\/affordablevpsserver.com\/blog\/wp-json\/wp\/v2\/posts\/872","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/affordablevpsserver.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/affordablevpsserver.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/affordablevpsserver.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/affordablevpsserver.com\/blog\/wp-json\/wp\/v2\/comments?post=872"}],"version-history":[{"count":2,"href":"https:\/\/affordablevpsserver.com\/blog\/wp-json\/wp\/v2\/posts\/872\/revisions"}],"predecessor-version":[{"id":1259,"href":"https:\/\/affordablevpsserver.com\/blog\/wp-json\/wp\/v2\/posts\/872\/revisions\/1259"}],"wp:attachment":[{"href":"https:\/\/affordablevpsserver.com\/blog\/wp-json\/wp\/v2\/media?parent=872"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/affordablevpsserver.com\/blog\/wp-json\/wp\/v2\/categories?post=872"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/affordablevpsserver.com\/blog\/wp-json\/wp\/v2\/tags?post=872"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}