---
title: "SEO and social images · Sanity × Nuxt UI"
description: "Meta tags, sitemap, robots, structured data and the generated social images."
canonical_url: "https://sanity-nuxtui.vercel.app/id/docs/seo-and-social-images"
meta:
  "og:description": "Meta tags, sitemap, robots, structured data and the generated social images."
  "og:image": "https://sanity-nuxtui.vercel.app/_og/d/c_Page%2Ctitle_SEO%2Band%2Bsocial%2Bimages%2Cdescription_~TWV0YSB0YWdzLCBzaXRlbWFwLCByb2JvdHMsIHN0cnVjdHVyZWQgZGF0YSBhbmQgdGhlIGdlbmVyYXRlZCBzb2NpYWwgaW1hZ2VzLg%2Cheadline_Docs%2CsiteName_~U2FuaXR5IMOXIE51eHQgVUk%2Cp_Ii9pZC9kb2NzL3Nlby1hbmQtc29jaWFsLWltYWdlcyI%2Cs_6xHOCQP0pGNJ03Fj.png"
  "og:image:height": "630"
  "og:image:type": image/png
  "og:image:width": "1200"
  "og:title": "SEO and social images · Sanity × Nuxt UI"
  "twitter:image": "https://sanity-nuxtui.vercel.app/_og/d/c_Page%2Ctitle_SEO%2Band%2Bsocial%2Bimages%2Cdescription_~TWV0YSB0YWdzLCBzaXRlbWFwLCByb2JvdHMsIHN0cnVjdHVyZWQgZGF0YSBhbmQgdGhlIGdlbmVyYXRlZCBzb2NpYWwgaW1hZ2VzLg%2Cheadline_Docs%2CsiteName_~U2FuaXR5IMOXIE51eHQgVUk%2Cp_Ii9pZC9kb2NzL3Nlby1hbmQtc29jaWFsLWltYWdlcyI%2Cs_6xHOCQP0pGNJ03Fj.png"
---

