Title: MarkExcell Meta Tags and Structured Data
Author: markwexcell
Published: <strong>June 28, 2026</strong>
Last modified: June 28, 2026

---

Search plugins

![](https://s.w.org/plugins/geopattern-icon/markexcell-meta-tags-structured-data.
svg)

# MarkExcell Meta Tags and Structured Data

 By [markwexcell](https://profiles.wordpress.org/markwexcell/)

[Download](https://downloads.wordpress.org/plugin/markexcell-meta-tags-structured-data.zip)

 * [Details](https://wordpress.org/plugins/markexcell-meta-tags-structured-data/#description)
 * [Reviews](https://wordpress.org/plugins/markexcell-meta-tags-structured-data/#reviews)
 *  [Installation](https://wordpress.org/plugins/markexcell-meta-tags-structured-data/#installation)
 * [Development](https://wordpress.org/plugins/markexcell-meta-tags-structured-data/#developers)

 [Support](https://wordpress.org/support/plugin/markexcell-meta-tags-structured-data/)

## Description

**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.

**Important:** Do not run this plugin alongside a full SEO plugin (Yoast SEO, Rank
Math, All in One SEO, etc.) — 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:

    ```
    add_filter( 'me_seo_default_description', function() {
        return 'Your custom site-wide description here.';
    } );

    add_filter( 'me_seo_default_og_image', function() {
        return 'https://example.com/wp-content/uploads/default-share.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:

 1. Validate that the JSON is well-formed.
 2. Check that a top-level `@context` or `@graph` key is present.
 3. Re-encode and store the canonical form on save.
 4. 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

## Installation

 1. Upload the `markexcell-meta-tags-structured-data` folder to `/wp-content/plugins/`.
 2. Activate the plugin from **Plugins  Installed Plugins** in your WordPress admin.
 3. Open any page or post for editing — two new meta boxes will appear:
 4.  * **SEO: Title, Description & Open Graph** (near the top of the edit screen)
     * **Structured Data (JSON-LD)** (below the main editor)
 5. Fill in whichever fields you need, or leave them empty to use the automatic fallbacks.
 6. Publish or update the post/page as normal.

There is no settings page to configure.

## FAQ

### Will this conflict with Yoast SEO / Rank Math / All in One SEO?

Yes — running any two SEO plugins that output title tags and Open Graph meta simultaneously
will produce duplicate tags. Deactivate your existing SEO plugin before using this
plugin, or vice versa.

### The JSON-LD field says “Last save rejected” — what do I do?

The JSON you pasted is either malformed or is missing a top-level `@context` or `
@graph` key. Copy your JSON into a validator such as [validator.schema.org](https://validator.schema.org)
or [jsonlint.com](https://jsonlint.com) to find the error, correct it, and save 
again. Your previously saved schema remains live until a valid replacement is submitted.

### How do I set a site-wide default OG image?

Use the `me_seo_default_og_image` filter in your theme’s `functions.php` or a small
mu-plugin:

    ```
    add_filter( 'me_seo_default_og_image', function() {
        return 'https://example.com/path/to/default-share-image.png';
    } );
    ```

### The auto-generated BlogPosting schema references `#person` and `#website` — where do I define those?

You define them on your homepage (or a suitable page) using the Structured Data (
JSON-LD) meta box. Paste a JSON-LD `@graph` that includes your `Person` and `WebSite`
entities with the matching `@id` values. The plugin references them by ID; it does
not duplicate the full entity on every post.

### Can I add the meta boxes to custom post types?

Yes, using the `me_seo_post_types` filter:

    ```
    add_filter( 'me_seo_post_types', function( $types ) {
        $types[] = 'your_custom_post_type';
        return $types;
    } );
    ```

### Does the plugin need `add_theme_support( ‘title-tag’ )` to work?

Yes. The title tag override relies on WordPress managing the `<title>` element. 
Most modern themes already declare this support. If your theme hard-codes a `<title
>` element in `header.php`, the custom title field will have no effect until that
is removed.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“MarkExcell Meta Tags and Structured Data” is open source software. The following
people have contributed to this plugin.

Contributors

 *   [ markwexcell ](https://profiles.wordpress.org/markwexcell/)

[Translate “MarkExcell Meta Tags and Structured Data” into your language.](https://translate.wordpress.org/projects/wp-plugins/markexcell-meta-tags-structured-data)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/markexcell-meta-tags-structured-data/),
check out the [SVN repository](https://plugins.svn.wordpress.org/markexcell-meta-tags-structured-data/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/markexcell-meta-tags-structured-data/)
by [RSS](https://plugins.trac.wordpress.org/log/markexcell-meta-tags-structured-data/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 1.0.0

 * Initial release.

## Meta

 *  Version **1.0.0**
 *  Last updated **11 hours ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.0 or higher **
 *  Tested up to **7.0**
 *  PHP version ** 7.4 or higher **
 * Tags
 * [JSON-LD](https://wordpress.org/plugins/tags/json-ld/)[meta](https://wordpress.org/plugins/tags/meta/)
   [open graph](https://wordpress.org/plugins/tags/open-graph/)[schema](https://wordpress.org/plugins/tags/schema/)
   [seo](https://wordpress.org/plugins/tags/seo/)
 *  [Advanced View](https://wordpress.org/plugins/markexcell-meta-tags-structured-data/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/markexcell-meta-tags-structured-data/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/markexcell-meta-tags-structured-data/reviews/)

## Contributors

 *   [ markwexcell ](https://profiles.wordpress.org/markwexcell/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/markexcell-meta-tags-structured-data/)