---
title: "Web app manifest missing or incomplete (seo/manifest)"
description: "seo/manifest: The manifest supplies install name, icons and colours for browsers and app surfaces."
canonical: https://void-design.vercel.app/rules/seo/manifest
lastModified: 2026-09-16
---

# Web app manifest missing or incomplete

`seo/manifest` · severity **info** · category SEO · detected by `void seo` and `void audit`

## Why it matters

The manifest supplies install name, icons and colours for browsers and app surfaces.

## How to fix it

Add app/manifest.ts with name, short_name, start_url, display and 192/512 PNG icons.

## Example

```ts
// app/manifest.ts
import type { MetadataRoute } from 'next'
export default function manifest(): MetadataRoute.Manifest {
  return {
    name: 'Acme', short_name: 'Acme', start_url: '/', display: 'standalone',
    background_color: '#ffffff', theme_color: '#0a0a0a',
    icons: [
      { src: '/icon-192.png', sizes: '192x192', type: 'image/png' },
      { src: '/icon-512.png', sizes: '512x512', type: 'image/png' },
    ],
  }
}
```

## References

- https://nextjs.org/docs/app/api-reference/file-conventions/metadata/manifest

## More seo rules

`void seo` reports 60 rules in this category. What search engines need from the raw response: status codes, titles and descriptions in <head>, self-referencing canonicals, one h1, crawlable links, Open Graph, icons, robots.txt and a sitemap with real dates.

- `og-image-meta` og:image:width/height missing or wrong, or og:image:alt missing — [seo/og-image-meta](https://void-design.vercel.app/rules/seo/og-image-meta)
- `twitter-card` twitter:card missing — [seo/twitter-card](https://void-design.vercel.app/rules/seo/twitter-card)
- `favicon` No crawlable favicon in a Google-supported format — [seo/favicon](https://void-design.vercel.app/rules/seo/favicon)
- `apple-touch-icon` apple-touch-icon missing or not a 180×180 PNG — [seo/apple-touch-icon](https://void-design.vercel.app/rules/seo/apple-touch-icon)
- `theme-color` No theme-color meta — [seo/theme-color](https://void-design.vercel.app/rules/seo/theme-color)
- `robots-txt-unreachable` robots.txt returns 5xx/429 or times out — [seo/robots-txt-unreachable](https://void-design.vercel.app/rules/seo/robots-txt-unreachable)
- `robots-txt-missing` No robots.txt — [seo/robots-txt-missing](https://void-design.vercel.app/rules/seo/robots-txt-missing)
- `robots-txt-invalid` robots.txt serves HTML, exceeds 500 KiB, or has unparseable lines — [seo/robots-txt-invalid](https://void-design.vercel.app/rules/seo/robots-txt-invalid)

Detected by `void seo` and `void audit`. Explain it in a terminal: `void rules seo/manifest`
