# Badri Dutta > Independent web hosting, performance and technical SEO research. Every cost figure is > modelled from published list pricing using one stated, re-runnable formula — including the > bandwidth and invocation overage tiers that headline prices omit. Written by a software engineer with 15 years building for the web and 8+ years of technical SEO practice. Hosting comparisons include full cost workings (base plans, bandwidth overage, function invocations). Latency benchmarks are described as method only and are NOT published until measured — no performance figure appears on this site before it has been run. Affiliate links are used and are disclosed above the first affiliate link on any page that contains one. Providers cannot pay for placement, and unfavourable findings are published unchanged. ## Guides - [How to choose web hosting for your stack](https://badridutta.com/hosting/): Decision path from framework and traffic to a specific hosting tier. Shared vs VPS vs managed vs static, with modelled costs, traffic ceilings, and a migration sequence that preserves rankings. Latency columns read "pending" until measured. - [Next.js hosting cost comparison](https://badridutta.com/hosting/nextjs-hosting-cost-comparison.html): The same Next.js application modelled on a managed platform ($102.24), a VPS ($28.00) and static hosting ($0) at 250,000 monthly views with 1,572 GB egress. Finds there is no cost break-even — a VPS is cheaper at every volume, and the managed premium buys operational time rather than money. - [Django hosting cost](https://badridutta.com/hosting/django-hosting-cost.html): Models a production Django deployment from Gunicorn's own worker formula — (2 x vCPU) + 1 — through RAM-per-worker math to real VPS and managed-Postgres list pricing. Finds the cheapest VPS tier structurally can't run Django at all, and that a PaaS premium shrinks from ~2.7x to about $5/month once compared against a VPS carrying the same managed-Postgres add-on. - [Why your hosting bill tripled](https://badridutta.com/hosting/hosting-renewal-price-increase.html): Real year-1 vs year-2 renewal pricing across five hosts (GoDaddy, SiteGround, Bluehost, Hostinger, Namecheap), shown as both a percentage increase and an absolute dollar figure. States plainly that Namecheap has the smallest percentage jump of the five, not the affiliate-linked provider, and discloses the affiliate relationship above the first such link. - [Cheap WordPress hosting with staging](https://badridutta.com/hosting/cheap-wordpress-hosting-with-staging.html): Compares the cheapest plan from Hostinger, SiteGround and Bluehost that actually includes a staging environment, since staging is usually gated behind a tier above the headline price. - [Cheapest VPS for a solo developer](https://badridutta.com/hosting/cheapest-vps-for-solo-developer.html): Four budget VPS plans (Hetzner, DigitalOcean, Vultr, Hostinger) compared spec-for-spec at nearly the same price. Hetzner wins on every spec; the affiliate-linked provider (Hostinger) is explicitly not the recommended pick in this comparison. - [Zero-downtime migration from shared hosting to a VPS](https://badridutta.com/hosting/shared-hosting-to-vps-migration.html): The ordering that avoids downtime — lower DNS TTL 48 hours ahead, verify the new server privately, issue TLS via a DNS-01 challenge before cutover, diff response codes across both origins, move the database last, and keep the old host running 72 hours. - [Why your Next.js site is slow on shared hosting](https://badridutta.com/hosting/nextjs-slow-on-shared-hosting.html): Four measurements that separate cold starts from CPU throttling from slow queries — isolated TTFB, cold vs warm, static vs rendered, and behaviour under concurrency — plus which causes new hosting will and will not fix. ## Visibility - [Technical SEO for developers](https://badridutta.com/seo/): Crawl and render mechanics, structured data and answer-engine citation, written for people who read code. Covers the three stages — can a crawler fetch it, can it understand it, does it deserve to be shown — and the fix order that actually pays. - [How pages get cited by AI answer engines](https://badridutta.com/seo/cited-by-ai-answer-engines.html): Separates documented mechanisms from reasonable inference from unsupported folklore. Notes that most retrieval crawlers do not execute JavaScript, that answer engines lean on conventional search indexes, and that claims about word counts or "AI-friendly markup" have no published evidence behind them. - [Does llms.txt actually help you get cited by AI? A 300k-domain study](https://badridutta.com/seo/llms-txt-ai-citation-study.html): A study of roughly 300,000 domains found no measurable correlation between llms.txt presence and AI citation frequency. Explains why so much content recommends it anyway despite no evidence, and notes this site publishes one on the same low-cost-hedge basis, not because it is proven to work. - [Valid JSON-LD, no rich result](https://badridutta.com/seo/valid-json-ld-no-rich-result.html): Explains why structured data has three separate gates — valid, eligible, and displayed — and most debugging stops at the first. Uses the site's own live @graph (Person, TechArticle, BreadcrumbList, FAQPage sharing one reused @id) as a real, inspectable worked example rather than a hypothetical. - [Google's two-wave indexing](https://badridutta.com/seo/google-two-wave-indexing-javascript-delay.html): Explains the documented two-step crawl/index process — raw HTML indexed immediately, JavaScript-rendered content queued separately through the Web Rendering Service on a delay that ranges hours to weeks with no fixed number. Grades every claim by evidence rather than repeating a single unsourced delay figure as fact. - [Noindex vs. robots.txt disallow](https://badridutta.com/seo/noindex-vs-robots-txt-disallow.html): Explains the sequencing trap where blocking a URL in robots.txt before it carries a noindex tag leaves it indexed indefinitely, since Google can no longer crawl the page to see the removal instruction. States the correct order: noindex first, confirm removal, disallow only afterward. ## Design & build quality - [Website design & build quality for developers](https://badridutta.com/design/): Performance, accessibility, security and semantic markup treated as measurable build-quality properties rather than taste, with explicit overlap into the hosting and SEO pillars. - [Why your INP score is bad: hosting and rendering, not just JavaScript](https://badridutta.com/design/inp-hosting-rendering-not-just-javascript.html): Argues that generic "fix INP" advice treats a symptom — the hosting and rendering-strategy decisions made upstream are what manufacture the JavaScript load in the first place. Includes a fix-in-order sequence starting at TTFB and hosting, not bundle size. - [Why automated accessibility testing misses most WCAG failures](https://badridutta.com/design/automated-accessibility-testing-misses-wcag-failures.html): Cites a 2018 UK Government Digital Service study — 13 automated tools tested against a page with 142 planted, documented accessibility barriers; the best tool caught 40%. Explains why the gap is structural (only ~25-30 of 78 WCAG 2.1 criteria are mechanically checkable at all) and what actually closes it. - [Content-Security-Policy on a Static Site: What Breaks First](https://badridutta.com/design/content-security-policy-static-site-inline-scripts.html): Explains why script-src 'self' silently breaks inline scripts, why nonces don't work on static hosting, and why hashes are the correct mechanism. Worked example uses a real SHA-256 hash computed from this site's own live inline theme script, with an explicit disclosure that the CSP header itself is not currently deployed. - [Web Fonts vs System Fonts: What a Font Request Actually Costs](https://badridutta.com/design/web-fonts-vs-system-fonts-real-cost.html): Compares Google Fonts, self-hosted webfonts and a system-font stack by actual request count, third-party data transmitted, and ongoing maintenance. Notes a documented German court ruling (LG München I, Jan 2022) on Google Fonts and GDPR, graded as one jurisdiction's ruling, not a global legal fact. Uses this site's own CSS, which ships zero font requests, as the worked example. - [Why Images Cause Layout Shift, and How to Actually Stop It](https://badridutta.com/design/images-cause-layout-shift-cls.html): Explains the missing-dimensions mechanism behind image-caused CLS and why switching image format (WebP/AVIF) fixes LCP, not CLS. Uses this site's own zero-image, inline-SVG markup as the worked example of sidestepping the bug class by construction. ## AI & industry notes - [AI & industry notes for developers](https://badridutta.com/ai/): Publishes irregularly, filtered through whether a development changes hosting/deployment, changes what gets crawled or cited, or changes how software actually gets built. Explicitly not a news roundup. - [How AI coding agents actually decide which files to read](https://badridutta.com/ai/how-coding-agents-choose-which-files-to-read.html): Explains the map-then-fetch pattern coding agents use instead of preloading a whole codebase, the two-channel model of preloaded instructions (CLAUDE.md/AGENTS.md) versus on-demand retrieval, MCP as the same principle extended to external tools, and why agents sometimes read the wrong file. - [What MCP (Model Context Protocol) Actually Does](https://badridutta.com/ai/what-mcp-actually-does.html): MCP is a protocol, not a product — a standard way for an AI agent to discover and call external tools over JSON-RPC. Covers what the spec actually defines, what it deliberately leaves to the client (including that MCP is not a security boundary by itself), and the per-tool-per-agent integration problem it replaced. - [Prompt Caching: The Real Mechanics Behind Lower AI API Costs](https://badridutta.com/ai/prompt-caching-real-cost-mechanics.html): Explains what's actually cached (computed state over a prompt prefix, not response text), why cache writes cost more than cache reads, and why prefix order — static content first, variable content last — determines whether a cache hit is possible at all. - [Why AI-Generated Code Fails Silently, and How to Catch It](https://badridutta.com/ai/why-ai-generated-code-fails-silently.html): Explains why fluent, plausible AI code output can be confidently wrong in ways a casual read misses, why self-review by the same model only partially helps, and the execution-based checks (tests, type checkers, actual runs) that catch it. - [What SWE-bench Actually Measures (and What It Doesn't)](https://badridutta.com/ai/what-swe-bench-actually-measures.html): Explains SWE-bench's real setup — a real GitHub issue, a fixed set of Python repos, binary pass/fail on the repository's test suite — and the specific ways a leaderboard percentage doesn't generalize to a broader claim about coding ability, code quality, or performance outside that task distribution. Notes training-data contamination as a standing, general concern for public-code-derived benchmarks. ## Tools - [Hosting cost calculator](https://badridutta.com/#calculator): Models the monthly bill across managed platforms, VPS and static CDN hosting from page views, average page weight and server-rendered share. Formula published on the page: egress = views x pageWeightMB / 1024 x 1.15; managed = $20 + max(0, egress-1024GB) x $0.15 + max(0, invocations-1M)/1M x $0.60; vps = tier price + max(0, egress-5TB) x $0.01; static = $0. - [Search](https://badridutta.com/search/): Search across all published guides. ## About - [About the author](https://badridutta.com/about.html): Background, technical stack and the editorial standards this site is written under. ## Editorial stance This site covers one chain: what you build sets your performance, performance sets your visibility. Written by a developer with 15 years shipping and 8 years of technical SEO practice — the combination is the point, since hosting is usually written about by people who never had to rank a page, and SEO by people who never had to deploy one. Cost figures are modelled from published list pricing using one stated, re-runnable formula. Latency benchmarks are described as method only and are NOT published until measured. Claims about AI answer engines are explicitly graded as documented, inferred, or unsupported.