Skip to content
Joshua Parker edited this page Jun 12, 2026 · 3 revisions

Simple SEO is an SEO management suite for Devflow CMS. It supports themes, Page Builder pages, content types, products, homepage SEO, custom routes, and multisite installations.


Table of Contents

  1. Overview
  2. Installation
  3. Theme and Layout Requirements
  4. Initial Setup
  5. Settings Overview
  6. Global SEO Settings
  7. Homepage SEO
  8. Webmaster Tools
  9. Schema Settings
  10. Social Metadata
  11. Sitemaps
  12. Robots.txt
  13. IndexNow
  14. Google Search Console
  15. Manual Indexing
  16. Google Analytics and Google Tag Manager
  17. Content SEO
  18. Product SEO
  19. Page SEO
  20. Custom SEO Route
  21. Redirect Manager
  22. 404 Monitor
  23. Crawl Diagnostics
  24. Import and Export
  25. Multisite Support
  26. Uninstall and Cleanup
  27. Troubleshooting
  28. Developer Notes
  29. Recommended QA Checklist

Overview

Simple SEO helps Devflow developers and site owners manage SEO from one plugin while preserving Devflow's developer-first flexibility.

The plugin supports SEO metadata for:

  • Homepage
  • Content Types
  • Products
  • Page Builder pages
  • Custom framework routes
  • Theme-driven routes
  • Plugin routes

It also includes technical SEO features:

  • Runtime XML sitemaps
  • Runtime robots.txt
  • Redirect Manager
  • 404 Monitor
  • Crawl Diagnostics
  • Manual indexing submissions
  • IndexNow support
  • Google Search Console OAuth support
  • Google Analytics 4 support
  • Google Tag Manager support
  • Schema.org JSON-LD generation
  • Import/export settings

Installation

Install and activate Simple SEO like any other Devflow plugin:

php codex plugin:install getdevflow/simple-seo

After activation, the Simple SEO menu becomes available in the Devflow admin area.

Typical admin sections include:

  • Settings
  • Indexing
  • Redirect Manager
  • 404 Monitor
  • Custom Routes

alt="Simple SEO admin menu"


Theme and Layout Requirements

Simple SEO outputs metadata and frontend integration through Devflow helper functions. Themes and layouts should include the following helpers in the correct locations.

Head Helper

Place this before the closing </head> tag:

<?php App\Shared\Helpers\cms_head(); ?>

Used for:

  • SEO meta tags
  • Canonical tags
  • Open Graph tags
  • Twitter Card tags
  • Schema.org JSON-LD
  • Google Tag Manager head loader
  • Other enqueued CSS and/or Javascript

Body Open Helper

Place this immediately after the opening <body> tag:

<body>
<?php App\Shared\Helpers\cms_body_open(); ?>

Used for:

  • Google Tag Manager body placement support
  • Future integrations that must load near the top of the body

Footer Helper

Place this before the closing </body> tag:

<?php App\Shared\Helpers\cms_footer(); ?>
</body>

Used for:

  • Google Analytics footer loader
  • Footer scripts registered by plugins
  • Other enqueued Javascripts

Recommended Layout Example

<!doctype html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">

    <?php App\Shared\Helpers\cms_head(); ?>
</head>
<body>
    <?php App\Shared\Helpers\cms_body_open(); ?>

    <?= $content ?? ''; ?>

    <?php App\Shared\Helpers\cms_footer(); ?>
</body>
</html>

Initial Setup

After activating the plugin, review these areas first:

  1. Open Simple SEO → Settings.
  2. Configure global site name and title separator.
  3. Configure homepage SEO.
  4. Configure organization or site identity schema.
  5. Enable desired sitemap types.
  6. Configure robots.txt.
  7. Configure IndexNow or Google Search Console if needed.
  8. Configure Google Analytics or Google Tag Manager if needed.
  9. Visit the Crawl Diagnostics panel to verify what's successful.

Settings Overview

The settings screen contains multiple tabs and asides:

  • Global
  • Homepage
  • Webmaster
  • Indexing
  • Schema
  • Sitemaps
  • Robots.txt
  • Crawl Diagnostics
  • Import/Export Settings
  • Url Indexing

Global SEO Settings

Global settings provide default values used across the site when entity-specific SEO fields are empty.

Common settings include:

  • Site name
  • Title separator
  • Default title template
  • Default meta description
  • Default social image

