SEO and plugin contracts
SEO and plugin contracts
Responsibilities
The theme defines content, semantic HTML and presentation. GrowSite controls plugin access, public data, form submissions and the HTML document. Do not add a custom comment submission script, a second form handler or a manual head inside a Loom section.
| Feature | Identifier | Requirements |
|---|---|---|
| Blog | blog |
Workspace plugin and theme blog support |
| Comments | comments |
Blog, active Comments and permission on the post |
| Contact form | contact-form |
Plugin and an active instance belonging to the site |
| Basic SEO | seo.core |
Built into GrowSite |
| SEO Pro | seo-pro |
Workspace access to Pro features |
Basic SEO
Set the page title, description, sharing image and indexing in the panel. Without a custom title, GrowSite combines the page title and site name. Default descriptions come from content or site configuration. For predictable results on important pages, enter a specific description.
Page SEO data includes title, description, og_image, canonical, index. These are not automatically section.settings: adding a Loom setting named seo_title does not change document metadata. The backend generates title, description, canonical, robots and sharing metadata, and the renderer puts them into the document. Canonical URLs must belong to the correct site domain. Drafts should not be indexed.
SEO Pro
SEO Pro provides seo.advanced, seo.audit, seo.redirects, seo.monitor. The backend decides access from the workspace plugin. A theme cannot activate these through schema, and must not hide ordinary content when Pro is disabled. Basic SEO remains available. Manage audit results and redirects through the panel, not Loom files.
Blog and forms
For an article, GrowSite reads post SEO, sets a canonical containing ?post=slug and uses the article sharing type. See Blog for page roles. The article title should be the main heading; do not wrap the ready-made article component with a second H1.
Embed contact forms through gs-form or a canvas form element. Instance IDs belong to a specific site; foreign or inactive instances must not work. See Forms for exact field configuration and request data.
Final checks
Inspect the rendered document source: one title, the expected description, the correct canonical domain and no draft indexing. Check image ALT text and a logical H1/H2 hierarchy. Test enabled and disabled plugins. SEO Pro must not be required for ordinary links, text, forms or menus. Never put private API keys in theme assets or package settings.