All systems operational
Free tool

URL validator — check if a link is correctly formed.

Paste any URL to check its protocol, host, and structure against the rules a browser uses — and see exactly what's wrong if it isn't valid.

Validate a URL

Live
Checks structure only, entirely in your browser — nothing is sent anywhere.
Try:
This checks whether a URL is correctly formatted — it does not check whether the site is actually online, since browsers block that kind of cross-site request for security reasons. To confirm a link truly resolves, open it directly or use a monitoring service.

Make sure every link you share works — permanently.

Shorten your links with shorturl.la and get broken-link alerts, click analytics, and the option to redirect a link after it's shared.

No credit card required Click analytics on every link Custom branded domains
Basics

What does "valid" mean for a URL?

Validity is about form, not fate — a valid URL is built correctly, whether or not the destination still exists.

A URL is valid when it follows the structural rules every browser relies on: a supported protocol like https:, a properly formed host, and no illegal characters like raw spaces sitting where they don't belong.

That's different from a link being "live." A URL can be perfectly valid and still point to a page that's been deleted, a server that's down, or a typo'd domain nobody owns — validity checks the address is well-formed, not that anyone answers when you knock.

This distinction matters when you're debugging: a validation error means the link itself is broken and needs to be rewritten; a link that validates but doesn't load means the problem is on the other end.

Validity vs. reachability
https://good.com/pageValid
good .com/pageInvalid
https://doesnotexist404.ioValid, may not load
not a url at allInvalid
Reference

What this tool checks.

CheckPasses when…
ProtocolThe URL starts with a recognized scheme, like https:// or http://.
Host formatThe domain has no spaces or invalid characters and includes a valid structure (e.g. a dot-separated domain).
No raw spacesSpaces inside the URL are encoded as %20 rather than left as literal spaces.
Parseable overallThe whole string can be split into protocol, host, path, query, and fragment without ambiguity.
Use cases

Where this comes in handy.

Form input checks

Quickly test what a "website" field should accept before wiring up validation logic in your own app.

Cleaning up spreadsheets

Spot malformed URLs in a list of links pasted from a CRM, spreadsheet, or CMS export.

Debugging broken links

Narrow down whether a broken link is a formatting mistake or a genuinely dead destination.

Checking pasted links

Confirm a link copied from an email or chat didn't pick up a stray space or missing protocol.

QA and testing

Sanity-check generated or templated URLs before they ship in an email campaign or app.

Teaching URL rules

Show clearly why a particular string does or doesn't qualify as a valid web address.

FAQ

Common questions

Does "valid" mean the website is online? +

No. This checks structure only — protocol, host, and format. A URL can be perfectly valid and still point to a page that's offline, deleted, or never existed. Confirming a site actually responds requires a server-side check, since browsers block that kind of cross-site request.

Why is a URL without "https://" flagged as invalid? +

Without a protocol, a browser can't tell where the host ends and the path begins in every case, so it isn't a complete, well-formed address — even though people commonly type domains without one and expect it to work.

Are ftp:// or mailto: links valid URLs? +

They're valid URLs in the general sense, but this tool flags non-http(s) protocols separately since it's built for checking web links specifically.

Can a URL be valid but still unsafe? +

Yes — validity says nothing about trustworthiness. A well-formed URL can still point to a phishing site or malicious download; always verify the domain itself, not just its format.

Why does a valid-looking link still fail here? +

Usually a small formatting issue — a raw space, a missing protocol, or an unencoded character. The check list above the input shows exactly which rule failed.