Title Template

A title template may use placeholders such as:

{title} {separator} {site_name}

Example output:

About Devflow - Devflow CMS

alt="Simple SEO dashboard or settings overview"


Homepage SEO

Homepage SEO controls metadata for theme-rendered homepages and fallback homepage output.

Settings may include:

  • Homepage title
  • Homepage description
  • Homepage schema type
  • Homepage robots directives

If the homepage is powered by a Page Builder page, the Page SEO settings can take precedence over the Homepage tab. If the homepage is theme-driven, the Homepage tab is used.

Homepage Robots

Homepage robots settings include:

  • Allow indexing
  • Allow following links
  • No archive
  • No snippet

Recommended public defaults:

index,follow

alt="Homepage SEO settings"


Webmaster Tools

Simple SEO supports verification fields such as:

  • Google site verification
  • Bing verification
  • Yandex verification

These are output in the <head> area when configured.

alt="Webmaster Tools"


Schema Settings

Simple SEO generates Schema.org JSON-LD markup for pages, content, products, homepage, and custom routes.

Organization / Site Identity

The Schema tab can define the site identity node.

Supported identity types may include:

  • Organization
  • Person
  • LocalBusiness
  • Corporation
  • EducationalOrganization
  • NGO

Common fields:

  • Organization/person name
  • URL
  • Logo or image

Example generated identity node:

{
  "@id": "https://example.com/#organization",
  "@type": "Organization",
  "name": "Example Site",
  "url": "https://example.com/",
  "logo": "https://example.com/logo.png"
}

If the identity type is Person, the image field is used instead of logo.

Homepage Schema

Homepage output commonly includes:

  • WebSite
  • WebPage

Example:

{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "WebSite",
      "@id": "https://example.com/#website",
      "url": "https://example.com/",
      "name": "Example Site"
    },
    {
      "@type": "WebPage",
      "@id": "https://example.com/#webpage",
      "url": "https://example.com/",
      "name": "Home",
      "isPartOf": {
        "@id": "https://example.com/#website"
      }
    }
  ]
}

Content Schema

Content types can use schema types such as:

  • Article
  • BlogPosting
  • NewsArticle
  • WebPage

Article output usually includes:

  • headline
  • description
  • datePublished
  • dateModified
  • author
  • mainEntityOfPage
  • WebPage node
  • site identity node when configured

Product Schema

Product output usually includes:

  • Product node
  • name
  • description
  • SKU
  • image
  • offers
  • price
  • currency
  • availability
  • WebPage node

Custom Schema JSON

Each entity's SEO form can include custom schema JSON. Use this when the generated schema is not specific enough.

Do not include the <script> tag. Enter only valid JSON.

Example Article override:

{
  "@type": "Article",
  "headline": "Introducing Devflow CMS",
  "description": "A modern content management framework for PHP developers.",
  "author": {
    "@type": "Person",
    "name": "Joshua Parker"
  },
  "datePublished": "2026-06-10T10:00:00-06:00",
  "dateModified": "2026-06-10T10:00:00-06:00"
}

Example FAQPage override:

{
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "name": "What is Devflow CMS?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Devflow CMS is a developer-focused content management framework."
      }
    }
  ]
}

alt="Webmaster Tools"


Social Metadata

Simple SEO supports Open Graph and Twitter Card metadata.

Common fields include:

  • Facebook/Open Graph title
  • Facebook/Open Graph description
  • Facebook/Open Graph image
  • Twitter title
  • Twitter description
  • Twitter image

If social fields are empty, Simple SEO falls back to:

  1. Entity-specific SEO values
  2. Featured image or entity image
  3. Default social image from global settings

Generated tags may include:

<meta property="og:title" content="...">
<meta property="og:description" content="...">
<meta property="og:image" content="...">
<meta property="og:url" content="...">
<meta name="twitter:card" content="summary_large_image">
<meta property="twitter:url" content="...">

Sitemaps

Simple SEO generates XML sitemaps at runtime. There is no sitemap file to regenerate.

Common sitemap URLs:

/sitemap.xml
/sitemap-content.xml
/sitemap-products.xml
/sitemap-pages.xml
/sitemap-content-{type}.xml

Available sitemap types may include:

  • Content sitemap
  • Product sitemap
  • Page sitemap
  • Content type sitemaps

