Favicon Validator
Pricing
Pay per usage
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
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
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
| Field | Type | Description |
|---|---|---|
url | string | The validated website URL (after redirects) |
pageTitle | string | HTML page title of the validated URL |
hasFavicon | boolean | Whether at least one accessible favicon was found |
faviconCount | integer | Number of accessible favicons discovered |
favicons | array | Full validation details for every favicon candidate |
favicons[].faviconUrl | string | Absolute URL of the favicon file |
favicons[].rel | string | The rel attribute value (e.g. icon, apple-touch-icon) |
favicons[].sizes | string | Declared sizes attribute (e.g. 32x32, 180x180) |
favicons[].declaredType | string | MIME type declared in the HTML link tag |
favicons[].source | string | How it was discovered: link-tag or default |
favicons[].httpStatus | integer | HTTP status code when fetching the favicon |
favicons[].contentType | string | Actual Content-Type from the HTTP response |
favicons[].fileSizeBytes | integer | File size in bytes (null if unavailable) |
favicons[].accessible | boolean | Whether the favicon returned HTTP 200 |
favicons[].error | string | Error message if validation failed, otherwise null |
issues | array | Human-readable list of detected favicon problems |
scrapedAt | string | ISO 8601 timestamp of when the validation ran |
Input
| Parameter | Type | Default | Description |
|---|---|---|---|
url | string | — | Single website URL to validate |
urls | array | — | List 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
- Fetch the page — The actor requests each URL with a realistic browser User-Agent and follows redirects
- Discover favicon candidates — Parses all
<link>tags withrelvalues oficon,shortcut icon,apple-touch-icon,apple-touch-icon-precomposed, andmask-icon - Check
/favicon.ico— Always tests the default favicon path as a fallback, even if no link tag declares it - Validate each favicon — Sends an HTTP HEAD request (or GET if needed) to check status code, Content-Type, and file size
- Report issues — Compares the results against best practices and generates a plain-language issue list
- 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.