ReactHosting.guide Get Hostinger →
← All guides

Moving from Netlify to Hostinger: step-by-step

Netlify is a great place to start — free tier, instant Git deploys, form handling, edge functions. But like Vercel, it's built around a serverless model that starts to show cracks when your project grows. Maybe you're hitting bandwidth limits, need a persistent backend, or just want a simpler single-provider setup. Whatever the reason, migrating from Netlify to Hostinger is straightforward. This guide walks through the full process with minimal downtime.

Before you start

Take stock of what you're actually using on Netlify:

Static frontend only Easiest migration, covered fully here.
Netlify Functions You'll need to rewrite these as a Node.js backend (see the Express article for that).
Netlify Forms You'll need a replacement: Formspree, your own backend endpoint, or EmailJS.
Netlify Identity You'll need an auth provider like Clerk, Auth0, or Supabase Auth.
Split testing / analytics These are Netlify-specific — plan a replacement before migrating.

If you're only using Netlify for static hosting and Git deploys — which most people are — the migration takes an afternoon.

Step 1: Get your Hostinger hosting ready

Sign up for a Hostinger plan if you haven't already. For a static React app, Shared Hosting is sufficient. For anything with a Node.js backend, go with Cloud Hosting or VPS.

Once your plan is active:

  1. Log in to hPanel
  2. Go to Hosting and find your plan
  3. Note the server IP — you'll need it for DNS later

Step 2: Build your React app locally

Do a clean build on your local machine:

npm run build

Check the dist/ (Vite) or build/ (CRA) folder looks correct. Also check your netlify.toml if you have one — it may contain redirect rules or headers you'll want to replicate on Hostinger.

Step 3: Upload your files to Hostinger

Via File Manager:

  1. In hPanel go to Files → File Manager
  2. Open the public_html folder
  3. Delete any placeholder files already there
  4. Upload everything inside your dist/ or build/ folder directly into public_html — not the folder itself, just its contents
  5. Confirm index.html is at the root of public_html

Via Git (recommended for ongoing maintenance):

  1. In hPanel go to Advanced → Git
  2. Connect your repository and set the deployment path to public_html
  3. Set the branch to main

Hostinger's Git deployment on shared hosting won't run npm run build for you. Either commit your dist/ folder or use a GitHub Action to build and push to a deploy branch — see the Vite deployment article for that setup.

Step 4: Replicate your Netlify redirects

If you're using React Router, you need all routes to fall back to index.html — otherwise page refreshes give a 404.

On Netlify this is handled automatically or via a _redirects file. On Hostinger shared hosting, create a .htaccess file in public_html:

Options -MultiViews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.html [QSA,L]

If you had custom redirects in your netlify.toml, replicate them here using Apache RewriteRule directives. The syntax is different but the logic is the same.

Step 5: Test on Hostinger before switching DNS

Before you touch your DNS, test your site on the temporary domain hPanel provides (something like srv###.hostinger.com — find it in your hosting dashboard).

Verify:

  • The homepage loads
  • Navigation between pages works
  • Page refreshes don't 404
  • Assets (images, fonts, JS) all load correctly
  • Any forms or integrations you kept still work

Only proceed to the DNS switch once everything looks right here.

Step 6: Add your domain in hPanel

  1. In hPanel go to Domains → Add Domain (or it may already be listed if you bought it through Hostinger)
  2. Add your domain name
  3. Hostinger will show you the nameservers or A record values to set

Step 7: Switch your DNS

Do this during a low-traffic period. You have two options:

Option A — Change nameservers

At your domain registrar, update the nameservers to Hostinger's:

ns1.dns-parking.com
ns2.dns-parking.com

Can take up to 48 hours to propagate, though usually under 4 hours.

Option B — Update A record only (faster, more surgical)

If you want to keep DNS elsewhere, just update the A record:

Type: A  Name: @  Value: YOUR_HOSTINGER_SERVER_IP  TTL: 300

Pro tip

Lower your TTL to 300 (5 minutes) a day before the migration. That way DNS changes propagate fast. After the migration is stable, raise it back to 3600.

Step 8: Enable HTTPS on Hostinger

Once DNS is pointing at Hostinger, go to Security → SSL in hPanel and enable the free Let's Encrypt certificate. This is one click and takes a minute to issue.

If you try immediately after switching DNS and it fails, wait 15–30 minutes for propagation and try again.

Step 9: Verify everything is live

Once DNS has propagated, visit your domain and confirm:

  • HTTPS is working (padlock in browser)
  • All pages load correctly
  • No mixed content warnings in browser dev tools
  • Forms and any third-party integrations still work

Step 10: Remove your site from Netlify

Once everything is verified on Hostinger and DNS has fully propagated, go to Site settings → Danger zone → Delete this site in Netlify to avoid confusion or accidental deploys. If you were on a paid Netlify plan, cancel it now.

Common issues

Site loads on Hostinger temp domain but not on custom domain

DNS hasn't propagated yet. Wait and check again at dnschecker.org.

HTTPS not working

SSL certificate failed to issue. Check that your domain's A record is pointing at the correct Hostinger IP, then try enabling SSL again in hPanel.

Page refresh gives 404

The .htaccess file is missing or in the wrong location. It must be directly inside public_html, not inside a subfolder.

Images or fonts not loading

Check the browser network tab for 404s. Usually means asset paths are wrong — verify your Vite base config if your app isn't at the domain root.

Netlify Forms stopped working

They're Netlify-specific and won't work on Hostinger. Replace with Formspree (free tier available) or a simple backend endpoint.

Summary

Migrating from Netlify to Hostinger is mostly a matter of copying files, replicating your redirect rules in .htaccess, and switching DNS. The biggest risk is downtime during the DNS cutover — minimize it by lowering your TTL ahead of time and testing thoroughly on the Hostinger temp domain first. For a pure static React app, the whole process takes a few hours and leaves you with a simpler, cheaper setup.

Plans from $2.99/mo with a 30-day money-back guarantee.

Get started with Hostinger →

Hostinger — fast, affordable hosting for React apps. Starting at $2.99/mo.

Get Hostinger →