Help Centre

Getting started, common questions, and what this tool can and cannot do.

Getting started

Iconscan is a one-shot diagnostic tool — no account, no sign-up, no setup. Here is how to use it:

  1. Go to the App page. You will see a single input field.
  2. Enter a URL. Any public web page that declares icons in its <head>. For example: https://github.com (pre-filled by default).
  3. Click "Scan". Iconscan fetches the page, parses every icon declaration, and requests each icon file.
  4. Read the results. A consumer-verdict summary shows what your browser tab, Google Search result, and iOS home-screen would each end up using. Below that, a detailed table lists every icon path, its status (present / warning / missing), detected format, and real pixel dimensions.

That is all. Each scan is independent — no history, no saved results. Bookmark the App page and return any time you need to check another site.

Scan a site now

Frequently asked questions

What icons does Iconscan check?

Iconscan checks every icon declared in the page's <head> via <link> elements — including rel="icon", rel="shortcut icon", rel="apple-touch-icon", rel="apple-touch-icon-precomposed", rel="mask-icon", and manifest-linked icons. It reads each entry's href, sizes, and type attributes.

It also checks two paths that browsers and devices request by convention even when not declared: /favicon.ico and /apple-touch-icon.png at the site root. A page can declare everything correctly and still show a blank tab because the root fallback returns a 404.

Why does Iconscan say "Present" but my favicon still does not show?

Several reasons:

  • Browser cache. Your browser may be showing a cached version of the old icon even after you have deployed a new one. Hard-reload (Ctrl+Shift+R) or check in an incognito/private window.
  • Wrong path. The icon file may be present but at a path your browser is not reading. Check the consumer-verdict summary: if the "Browser tab" verdict says "Missing" while the detailed table shows the icon as present, the browser is looking elsewhere.
  • Root fallback missing. Even if you declared a <link rel="icon">, some browsers will also try /favicon.ico at the root. If that file does not exist and none of your declared icons match, the tab stays blank. Iconscan reports both declared icons and root-path results separately.
  • Format mismatch. If the icon is served with a MIME type that does not match its actual format (for example, a PNG served as image/x-icon), some browsers refuse to use it. Check the "Format" and "Declared" columns in the results table.
What does "Wrong format" mean in the results?

Iconscan inspects the first bytes of each icon file (the "magic bytes") to determine its real format, and compares it against the declared type in the HTML. A "Wrong format" warning means the file is served in a different container format than what the declaration claims.

For example: a file declared as type="image/x-icon" that is actually a PNG (magic bytes 89 50 4E 47) will be flagged. This matters because Google Search requires specific formats and sizes — a PNG served as ICO may be ignored by search crawlers even though it displays in a browser tab.

The results table shows both the declared type value and the actual detected format so you can compare them directly.

Why can Iconscan not scan certain websites?

Iconscan runs on Cloudflare Workers. A Worker cannot reach a host that is itself behind Cloudflare (for example, cloudflare.com or example.com). The page HTML itself can be fetched, but individual icon file requests to Cloudflare-fronted origins will fail with an unreachable error.

Other reasons a scan might fail:

  • Private/internal sites — the site requires authentication or is on a private network Iconscan cannot reach.
  • Timeout — the page or its icons are too slow to respond. Iconscan uses reasonable timeouts per request.
  • Non-HTTP(S) URLs — local file paths (file://) and protocol-relative URLs are not supported.

If a site is public, reachable, and not Cloudflare-hosted, it should scan successfully.

Do you store the URLs I scan?

No. Iconscan does not create accounts, does not maintain user profiles, and does not store scanned results server-side. Each scan is processed entirely in memory during the HTTP request. The URLs you provide and the results generated exist only for the duration of that request and are not written to any database, log, or persistent store.

Standard Cloudflare network-level logging (request origin IP, path, timestamp) may apply at the infrastructure layer. No application-level logging is configured. See the Privacy Policy for full details.

Is there a Pro plan? When can I subscribe?

The Pro plan is planned but not yet available. When it ships, it will add bulk scanning (multiple URLs in one request), JSON/CSV export, API access, priority scanning, and custom user-agent configuration — all for $9/month. See the Pricing page for the full comparison.

The Free tier is live and fully functional — single URL scans with full icon declaration parsing, conventional root-path checks, magic-byte format detection, real pixel dimensions, and the consumer-verdict summary.

There is no payment infrastructure connected. No payment is taken today. When the Pro plan launches, this page will be updated with availability details.

What sizes and formats does Google Search require for favicons?

Google Search uses the largest declared icon that is at least 48×48 pixels. It prefers:

  • Format: ICO (preferred), PNG, GIF, JPEG, or SVG. PNG is the most reliable.
  • Size: 48×48px minimum. Larger sizes (96×96, 144×144, 196×196) are used for high-DPI displays.
  • Declaration: A <link rel="icon"> with explicit sizes and type attributes helps Google parse the icon correctly.

The consumer-verdict card labelled "Google Search" in Iconscan's results tells you whether the site provides an icon that meets these requirements, and which specific file would be used.

How do I add an apple-touch-icon for iOS home-screen bookmarks?

Add a <link> element in your page's <head>:

<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">

Apple recommends a 180×180 pixel PNG file. If no apple-touch-icon declaration exists, iOS will request /apple-touch-icon.png at the site root by convention. Iconscan checks both the declared path and the root fallback, so you can see which one iOS would actually use.

Note: "precomposed" variants (rel="apple-touch-icon-precomposed") tell iOS not to add its default gloss/shine effect. Both variants are detected by Iconscan.

Known limitations

Iconscan is a diagnostic tool with a narrow scope. These limitations are by design or reflect features not yet built:

Cloudflare-to-Cloudflare requests fail

Because Iconscan runs on Cloudflare Workers, it cannot fetch icons from websites that are also hosted on Cloudflare. The page HTML will load successfully, but individual icon file requests to Cloudflare-fronted origins will appear as unreachable. This is a Workers platform limitation.

No authentication or private-site scanning

Iconscan cannot log in, set cookies, or use session tokens. Sites behind authentication gates, paywalls, or IP allow-lists are not scannable. Only publicly accessible URLs work.

No monitoring, scheduling, or alerts

Each scan is a one-shot check. There is no capability to re-scan on a schedule, watch for changes, or send email alerts when an icon goes missing. The Pro plan (planned) may add some of these features.

No accounts, history, or saved results

Iconscan is fully stateless. There are no user accounts. Scan results are shown in your browser and discarded when you leave the page. If you need a permanent record, take a screenshot or copy the results before navigating away.

No image generation or design advice

Iconscan does not create icons, resize images, suggest designs, or recommend colours. It reports whether files exist at declared paths and whether their formats match what the HTML claims. For icon creation, use a graphics tool or favicon generator.

Pro tier is not yet implemented

The Pro plan (bulk scanning, export, API) is specified on the Pricing page but no subscription system, payment processor, or API key infrastructure has been built. The pricing is informational.

How to contact us

Email support is not yet available. The operator of this service has not registered a legal entity or established a mailbox. No contact address exists that can receive messages.

If you have found a bug or have a question about using the tool, review the FAQs on this page first. For issues not covered here:

This is a known gap. The operator needs to establish a mailbox or support channel. Once that is in place, this section will be updated with a working contact route. Until then, the best way to get help is to check the documentation on this page.