Every time I post something about PHP on LinkedIn, the same comments roll in. "Does anyone still use that?" "Move to React." "PHP is dead." Then I look at the statistics and see that PHP powers three quarters of the entire web, including WordPress, Facebook's infrastructure and Wikipedia.
It's ironic that the same people who say PHP is dead visit sites running on it every single day. But let's move past anecdotes and look at the concrete reasons why I deliberately chose PHP and static HTML over React for webdesignbytomi.com.
Context: what my website needs to do
Before we compare technologies, it's important to understand the context. My website needs to:
- Present information about services and packages
- Allow visitors to get in touch via a form and chat
- Publish blog posts (like this one)
- Rank on Google for local searches
- Load quickly on all devices
None of these things require a complex JavaScript application. There's no real-time dashboard, no drag-and-drop editor, no hundreds of interactive components. It's essentially a digital brochure with a contact form and a blog.
And that's the key point of this entire article: your technology choice must match the problem you're solving, not the trend you saw on Twitter.
Page load speed: where PHP dominates
This is perhaps the most important argument for presentation websites. Let's look at what happens when a visitor opens a page built on different technologies.
PHP/static HTML approach
The user sends a request. The server immediately returns the finished HTML. The browser renders it. End of story. My website loads in under one second, and the total size of all resources is about 150 KB including images.
React approach (SPA)
The user sends a request. The server returns an empty HTML page with a single <div id="root">. The browser downloads the JavaScript bundle (typically 300-500 KB just for the framework). The JavaScript executes. React renders components into the DOM. Only then does the user see content. And if it needs data from an API, that's another round of waiting.
What about Next.js and SSR?
React advocates will say: use Next.js, it has server-side rendering. And they're right, Next.js solves many problems of a classic React SPA. But think about it: you've taken React (a client-side framework), added server-side rendering (which PHP has done from the very beginning), and now you have a more complex system that does the same thing PHP does out of the box. Plus you need a Node.js server, a build pipeline and significantly more expertise to maintain it.
SEO: Google loves what it can read
For a site that MUST rank on Google, this is the key question. When the Google crawler arrives at a PHP page, it immediately sees all the content. Schema.org markup, meta tags, heading structure, text. Everything is there from the first moment.
When it hits a React SPA? It sees an empty <div> and has to run JavaScript to read the content. Google can render JavaScript, but it requires extra resources and isn't always reliable. Some pages wait days for indexing because Google's render budget is limited.
For a website that needs to rank for web design related searches, why would I even risk client-side rendering?
Hosting costs: the maths is clear
My entire stack runs on a VPS for 4.5 euros a month, with Caddy and PHP 8.4. This server hosts both this website and several other projects. Annual cost: about 55 euros.
By comparison, a Node.js application requires a process manager (PM2 or similar), more memory and more careful process management. Platforms like Vercel or Netlify offer free tiers, but with limitations. For serious traffic, prices quickly rise to 20-50 euros a month or more.
For a small business thinking about costs, PHP hosting is simply cheaper. And with hosting and domain included in my packages, clients have no additional expenses at all.
Complexity and dependency hell
This is an argument that rarely comes up in marketing articles, but anyone who's worked with the Node.js ecosystem knows exactly what I'm talking about.
The average React project has hundreds, sometimes thousands of dependency packages. Each of them can have security vulnerabilities, incompatibilities or simply stop being maintained. Try opening a two-year-old React project and running npm install. There's a good chance you'll hit deprecation warnings, security vulnerabilities and peer dependency conflicts.
A PHP file written in 2020? You copy it to the server and it works. No build step, no package manager, no transpilation. That's a massive advantage for long-term maintenance.