web validator

Favicon SEO Validator & Brand Icon Checker

Check favicon, apple-touch-icon, Safari mask-icon, and public brand icon declarations locally so browser tabs, bookmarks, mobile home screens, search snippets, and pinned tabs use the right assets.

Results

Paste input and validate locally.
Status
Ready when you validate.
Details
Ready when you validate.
rel=icon count
Ready when you validate.
apple-touch-icon count
Ready when you validate.
mask-icon count
Ready when you validate.
Issues
Ready when you validate.

How to use this validator

  1. Copy rendered icon link tags from page source, deployed-preview HTML, crawler-exported HTML, or production head output.
  2. Paste them into the validator and run the local check.
  3. Add a rel=icon declaration if the browser/search favicon is missing.
  4. Add an apple-touch-icon declaration if mobile home-screen and bookmark support is missing.
  5. After the structural check passes, open the linked files directly on the deployed domain and verify status, dimensions, crop, transparency, and brand contrast.

Rules & checks

Counts link tags whose rel attribute includes icon, including classic favicons and PNG/SVG icon declarations.

Requires at least one rel=icon declaration for browser tabs, bookmarks, address bars, search-result favicons, and general site identity.

Requires at least one apple-touch-icon declaration for iOS home-screen and mobile bookmark workflows.

Counts mask-icon declarations for Safari pinned tabs, but does not require them to pass.

Validates rendered head markup rather than source components because Next.js metadata, CMS plugins, ecommerce themes, and static exports can change final icon links.

Parses the HTML snippet locally; it does not fetch icon files, inspect image dimensions, verify MIME types, or prove Google will show a particular favicon.

Inputs explained

  • Rendered HTML head icon tags

    Paste the rendered <head> snippet from view-source, a deployed preview, crawler export, static export, CMS output, or production page source. Include favicon, apple-touch-icon, and optional mask-icon link tags rather than React, Next, Helmet, or theme component source code when possible.

When to use it

  • QA a new marketing site, landing page, SaaS app, ecommerce store, or content site before launch.
  • Check Next.js metadata, Astro, WordPress, Shopify, Webflow, or headless CMS templates after icon or brand changes.
  • Audit whether a PWA or mobile web app has both manifest icons and HTML head icon fallbacks.
  • Review user-submitted or client-provided head snippets without uploading private staging HTML.
  • Verify favicon declarations during a search snippet, Open Graph, JSON-LD, and manifest launch QA pass.
  • Catch brand regressions after logo refreshes, static asset migrations, CDN moves, or app-directory metadata refactors.

Common errors

  • Only shipping /favicon.ico and forgetting apple-touch-icon for mobile devices.
  • Pasting React, Next.js, Helmet, or theme component code instead of the rendered <link> tags.
  • Declaring icons in manifest.json but not linking browser favicon tags in the HTML head.
  • Using relative paths that work in development but point to the wrong asset after a base path, static export, CDN rewrite, or subdirectory deploy.
  • Forgetting to deploy the actual icon files after adding the link tags.
  • Serving icon URLs that 404, redirect through auth, use the wrong MIME type, or are blocked by robots/CDN rules.
  • Using an icon crop that works at 180px but becomes unreadable as a 16px browser tab or search-result favicon.
  • Assuming mask-icon is required; it is useful for Safari pinned tabs but optional for most launches.

Limitations

  • Structure-only validation; it does not fetch or verify icon files.
  • Does not inspect image dimensions, file type, transparency, mask color, safe-area padding, or visual crop quality.
  • Does not validate web app manifest icon arrays; use the manifest validator for manifest.json checks.
  • Does not guarantee Google, Safari, Chrome, iOS, Android, Slack, or browser caches will immediately choose the expected icon.
  • A snippet can pass while production still fails if the linked files 404, redirect unexpectedly, require authentication, or are blocked by the CDN.

Tips

  • Provide at least one rel=icon and one apple-touch-icon for a basic cross-device icon setup.
  • Use root-relative or absolute HTTPS paths that will resolve from the production domain, especially if the site uses a base path or CDN.
  • Keep icon files small, square, high-contrast, and correctly sized, then verify the actual assets separately because this validator only reads link declarations.
  • Keep favicon, apple-touch-icon, manifest icons, Open Graph images, and logo schema visually consistent so public brand surfaces do not feel mismatched.
  • Use the manifest validator for web app manifest icon arrays, the Open Graph validator for social preview images, and the JSON-LD validator for logo/image schema references.
  • After deployment, open the icon URLs directly or check browser DevTools Network to confirm they return 200 responses without auth, redirects, or cache-stale files.

Examples

Launch-ready icon declarations

  • <link rel="icon" href="/favicon.ico">
  • <link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
  • <link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
  • <link rel="mask-icon" href="/safari-pinned-tab.svg" color="#111827">

Missing Apple touch icon

  • A site with only rel=icon is flagged because iOS home-screen/bookmark workflows commonly need apple-touch-icon.

Optional Safari pinned-tab icon

  • mask-icon is counted for Safari pinned tabs but is not required for the validator to pass.

Deep dive

Favicons and app icons are small brand assets, but they affect how polished a site looks in browser tabs, bookmarks, mobile home screens, and search-result/favicon surfaces.

Paste rendered HTML from a CMS, framework, static export, or deployed preview to catch missing rel=icon, apple-touch-icon, and optional Safari mask-icon declarations before launch.

Use this after Open Graph and JSON-LD QA to keep browser/search brand identity aligned with social cards, logo schema, manifest icons, canonical URLs, and production assets.

The check is browser-local and declaration-focused, so private staging snippets and unreleased brand assets do not need to be sent to a server.

FAQs

Do you fetch my icon files?
No. This validator only parses the HTML snippet you paste. It counts icon link declarations but does not request the image or SVG files.
Why is apple-touch-icon required?
Apple touch icons are commonly used by iOS and mobile bookmark/home-screen workflows. A normal favicon may cover browser tabs but still leave mobile surfaces incomplete.
Is mask-icon required?
No. Safari mask icons are counted because they can improve pinned-tab support, but missing mask-icon declarations do not fail the structural check.
Can this validate manifest icons?
No. This page checks HTML <link> tags. Use the Web App Manifest Validator to inspect manifest.json icon arrays and related PWA metadata.
Will this prove Google shows my favicon in search?
No. It confirms the HTML declarations exist. Google also depends on crawlability, asset availability, cache timing, image quality, and site signals before showing a favicon.
Should favicon, manifest, Open Graph, and JSON-LD logo assets match?
They should feel like the same brand system. Keep icon crops, colors, logo schema, social preview images, and manifest icons visually aligned while using sizes appropriate for each surface.
Is my head HTML stored?
No. Validation runs locally in your browser. The HTML snippet and icon URLs are not uploaded, logged, stored, or shared.

Related validators

Favicon and app-icon validation runs entirely in your browser. Pasted HTML, staging URLs, draft brand paths, and icon filenames are not uploaded, fetched, logged, stored, or sent to a server.

This is a structural icon-link check. It does not fetch assets, verify image dimensions, inspect visual quality, or guarantee every browser, device, search result, or cache will choose the same icon.