Favicon Validator avatar

Favicon Validator

Pricing

Pay per usage

Go to Apify Store
Favicon Validator

Favicon Validator

Favicon validator that audits any website's icon setup — discovers all favicon types, checks accessibility and file size, and flags missing or broken icons for developers and SEO teams.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

ZeroBreak

ZeroBreak

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Favicon Validator — Audit & Fix Website Favicon Issues Automatically

Favicon Validator is an Apify actor that audits any website's favicon setup by discovering every icon declaration, validating accessibility, checking file sizes, and reporting missing formats. Whether you're building a site audit pipeline, preparing a client deliverable, or enforcing brand consistency at scale, this favicon checker handles the tedious validation work automatically.

Use Cases

  • SEO auditing — Identify sites missing favicons that affect click-through rates and brand recognition in browser tabs and search results
  • Client reporting — Bulk-validate favicon compliance across entire client portfolios in a single run
  • QA testing — Confirm all favicon types (ICO, PNG, Apple touch icon) are present and accessible before deployment
  • Site monitoring — Detect favicon regressions after deployments or CDN changes
  • Accessibility compliance — Ensure icons meet recommended sizes for all device types including iOS home screen bookmarks

What Data Does This Actor Extract?

For each URL, the actor returns a complete favicon audit report:

{
"url": "https://example.com",
"pageTitle": "Example Domain",
"hasFavicon": true,
"faviconCount": 3,
"favicons": [
{
"faviconUrl": "https://example.com/favicon.ico",
"rel": "default",
"sizes": "",
"declaredType": "",
"source": "default",
"httpStatus": 200,
"contentType": "image/x-icon",
"fileSizeBytes": 1150,
"accessible": true,
"error": null
},
{
"faviconUrl": "https://example.com/apple-touch-icon.png",
"rel": "apple-touch-icon",
"sizes": "180x180",
"declaredType": "image/png",
"source": "link-tag",
"httpStatus": 200,
"contentType": "image/png",
"fileSizeBytes": 8432,
"accessible": true,
"error": null
}
],
"issues": ["No PNG favicon — recommended for modern browsers"],
"scrapedAt": "2025-06-15T10:30:00+00:00"
}

Output Fields

FieldTypeDescription
urlstringThe validated website URL (after redirects)
pageTitlestringHTML page title of the validated URL
hasFaviconbooleanWhether at least one accessible favicon was found
faviconCountintegerNumber of accessible favicons discovered
faviconsarrayFull validation details for every favicon candidate
favicons[].faviconUrlstringAbsolute URL of the favicon file
favicons[].relstringThe rel attribute value (e.g. icon, apple-touch-icon)
favicons[].sizesstringDeclared sizes attribute (e.g. 32x32, 180x180)
favicons[].declaredTypestringMIME type declared in the HTML link tag
favicons[].sourcestringHow it was discovered: link-tag or default
favicons[].httpStatusintegerHTTP status code when fetching the favicon
favicons[].contentTypestringActual Content-Type from the HTTP response
favicons[].fileSizeBytesintegerFile size in bytes (null if unavailable)
favicons[].accessiblebooleanWhether the favicon returned HTTP 200
favicons[].errorstringError message if validation failed, otherwise null
issuesarrayHuman-readable list of detected favicon problems
scrapedAtstringISO 8601 timestamp of when the validation ran

Input

ParameterTypeDefaultDescription
urlstringSingle website URL to validate
urlsarrayList of website URLs to validate in bulk

At least one of url or urls must be provided. Both can be used together — duplicates are automatically removed.

Example Input

Single URL:

{
"url": "https://example.com"
}

Bulk validation:

{
"urls": [
"https://example.com",
"https://another-site.com",
"https://client-website.org"
]
}

How It Works

  1. Fetch the page — The actor requests each URL with a realistic browser User-Agent and follows redirects
  2. Discover favicon candidates — Parses all <link> tags with rel values of icon, shortcut icon, apple-touch-icon, apple-touch-icon-precomposed, and mask-icon
  3. Check /favicon.ico — Always tests the default favicon path as a fallback, even if no link tag declares it
  4. Validate each favicon — Sends an HTTP HEAD request (or GET if needed) to check status code, Content-Type, and file size
  5. Report issues — Compares the results against best practices and generates a plain-language issue list
  6. Store results — Pushes one dataset entry per input URL

Use Cases

  • Find broken favicons — Detect favicon files returning 404, 403, or server errors
  • Check dead link checker pipelines — Combine with link validation workflows for full site health audits
  • Validate favicon formats — Confirm ICO, PNG, and Apple touch icon variants all exist and are accessible
  • Monitor file sizes — Flag oversized favicon files (over 100 KB) that unnecessarily slow page loads

FAQ

Can this actor validate favicons on JavaScript-rendered pages? The actor uses HTTP requests to fetch HTML — it works on any server-rendered page. JavaScript-heavy SPAs that inject favicon tags client-side may not have their dynamically-added icons detected, but the /favicon.ico default path is always checked.

What favicon issues does the actor detect? It flags: no accessible favicon at all, missing ICO format (affects older browsers), missing PNG format (recommended for modern browsers), missing apple-touch-icon (required for iOS home screen bookmarks), and oversized favicon files over 100 KB.

How many URLs can I validate per run? There is no built-in limit. The actor processes URLs sequentially and stores one result per URL. For very large lists, consider splitting into smaller batches to stay within Apify's memory limits.

Does it follow redirects? Yes — the actor follows HTTP redirects for both the main page URL and individual favicon URLs, and records the final URL after any redirect chain.

What counts as an "accessible" favicon? A favicon is considered accessible when its URL returns HTTP status 200. Any other status code (301, 302, 403, 404, 500, etc.) is treated as inaccessible.

Integrations

Connect Favicon Validator with other apps and services using Apify integrations. You can integrate with Make, Zapier, Slack, Airbyte, GitHub, Google Sheets, Google Drive, and many more. You can also use webhooks to trigger actions whenever results are available.

Automate your favicon validation workflow — run this actor on a schedule to catch favicon regressions before they impact your brand, or chain it with other Apify actors to build a complete website health monitoring pipeline.