If no sitemaps are enabled, /sitemap.xml should return a 404 or disabled response rather than an empty sitemap index.

If a sitemap is enabled but has no data, it should not be included in the sitemap index.

Sitemap Presentation

Simple SEO includes XSL styling for XML sitemap presentation.

alt="XML sitemap settings"

alt="XML sitemap in browser"


Robots.txt

Simple SEO can generate robots.txt dynamically.

Typical output:

User-agent: *
Allow: /

Sitemap: https://example.com/sitemap.xml

If indexing is disabled:

User-agent: *
Disallow: /

The sitemap line is only included when at least one sitemap is enabled.

Multisite Behavior

Because robots.txt is generated at runtime, each site or subsite can output its own robots rules based on its own settings.

Examples:

https://example.com/robots.txt
https://blog.example.com/robots.txt
https://site2.example.com/robots.txt

alt="robots.txt settings"


IndexNow

Simple SEO supports IndexNow for fast URL submission to supported search engines.

IndexNow can be used for:

  • Single URL submission
  • Bulk URL submission
  • Sitemap submission

Supported search engines include IndexNow-compatible providers such as Bing and others.

Setup

  1. Enable IndexNow.
  2. Enter or generate an IndexNow key.
  3. Confirm the key file or key route is accessible if your implementation requires it.
  4. Submit a test URL.

alt="indexNow settings"


Google Search Console

Simple SEO supports Google Search Console using OAuth.

Setup Steps

  1. Create Google OAuth credentials in Google Cloud Console.
  2. Add the Client ID and Client Secret in Simple SEO.
  3. Configure the redirect/callback URL exactly by replacing your domain name: https://example.com/admin/plugin/simple-seo/google/callback/.
  4. Save settings.
  5. Click the Connect Google button.
  6. Approve the OAuth request.
  7. Configure the Search Console Property.

Search Console Property Format

The Search Console property must match the property in the connected Google account.

URL-prefix property examples:

https://example.com/
https://site.eample.com/

Domain property example:

sc-domain:example.com

If your Search Console account uses a Domain Property, use the sc-domain: format.

A domain property covers subdomains and protocols such as:

https://example.com/
https://blog.example.com/
http://site2.example.com/

Common 403 Error

If you see:

Search Console request failed with HTTP 403.
User does not have sufficient permission for site.

Check that the configured property exactly matches a Search Console property available to the connected Google account.

For example, if this fails:

https://example.com/

try the domain property:

sc-domain:example.com

alt="Google Search Console settings"


Manual Indexing

The Indexing screen allows manual submission of URLs and sitemaps.

Supported actions:

  • Submit one URL
  • Submit multiple URLs
  • Submit sitemap
  • Submit to IndexNow
  • Submit to Google
  • Submit to both engines

The response alert shows success only when at least one submission succeeds. If all configured engines fail, an error will be displayed.

alt="Manual indexing screen"


Google Analytics and Google Tag Manager

Simple SEO supports settings-based Google Analytics and Google Tag Manager integration.

Google Analytics 4

Configure:

Measurement ID: G-XXXXXXXXXX

Google Analytics is loaded through Devflow's frontend asset/action system.

Google Tag Manager

Configure:

Container ID: GTM-XXXXXXX

GTM head support uses the cms_head hook. GTM body placement support uses the cms_body_open hook.

alt="Manual indexing screen"


Content SEO

Simple SEO adds SEO fields to Devflow content editing screens.

Common fields:

  • Meta title
  • Meta description
  • Canonical URL
  • Robots directives
  • Open Graph fields
  • Twitter Card fields
  • Schema type
  • Custom schema JSON
  • Redirect settings
  • SEO analysis

Canonical URL

The canonical field may be left empty. When empty, Simple SEO generates the canonical URL automatically from the resolved content URL.

Only enter a canonical URL manually when you need to override the generated value.

Redirects on Slug Change

When content slug changes, Simple SEO can create a redirect from the old URL to the new URL.

alt="Content SEO tab"

The SEO tab is the same for content, product, page, and custom SEO routes.


Product SEO

Simple SEO supports SEO fields for Devflow products.

Common fields:

  • Product meta title
  • Product meta description
  • Canonical URL
  • Robots directives
  • Social metadata
  • Product schema
  • Redirect settings

Product schema can include:

  • Product name
  • Description
  • SKU
  • Image
  • Offer
  • Price
  • Currency
  • Availability

