Title: STS SEO
Author: spearstechsolutions
Published: <strong>November 6, 2026</strong>
Last modified: November 6, 2026

---

Search plugins

![](https://ps.w.org/sts-seo/assets/banner-772x250.png?rev=3787832)

![](https://ps.w.org/sts-seo/assets/icon-256x256.png?rev=3787832)

# STS SEO

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

[Download](https://downloads.wordpress.org/plugin/sts-seo.0.4.0.zip)

 * [Details](https://wordpress.org/plugins/sts-seo/#description)
 * [Reviews](https://wordpress.org/plugins/sts-seo/#reviews)
 *  [Installation](https://wordpress.org/plugins/sts-seo/#installation)
 * [Development](https://wordpress.org/plugins/sts-seo/#developers)

 [Support](https://wordpress.org/support/plugin/sts-seo/)

## Description

STS SEO adds the search and sharing details WordPress does not provide on its own,
and leaves everything else to WordPress.

**What it adds**

 * An optional SEO title for each post and page. WordPress still prints the one `
   <title>` element; STS SEO only supplies its text.
 * An optional search description. When it is empty, the manual excerpt or a short
   summary of the content is used.
 * Open Graph and Twitter Card tags, with one social image chosen from the post’s
   own selection, its featured image or a site-wide default.
 * A canonical link for the posts page (WordPress already handles single posts and
   pages).
 * One optional Organization, LocalBusiness or Restaurant entity in JSON-LD, built
   only from what you enter in Settings  STS SEO.

**What it leaves to WordPress**

The title element, robots directives, canonical links on single content, XML sitemaps,
feeds and search-engine visibility. STS SEO never changes the “Discourage search
engines” setting.

**Works alongside other plugins**

 * When a full SEO plugin is active (Yoast SEO, Rank Math, All in One SEO, SEOPress,
   The SEO Framework or Slim SEO), STS SEO turns all of its front-end output off.
   Your STS SEO fields are kept.
 * With Jetpack, ownership is decided feature by feature. STS SEO provides the social
   tags on posts, pages and the posts page and turns Jetpack’s Open Graph tags off
   there, using Jetpack’s own filter. With Jetpack’s SEO Tools module active, titles
   and descriptions are left to Jetpack.

**Privacy**

STS SEO makes no external requests, loads nothing from other servers, sets no cookies
and collects no data. It adds no JavaScript or CSS to the public site. Its fields
are not exposed through the public REST API.

### Developer hooks

All filters are optional.

 * `sts_seo_enabled` (bool) – return false to turn off all front-end output.
 * `sts_seo_conflicts` (string[]) – names of active full SEO plugins; any name turns
   all output off.
 * `sts_seo_feature_owner` (string $owner, string $feature) – return a plugin name
   to leave one feature (`title`, `description`, `social`, `posts_canonical`, `schema`)
   to that plugin.
 * `sts_seo_jetpack_social` (bool) – return false to keep Jetpack’s social tags.
 * `sts_seo_title` (string $title, int $post_id) – the title override for a public
   post or page.
 * `sts_seo_description` (string $description, int $post_id) – the description for
   a public post or page.
 * `sts_seo_social_image_id` (int $attachment_id, int $post_id) – the chosen social
   image; invalid IDs give no image.
 * `sts_seo_posts_canonical_enabled` (bool) – return false to skip the posts-page
   canonical link.
 * `sts_seo_schema_enabled` (bool) – return false to skip the JSON-LD entity.
 * `sts_seo_schema_entity` (array $data, array $settings) – the complete entity;
   return a non-array to skip it.

Values returned by the title and description filters are normalized to plain text
again before output.

## Installation

 1. In WordPress, go to Plugins  Add New Plugin and search for “STS SEO”.
 2. Click Install Now, then Activate.
 3. Optionally, set a default social image and business details in Settings  STS SEO.
 4. Edit any post or page to set its SEO title, description and social image in the
    STS SEO box.

To install manually, upload the `sts-seo` folder to `/wp-content/plugins/` (or use
Plugins  Add New Plugin  Upload Plugin with the ZIP file) and activate it. Updates
are offered in Dashboard  Updates like any other plugin.

## FAQ

### Will STS SEO conflict with Yoast SEO, Rank Math or another SEO plugin?

No. When a full SEO plugin is active, STS SEO turns all of its front-end output 
off and keeps your STS SEO fields, so the two never print duplicate tags. Settings
STS SEO explains which plugin is in charge.

### Does it create XML sitemaps or control indexing (noindex)?

No, on purpose. WordPress already provides XML sitemaps, robots directives and the“
Discourage search engines” setting, and STS SEO leaves them to WordPress.

### Does it contact external servers or slow down my site?

No. STS SEO makes no external requests, stores nothing outside your database, and
adds no JavaScript or CSS to the public site.

### Which content does it work on?

Posts and pages, plus the page assigned as your posts page. To set the homepage’s
title and description, edit the page assigned as your homepage in Settings  Reading.

### My theme already prints a meta description or social tags.

A developer can leave any single STS SEO feature to the theme with the `sts_seo_feature_owner`
filter (see Developer hooks below), so tags are never duplicated.

### Does STS SEO change my page titles automatically?

No. A title is replaced only on posts and pages where you enter an SEO title. Everything
else keeps the title WordPress produces.

### What happens if I deactivate or delete the plugin?

Your titles, descriptions, images and settings stay in the database. Deleting the
plugin does not remove them, so reinstalling restores everything.

### Can I keep Jetpack’s social tags instead?

Yes. Add this to a small plugin or your theme’s functions.php:

    ```
    add_filter( 'sts_seo_jetpack_social', '__return_false' );
    ```

### Why are characters like “<” and “[ ]” kept in my descriptions?

Since 0.3.0, only real HTML markup is removed. Text such as “Ages 5<10” or “Grades
K-12 [ages 5–18]” is kept exactly as written and is safely escaped when printed.

### Does it work with classic themes?

Yes, for descriptions, social tags and structured data. Title overrides need a theme
that lets WordPress manage the title (`add_theme_support( 'title-tag' )`), as all
block themes and most current classic themes do.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“STS SEO” is open source software. The following people have contributed to this
plugin.

Contributors

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

[Translate “STS SEO” into your language.](https://translate.wordpress.org/projects/wp-plugins/sts-seo)

### Interested in development?

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

## Changelog

#### 0.4.0

 * Prepared for the WordPress.org plugin directory: updates are now offered through
   WordPress.org like any directory plugin.
 * Translations are loaded by WordPress from language packs; no change to any text.
 * Admin notices appear on Settings  STS SEO only, never on every post and page 
   editor.
 * Business structured data is printed with WordPress’s script-tag function, so 
   its attributes can be filtered (for example to add a Content Security Policy 
   nonce). The data itself is unchanged.
 * No changes to stored data. See CHANGELOG.md for details.

#### 0.3.1

 * A social image chosen while a post is still a draft is now kept and used once
   the post is published. It was previously dropped on save and had to be chosen
   again after publishing. The same applied to the site-wide default social image.
 * An image belonging to a draft, private or password-protected post is still never
   output.
 * No changes to stored data. See CHANGELOG.md for details.

#### 0.3.0

 * Text is no longer lost when titles and descriptions contain “<“, brackets or “%”
   sequences.
 * Jetpack is handled per feature instead of turning STS SEO off.
 * Update URI header and a local safeguard against foreign update offers.
 * Accessibility: character counts are announced after a pause instead of on every
   keystroke, settings help text is announced with its field, the “Remove image”
   link meets contrast guidelines, and “Settings saved” appears once.
 * The “Search engine visibility is disabled” notice appears on Settings  STS SEO
   only.
 * Translation template, a clean release package, and automated tests on PHP 7.4–
   8.4 and WordPress 6.6–7.1, including multisite.
 * No changes to stored data. See CHANGELOG.md for details.

#### 0.2.2

 * Fixed a duplicate id that left the SEO Title field without an accessible name.

## Meta

 *  Version **0.4.0**
 *  Last updated **10 hours ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.6 or higher **
 *  Tested up to **7.1.4**
 *  PHP version ** 7.4 or higher **
 * Tags
 * [meta description](https://wordpress.org/plugins/tags/meta-description/)[open graph](https://wordpress.org/plugins/tags/open-graph/)
   [schema](https://wordpress.org/plugins/tags/schema/)[seo](https://wordpress.org/plugins/tags/seo/)
   [structured data](https://wordpress.org/plugins/tags/structured-data/)
 *  [Advanced View](https://wordpress.org/plugins/sts-seo/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/sts-seo/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/sts-seo/reviews/)

## Contributors

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

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/sts-seo/)