About this plugin
MarkExcell Meta Tags and Structured Data is a lightweight plugin for WordPress sites that need precise control over their on-page SEO metadata without installing a full SEO suite.
Every feature is controlled from a pair of meta boxes that appear directly on the page or post edit screen, keeping everything in context.
What it does:
- Adds a custom title tag per page or post, with a fallback to the WordPress default (post title + site name).
- Adds a custom meta description, falling back to the post excerpt, then the site-wide tagline.
- Outputs Open Graph tags ( og:title, og:description, og:image, og:url, og:type, og:site_name ) with per-page overrides.
- Outputs Twitter Card ( summary_large_image ) tags using the same data.
- Provides a freeform JSON-LD structured data field for any page or post, with JSON validation on save and a clear error message if the JSON is malformed.
- Auto-generates a BlogPosting schema for posts when no manual JSON-LD is provided, referencing your site’s #person and #website entities.
What it does NOT do:
- No settings pages, no dashboard widgets, no telemetry.
- No sitemap generation.
- No keyword analysis or content scoring.
- No redirection management.
) — you will get duplicate title tags and meta tags in your <head>.
For developers:
Three filters let you customise the site-wide defaults without editing the plugin:
- me_seo_default_description — override the fallback meta description.
- me_seo_default_og_image — set a site-wide default OG image URL.
- me_seo_post_types — add additional post types to show the meta boxes on (defaults to page and post ).
Example:
'; } );
png'; } );
// Add meta boxes to a custom post type called 'project' add_filter( 'me_seo_post_types', function( $types ) { $types[] = 'project'; return $types; } );
Usage
SEO: Title, Description & Open Graph meta box
Title tag
Enter the exact string you want to appear in the browser tab and search results. Leave blank and WordPress will use its default format: Post Title – Site Name.
Recommended length: 60 characters or fewer.
Meta description
The sentence or two that appears beneath your page title in search results. Leave blank to fall back to the post excerpt; if there is no excerpt, the site-wide default description is used.
Recommended length: 120–160 characters.
Open Graph overrides
These three fields let you set different text and image for social sharing without changing the SEO fields above — useful when the ideal tweet wording differs from the ideal title tag.
- og:title — leave blank to inherit the title tag value.
- og:description — leave blank to inherit the meta description.
- og:image URL — paste the full URL of a 1200×630 px image. Leave blank to use the post’s featured image; if there is no featured image, the site-wide default OG image is used (set via the me_seo_default_og_image filter).
Structured Data (JSON-LD) meta box
Paste a raw JSON-LD object into this field. The plugin will:
- Validate that the JSON is well-formed.
- Check that a top-level @context or @graph key is present.
- Re-encode and store the canonical form on save.
- Output it as a <script type="application/ld+json"> block in <head> on the front end.
If the JSON fails validation, an error message is shown at the top of the meta box and the previous valid value is kept — your live schema is never broken by a typo.
Do not include the surrounding <script> tags — paste the JSON object only.
For posts where this field is left empty, the plugin automatically generates a BlogPosting schema using the post title, description, published/modified dates, featured image, and author/publisher references pointing to your site’s #person and #website entities.
Fallback chain summary
Field
Primary
Secondary
Tertiary
Title tag
SEO title field
WordPress default (title + site name)
—
Meta description
Description field
Post excerpt
Site tagline / filter default
og:title
OG title field
SEO title field
WordPress default title
og:description
OG description field
Meta description (resolved above)
—
og:image
OG image URL field
Featured image
me_seo_default_og_image filter