Skip to main content
skill CX Codex

favicon-generator — Claude Code skill for site and PWA icons

Walks through favicon and app icon setup: sizes, formats, HTML tags and what Google Search expects from the icon.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add kostja94/marketing-skills --skill favicon-generator -a claude-code
npx skills add kostja94/marketing-skills --skill favicon -a claude-code
Open on GitHub

What favicon-generator does

The skill takes you from a logo file to a working icon set. It starts by asking about your stack, whether a PWA is planned, and which logo assets exist, then hands over a size checklist: 16x16 and 32x32 for browser tabs, 180x180 for the iOS home screen, 192x192 and 512x512 for Android and PWA launchers. Google Search results get their own section, since the icon there has to be square, preferably larger than 48x48, and served from a stable URL.

Formats and markup come next. SVG suits modern browsers and can switch for dark mode through media queries, PNG is required for the Apple Touch Icon, and ICO stays as a fallback for older browsers. In Next.js you drop favicon.ico, icon.png and apple-icon.png into the app folder and the framework writes the tags itself. For other stacks the skill supplies the <link rel="icon" ...> lines for the homepage header.

Skip the 180x180 Apple Touch Icon and iOS will show a screenshot of your page instead. The favicon also has to stay crawlable for Googlebot-Image, so blocking it in robots.txt keeps the icon out of search results. Version the URL on updates, say /favicon.ico?v=2, or browsers will keep serving the old file from cache.

What it helps with

  • build a full icon set for browsers, iOS and Android
  • add <link rel="icon"> tags to the homepage header
  • put 192x192 and 512x512 icons into manifest.json for a PWA
  • check that robots.txt does not block Googlebot-Image from the favicon
  • simplify a logo until it reads at 16x16

Example prompts for the agent

  • Audit the favicon setup on this site and list the missing sizes
  • Set up icons for Next.js: favicon.ico, icon.png, apple-icon.png
  • Why is my icon not showing in Google Search results?

How to install favicon-generator

1Skills CLI (Vercel)

npx skills add kostja94/marketing-skills --skill favicon-generator -a claude-code
npx skills add kostja94/marketing-skills --skill favicon -a claude-code

2Manually: put the files in place

~/.claude/skills/favicon/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/favicon/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about favicon-generator

How do I install favicon-generator in Claude?

Run npx skills add kostja94/marketing-skills --skill favicon-generator -a claude-code. The skill file then sits at ~/.claude/skills/favicon/SKILL.md.

What does favicon-generator do?

It covers favicon and app icon implementation: required sizes, formats, HTML link tags, the PWA manifest, and Google Search requirements for the icon in listings.

Which icon sizes are required?

16x16 and 32x32 for tabs, 180x180 for the Apple Touch Icon, 192x192 and 512x512 for Android and PWA. For Google Search the icon should be square and preferably larger than 48x48.

Source text

SKILL.md · MIT
---
name: favicon-generator
description: When the user wants to implement, optimize, or audit favicon and app icons. Also use when the user mentions "favicon," "app icon," "browser icon," "touch icon," "PWA icon," "favicon sizes," "apple-touch-icon," "favicon.ico," "site icon," or "tab icon." For visual system, use brand-visual-generator.
metadata:
  version: 1.0.1
---

# Components: Favicon

Guides favicon and app icon implementation for brand consistency across browser tabs, bookmarks, mobile home screens, and **Google Search results**. Favicons help users identify sites; missing or incorrect icons hurt trust.

**When invoking**: On **first use**, if helpful, open with 1-2 sentences on what this skill covers and why it matters, then provide the main output. On **subsequent use** or when the user asks to skip, go directly to the main output.

## Initial Assessment

**Project context:** Read root `contextus.md` when present and load only the modules relevant to this task. Without Contextus, use available project material or user-provided facts and ask for missing information; do not create a parallel context system.

Identify:
1. **Tech stack**: Next.js, WordPress, static HTML, etc.
2. **PWA**: Is the site a PWA or planning to be?
3. **Existing assets**: Logo, icon files

