SEO Pro Icon

SEO Pro

SEO Pro Main Screenshot
SEO Pro is the all-in-one SEO toolkit for Statamic: meta tags, Open Graph, structured data, sitemaps, redirects, 404 tracking, and reporting that grades your whole site. One addon. No template gymnastics.

What you get with SEO Pro

  • Reports + grading + queueable runs
  • Meta, OG, X Cards
  • JSON-LD structured data (Organization, Person, Breadcrumbs, Custom)
  • Live Google + social previews per entry
  • Sitemap.xml with hooks and overrides
  • Redirects manager with wildcards
  • Automatic redirects on slug changes
  • 404 error tracking with one-click redirect creation
  • Robots controls
  • Site verification fields
  • Multi-site localizable defaults
  • GraphQL fields
  • Trailing slash enforcement
  • Dashboard widgets (report score + recent 404s)
  • Humans.txt

Every SEO knob your site will probably ever need.

How it works

SEO Pro maps your existing fields to every meta tag your site needs, with sensible cascading defaults you can override at the collection, taxonomy, or entry level. No more juggling SEO fieldsets across blueprints. No more bespoke template logic. No more wondering if og:image is wired up on the new section the marketing team just added.

You add one tag to your layout and SEO Pro handles the rest:

{{ seo_pro:meta }}

Or if you're a Blade person:

@seo_pro('meta')

That's it. Everything below is on by default.

Site reports with actual grades

Run a report and get a letter-grade score on the SEO health of every page on your site, plus a list of exactly what to fix. SEO Pro checks the stuff that matters — title uniqueness, ideal title and description lengths, missing meta, broken links, canonical sanity, URL depth, and more.

Reports stick around so you can compare scores over time and watch the line go up. Big sites can run reports through queues so the Control Panel doesn't time out.

Redirects that don't suck

A full redirects manager lives right inside the Control Panel. Create 301 or 302 redirects, toggle them on and off, and use wildcards when one rule should cover a hundred URLs:

  • /blog/* → /articles/$1
  • /blog/*/posts/* → /articles/$1/entries/$2

Redirects are scoped per site in multi-site setups, and you can store them as YAML (the default) or move them to the database with a single command when your list gets serious.

Automatic redirects when slugs change

Change an entry's slug and SEO Pro creates the redirect for you. No more dead links the moment your editor decides "About Us" should really be "Our Story." You can scope this to specific collections in the config, or turn it off entirely if you're a control freak (we get it).

404 error tracking

When someone hits a missing page, SEO Pro records it — URL, hit count, last seen — and surfaces it in the Control Panel with a one-click button to turn that 404 into a redirect. Old errors auto-purge after 30 days (configurable). There's a dashboard widget for the recently-broken so you spot problems before your customers email you about them.

Structured Data (JSON-LD)

Configure Organization or Person schema once at the site level, enable breadcrumbs, and let SEO Pro emit valid JSON-LD on every page. Per-section schemas can pull from your fields with Antlers, and any entry can override its parent. Custom schema types are supported too — Recipe, Article, Event, Product, whatever Google's feeling this quarter.

Live search and social previews

Every entry's SEO tab shows live previews of exactly how that page will look in Google search results, on X, and on Facebook. Editors can see if their title is too long, their image is squished, or their description trails off mid-sentence — before publishing. Preview images run through Glide, so they match what social platforms will actually render.

Meta data, dialed in

Site-wide defaults cascade down to collections, taxonomies, and individual entries. Pull from existing fields, hardcode a string, or write Antlers if you need to get fancy:

description: "{{ content | strip_tags | truncate(250, '...') }}"

SEO Pro handles:

  • Page titles (with site name, separator, and position controls)
  • Meta description
  • Canonical URLs (with proper pagination — rel=prev / rel=next and the works)
  • Robots directives (noindex, nofollow, max-snippet, all of it — in their own section now)
  • Site verification codes for Google and Bing

Open Graph, automated

Every Open Graph tag, populated automatically from your meta and configured per-section if you want different defaults for the blog vs. the shop:

  • og:type, og:title, og:description, og:url
  • og:site_name, og:locale, og:locale:alternate
  • og:image (with width, height, and Glide-transformed sizing)

X (Twitter) Cards

Cards generate themselves from your existing meta and OG data. summary_large_image by default, with a config flip for plain summary if that's your aesthetic.

Multi-site, properly

Site Defaults are localizable. Each site can have its own meta, JSON-LD, and verification codes, or inherit from a configured "origin" site if you'd rather manage things in one place. Redirects, errors, and reports are all scoped per site.

Sitemap generator

A sitemap.xml is generated and cached for you. Customize priority, change frequency, and exclude sections per-collection. Need to add custom URLs from a database table or third-party source? There's an additional hook for that. Need to extend the whole thing? The Sitemap class is yours to subclass.

There's also a spreadsheet view of your sitemap in the Control Panel — handy when a client asks "but is this page actually in the sitemap?" for the third time this week.

Reporting widget

Drop a widget on your dashboard to keep your latest report score in your face. Helpful for clients. Helpful for you. Helpful for that one developer who needs to be reminded that an F is bad.

Database support

Site defaults, redirects, and 404 errors all start as YAML — clean for version control, perfect for most sites. When you outgrow that, run a command and move any of them to the database independently. No data migration headaches.

Humans.txt

A humans.txt file gets generated automatically — a quiet little place to credit the people who actually built the thing. Disable it if it's not your jam.

GraphQL

Building headless? SEO Pro exposes prerendered meta HTML and the full SEO cascade through Statamic's GraphQL API, so your Nuxt or Next or Astro frontend gets the same SEO output your Antlers templates would.

{
entries {
data {
seo { html }
}
}
}