# willo_page_meta_write

> Set the SEO settings of up to 25 of the site's own pages in one commit: pages: [{path, title?, description?, noindex?, canonical?, og_title?…

Generated from Willo's code at each release.

Source: https://www.willo.ai/docs/reference/mcp-tools/willo-page-meta-write

**Set page SEO settings.** Set the SEO settings of up to 25 of the site's own pages in one commit: `pages: [{path, title?, description?, noindex?, canonical?, og_title?, og_description?, og_image?, jsonld?}]`. Send only the fields to change; null resets one to the site default. `jsonld` is typed: {faq: [{q, a}], breadcrumbs: true, local_business: {type, telephone, streetAddress, …}} — never raw JSON-LD. Changing `noindex` or `canonical` on any page needs a person's approval (`pending_approval` + link; call again with the same arguments after); the rest runs without a card. Lands on `draft` while drafting, else on `main` with a deploy. Fields this site's layout does not render are named in the reply and not written. Dynamic routes and CMS items are refused with where to set them instead.

## Access

- **Token**: read + act, and editor access or higher on the business.
- **Approval**: Only when Willo's chat would stop for the same action. The description says when; otherwise the call runs at once.
- **Secret scan**: refused if the new content holds a value shaped like an API key or token.
- **Metered**: counts toward a per-business, per-minute limit for this kind of call. See [Limits](https://www.willo.ai/docs/reference/limits).

## Parameters

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `pages` | object[] | yes | One entry per page: its `path` plus the fields to change. |
| `summary` | string | no | One plain sentence for the owner, shown in the history and on the card. |

## Related

- [All MCP tools](https://www.willo.ai/docs/reference/mcp-tools)
- [Error codes](https://www.willo.ai/docs/reference/errors)
- [Draft and live](https://www.willo.ai/docs/ai-agents/draft-and-live)