## Required Sizes

| Size | Use |
|------|-----|
| **16x16** | Browser tabs, standard displays |
| **32x32** | Retina/HiDPI browser tabs |
| **180x180** | Apple Touch Icon (iOS home screen); no transparency |
| **192x192** | Android Chrome home screen, PWA launcher |
| **512x512** | PWA splash screens, adaptive icons |

**Optional**: 48x48, 96x96, 120x120, 152x152, 167x167, 256x256 for broader coverage.

## Formats

| Format | Use |
|--------|-----|
| **SVG** | Modern browsers; scalable; supports dark mode via media queries; lightweight |
| **PNG** | High-DPI; explicit sizes; easy to generate; required for Apple Touch Icon |
| **ICO** | Legacy; bundles multiple sizes; fallback for older browsers |

**Recommended**: Provide SVG + PNG fallbacks. Never skip Apple Touch Icon (180x180); iOS shows a generic screenshot without it.

## Google Search (SERP Display)

See **serp-features** for SERP feature types and optimization.

Favicons can appear in Google Search results next to your site's listings. [Google Search Central](https://developers.google.com/search/docs/appearance/favicon-in-search) requirements:

| Requirement | Guideline |
|-------------|-----------|
| **Placement** | Add `<link rel="icon" href="/path/to/favicon.ico">` to **homepage** header |
| **One per hostname** | One favicon per hostname; `example.com` and `code.example.com` are separate; `example.com/sub-site` shares the same favicon |
| **Crawlability** | Googlebot-Image must crawl favicon; Googlebot must crawl homepage; do not block either in robots.txt |
| **Shape** | Square (1:1 aspect ratio); minimum 8x8px; **preferably >48x48px** for quality across platforms |
| **Stable URL** | Do not change favicon URL frequently |
| **Appropriate** | No inappropriate content (pornography, hate symbols); Google may replace with default icon |
| **Timing** | Crawling can take days to weeks; use Search Console URL Inspection to request indexing |

**Supported rel values**: `icon`, `shortcut icon`, `apple-touch-icon`, `apple-touch-icon-precomposed`. **href** can be relative (`/favicon.ico`) or absolute; favicon can be hosted on CDN.

## Implementation

### HTML Link Tags

```html
<link rel="icon" href="/favicon.ico" sizes="any">
<link rel="icon" href="/icon.svg" type="image/svg+xml">
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32.png">
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
```

### Next.js

Place in `/app`: `favicon.ico`, `icon.png`, `apple-icon.png`. Next.js auto-generates tags.

### PWA Manifest

Include `icons` array in `manifest.json` with 192x192 and 512x512 for maskable icons.

## Best Practices

- **Simplicity**: At 16x16, complex details are illegible; use simplified logo mark; design for brand recognition in SERPs
- **Consistency**: Favicon should match logo/brand (logo-generator, brand-visual-generator)
- **Cache**: Use long cache; version for updates (e.g. `/favicon.ico?v=2`)
- **Tools**: RealFaviconGenerator, favicon.io, or favicons npm package for automation
- **Test**: Check across browsers, dark mode, and Search Console (favicon may take days to weeks to appear)

## Output Format

- **Size** checklist (16, 32, 180, 192, 512; >48x48 for Google Search)
- **Format** recommendations (SVG, PNG, ICO)
- **Implementation** notes per tech stack (homepage header placement)
- **Google Search** checklist (crawlability, stable URL, appropriate content)
- **Manifest** (if PWA)

## Related Skills

- **logo-generator**: Favicon typically derived from logo; consistent branding
- **media-kit-page-generator**: Media kit should include favicon or link to brand assets
- **brand-visual-generator**: Visual identity; favicon aligns with brand colors and mark
- **indexing**: Favicon requires crawlable homepage; URL Inspection for indexing

© kostja94 · MIT · kostja94/marketing-skills

Similar skills

Everything for Design →

From the same set125

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor