# Edit Elementor pages

> Read an Elementor page like the Navigator, change texts, links and images by element id with a dry run, and undo the edit. New in PowerWP AI 1.6.

Since PowerWP AI 1.6, your AI app can read the structure of an Elementor page the way the editor's Navigator shows it, and change texts, links, images and other settings by element id. Edits are saved through Elementor itself, with a dry run first and a one-step undo.

## What you need

- **Read-only diagnostics** to read pages (`elementor_outline`).
- **Content & store data** to edit them (`elementor_edit`, and Elementor's page abilities through `ability_run`).
- **Settings & maintenance** for Elementor's global styles: classes, variables, default styles and components. A change there reaches every page that uses them.
- Elementor must be active. The Elementor site pack of [recipes](/docs/concepts/recipes/) switches on by itself where it is the page builder.

## Before you start

- Tell your AI app which pages it must not edit without asking (the home page, header, footer, checkout, landing pages of running campaigns), and which colors and fonts new pages must use. The Elementor pack asks these two questions when you set up the [site memory](/docs/concepts/memory/).
- Classic Elementor pages (sections, columns, containers and widgets such as heading, text editor, button and icon box) are edited with `elementor_edit`. Atomic, "v4" elements in Elementor 4 are marked *atomic* in the outline and are edited with Elementor's own abilities.
- `elementor_edit` changes the live page at once. Set a checkpoint first, and ask to see the exact new texts before anything is applied.

## Steps

:::steps
1. **Read the page.** Give a page address, a title or an id.
   - Example prompt: `Show me the structure of the "Spring Sale" page at https://your-store.com/spring-sale/ in plain words: each section, what it says and where it links. Change nothing.`
   - Your AI app will use `content_query` or `page_check` to find the id, then `elementor_outline`. It shows every section, container and widget with its id, its type and its visible texts, links and images. It does not show styles. If someone has staged unpublished changes, the answer says so.
2. **Look at the elements you want to change.**
   - Example prompt: `Read all settings of the main heading and the main button.`
   - Your AI app will use `elementor_outline` with `element_id`, which returns all settings of that element and the names of the settings its widget knows.
3. **Agree the changes.** A table of element id, setting, current text and proposed text.
   - Example prompt: `Give me a table: element id, setting, current text, new text. Don't invent prices or claims. Wait for my OK on exactly these texts.`
   - A general "go ahead" does not cover texts you have not seen.
4. **Set a checkpoint and run a dry run.**
   - Example prompt: `Create a checkpoint called "before spring sale edit", then show me a dry run of the changes.`
   - Your AI app will use `checkpoint_create` and `elementor_edit` with `dry_run`, which returns the values before and after.
5. **Apply the changes.** The operations are `update` (only the keys given change), `replace_text` (an exact phrase), `remove`, `duplicate` (placed after the original) and `move` (into another container, at a position).
   - Example prompt: `Apply them.`
   - Your AI app will use `elementor_edit`. Elementor saves the page and rebuilds its CSS.
6. **Atomic (v4) elements and new pages.** Elementor's own abilities do the work, and PowerWP AI wraps them in the same safety layer.
   - Example prompt: `Change the heading of the atomic hero on the page, and give me a preview link. Don't publish it yet.`
   - Your AI app will use `abilities_list`, `ability_run` with `elementor/manage-elements` and `elementor/create-preview-link`. On a published page, Elementor stages the edit; it goes live only with `elementor/publish-document`, after your OK. A new page starts as a draft (`elementor/create-page`, then `elementor/build-composition`, with a dry run first).
7. **Check the page.**
   - Example prompt: `Check the page on the live site: headings, texts, images without alt text and errors from the last ten minutes.`
   - Your AI app will use `page_check` with `summary=true` and `error_log_read`.
:::

## Limits

- `elementor_outline` shows structure, not appearance. Look at the page yourself in a browser for the visual result.
- `elementor_edit` only changes settings that a widget knows. A setting name it does not know is refused, not guessed.
- Texts in editor widgets are stored as HTML. `replace_text` needs the text as it is stored.
- A page that is not built with Elementor is edited with `content_update` instead. See [Write and tidy content](/docs/guides/content/).
- Elementor's guides and resource abilities are read-only.
- Abilities that belong to other plugins are logged but cannot be rolled back automatically. Make a checkpoint or backup first for big changes.

## Check the result

- The dry run showed the exact before and after values, and the live page matches them.
- A staged edit leaves the live page as it was until it is published. The outline reports staged changes.
- **PowerWP AI › Changes** lists each edit with its change id, or the batch the answer names.

## How to undo

Ask for `changes_rollback` with the change id or the batch, or use **Roll back** in **Changes**. Elementor's CSS and the page cache are cleared again after the undo. An edit that was only staged is removed by undoing its batch. A page that visitors or you viewed after the edit still rolls back without force, because Elementor's own cache entries do not count as a later change.

Edits of global styles are snapshotted too: the active kit, the global classes and the components. Undoing one restores them for every page.

## Recipes that do this

The Elementor pack has four recipes: [elementor_page_outline](/docs/reference/recipes/#elementor_page_outline) describes a page, [elementor_edit_page](/docs/reference/recipes/#elementor_edit_page) changes it safely, [elementor_new_page](/docs/reference/recipes/#elementor_new_page) builds a new draft page in your site's style, and [elementor_design_review](/docs/reference/recipes/#elementor_design_review) finds hard-coded colors and fonts that should use global styles. For search texts on the page, add [page_seo_check](/docs/reference/recipes/#page_seo_check).

:::cards
- [SEO audit and fixes](/docs/guides/seo/) — Titles, headings and alt text.
- [Work safely on a live site](/docs/guides/safe-workflow/) — The routine behind these steps.
- [Site memory](/docs/concepts/memory/) — Protected pages and your design system.
- [Change log and undo](/docs/safety/undo/) — How rollbacks work.
:::

Source: https://powerwp.ai/docs/guides/elementor/
