Introduction
Page titles, meta descriptions, canonical URLs, robots, Open Graph / X cards, JSON-LD and XML sitemaps for ExpressionEngine 7.5+ (PHP 8.2+). Built for sites that use Structure for their page tree.
MetaCraft outputs nothing until a template uses {exp:metacraft:head}. It never edits templates, Structure data, SEO Lite data or channel entries.
How values are chosen
Every value is resolved from the most specific source that has one:
| Order | Source | Badge |
|---|---|---|
| 1 | Template tag parameter ({exp:metacraft:head title="…"}) |
Template |
| 2 | The entry's SEO tab override | Custom |
| 3 | A mapped channel field (e.g. a "Summary" field used as the description) | Mapped |
| 4 | Channel defaults | Channel |
| 5 | Global defaults | Global |
| 6 | Automatic (entry title, entry URL, current page URL) | Auto |
Channel-level sources (2–4) only apply in channels that are enabled in MetaCraft. Entries in other channels — and pages that aren't entries at all — use template parameters, global defaults and automatic values.
The same resolver drives the head tag, the publish-tab preview, the sitemap and the audit, so they always agree.
The control panel
Add-Ons → MetaCraft SEO has four screens: Overview, Content SEO, Sitemap and Settings, plus Documentation: this guide, with search, for everyone who can open MetaCraft. Settings and Sitemap changes need a MetaCraft admin (Permissions). Other roles don't see Settings in the sidebar and get a read-only Sitemap.

The Overview: totals, what needs attention, and the sitemap’s status.
CP links carry EE's session in the URL (&S=…). Open screens from the sidebar or from links inside MetaCraft. A bookmarked or pasted CP URL without a valid session asks you to log in again.