Page SEO

Simple SEO supports Page Builder pages.

Page SEO includes:

  • Meta title
  • Meta description
  • Canonical URL
  • Robots directives
  • Social metadata
  • Schema type
  • Custom schema JSON
  • Redirect settings

Multilingual Page Routes

A page can have multiple translations and multiple routes, such as:

<input name="route[en]" value="/contact">
<input name="route[es]" value="/contact/es">

Simple SEO uses the main/default route for canonical preview and generated canonical behavior. For the other routes, you can use Custom SEO Routing.

Page Homepage

If a Page Builder page is used as the homepage, Page SEO can override Homepage tab settings.


Custom SEO Route

Custom SEO Route allows you to define SEO metadata for routes that are not managed by Devflow Pages, Content, Products, or a theme.

This is useful for Devflow as a framework because developers may build custom routes, custom controllers, or create plugin-driven pages that do not have a defined entity.

Examples:

/pricing/
/features/
/developers/docs/
/account/login/
/account/register/
/custom-plugin-page/

Custom SEO Route can define:

  • Route path
  • Route label
  • Enabled/disabled status
  • Meta title
  • Meta description
  • Canonical URL
  • Robots directives
  • Social metadata
  • Schema type
  • Custom schema JSON

SEO Resolution Priority

Simple SEO resolves metadata in this order:

  1. Content, Product, Page, or Homepage SEO
  2. Custom SEO Route
  3. Global defaults

This ensures entity-specific SEO always wins, while custom framework routes can still be optimized.

alt="Custom SEO Route list"

alt="Custom SEO Route edit form"


Redirect Manager

The Redirect Manager creates real HTTP redirects, not router rewrites.

This means when a user visits an old URL:

/old-url/

The browser is redirected to:

/new-url/

with the configured HTTP status code.

Supported status codes:

  • 301 Permanent Redirect
  • 302 Temporary Redirect
  • 307 Temporary Redirect
  • 308 Permanent Redirect

Features

  • Manual redirects
  • Entity-linked redirects
  • Redirect editing
  • Enable/disable redirects
  • Delete redirects
  • Bulk actions
  • Search
  • Filters
  • Hit tracking
  • Redirect analytics
  • Redirect chain warnings
  • Redirect loop prevention

Redirect Chains

A redirect chain happens when:

/contact-us/ → /contact/
/contact/ → /about-me/

This is valid but not ideal. Simple SEO warns when a redirect points to another redirect.

Recommended cleanup:

/contact-us/ → /about-me/
/contact/ → /about-me/

Redirect Loops

Simple SEO prevents loops such as:

/contact/ → /contact/

or:

/a/ → /b/
/b/ → /a/

alt="Redirect Manager"


404 Monitor

The 404 Monitor tracks missing/broken URLs and helps convert them into redirects.

Features:

  • Automatic 404 logging
  • Hit counts
  • First seen date
  • Last seen date
  • Referrer tracking
  • User agent tracking
  • Create redirect from 404
  • Ignore 404s
  • Restore ignored 404s
  • Bulk actions

Common Workflow

  1. Open the 404 Monitor.
  2. Review active 404s.
  3. Create redirects for valid old URLs.
  4. Ignore noise or irrelevant URLs.
  5. Bulk delete entries when no longer needed.

alt="04 Monitor"

alt="404 Redirect"


Crawl Diagnostics

Crawl Diagnostics provides a quick overview of SEO health.

Checks and metrics may include:

  • robots.txt reachable
  • sitemap.xml reachable
  • active sitemap count
  • published content count
  • published page count
  • published product count
  • redirect count
  • active redirects
  • redirect hit count
  • 404 count
  • IndexNow configured
  • Google OAuth connected
  • Search Console property configured

alt="Crawl Diagnostics"


Import and Export

Simple SEO supports importing and exporting settings as JSON.

Use this for:

  • Moving settings between environments
  • Backing up configuration
  • Copying settings between subsites
  • Reusing SEO defaults

OAuth tokens are not exported.

Export may include:

  • Global settings
  • Homepage settings
  • Schema settings
  • Sitemap settings
  • Robots settings
  • Tracking settings
  • Indexing settings

Excluded values may include:

  • OAuth access tokens
  • OAuth refresh tokens
  • Token expiration values

alt="Import and Export settings"


Multisite Support

Simple SEO is designed to work with Devflow multisite.

