How to Fix the Hostinger 503 Service Unavailable Error
A 503 on Hostinger is almost always resource exhaustion. Diagnose PHP workers, memory, plugins and bot floods, and know when to upgrade.
Live:Hostinger's 48-month pricing is down to$2.99/mo— free domain + SSL included.
See the dealWhy Hostinger emails land in spam and how to fix it with SPF, DKIM and DMARC records, plus the send limits that silently break contact forms.
An email landing in spam is not one problem. It is a judgement made by the receiving server, based on three things: whether you are allowed to send for your domain, whether the message was tampered with in transit, and whether your sending reputation is good.
Hostinger gives you the tools for all three. What it does not do is configure them for you in every case. A domain that was added to hPanel without DNS authentication records will have mail accepted by some providers and filtered by others, and the difference is usually invisible until someone tells you your invoice never arrived.
There are four root causes worth checking, in order.
SPF, DKIM and DMARC are DNS records that tell receiving servers what to expect. If SPF is missing, the receiver has no way to know that Hostinger’s mail servers are allowed to send for your domain. If DKIM is missing, the message carries no signature. If DMARC is missing, you have not told anyone what to do when either check fails.
Wrong is as bad as missing. A typo in the SPF include value, or a second SPF record added alongside the first, breaks authentication just as thoroughly as having no record at all. A domain may have only one SPF record.
On shared hosting plans, your outbound mail leaves from an IP address shared with other Hostinger customers. If one of them sends spam, the reputation of that IP drops and your legitimate mail suffers. This is a structural feature of cheap shared hosting and it is one of the reasons a dedicated IP is included on Unlimited and Cloud Startup but not on Premium.
You cannot fix a shared IP reputation directly. What you can do is make sure every other signal is perfect, so that the receiver’s decision rests on your authentication and engagement rather than on the IP alone.
mail() instead of SMTPThis is the biggest self-inflicted problem. WordPress sends email through PHP’s
mail() function by default. Those messages are often sent without
authentication, from the web server rather than from your mailbox, and with
headers that look different from mail sent through a real mail server.
Receiving providers treat unauthenticated mail from a shared web server as suspicious, and they are right to. Switching to authenticated SMTP — using your Hostinger mailbox credentials — fixes the majority of spam-folder cases on its own.
Hostinger limits server-based sending to 10 emails per minute and 100 emails per day, resetting on a rolling 24-hour basis. This is a hard constraint, and it is the one people hit without realising.
A WooCommerce store that emails every customer on every order status change will exceed 100 a day faster than you would think. A contact form that sends both a notification and an autoresponder doubles the count. When you exceed the cap, mail is not delivered — it is dropped or deferred, which looks exactly like “going to spam” from the outside.
If your mail “goes to spam” in bursts rather than consistently, suspect the send cap before you suspect the filters. Check your volume over a 24-hour window first. It takes two minutes and it is the most commonly missed cause.
You will find the exact values for your domain in hPanel’s DNS zone editor and email settings. Use the values Hostinger shows you — the table below explains what each record does and what its value looks like, with placeholders where the value is domain-specific.
| Record type | Host / name | Value | Notes |
|---|---|---|---|
| TXT | @ (root domain) |
v=spf1 include:<hostinger-spf-host> ~all |
Only one SPF record per domain. Use the include value from your email settings |
| TXT | <dkim-selector>._domainkey |
v=DKIM1; k=rsa; p=<public-key> |
Selector and key are generated when you enable DKIM in hPanel |
| TXT | _dmarc |
v=DMARC1; p=none; rua=mailto:<your-address> |
Start with p=none, then tighten to quarantine, then reject |
| CNAME or TXT | Mail subdomain as shown in hPanel | Value shown in hPanel | Some setups use a CNAME for the mail host rather than a TXT record |
A few rules that save time:
v=spf1.include counts against a limit of ten
DNS lookups. Adding every marketing tool you use to SPF will eventually break
it for everyone.Do not trust a green tick in a control panel. Test with a real message.
Authentication-Results header.spf=pass, dkim=pass and dmarc=pass.If any of the three fails, the header usually names the reason — a missing record, a failed alignment, or a signature that did not verify. That reason is your next step, and it is far more useful than guessing.
You can also send to a mail-tester style service, which scores the message and lists which records are missing. Use one of those alongside the header check: the header tells you what happened, the scorer tells you what is missing.
If WordPress is sending mail, also confirm:
A brand-new domain has no sending history, and providers treat it cautiously. If you blast 500 emails on day one, you will land in spam regardless of your records.
mail() to authenticated SMTP.p=none.If your records are correct, your volume is within the cap, and you are sending through authenticated SMTP, and mail still lands in spam, the likely cause is the shared IP reputation. That is the moment to consider a plan with a dedicated IP — Unlimited, Cloud Startup and above include one, while Premium does not. Our Unlimited plan breakdown explains what else changes at that tier, and the Cloud Startup page covers the step above it.
If you are troubleshooting a site at the same time, the 503 error guide and the slow site checklist cover the most common hosting-side problems. For a broader view of what each plan includes, start with the pricing comparison.
Check the send limit first
Confirm you are not hitting the server send cap. PHP mail() and similar server-based sending is limited to 10 emails per minute and 100 per day, resetting on a rolling 24-hour basis. Over the cap, mail is dropped or queued, not delivered.
Move sending to SMTP
Switch WordPress and any contact form plugin from PHP mail() to authenticated SMTP using your Hostinger mailbox credentials. Hostinger recommends SMTP for reliable delivery, and authenticated mail is far less likely to be filtered.
Publish an SPF record
In hPanel's DNS zone editor for the domain, add a TXT record on the root host with the SPF include value shown in your email settings. There must be only one SPF record per domain.
Publish a DKIM record
Enable DKIM in the email settings in hPanel, then add the DKIM TXT record it generates to DNS. The host is the selector name and the value is the public key.
Publish a DMARC record
Add a TXT record at _dmarc with a starting policy of p=none and an address for aggregate reports. Move to p=quarantine once your legitimate mail passes alignment.
Verify with a header check
Send a test message to a Gmail address, open the original message, and read the authentication results header. You want spf=pass, dkim=pass and dmarc=pass.
Warm the domain up
If the domain is new, send small volumes for the first two weeks, starting with your most engaged contacts. Sudden volume spikes from a new domain look like spam to every major provider.
Priya Nair
Ecommerce & WordPress editor
Priya builds WooCommerce stores for independent brands and covers WordPress tooling, checkout performance and email deliverability.
Last updated
HostScope tests hosting hands-on and publishes the renewal prices, resource limits and limitations that most review sites leave out. Read ourtesting methodologyandeditorial policy.
A 503 on Hostinger is almost always resource exhaustion. Diagnose PHP workers, memory, plugins and bot floods, and know when to upgrade.
Six reasons a Hostinger SSL certificate fails, from provisioning delays and DNS mismatches to Cloudflare proxy conflicts, mixed content and a stale site URL.
A blank WordPress page is almost always a hidden fatal PHP error. Turn on WP_DEBUG, raise the memory limit, disable plugins and restore from a backup.
Why WordPress loses its database on Hostinger and how to fix it: credentials, user permissions, host name, size limits, corrupted tables and phpMyAdmin repair.