Create a favicon from an image URL with /by-url

If your logo is already online — in a CMS media library, on a CDN, in a brand-assets page or in a public repository — downloading it just so you can upload it again into a favicon generator is a pointless round trip. EasyFaviconGenerator can start from the URL instead. Paste the address of the image, and the editor opens on it exactly as if you had picked the file from your computer. There is also a linkable page, /by-url, that does this in one click, which makes it handy as a "create a favicon from this logo" button in your own product or docs.

This post explains the two ways to use it, the rules the URL has to follow, what happens behind the scenes (including the one privacy difference from a normal upload), and how to fix the errors you are most likely to meet.

Two ways to load an image by URL

1. Paste the URL into the generator

On the favicon generator home page, the dropzone has a field labelled "…or paste an image URL" next to a Load button. Paste the address of the image, click Load, and the picture is downloaded and opened in the editor. You can also drag a link to an image onto the dropzone, which uses the same loader.

2. Open (or link to) /by-url?url=…

The same loader sits behind a dedicated address:

https://easyfavicongenerator.com/by-url?url=https://example.com/logo.png

Open that link and the generator page loads with the URL already filled in and the download already started; a moment later the editor opens on the image. If the url parameter is missing or empty, the page simply redirects to the regular home page instead of showing an error.

One detail matters when the image URL is not simple: if the address itself contains a query string or special characters — ?, &, spaces and so on — the whole image URL must be URL-encoded, or the browser will read everything after the first & as a separate parameter of /by-url. The encoded version of the example above looks like this:

https://easyfavicongenerator.com/by-url?url=https%3A%2F%2Fexample.com%2Flogo.png

If you build the link in code, encodeURIComponent() does this for you, as shown in the next section. A plain, query-free image URL works fine unencoded, which is why the first example stays readable.

Add a "create a favicon from this logo" button

Because the entry point is a plain link, you can offer favicon generation from any page that displays a logo — an admin panel, a brand-guidelines page, a website builder, internal docs — without integrating an API, requesting a key or creating an account for anyone. A static link is enough:

<a href="https://easyfavicongenerator.com/by-url?url=https://example.com/logo.png">Create a favicon from this logo</a>

When the image address is known only at runtime, build the link in a line of JavaScript:

const imageUrl = document.querySelector('#logo').src;
button.href = 'https://easyfavicongenerator.com/by-url?url=' + encodeURIComponent(imageUrl);

That is the whole integration. /by-url is a page to link to, not an API endpoint to call from your server: the visitor lands in the normal editor, adjusts the icon, and downloads the finished package themselves. Your site does not have to proxy, store or process anything.

What happens when the link opens

  1. The generator page loads with the URL prefilled. /by-url renders the same generator as the home page, puts the address in the URL field and starts the download automatically. (The page is marked noindex — it is a utility, not a landing page.)
  2. The image is fetched. An image hosted on this very site is read directly by your browser. An image on another origin goes through the site's image proxy (api/fetch-image.php), because browsers will not let one website read another site's files directly (CORS). The proxy checks the address, downloads the image on the server and hands the bytes to your browser.
  3. The editor opens on the picture. From here on, nothing is different from a file you picked yourself: same previews, same background, margin and brightness tools, same optional dark-mode variant. All the resizing, ICO encoding, manifest writing and ZIP building happens as JavaScript in your browser.

When you are done, the result is the standard package: favicon.svg, favicon-96x96.png, a favicon.ico bundling 16x16, 32x32 and 48x48, an opaque 180x180 apple-touch-icon.png, the 192x192 and 512x512 manifest icons with site.webmanifest, and the HTML snippet to install them. Our favicon sizes and formats cheat sheet explains what each of those files is for.

The rules: which URLs work

The proxy is deliberately strict, because a server that fetches arbitrary URLs is a classic attack target (SSRF). These are the limits the real loader enforces:

RuleWhat it means for you
Public http/https onlyThe address must start with http:// or https:// and be reachable from the public internet. localhost, intranet names and private or reserved IP addresses are refused, as are URLs with embedded credentials and ports other than 80, 443, 8080 and 8443.
6 MB maximumThe download is cut off at 6 MB. A favicon source never needs to be anywhere near that; a square master of 512x512 to 1024x1024 is ideal.
12-second timeout, up to 5 redirectsRedirects are followed, but every hop is checked against the same rules. A slow origin, a redirect loop or a redirect into a private address fails.
Real image formats onlyPNG, JPEG, GIF, WebP and SVG are accepted — detected from the actual bytes, not the file extension. A URL that returns an HTML page, or a format outside that list such as AVIF, is rejected no matter what the file is named.
Rate limitThe proxy allows 40 requests per minute from one address. Normal use never notices; hammering it returns "Too many requests. Please wait a minute."

