Free PHP Hosting Compared on Four Live Deployments

Four free PHP hosts, running the same application on live deployments you can open right now. Not a feature list copied from four pricing pages: a catalogue of 1,500 public-domain books in MySQL — a paginated listing with a cover on every card, and a detail page behind each one — deployed identically to each, plus a capability probe that reports what each account can actually do.

The links below are live. Open them and judge the speed yourself; the numbers here are only useful if you can check them.

What Each Account Can Actually Do

 InfinityFreeProFreeHostAwardSpaceFreeHostingEU
PHP8.3.198.3.198.4.258.4.25 (default 7.3.33)
memory_limit512M512M128M128M
max_execution_time60s60s30s30s
upload_max_filesize20M20M
HTTPS that validatesyesyesnono
Outbound from PHPyesyesblockedblocked
exec / shell_execdisableddisabledallowedallowed
PostgreSQL drivernonoyesyes
Rewrites uploaded imagesyesyesnono
Reachable by a scriptnonoyesyes
Archive uploadallowedblockedblocked
Disk5 GB5 GB1 GiB200 MiB
Inode limit80,00080,000
Traffic50,000 hits/day50,000 hits/day5 GiB/mo4 GiB/mo
MySQL serverMariaDB 11.4.13MariaDB 11.4.13
MySQL wait_timeout20s20s
MySQL databasesunlimited (panel)unlimited (panel)1 (30 MiB)1 (30 MiB)
DB passwordreuses account loginreuses account loginseparateseparate

Measured, Not Advertised

Same application, same 1,500-row dataset, same day. Listing-page figures are the median of five requests, because a single reading is noise: AwardSpace returned 28.5 ms once and 16.4 ms a minute later.

 InfinityFreeProFreeHostAwardSpaceFreeHostingEU
Listing page render4.3 ms4.0 ms18.3 ms13.6 ms
MySQL connect1.2 ms1.2 ms4.6 ms3.9 ms
MySQL listing query2.6 ms2.3 ms12.2 ms8.7 ms
Detail page render4.4 ms3.9 ms19.2 ms7.9 ms
Detail page: key lookup1.1 ms1.0 ms2.5 ms1.0 ms
Detail page: related queries1.0 ms1.0 ms6.1 ms2.9 ms
Import 1,500 rows113 ms152 ms1,085 ms1,289 ms
Probe response1,190 ms1,160 ms12 ms7 ms
Database engineMariaDB 11.4.13MariaDB 11.4.13MySQL 8.0.32MySQL 8.0.32

The iFastNet pair is three to four times quicker on every database figure and roughly ten times quicker at the bulk import, on a page doing identical work. Their probe looks catastrophic by comparison and is not: almost all of those 1,160 ms are three outbound network tests completing, which the other two "win" by refusing outbound connections in about 7 ms. Fast because nothing connects.

The two related-query figures are the widest gap in the table: two indexed reads cost 1.0 ms on the iFastNet pair against 2.9 and 6.1 ms on the AwardSpace pair. Note how the iFastNet numbers were obtained — the page writes its own timings to a file, because nothing scripted can read those sites, so a person had to open the URL once and the figures were then collected over FTP. That is not a quirk of our method; it is what "cannot be automated" costs you in practice.

The Number Nobody Publishes

InfinityFree and ProFreeHost both advertise 50,000 hits a day. A hit is every file request, not every visitor. This page is one HTML document plus twelve distinct covers — 13 requests. So the real ceiling is:

about 3,800 page views a day

Not 50,000 visitors — and count distinct URLs, not what the page appears to show. An earlier version of this page displayed sixty cards drawn from eight image files, and cost nine requests rather than the sixty-one we first published here. Sixty distinct images would have meant 819 views a day; eight cycled ones, 5,500. Nothing on the signup page does that division for you.

Three Things That Decide It

1. Two of these have no working HTTPS

AwardSpace and FreeHostingEU answer on port 443 with a certificate issued for f28-preview.runhosting.com. That name is the only entry in the certificate, so a browser visiting your site gets a full-page security warning. This is not a misconfiguration to fix: SSL is a paid feature. In 2026 that rules them out for anything with a login form, and search engines treat it accordingly.

2. The two limitations are opposites

InfinityFree lets PHP reach the internet but disables exec and its whole family. AwardSpace and FreeHostingEU allow exec, shell_exec, proc_open and popen — and then block every outbound connection, refusing in about 7 ms. You get a shell that cannot reach anything, or network access with no shell. Wanting both means leaving the free tier.