Per-site data includes:

  • Settings
  • Redirects
  • 404 logs
  • Route SEO records
  • Sitemap settings
  • robots.txt settings
  • Tracking settings
  • Indexing settings

Each site can have its own SEO behavior.

Search Console Domain Properties

For multisite installations under the same root domain, a Search Console Domain Property is recommended.

Example:

sc-domain:example.com

This can cover:

https://example.com/
https://blog.example.com/
https://docs.example.com/

Uninstall and Cleanup

Simple SEO supports cleanup when deactivated if the Remove Settings option is enabled.

Cleanup may remove:

  • Plugin settings
  • Redirect tables
  • 404 monitor tables
  • Custom SEO Route tables
  • SEO attributes from content
  • SEO attributes from products
  • SEO attributes from pages

This cleanup is per-site in multisite environments.


Troubleshooting

Meta tags are not showing

Check that your theme includes:

<?php App\Shared\Helpers\cms_head(); ?>

before </head>.

Google Search Console returns 403

The configured Search Console property does not match a property available to the connected Google account.

Try using the exact Search Console property value:

sc-domain:example.com

or:

https://example.com/

depending on your Search Console property type.

Sitemap is empty

Check that at least one sitemap type is enabled and that the selected content type has published data.

robots.txt does not include sitemap

Simple SEO only includes the sitemap line when at least one sitemap is enabled.


Developer Notes

SEO Resolution Order

Recommended resolution order:

  1. Page SEO
  2. Content SEO
  3. Product SEO
  4. Homepage SEO
  5. Custom SEO Route
  6. Global defaults

Custom SEO Route should not override actual entity SEO.

Canonical URLs

Canonical URLs should remain empty unless manually overridden. When empty, Simple SEO generates canonical URLs from the resolved entity URL.

Schema Graph Model

Recommended graph model:

Homepage:

WebSite
WebPage
Organization/Person/LocalBusiness optional

Content article:

Article
WebPage
Organization/Person/LocalBusiness optional

Product:

Product
WebPage
Organization/Person/LocalBusiness optional

Page:

WebPage
Organization/Person/LocalBusiness optional

Recommended QA Checklist

Before pushing your Devflow CMS site to production, test these areas:

Homepage

  • Theme homepage meta tags
  • Page Builder homepage meta tags
  • Homepage canonical
  • Homepage robots
  • Homepage schema

Content

  • Meta title
  • Meta description
  • Canonical generation
  • Social preview
  • Article schema
  • Redirect on slug change

Products

  • Product canonical
  • Product schema
  • Product social image
  • Redirect on slug change

Pages

  • Page canonical
  • Page schema
  • Page routes
  • Redirect on route change

Custom Routes

  • Route SEO list
  • Create route SEO
  • Edit route SEO
  • Disable route SEO
  • Delete route SEO
  • Frontend output

Sitemaps

  • Sitemap index
  • Content sitemap
  • Product sitemap
  • Page sitemap
  • Disabled sitemap behavior
  • Empty sitemap behavior

robots.txt

  • Enabled output
  • Disabled output
  • Sitemap line behavior
  • Multisite behavior

Redirect Manager

  • Create redirect
  • Edit redirect
  • Enable/disable redirect
  • Delete redirect
  • Bulk actions
  • Chain warning
  • Loop prevention
  • True HTTP redirect behavior

404 Monitor

  • 404 logging
  • Ignore
  • Restore
  • Delete
  • Bulk actions
  • Create redirect

Indexing

  • IndexNow URL submission
  • IndexNow sitemap submission
  • Google Search Console connection
  • Google sitemap submission

Tracking

  • GA4 script
  • GTM script
  • Hook placement

Import/Export

  • Export settings
  • Import settings
  • Tokens excluded

Uninstall

  • Settings removed when enabled
  • Tables dropped when enabled
  • Content SEO attributes removed
  • Product SEO attributes removed
  • Page SEO attributes removed
  • Multisite cleanup works per site

Summary

Simple SEO gives Devflow CMS a complete SEO foundation while preserving the flexibility developers expect from a framework-oriented CMS.

It supports traditional content-driven websites, product catalogs, Page Builder sites, theme-based sites, custom routes, and hand-coded applications without forcing every URL into one entity type.

For developers building serious Devflow projects, Simple SEO provides the tools needed for optimizing your website and content.