Two practical consequences follow. First, the URL must point directly at the image file. A sharing page that merely displays the picture — a Google Drive or Dropbox preview link, a photo page, a product page — returns HTML and will be rejected; you need the address of the image itself (in most browsers: right-click the image, "Copy image address"). Second, the fetch happens without your login session. If the logo sits behind a login, a cookie or IP restrictions, the server cannot see it even though you can. Make the file publicly readable, or download it yourself and use the file picker instead.

The one privacy difference from uploading

With a normal upload, your picture never leaves your computer: every step runs in your browser. Loading by URL cannot work that way — something has to fetch the remote file. So for this one feature, the image passes through the EasyFaviconGenerator server, which downloads it and returns it to your browser with a no-store header; the endpoint does not write the picture to disk, and once it has arrived, editing and generation are back to being purely in-browser, like any other picture. The remote server also sees a request, from our server rather than from your browser.

That trade-off is fine for a logo that is already public — it has to be, for the URL to work at all. But if the artwork is unreleased, treat the URL loader like any other third-party fetch: download the file yourself and pick it from disk, so it never leaves your machine. Our post on why favicon privacy matters explains the reasoning. And never put a secret in the image URL itself: a signed or token-bearing address pasted into a /by-url link exposes that token to anyone who sees the link.

One more thing to know about remote SVGs: when an SVG arrives, scripts, event handlers and references to external files are stripped before it is used, so a downloaded icon cannot run code or phone home. The flip side is that an SVG relying on external images or web fonts will lose them — embed the assets and convert text to outlines, as you should for any SVG favicon.

Troubleshooting

What you seeLikely causeFix
You land on the home pageThe url parameter is missing or emptyCheck the link is /by-url?url=… and the value survived any redirect or link shortener
"Please enter a valid URL, including http:// or https://"No scheme, or a scheme other than http/httpsUse the full address, starting with https://
"The host … cannot be resolved" or "This host is not allowed"Typo or DNS problem — or the host is local/privateOpen the image URL directly to confirm it loads; host private images somewhere public, or upload the file instead
"The server answered with HTTP 403 / 404…"Wrong address, hotlink protection, or the file needs a loginTest the URL in a private window while logged out — that is what the loader sees. Fix the path, drop the access restriction, or upload the file
"This URL does not point to a PNG, JPEG, WebP, GIF or SVG picture"The URL returns a web page (share/preview link), an unsupported format such as AVIF, or a mislabelled fileCopy the direct image address, or convert the picture to PNG and link to that
"This picture is too large (6 MB max)"Oversized originalExport a copy at 512–1024 px square; that is all a favicon source needs
"The server did not answer in time" / "Too many redirects"Slow origin or a redirect loopLink to the final image address directly instead of a redirecting one
"Too many requests"More than 40 loads in a minute from your addressWait a minute and retry
The SVG opens but looks wrongIt used external fonts/images, which are removed for safetyEmbed assets and outline text in the SVG, then link to the self-contained file

Quick answers

Do I need an API key or an account?

No. There is nothing to sign up for, on either side: the visitor clicking your link goes straight into the free editor, and you needed no key to create the link.

Can the image be on my own website?

Yes — that is the main use case. Any publicly reachable image URL works, including one on the same domain as your "create a favicon" button.

Does the source image have to be square or a particular size?

No, but square works best, and 512x512 or larger keeps the big manifest icon sharp, because everything is scaled down from your source. A small or wide logo still loads; the editor's background and margin tools can pad it into a square, but it cannot invent pixels that are not there.

Can I hotlink the result in the same way?

No — and you do not need to. The flow ends with a ZIP of icon files and an HTML snippet to install on your own site, where favicons belong. Once installed, run the live site through the favicon checker to confirm every file is declared and reachable.

The short version

To generate a favicon from an image URL, either paste the address into the URL field of the favicon generator, or link straight to https://easyfavicongenerator.com/by-url?url=IMAGE_URL — URL-encoding the address if it contains a query string. The image must be a publicly reachable PNG, JPEG, GIF, WebP or SVG of at most 6 MB; the editor then opens on it exactly as if you had uploaded the file, and the complete favicon package is generated in your browser. It is a link, not an API: no key, no sign-up, and nothing to run on your own server.