Skip to content

EP SEO

EP SEO adds the SEO essentials PageMotor core doesn’t: Open Graph tags so links preview nicely on social media, Twitter Card tags for Twitter/X, favicon configuration, and Schema.org structured data. All with site-wide defaults and per-page overrides. v1.5 adds full six-EU-language admin UI and a coexistence handshake with EP Local Business / EP Locations so the Schema.org graph stays clean when one of those is also installed.

Published by ElmsPark Studio.

  • Open Graph tags in the head (og:title, og:description, og:image, og:url, og:type) so link previews on Facebook, LinkedIn, Slack, Discord, WhatsApp look right.
  • Twitter Card tags for better previews on X.
  • Favicon setup — single-file or multi-resolution pack.
  • Schema.org structured data — Organisation, WebSite, WebPage, Article, BreadcrumbList. Emitted as JSON-LD in the head.
  • Default social image — one image used for every page unless overridden.
  • Per-page overrides — custom social title, description, and image per specific page.
  • Keyword research. That’s a strategy problem, not a plugin problem.
  • Content auditing. Different tools for that.
  • Rank tracking. Use Ahrefs, Semrush, or Google Search Console.

EP SEO is about making sure the technical SEO metadata is right. The content quality is still your job.

  • PageMotor 0.8.2b or later
  • EP Suite base class
  1. Download ep-seo.zip from the EP Suite downloads page.
  2. Upload via Plugins → Manage Plugins. Activate.
  3. Open Plugin Settings → EP SEO and fill in the site-wide defaults.
  • Site name. Used as og:site_name when nothing else takes precedence. Usually your brand. Coordination: when EP Locations or EP Local Business is active, EP SEO defers to those plugins for og:site_name (4-step resolution: EP Locations org name → EP Local Business name → this field → PageMotor’s site title). So you can leave this set to a tagline, phone number, or anything you prefer for the browser tab — social-share previews will still carry the actual brand name from the location plugins.
  • Default OG image. Used for every page unless overridden. 1200x630 is the standard recommendation. Upload via the drag-and-drop widget.
  • Default OG description. Fallback if a page doesn’t define its own.
  • Card type. summary, summary_large_image, etc.
  • Twitter handle. Your site’s handle (e.g. @yoursite).
  • Favicon. Upload a PNG or ICO. The plugin auto-generates the multi-resolution links in the head.
  • Apple touch icon. Separate 180x180 PNG for iOS.
  • Theme colour. Browser chrome colour on mobile (<meta name="theme-color">).
  • Organisation name, URL, logo, contact. Emitted as JSON-LD Organisation on every page. Helps Google understand your brand.
  • Default meta description. Fallback when a page hasn’t set one.
  • Default meta keywords. Rarely useful, Google ignores them, but included for completeness.

On any page’s content options:

  • OG title (falls back to page title).
  • OG description (falls back to default).
  • OG image (falls back to default).
  • Schema type — WebPage, Article, Product, etc.

For pages representing articles or products, use the specific schema type so Google shows richer search results.

Per page type, EP SEO emits:

  • Every page: WebPage + Organization + BreadcrumbList (if EP Breadcrumbs is active) in JSON-LD.
  • Article pages: Article schema with headline, author, datePublished.
  • Product pages (if schema type = Product): Product schema with offer details.

Validate your emitted schema in Google’s Rich Results Test.

Coexistence with EP Local Business and EP Locations

Section titled “Coexistence with EP Local Business and EP Locations”

If you install EP Local Business (single-location) or EP Locations (multi-location) alongside EP SEO, the three coordinate automatically. EP SEO yields its Organization Schema.org branch when either sibling plugin is in merged coexistence mode and owns the #organization node. You don’t configure anything in EP SEO for this — the handshake is automatic via static owns_organization_node() checks.

In additive coexistence mode, EP SEO emits its Organization normally and the sibling plugin emits a separate LocalBusiness referencing it via parentOrganization.

EP SEO 1.5 added full admin UI translations for German (de), Spanish (es), French (fr), Italian (it), Dutch (nl), and Portuguese (pt). Schema.org code identifiers (the literal Organization value, @type literals, JSON-LD property names) stay English in every language because they’re code, not prose.

Switch UI language from the EP Suite language dropdown in the admin nav.

Section titled ““Link preview on Facebook shows old image””

Facebook caches Open Graph data aggressively. Use their Sharing Debugger to force-refresh the cache.

Test in the Card Validator. Common causes: OG image URL is wrong, image is too small, image is blocked by robots.txt.

“Favicon doesn’t update after I uploaded a new one”

Section titled ““Favicon doesn’t update after I uploaded a new one””

Browsers cache favicons aggressively. Try hard refresh (Cmd+Shift+R), or incognito mode, or a different browser. If still wrong, check the image path is actually updated in your site’s head.

“Rich results test shows ‘unnamed property’ warnings”

Section titled ““Rich results test shows ‘unnamed property’ warnings””

One of your schema fields is empty. Check the Organisation schema setting has all required fields. If a per-page override is partial, complete it or remove it.

“I don’t want OG tags on a specific page”

Section titled ““I don’t want OG tags on a specific page””

Set Noindex on the page’s content options. Most plugins (including EP SEO) will skip rich metadata on noindex pages.

For a quick question about this plugin, EP Support inside your admin is the fastest option. The chat widget sits on every EP plugin settings page and knows which one you’re on, with starter questions and links preloaded for that exact screen.

For anything bigger — a bug report, a feature request, or a “how do I…” that needs a real reply — open a ticket at help.elmspark.com. A real person, helped by AI, writes the reply. Usually within a few hours. Tickets don’t disappear into the void.