Outbound matters more than it sounds: without it WordPress cannot update itself, OAuth logins fail, payment callbacks break, and no third-party API call works from PHP.

3. The iFastNet pair cannot be automated at all

Every scripted request to InfinityFree or ProFreeHost gets a JavaScript challenge page instead of the site — served with HTTP 200, so a naive check thinks it succeeded. It cannot be monitored by an uptime service, cannot serve an API, cannot be health-checked, and a script cannot even tell whether a file exists, because a missing file returns 200 too. Only a real browser gets through.

AwardSpace and FreeHostingEU Are One Platform

Technically, registering both gains you nothing — though there is one practical reason to, below. Every runtime value we did not set ourselves is identical: memory limit, execution time, blocked outbound, allowed exec family, the same four database drivers, probe timings within a millisecond. Their control panels are the same software on adjacent IPs, and the database servers they handed out are fdb1028 and fdb1027 with the same 30 MiB quota.

They differ only in allowance: 1 GiB versus 200 MiB of disk, 5 versus 4 GiB of traffic, 3 versus 5 subdomains.

The reason to register a sibling brand anyway is accounts, not servers. InfinityFree's terms allow three free accounts per person and terminate all of them if you register a fourth. When you need one more site, a second email address on the same brand is the move that costs you everything; a different brand on the same platform is the one that does not.

What Each Platform Does to Your Files

This is the difference we did not expect to find, and it is invisible until you check.

iFastNet re-encodes every image you upload. Send a JPEG over FTP, read it back, and you get a different file — carrying a CREATOR: gd-jpeg comment the original never had. JPEG grew 24%, PNG 9%, GIF shrank 6%; our 1,500 book covers went from 25 MB to roughly 30 MB. Dimensions are preserved, so nothing looks wrong. Anything appended after the JPEG end marker is deleted, which is almost certainly the point: re-encoding destroys payloads hidden inside image files. The cost of that defence comes out of your disk quota and your visitors' bandwidth.

It is also asynchronous. A file we uploaded measured 12,918 bytes at two seconds and 15,982 bytes at five. A deploy script that verifies immediately after upload — the obvious way to write one — passes, and is wrong moments later. Ours did.

The AwardSpace pair leaves your files alone, but will not serve images to anyone else. Requesting a cover directly returns 403; the same URL with a same-site Referer returns the image. Hotlink protection is on and not optional, so a browser loading your page is fine while a direct link, a scraper or any script is not. You cannot use these accounts as an image host, and you cannot share an image URL.

Two Things the Limits Pages Do Not Mention

Inactivity closes the account. FreeHostingEU told us directly: "Your free hosting account had been disabled because you had not logged into your profile for 1 year." A free tier you forget about is a free tier you lose.

Both threw a 502 during testing. Once each, on an otherwise healthy request, recovering immediately. A single check would have called it either fine or dead; neither would be true.

How this was measured, and what these numbers are not

Same artifact everywhere. One PHP application: a 12-card page listing books from a 1,500-row MySQL table, each with its own cover, loaded eagerly; and a detail page that does a primary-key lookup plus two indexed related-item queries, timed separately, because a listing scan and a keyed lookup stress a shared host differently. Book metadata and cover images from Project Gutenberg (public domain) — an earlier version used film titles, which meant inventing the images, so every card was a small lie. Nothing is cached: every response is sent no-store, so a figure times the host rather than a cache.

Deliberately not a hello-world. A one-line PHP file is served quickly by every host alive, and the difference disappears into noise. A page with a real database query, a real template and real images is what a reader is actually going to deploy, so it is what we deploy.

Platform defaults versus our settings. This distinction matters and is easy to get wrong. The PHP version on FreeHostingEU was switched by hand, so it says nothing about the platform. Everything else in the first table is what the account came with. When we compare two hosts, only the values neither of us touched are evidence.

What these numbers are not. They are one measurement on one day from one location. They are enough to show a blocked port, a missing certificate or a wrong headline figure — facts that do not vary. They are not enough to rank two hosts by speed: for that you need repeated measurement over weeks, which is why the transient 502s above matter more than the millisecond differences.

The application, the probe and the measurement script are at github.com/build996/free-tier-bench. Deploy it to a host we have not covered and you will get a comparable set of numbers.

Deployed and measured 9 September 2026. FreeWHA was to be included; its signup is now closed.