Skip to content
YAS.SH
Network & DNS🌐 YAS server-sideAPI availablebeginner

Favicon Finder

Finds a site's favicon URLs, including Apple touch icons.

Processed by YAS · not stored
Ready to runInstant execution
All tools →
Loading tool…

What does this tool do?

Finds a site's favicon URLs, including Apple touch icons.

Why would I use it?

  • You want the exact favicon URL for a link preview or aggregator.
  • You are checking whether a site has a favicon configured.
  • You are building a bookmarking feature.

Real-life example

Input
https://example.com
Output
https://example.com/favicon.ico (also apple-touch-icon.png)

Icon links are extracted from the page HTML.

Input → Process → Output → Next

Input
Enter a site URL.
Process
YAS fetches the page and parses icon link tags.
Output
List of icon URLs.
Next action
Use the highest-resolution icon for your needs.

Common mistakes

  • Using the default /favicon.ico when a higher-res icon exists.
  • Expecting icons from JS-rendered pages.
  • Checking subpaths — favicons are usually at the root.

What the result means

The URLs point at the icons a browser would request.

Privacy & security

Your input is sent to YAS infrastructure because the tool requires server-side processing or public network queries. Input is not stored.

API

Endpoint
POST https://yas.sh/api/v1/tools/favicon-finder
Request Header
Content-Type: application/json
cURL
curl -X POST "https://yas.sh/api/v1/tools/favicon-finder" \
  -H "Content-Type: application/json" \
  -d '{"url":"https://example.com"}'
JavaScript
const res = await fetch("https://yas.sh/api/v1/tools/favicon-finder", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({
  "url": "https://example.com"
}),
});
const data = await res.json();
Python
import requests

r = requests.post("https://yas.sh/api/v1/tools/favicon-finder", json={"url":"https://example.com"})
data = r.json()
FieldTypeRequiredDescription
urlstringYesSite URL
Success response
{ "origin": "https://example.com", "pageStatus": 200, "icons": ["https://example.com/favicon.ico"] }

Locate a site's favicon URL(s).

Error responses
  • 400 VALIDATION_ERROR — invalid input or unsupported option.
  • 413 PAYLOAD_TOO_LARGE — input exceeds the 64 KB limit.
  • 429 RATE_LIMIT_EXCEEDED — rate limit exceeded (60 req/min).
Limits
  • Maximum input: 64 KB per request.
  • Rate limit: 60 requests/min per IP address.
  • Authenticated accounts benefit from higher tier quotas.

Favicon Finder: technical reference, use cases and FAQ

How Favicon Finder works

Favicon discovery follows a defined order: link elements in the document head (rel="icon", "shortcut icon", "apple-touch-icon", "mask-icon"), then a web app manifest referenced by rel="manifest" whose icons array declares sizes and purposes, and finally the legacy fallback of /favicon.ico at the origin root, which browsers request even when nothing declares it.

Different consumers want different assets. Browser tabs use 16–32px, bookmarks and home screens want 180px apple-touch-icon, Android uses manifest icons at 192 and 512px, Windows tiles read msapplication meta tags, and Safari pinned tabs use a monochrome SVG mask-icon. A site that declares only an .ico gets scaled, blurry results everywhere except the tab.

When to use it: real-world scenarios

Auditing icon coverage before launch

Confirm each required size exists and resolves. Missing apple-touch-icon is the most common gap and shows up as a screenshot on iOS home screens.

Debugging a stale icon

Browsers cache favicons aggressively and independently of page cache. Fetching the declared URLs shows whether the server is still returning the old file.

Building a link preview or bookmarking feature

Any product that displays site icons needs the same discovery order; verifying it against real sites exposes the edge cases.

Checking manifest correctness for installability

PWA install prompts require specific icon sizes and purposes in the manifest; a missing 512px maskable icon blocks the prompt.

Pro tips

  • Ship an SVG icon with rel="icon" for crisp rendering at any size, plus a 32px PNG fallback and a 180px apple-touch-icon.
  • Keep /favicon.ico present even when you declare everything else. Crawlers, feed readers and legacy clients request it unconditionally.
  • Cache-bust with a filename change, not a query string — some clients ignore query strings when caching icons.
  • Include maskable icons in the manifest so Android does not letterbox your icon inside its adaptive shape.

Limitations and edge cases

What this tool deliberately does not do, and where it will disagree with other implementations.

  • Only declared and conventional locations are checked; icons injected by JavaScript after load are not discovered.
  • The tool reports what exists, not whether the artwork is legible at small sizes.
  • Sites behind authentication or bot protection may not be fetchable.
  • Browser caching behaviour cannot be inspected remotely — a correct server response does not mean a user's stale icon has refreshed.

Frequently asked questions

Why does my new favicon not appear?
Favicon caching is aggressive and separate from normal page caching. Change the filename rather than the contents, and expect some clients to hold the old icon for days regardless.
Which sizes do I actually need?
An SVG plus a 32px PNG covers browsers, a 180px apple-touch-icon covers iOS, and 192px plus 512px maskable icons in the manifest cover Android and PWA installation.
Do I still need favicon.ico?
Yes, as a fallback. Browsers and crawlers request it at the origin root even when no link element declares it, and a 404 there is a needless error in your logs.
Can a favicon be an SVG?
Yes, and all current browsers support it. Keep a PNG fallback for older clients and for contexts that rasterise icons themselves.
Why does my icon look wrong in dark mode?
A single icon is used against whatever background the client provides, so dark artwork disappears on a dark tab strip. An SVG favicon can carry a prefers-color-scheme media query internally, which is the only way to serve different artwork without shipping two files.
Ask YAS AI
🍪 Cookies & privacy. Essential cookies keep you signed in and remember language and theme. Google AdSense and reCAPTCHA are Google technologies: AdSense runs only after Accept All; reCAPTCHA loads on sign-in and contact forms. See how Google uses data: https://policies.google.com/technologies/partner-sites cookie policy · privacy policy.
Settings