Word and Character Counts for UI Copy, SEO, and Reviews
How to count words and characters the way products and platforms do — limits, diffs, Markdown pitfalls, and a practical editing workflow for developers who ship copy.
Ship the right favicon and apple-touch-icon sizes, wire Web App Manifest icons, set theme-color, and avoid the common gaps that leave tabs and home screens looking broken.
By codefunc
A missing favicon makes a polished site feel unfinished. A blurry home-screen icon makes a PWA feel untrusted. Browsers and operating systems ask for different sizes, formats, and HTML tags — and the checklist changed as IE-era favicon.ico-only setups gave way to PNG, SVG, and Web App Manifest entries. This guide is the 2026 practical set: what to ship, what to link, and how theme-color ties the browser chrome to your brand.
Bottom line: Provide an SVG (or high-res PNG) favicon, a 180×180 apple-touch-icon, and manifest icons at least 192 and 512. Set theme-color to match your shell. Generate assets with a Favicon Generator and verify head tags with a Meta Tags Generator.
| Asset | Role |
|---|---|
| SVG favicon | Crisp at any DPR; modern Chromium, Firefox, Safari |
| PNG favicons (32, 16) | Fallbacks and older contexts |
favicon.ico |
Legacy bookmark / some crawlers; optional but still useful |
apple-touch-icon |
iOS home screen / Safari share |
Manifest icons |
PWA install, Android home screen, splash |
theme-color |
Browser UI tint (mobile Chrome, etc.) |
You do not need twenty PNG sizes for a content site. You do need the right few, correctly linked.
<link rel="icon" href="/favicon.svg" type="image/svg+xml" />
<link rel="icon" href="/favicon-32x32.png" sizes="32x32" type="image/png" />
<link rel="icon" href="/favicon-16x16.png" sizes="16x16" type="image/png" />
<link rel="apple-touch-icon" href="/apple-touch-icon.png" sizes="180x180" />
<link rel="manifest" href="/site.webmanifest" />
<meta name="theme-color" content="#0f766e" />
Generate the PNG/ICO set from a master logo using a Favicon Generator. Keep a single source SVG in the repo and treat rasters as build outputs.
apple-touch-icon-precomposed name for new projects./apple-touch-icon.png or link it explicitly as above.site.webmanifest (or manifest.webmanifest):
{
"name": "codefunc",
"short_name": "codefunc",
"start_url": "/",
"display": "standalone",
"background_color": "#0f172a",
"theme_color": "#0f766e",
"icons": [
{
"src": "/icons/icon-192.png",
"sizes": "192x192",
"type": "image/png",
"purpose": "any"
},
{
"src": "/icons/icon-512.png",
"sizes": "512x512",
"type": "image/png",
"purpose": "any"
},
{
"src": "/icons/icon-maskable-512.png",
"sizes": "512x512",
"type": "image/png",
"purpose": "maskable"
}
]
}
| Size | Why |
|---|---|
| 192×192 | Minimum common install icon |
| 512×512 | Splash / high-DPI; Lighthouse PWA checks |
| Maskable 512 | Safe zone for Android adaptive icons |
Maskable icons need important artwork inside ~80% of the canvas so circular/squircle masks do not crop the mark. Generate a separate maskable asset; do not reuse a tight logo PNG.
<meta name="theme-color" content="#0f766e" />
<meta name="theme-color" media="(prefers-color-scheme: light)" content="#f8fafc" />
<meta name="theme-color" media="(prefers-color-scheme: dark)" content="#0f172a" />
Keep manifest theme_color aligned with the meta tag you want for installed mode. Mismatches look like bugs when users toggle dark mode.
Pair favicon/manifest work with broader head tags via a Meta Tags Generator so Open Graph and icons do not drift.
SVG favicons scale cleanly and can embed simple prefers-color-scheme styles:
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32">
<style>
.mark { fill: #0f766e; }
@media (prefers-color-scheme: dark) {
.mark { fill: #5eead4; }
}
</style>
<rect class="mark" width="32" height="32" rx="6" />
</svg>
Caveats:
For email prototypes, Storybook, or tiny demos, you may embed a PNG as a data URI. Use an Image Base64 Encoder for that — not for production homepage favicons. Data-URI favicons bloat HTML, defeat caching, and are harder to update.
Production rule: static files with long-cache filenames or hashed paths, linked from the document head and manifest.
| Tip | Reason |
|---|---|
| One simple glyph or monogram | Detail vanishes in tabs |
| High contrast mark vs background | Dark/light browser chrome |
| Padding inside the canvas | Avoid edge clipping on masks |
Same brand hue as theme-color |
Visual continuity |
| Test on real iOS + Android | Simulators miss install UI |
Tabs and installed shells increasingly follow system appearance. Options that work in production:
prefers-color-scheme fill swap (shown above).theme_color / background_color for the install splash and status bar, independent of the glyph color.Do not ship a light-gray mark on a transparent background and hope dark tabs will invent contrast. If the glyph is outlined, give it a solid tile behind it at favicon sizes.
Icons are aggressively cached. When you rebrand:
icon-192.a1b2c3.png) referenced from the manifest, orapple-touch-icon.png?v=2026-07) if you cannot hash, and/favicon.icoService workers that precache /favicon.ico forever will show the old mark after a redesign until the SW updates — include icons in your precache revision strategy.
For Next.js App Router, app/icon.tsx / apple-icon.tsx can generate icons at build time. Still publish a manifest with explicit PNG sizes for installability; do not assume file-based metadata alone covers PWA checks.
Open Graph and Twitter images are a separate pipeline (typically 1200×630). Reusing a 512×512 app icon as og:image looks sparse and unprofessional in Slack and LinkedIn. Keep:
| Surface | Asset |
|---|---|
| Browser tab | Favicon SVG/PNG |
| Home screen / PWA | Manifest + apple-touch-icon |
| Link shares | Dedicated OG image |
Wire OG tags alongside icons when you regenerate head markup in a Meta Tags Generator.
/favicon.ico or PNG fallback exists if you support odd clientsapple-touch-icon bookmarks cleanly on iOStheme-color matches light/dark intentShip SVG + 32/16 PNG favicons, a 180×180 apple-touch-icon, and manifest icons at 192 and 512 (plus maskable). Align theme-color across meta and manifest. Generate rasters from one master with a Favicon Generator, confirm head markup with a Meta Tags Generator, and reserve Image Base64 Encoder for non-production embeds.
How to count words and characters the way products and platforms do — limits, diffs, Markdown pitfalls, and a practical editing workflow for developers who ship copy.
Shrink SVG icons for the web — strip comments and whitespace, choose inline vs data URLs, and know when you still need a full SVGO pipeline.
Build a correct sitemap.xml, keep lastmod honest, submit it in Google Search Console, and pair it with robots.txt so crawlers discover the pages you actually want indexed.
Find a developer tool