> Index of every page on this site: [llms.txt](https://sanity-nuxtui.vercel.app/llms.txt)

Halaman ini belum tersedia dalam bahasa Indonesia.

[Docs](https://sanity-nuxtui.vercel.app/id/docs)

# **SEO and social images**

Meta tags, sitemap, robots, structured data and the generated social images.

SEO is handled by [**Nuxt SEO**](https://nuxtseo.com) (`@nuxtjs/seo`), configured in `apps/web/nuxt.config.ts`.

## Site URL and name

Set `NUXT_SITE_URL` to the production domain and, optionally, `NUXT_SITE_NAME`. The URL is used for canonical links, the sitemap, `hreflang` links and social image addresses. Outside production, indexing is blocked automatically.

## Meta tags

`app/composables/usePageSeo.ts` sets the title, description, robots and social image of a page from its SEO tab, falling back to the title, excerpt and images of the content, then to Site Settings. Pages, collections and entries call it.

## Sitemap and robots

- `/sitemap.xml` lists every page, collection and entry in every language, except those hidden from search engines. Entries come from `server/api/__sitemap__/urls.ts`, with the translations of each URL as alternatives.
- `robots.txt` is generated; fallback pages and hidden documents get `noindex`.

## Structured data

Entries output schema.org `Article` with their authors and dates (`EntryView.vue`). The site itself is an `Organization`.

## Social images

The first match wins:

1. the SEO image of the document,
2. the cover image or first photo of an entry,
3. the default image in Site Settings,
4. an image generated from the title and description.

Generated images come from [**nuxt-og-image**](https://nuxtseo.com/docs/og-image), rendered by Takumi from the Vue component `app/components/OgImage/Page.takumi.vue` with the theme fonts. Edit that component to change the design.

**Set \`NUXT\_APP\_SECRET\` in production**

Image URLs are signed; without a secret, image requests fail. Generate one with npx nuxt-og-image generate-secret. On Cloudflare Workers, also add it as a secret of the Worker, since it is read at runtime.

The renderer is native on Vercel and Node, and WebAssembly on Cloudflare and in development. Images are cached for three days.

[**Search** The search palette, its GROQ query and what it needs from the hosting.](https://sanity-nuxtui.vercel.app/id/docs/search) [**Rendering and caching** Choose between server rendering, hybrid prerendering and a static site, and how pages are cached.](https://sanity-nuxtui.vercel.app/id/docs/rendering-and-caching)

```json
{"@context":"https://schema.org","@graph":[{"@id":"https://sanity-nuxtui.vercel.app/#website","@type":"WebSite","name":"Sanity × Nuxt UI","url":"https://sanity-nuxtui.vercel.app/","publisher":{"@id":"https://sanity-nuxtui.vercel.app/#identity"}},{"@id":"https://sanity-nuxtui.vercel.app/id/docs/seo-and-social-images#webpage","@type":"WebPage","dateModified":"2026-10-16T02:29:18Z","description":"Meta tags, sitemap, robots, structured data and the generated social images.","name":"SEO and social images","url":"https://sanity-nuxtui.vercel.app/id/docs/seo-and-social-images","isPartOf":{"@id":"https://sanity-nuxtui.vercel.app/#website"},"potentialAction":[{"@type":"ReadAction","target":["https://sanity-nuxtui.vercel.app/id/docs/seo-and-social-images"]}]},{"@id":"https://sanity-nuxtui.vercel.app/#identity","@type":"Organization","name":"Sanity × Nuxt UI","url":"https://sanity-nuxtui.vercel.app"},{"@id":"https://sanity-nuxtui.vercel.app/id/docs/seo-and-social-images#article","@type":"Article","dateModified":"2026-10-16T02:29:18Z","description":"Meta tags, sitemap, robots, structured data and the generated social images.","headline":"SEO and social images","inLanguage":"en","thumbnailUrl":"https://sanity-nuxtui.vercel.app/_og/d/c_Page%2Ctitle_SEO%2Band%2Bsocial%2Bimages%2Cdescription_~TWV0YSB0YWdzLCBzaXRlbWFwLCByb2JvdHMsIHN0cnVjdHVyZWQgZGF0YSBhbmQgdGhlIGdlbmVyYXRlZCBzb2NpYWwgaW1hZ2VzLg%2Cheadline_Docs%2CsiteName_~U2FuaXR5IMOXIE51eHQgVUk%2Cp_Ii9pZC9kb2NzL3Nlby1hbmQtc29jaWFsLWltYWdlcyI%2Cs_6xHOCQP0pGNJ03Fj.png","author":{"@id":"https://sanity-nuxtui.vercel.app/#identity"},"image":{"@id":"https://sanity-nuxtui.vercel.app/#/schema/image/1"},"isPartOf":{"@id":"https://sanity-nuxtui.vercel.app/id/docs/seo-and-social-images#webpage"},"mainEntityOfPage":{"@id":"https://sanity-nuxtui.vercel.app/id/docs/seo-and-social-images#webpage"},"publisher":{"@id":"https://sanity-nuxtui.vercel.app/#identity"}},{"@id":"https://sanity-nuxtui.vercel.app/#/schema/image/1","@type":"ImageObject","contentUrl":"https://sanity-nuxtui.vercel.app/_og/d/c_Page%2Ctitle_SEO%2Band%2Bsocial%2Bimages%2Cdescription_~TWV0YSB0YWdzLCBzaXRlbWFwLCByb2JvdHMsIHN0cnVjdHVyZWQgZGF0YSBhbmQgdGhlIGdlbmVyYXRlZCBzb2NpYWwgaW1hZ2VzLg%2Cheadline_Docs%2CsiteName_~U2FuaXR5IMOXIE51eHQgVUk%2Cp_Ii9pZC9kb2NzL3Nlby1hbmQtc29jaWFsLWltYWdlcyI%2Cs_6xHOCQP0pGNJ03Fj.png","inLanguage":"en","url":"https://sanity-nuxtui.vercel.app/_og/d/c_Page%2Ctitle_SEO%2Band%2Bsocial%2Bimages%2Cdescription_~TWV0YSB0YWdzLCBzaXRlbWFwLCByb2JvdHMsIHN0cnVjdHVyZWQgZGF0YSBhbmQgdGhlIGdlbmVyYXRlZCBzb2NpYWwgaW1hZ2VzLg%2Cheadline_Docs%2CsiteName_~U2FuaXR5IMOXIE51eHQgVUk%2Cp_Ii9pZC9kb2NzL3Nlby1hbmQtc29jaWFsLWltYWdlcyI%2Cs_6xHOCQP0pGNJ03Fj.png"}]}
```

## Sitemap

See the full [sitemap](https://sanity-nuxtui.vercel.app/sitemap.md) for all pages.
