301 Redirects on 9 Static Hosts: Setup and Pricing
How to configure 301 redirects on Netlify, Vercel, GitHub Pages, and 6 more static platforms. Code examples, SEO impact, and free tier pricing compared.

The short answer: A 301 redirect permanently moves a URL and passes its SEO value to the new destination. Not every static hosting platform handles them the same way. Only Netlify and Cloudflare Pages support the _redirects file. Others require platform-specific config, and GitHub Pages cannot do server-side 301 redirects at all.
Moving or renaming pages without proper redirects is one of the fastest ways to lose search rankings. When Google finds a 404 instead of a redirect, the link equity that page earned over months disappears. If your business runs on static hosting, here is how to handle 301 redirects on every major platform, and what each one costs.
Why 301 Redirects Matter for SEO
When a page moves, a 301 tells search engines the change is permanent. Google transfers the old page's ranking signals to the new URL. Without it, incoming links point nowhere, crawlers index a 404, and rankings drop. This is critical during site migrations where dozens of URLs change at once.
If you are planning a URL restructure, get a free audit so we can map every redirect you need before traffic drops.
How to Configure 301 Redirects by Platform
Netlify and Cloudflare Pages
Both support the _redirects file. Place it in your public/ folder:
/old-page /new-page 301
/blog/old /blog/new 301Vercel
Uses vercel.json in your project root:
{
"redirects": [
{ "source": "/old-page", "destination": "/new-page", "permanent": true }
]
}Azure Static Web Apps
Uses staticwebapp.config.json:
{
"routes": [
{ "route": "/old-page", "redirect": "/new-page", "statusCode": 301 }
]
}AWS Amplify
Configure in the Amplify console or customHttp.yml:
[
{ "source": "/old-page", "target": "/new-page", "status": "301" }
]Render
Redirects are configured through the dashboard UI only. No file-based configuration is available.
GitHub Pages
No server-side redirects. The only workaround is an HTML file at the old path:
<meta http-equiv="refresh" content="0; url=/new-page">
<link rel="canonical" href="/new-page">
<script>window.location.replace("/new-page")</script>Search engines may treat this as temporary, not permanent. Not ideal for SEO-critical pages.
Deno Deploy, Fly.io, Railway
These are runtimes, not static hosts. Handle redirects in application code:
if (url.pathname === "/old-page") {
return Response.redirect(new URL("/new-page", url), 301);
}Not sure which approach fits your site? We can run a free check and show you what to fix.
Free Tier Pricing Comparison
| Platform | Free Bandwidth | Builds | `_redirects` | True 301 | Duration |
|---|---|---|---|---|---|
| Cloudflare Pages | Unlimited | 500/mo | Yes | Yes | Permanent |
| Netlify | 100 GB | 300/mo | Yes | Yes | Permanent |
| Vercel | 100 GB | N/A | No | Yes | Permanent* |
| GitHub Pages | 100 GB | 10/hr | No | No | Permanent |
| Render | 100 GB | 500/mo | No | Yes | Permanent |
| Deno Deploy | 100 GB | N/A | No | Yes | Permanent |
| Azure SWA | 100 GB | N/A | No | Yes | Permanent |
| AWS Amplify | 15 GB | 1,000/mo | No | Yes | 12 months |
| Fly.io | None | N/A | N/A | Code | None** |
| Railway | None | N/A | N/A | Code | None |
*Vercel free tier is non-commercial use only. **Legacy accounts get limited free allowance.
- 301 redirects preserve your SEO rankings when URLs change
- Only Cloudflare Pages and Netlify support the
_redirectsfile - GitHub Pages has no server-side redirect capability at all
- AWS Amplify's free tier expires after 12 months
- Cloudflare Pages offers the most generous permanent free tier
A hosting platform that makes redirects easy can save your rankings during every site update. If your current host requires workarounds for something as basic as a 301 redirect, it may be time to reconsider.
Frequently Asked Questions
What is a 301 redirect?
A 301 redirect is a permanent server-side redirect that tells browsers and search engines a page has moved to a new URL. The old URL automatically forwards visitors to the new location, and search engines transfer ranking power from the old URL to the new one.
Does a 301 redirect hurt SEO?
No. A properly implemented 301 redirect preserves the original page's ranking power. Google has confirmed that 301 redirects pass full link equity. Failing to set up 301 redirects when you move pages is what hurts SEO, because visitors and crawlers hit 404 errors.
Can I do 301 redirects on GitHub Pages?
GitHub Pages has no server-side redirect capability. The only option is an HTML file with a meta refresh tag and JavaScript redirect. Search engines may not treat this as a permanent redirect, making it unreliable for SEO.
Which static hosts support the _redirects file?
Only Netlify and Cloudflare Pages support the _redirects file format. Netlify created the format, and Cloudflare Pages adopted it. All other platforms use their own config format or require application-level redirects.
What is the best free static host for SEO?
Cloudflare Pages offers the best free tier for SEO. It has unlimited bandwidth, _redirects file support, a global CDN for fast load times, and free SSL. The free tier has no expiration date.
How do I set up redirects on Vercel?
Vercel uses vercel.json for redirect configuration. You add a redirects array with entries specifying source, destination, and whether the redirect is permanent. Vercel does not support the _redirects file.
Related Articles

Why Client-Side Rendering Destroys Your Search Rankings
CSR sends empty HTML to crawlers. Learn why client-side rendering hurts SEO and what to do about it.
7 min read

Edge Rendering and SEO: Does Serving From the Edge Help?
Edge SSR cuts TTFB by serving HTML from locations near users. Learn when it helps SEO and when it does not.
7 min read

MDX vs Markdown for SEO: How Content Format Affects Rankings
MDX and Markdown both compile to HTML. Learn the real SEO differences and when each format works best.
6 min read