Bỏ qua để đến nội dung
SEO & redirects Plugin-free SEO — titles, social cards, schema and sitemaps — plus 301/302/410 redirects and a 404 monitor, all enforced by the agent.

SEO & redirects

Nội dung này hiện chưa có sẵn bằng ngôn ngữ của bạn.

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.

  1. Open SEO from the site rail. You land on the Titles & Meta tab.
  2. 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.
  3. Set the Default robots flags (Index / Follow / No archive / No image index) per type, and choose a title Separator.
  4. On Social, pick a Default social image (1200 × 630, the OG/Twitter fallback) and the X (Twitter) card type.
  5. 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).
  6. 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).
  7. 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.)
  • 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.

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:

ActionMethod + pathWhat the agent does
Health chipsGET overviewcounts indexable / missing-desc / noindexed
Load / save settingsGET/PUT settingsreads/writes the mzp_seo_settings option
Robots editorGET/PUT robotsreads/writes the managed robots.txt
SitemapGET sitemap/status, POST sitemap/rebuildserves + rebuilds the cached XML
RedirectsGET/POST redirects, PUT/DELETE redirects/<id>CRUD on rules
Bulk redirectsPOST redirects/bulkset-code / enable / disable / delete
404 monitorGET log404, POST log404/<id>/ignore, DELETE log404/<id>list + triage
ImportPOST importdry-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.

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:

Terminal window
mz wp <domain> seo GET overview --json # health chips
mz wp <domain> seo GET settings --json # the full SEO settings option
mz wp <domain> seo GET redirects --json # every redirect rule
mz wp <domain> seo GET log404 --json # the 404 monitor
mz wp <domain> seo POST sitemap/rebuild --json # rebuild the XML sitemap

Writes take a JSON body, e.g. create a redirect:

Terminal window
mz wp <domain> seo POST redirects \
--data '{"source":"/old-page","target":"/new-page","match":"exact","code":301,"status":"active"}' --json

Pass --json for machine output. See The mz CLI and the command catalog.

  • 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.txt toggle 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.