SEO & redirects
Open a WordPress site and you get two SEO surfaces without installing a single plugin:
SEO (/sites/:srv/:dom/seo) for titles, meta, social cards, schema, sitemaps and
robots; and Redirects (/sites/:srv/:dom/seo-redirects) for 301/302/307/410 rules
and a 404 monitor. Everything is emitted and enforced by the mzpanel-agent
mu-plugin, so there’s no Yoast or Rank Math to install, update or slow the site down.
Available on all plans wherever the site’s server has a current agent.
Set up SEO, step by step
Section titled “Set up SEO, step by step”- Open SEO from the site rail. You land on the Titles & Meta tab.
- Pick a content type (Posts, Pages, Categories, Homepage…) and edit the
SEO title template and Meta description template. Insert variables like
%title%,%sitename%or%excerpt%from the chips — the Search appearance panel on the right previews the live Google snippet with title/description length meters (30-60 for titles, 120-160 for descriptions), and you can flip between Desktop and Mobile. - Set the Default robots flags (Index / Follow / No archive / No image index) per type, and choose a title Separator.
- On Social, pick a Default social image (1200 × 630, the OG/Twitter fallback) and the X (Twitter) card type.
- On Schema, choose whether the site represents an Organization or a Person and set the default JSON-LD schema per content type. On Knowledge graph, fill in the org/person name, URL, logo and social profiles (sameAs).
- On Sitemap & Robots, toggle which content types and taxonomies go into the XML
sitemap, and edit robots.txt (the
%sitemap_url%token is replaced with the live sitemap URL). - When anything changes, a Save changes bar appears at the bottom — save to write the whole settings option in one go. (The robots.txt editor has its own save.)
What else you can do
Section titled “What else you can do”- Take over from an existing SEO plugin. If Rank Math, Yoast, AIOSEO or SEOPress is active, MZPanel stands down and shows a banner. Click Import its data for a dry-run preview (scanned / mapped counts + a sample), then Import & apply, or Deactivate & take over to hand SEO to MZPanel.
- View the sitemap and Rebuild now — the agent serves a cached XML sitemap and auto-invalidates it on save.
- See the health chips at the top of the SEO page: Indexable, Missing description, Noindexed, and a combined Sitemap & robots status.
- Create redirects on the Redirects page — choose exact / wildcard / regex matching, a code (301 / 302 / 307 / 410 Gone), and enable/disable per rule. Filter by code or status, search source/target, and use the bulk dock to set a code, disable, or delete many at once.
- Turn dead URLs into redirects on the 404 monitor tab — each logged path shows hits, referer and first-seen; Create redirect prefills a new rule from that path, or Ignore it.
How it works
Section titled “How it works”Both pages drive a single job kind, wp.seo, which the API forwards to the site’s
agent. The agent calls the mu-plugin’s own REST namespace, mzpanel/v1/seo/<path>, and
returns the envelope verbatim:
| Action | Method + path | What the agent does |
|---|---|---|
| Health chips | GET overview | counts indexable / missing-desc / noindexed |
| Load / save settings | GET/PUT settings | reads/writes the mzp_seo_settings option |
| Robots editor | GET/PUT robots | reads/writes the managed robots.txt |
| Sitemap | GET sitemap/status, POST sitemap/rebuild | serves + rebuilds the cached XML |
| Redirects | GET/POST redirects, PUT/DELETE redirects/<id> | CRUD on rules |
| Bulk redirects | POST redirects/bulk | set-code / enable / disable / delete |
| 404 monitor | GET log404, POST log404/<id>/ignore, DELETE log404/<id> | list + triage |
| Import | POST import | dry-run preview or apply from Rank Math/Yoast/AIOSEO |
At request time the mu-plugin emits <title>, the meta description, og:* and
twitter:* tags, and a single linked JSON-LD @graph (WebSite → Organization/Person →
WebPage → per-type schema → BreadcrumbList) on every page. Settings live in the WordPress
mzp_seo_settings option; redirects and 404 hits live in the site’s own database. There
is no wp/v2 forward — the SEO namespace is called directly.
CLI & automation
Section titled “CLI & automation”Every action maps to the same mz command the dashboard drives — a wp … seo proxy
call. SSH into the box and run them directly, or let an on-box AI (ClaudeCode) run them:
mz wp <domain> seo GET overview --json # health chipsmz wp <domain> seo GET settings --json # the full SEO settings optionmz wp <domain> seo GET redirects --json # every redirect rulemz wp <domain> seo GET log404 --json # the 404 monitormz wp <domain> seo POST sitemap/rebuild --json # rebuild the XML sitemapWrites take a JSON body, e.g. create a redirect:
mz wp <domain> seo POST redirects \ --data '{"source":"/old-page","target":"/new-page","match":"exact","code":301,"status":"active"}' --jsonPass --json for machine output. See The mz CLI and the
command catalog.
Gotchas & troubleshooting
Section titled “Gotchas & troubleshooting”- Needs a current agent. SEO runs through the mu-plugin’s engine. On an older fleet binary the page degrades to an “update the agent” card instead of a broken view — update the agent and retry.
- Only one SEO engine at a time. If Rank Math/Yoast/AIOSEO/SEOPress is active, MZPanel deliberately stops emitting tags to avoid duplicates. Import the plugin’s data and deactivate it (or keep the plugin) — don’t run both.
- Import is one-way and non-destructive. Applying copies mapped data into MZPanel SEO; it never edits the source plugin, and it’s a dry-run preview until you click apply.
- 410 Gone has no target. Picking code 410 serves an empty body — the target field disappears because none is needed.
- A manual 404 fix is a real redirect. “Create redirect” from the 404 monitor just prefills the source path; you still choose the target and code and save.
- IndexNow and llms.txt are backend-only for now. The settings model supports an
IndexNow key and an
llms.txttoggle and the agent honors them, but the current dashboard tabs (Titles · Social · Schema · Sitemap & Robots · Knowledge graph) don’t yet surface a switch for either. - Offline servers. Reads render from the last state; saving, importing and rebuilding the sitemap need the agent online.
Related
Section titled “Related”- Site overview — the per-site health cockpit.
- WP & AI content — posts, pages and per-post SEO.
- The mz CLI — driving a site from the command line.