---
title: "Overview"
description: "API reference for useHead(), useSeoMeta(), and useScript(), plus DOM and SSR rendering hooks with TypeScript signatures."
canonical_url: "https://unhead.unjs.io/docs/head/api/get-started/overview"
last_updated: "2026-08-08T23:23:02.144Z"
---

Use `useHead()` for general head management, `useSeoMeta()` for SEO tags, and `useScript()` for script loading. The head composables return an entry with `patch()` and `dispose()`; `useScript()` returns a script controller.

## Composables

<div className="grid,grid-cols-2,gap-5">
<u-page-card :spotlight="true" description="The main composable for managing head tags." spotlight-color="primary" title="useHead()" to="/docs/head/api/composables/use-head">



</u-page-card>

<u-page-card :spotlight="true" description="Restrictive filtering for untrusted head input." spotlight-color="primary" title="useHeadSafe()" to="/docs/head/api/composables/use-head-safe">



</u-page-card>

<u-page-card :spotlight="true" description="A composable for managing SEO-related tags." spotlight-color="primary" title="useSeoMeta()" to="/docs/head/api/composables/use-seo-meta">



</u-page-card>

<u-page-card :spotlight="true" description="A composable for loading and managing external scripts." spotlight-color="primary" title="useScript()" to="/docs/head/api/composables/use-script">



</u-page-card>
</div>

## Plugins

See the [Plugins API](/docs/head/api/plugins) for creating custom plugins with `defineHeadPlugin`.

## Hooks

### Entry Hooks

- [entries:updated](/docs/head/api/hooks/entries-updated): Called after client entries change
- [entries:resolve](/docs/head/api/hooks/entries-resolve): Called before the entry snapshot is resolved to tags
- [entries:normalize](/docs/head/api/hooks/entries-normalize): Called after one entry has been normalized to tags

### Tag resolution

- [tag:normalise](/docs/head/api/hooks/tag-normalise): Reserved legacy hook; currently not emitted
- [tags:beforeResolve](/docs/head/api/hooks/tags-before-resolve): First hook over the resolved, deduplicated tag set
- [tags:resolve](/docs/head/api/hooks/tags-resolve): Called after `tags:beforeResolve`
- [tags:afterResolve](/docs/head/api/hooks/tags-after-resolve): Final tag-resolution hook before rendering

### DOM rendering

- [dom:beforeRender](/docs/head/api/hooks/dom-before-render): Called before resolving and rendering to the DOM (synchronous)

### Server rendering

- [ssr:beforeRender](/docs/head/api/hooks/ssr-before-render): Called before server-side rendering
- [ssr:render](/docs/head/api/hooks/ssr-render): Called after tags resolve but before serialization
- [ssr:rendered](/docs/head/api/hooks/ssr-rendered): Called with the final SSR payload

### Script loading

- [script:updated](/docs/head/api/hooks/script-updated): Internal hook emitted for script lifecycle status changes
