WordPress.org

Plugin Directory

Test out the new Plugin Directory and let us know what you think.

WPSSO - Complete Meta Tags and Schema Markup for Social Sharing Optimization & SEO

Automatically create complete and accurate meta tags and Schema markup for Social Sharing Optimization (SSO) and SEO.

New versions of the plugin are released approximately every week (more or less). New features are added, tested, and released incrementally, instead of grouping them together in a major version release. When minor bugs fixes and/or code improvements are applied, new versions are also released. This release schedule keeps the code stable and reliable, at the cost of more frequent updates.

See release early, release often (RERO) software development philosophy on Wikipedia for more information on the benefits of smaller / more frequent releases.

Free / Basic Version Repository

Version Numbering Scheme

Version components: {major}.{minor}.{bugfix}-{stage}{level}

  • {major} = Major code changes / re-writes or significant feature changes.
  • {minor} = New features / options were added or improved.
  • {bugfix} = Bugfixes or minor improvements.
  • {stage}{level} = dev < a (alpha) < b (beta) < rc (release candidate) < # (production).

Note that the production stage level can be incremented on occasion for simple text revisions and/or translation updates. See PHP's version_compare() documentation for additional information on "PHP-standardized" version numbering.

Changelog / Release Notes

Version 3.39.10-dev1 (2017/02/19)

  • New Features
    • None
  • Improvements
    • None
  • Bugfixes
  • Developer Notes
    • Refactored the WpssoMeta::get_custom_fields() method to get custom field names from the config array.

Version 3.39.9-1 (2017/02/19)

  • New Features
    • None
  • Improvements
    • None
  • Bugfixes
    • None
  • Developer Notes
    • Renamed a few site related option keys:
      • 'og_site_name' => 'site_name'
      • 'og_site_description' => 'site_desc'
      • 'org_url' => 'site_url'
      • 'org_type' => 'site_org_type'
      • 'org_place_id' => 'site_place_id'
    • Added a new WpssoSchema::get_site_organization() method to return the site organization array.
    • Added a new SucomUtil::get_site_alt_name() method.
    • Added a new SucomUtil::get_site_url() method.
    • Improved the SucomUtil::rename_keys() method to include localized keys.
    • Added new filters when renaming options keys:
      • 'wpsso_rename_options_keys' ( $options_keys );
      • 'wpsso_rename_site_options_keys' ( $options_keys );
      • 'wpsso_rename_md_options_keys' ( $options_keys );

Version 3.39.8-1 (2017/02/13)

  • New Features
    • None
  • Improvements
    • Added a check (and fix) for relative URLs coming from the WordPress Media Library.
    • Removed a check for WPSSO option values before disabling the Yoast SEO JSON-LD (now always disabled).
    • Added the missing Schema type https://schema.org/HighSchool.
  • Bugfixes
    • None
  • Developer Notes
    • Added new json data filters for single properties:
      • 'wpsso_json_data_single_event' ( $event_data, $mod, $event_id );
      • 'wpsso_json_data_single_organization' ( $org_data, $mod, $org_id );
      • 'wpsso_json_data_single_organization_sameas' ( $org_sameas, $mod, $org_id );
      • 'wpsso_json_data_single_person' ( $person_data, $mod, $user_id );
      • 'wpsso_json_data_single_person_sameas' ( $person_sameas, $mod, $user_id );
      • 'wpsso_json_data_single_place' ( $place_data, $mod, $place_id );

Version 3.39.7-1 (2017/02/08)

  • New Features
    • None
  • Improvements
    • Added a filter to define the WooCommerce shop page as a CollectionPage for Schema markup (Pro version).
  • Bugfixes
    • None
  • Developer Notes
    • Optimized the printing of debug log messages in the webpage HTML by using fewer action hooks.
    • Added WooCommerce product reviews to the meta tags array for the WPSSO JSON extension (Pro version).
    • Renamed the 'wpsso_og_add_product_mt_offer' filter to 'wpsso_og_add_product_mt_offers' (Pro version).
    • Added a new 'wpsso_og_add_product_mt_reviews' filter (Pro version).

Version 3.39.6-1 (2017/02/04)

Version 3.39.5-1 (2017/01/30)

  • New Features
    • None
  • Improvements
    • Added the title and description of WordPress Media Library images to the Schema "ImageObject" markup.
  • Bugfixes
    • None
  • Developer Notes
    • Simplified the reading of custom Yoast SEO meta by hooking WPSSO filters from a single WpssoProUtilWpseoMeta class (Pro version).
    • Refactored the SucomWebpage get_title() method to return titles based on the object ID (not just the current page).
    • Added a $term_id argument to the SucomUtil is_term_page(), is_category_page(), and is_tag_page() methods.
    • Added a $user_id argument to the SucomUtil is_author_page() and is_user_page() arguments.

Version 3.39.4-1 (2017/01/27)

  • New Features
    • None
  • Improvements
    • Updated the default YouTube preview image name to maxresdefault.jpg and added a source query argument to the preview image URLs (Pro version).
  • Bugfixes
    • Fixed updating the default YouTube video preview image URL from the retrieved video meta tags (Pro version).
  • Developer Notes
    • Added extra logging of the matched video array in all video modules (Pro version).

Version 3.39.3-1 (2017/01/26)

  • New Features
    • None
  • Improvements
    • None
  • Bugfixes
    • Added a missing second argument for the WpssoUtil clear_cache_objects() method when clearing the cache for updated terms and users.
  • Developer Notes
    • None

Version 3.39.2-1 (2017/01/25)

  • New Features
    • None
  • Improvements
    • Added a new "Clear Short URLs on Clear All Cache" option (default is unchecked) to preserve or clear shortened URLs when clearing all WPSSO cache transients (Pro version). The default value prevents updating all shortened URLs at once, which may exceed API call limits imposed by your shortening service provider.
    • Changed the default "Shortened URL Cache Expiry" option value from 604800 seconds (1 week) to 2419200 seconds (4 weeks).
    • Removed the "List Column Content Cache Expiry" deprecated option (no longer used).
    • Added the plugin text domain to SucomCache class error messages.
  • Bugfixes
    • None
  • Developer Notes
    • Renamed the 'plugin_cache_info' option key to 'plugin_show_purge_count'.

Version 3.39.1-1 (2017/01/21)

  • New Features
    • None
  • Improvements
    • Improved the loading speed of post, term, and user editing table column content (SSO Schema, SSO Img, and SSO Desc columns).
    • Refactored the set_force_regen() and is_force_regen() methods to use a single transient array (to reduce the number of transient queries).
  • Bugfixes
    • Updated delete_expired_db_transients() to remove transients without expiration times.
    • Added a missing user ID argument when getting the user object in the SucomWebpage get_description() method.
    • Fixed use of a thumbnail image in the SSO Img column instead of the original Open Graph og:image.
  • Developer Notes
    • Added a new is_force_regen() method in the WpssoUtil class to check if the forced regen transient is set, along with a set_force_regen() method to set the transient, and get_force_regen_key() to determine the array key ID.
    • Added a new is_post_exists() static method in the SucomUtil class to check if a post ID exists or not.
    • Added support for post ID checking in the is_post_page() method in the SucomUtil class.
    • Renamed the 'schema_id' sortable column and meta name to 'schema_type' (including related filter hooks).
    • Replaced column content creation filters / methods by 'get_{post|term|user}_metadata' filter hooks to return pre-generated custom meta values instead.
    • Removed the 'wpsso_cache_expire_column_content' filter (a transient is no longer required for column content).

Version 3.39.0-1 (2017/01/13)

  • New Features
    • Added a new "Add SSO Schema Column in" option (for posts / pages, terms, and users) in the SSO Advanced settings page (enabled by default).
  • Improvements
    • None
  • Bugfixes
    • None
  • Developer Notes
    • Added a new SucomUtil get_dashicons() static method to retrieve a sorted/unsorted dashicons array for the WPSSO UL extension.
    • Re-added code to support the Yoast_Notification_Center class from older Yoast SEO versions.

Version 3.38.3-1 (2017/01/08)

  • New Features
    • None
  • Improvements
    • Added both parent and child theme header template files to the head HTML element attributes check.
    • The extensions listed on the "Extension Plugins and Pro Licenses" settings page are now sorted by name.
    • Added the "WPSSO User Locale (WPSSO UL)" plugin to the list of available WPSSO extensions.
  • Bugfixes
    • None
  • Developer Notes
    • Refactored the SucomUtil is_https() method and added a check for proxy / load-balancing 'HTTP_X_FORWARDED_PROTO' and 'HTTP_X_FORWARDED_SSL' web server variables.
    • Refactored the SucomUtil get_prot() method to support the FORCE_SSL and FORCE_SSL_ADMIN constants.

Version 3.38.2-1 (2017/01/02)

  • New Features
    • None
  • Improvements
    • Added a new "Honor the FORCE_SSL Constant" option on the Advanced settings page.
  • Bugfixes
    • None
  • Developer Notes
    • Added a check and action hook to honor the FORCE_SSL constant on the front-end.

Version 3.38.1-1 (2016/12/28)

  • New Features
    • None
  • Improvements
    • The "Read Yoast SEO Custom Meta" option is now enabled by default, if the Yoast SEO plugin is active or its settings are found in the database, otherwise it is disabled by default (Pro version).
  • Bugfixes
    • None
  • Developer Notes
    • Added a new WpssoFilters class to centralize 3rd party plugin filter hooks.
    • Added a new WpssoUtil get_canonical_url() method specifically for the canonical meta tag.
    • Added a new 'wpsso_canonical_url' filter to allow filtering of canonical and sharing URLs separately.

Version 3.38.0-1 (2016/12/24)

  • New Features
    • Added a new "Read Yoast SEO Social Meta" option for Yoast SEO users under the NGFB > Advanced > Social / Custom Meta tab (Pro version).
    • Added a new "Custom Facebook Locale" option in the NGFB > General settings page to customize the WordPress locale value for Facebook.
  • Improvements
  • Bugfixes
    • Fixed fetching of image size for a custom Schema image URL.
  • Developer Notes
    • Added a check for positive numbers when adding Schema image size properties.
    • Removed the share/curl/ca-bundle.crt file to use the WordPress wp-includes/certificates/ca-bundle.crt file instead.
    • Added an example filter to Read / Import Yoast SEO Social Meta when Yoast SEO is not active.

Version 3.37.8-1 (2016/12/12)

  • New Features
    • None
  • Improvements
    • None
  • Bugfixes
    • None
  • Developer Notes
    • Renamed the WPSSO_OPTIONS_#_* multisite single-option constants to WPSSO_ID_#_OPT_* and optimized their checks.
    • Added a new SucomUtil explode_csv() static method to explode and trim CSV strings.

Version 3.37.7-1 (2016/12/08)

  • New Features
    • None
  • Improvements
    • Added support for the new get_user_locale() function in WordPress v4.7.
    • Removed the Facebook "Default Content Language" option from the Essential and General settings pages (not required for the og:locale value).
  • Bugfixes
    • Fixed the "Click here update header templates automatically" URL in the notice message.
  • Developer Notes
    • None

Version 3.37.6-3 (2016/12/05)

  • New Features
    • None
  • Improvements
    • Optimized wp_cache and transient caching for multilingual sites.
    • Added new Schema meta tags:
      • alternatename
      • email
      • telephone
      • currenciesaccepted
      • paymentaccepted
      • pricerange
      • preptime
      • cooktime
  • Bugfixes
    • Fixed the sharing URL value for BuddyPress users (Pro version).
  • Developer Notes
    • Added an SucomUtil update_transient_array() method to update transient arrays and keep the original transient expiration time.
    • Added a new 'wpsso_json_prop_https_schema_org_potentialaction' filter.
    • Removed $locale argument from SucomUtil get_mod_salt() calls.

Version 3.37.5-1 (2016/11/28)

  • New Features
    • None
  • Improvements
    • None
  • Bugfixes
    • Fixed BuddyPress user page detection when current object is a post (Pro version).
  • Developer Notes
    • Added extra debugging messages in the BuddyPress user class methods (Pro version).

Version 3.37.4-1 (2016/11/25)

  • New Features
    • None
  • Improvements
    • Added a new "WPSSO Tweet a Quote (WPSSO TAQ)" extension to the Extension Plugins and Pro Licenses settings page.
  • Bugfixes
    • None
  • Developer Notes
    • Added a check for 'manage_options' permission before checking for outdated WP / PHP versions and duplicate post meta tags.
    • Removed a call to stripslashes() when saving HTML / CSS / JS code.

Version 3.37.3-1 (2016/11/17)

  • New Features
    • None
  • Improvements
    • Updated the "Plugin Setup Guide and Notes".
    • Updated hard minimum and recommended minimum WordPress and PHP versions.
    • Added a "Reference URL" link to notice messages when generating the head meta tag array.
  • Bugfixes
    • None
  • Developer Notes
    • Added a sharing URL argument to the SucomUtil get_mod_salt() method for cases where the $mod id is false.
    • Renamed the 'wpsso_json_array_schema_type_ids' filter to 'wpsso_json_array_schema_page_type_ids' to emulate the $page_type_id variable name.
    • Removed the deprecated $use_post argument from the get_array() methods for the Open Graph, Twitter Card, and Weibo classes.

Version 3.37.2-1 (2016/11/12)

  • New Features
    • None
  • Improvements
    • Added an "Item Type for Blog Front Page" option for blog (non-static) front pages.
    • Simplified the Schema mainEntityOfPage markup property by using a URL instead of an @id.
  • Bugfixes
    • None
  • Developer Notes
    • Refactored the WpssoSchema class to provide a public get_json_data() method for the WPSSO JSON extension.
    • Added WpssoPost get_posts(), WpssoTerm get_posts(), and WpssoUser get_posts() methods.
    • Added a WpssoMeta get_posts_mods() method to return $mod arrays for all posts in the current archive page.
    • Added a WpssoSchema get_json_data() method used by get_json_array() in the same class.
    • Renamed the WpssoSchema get_head_item_type() method to get_mod_schema_type().
    • Renamed the WpssoSchema get_item_type_context() method to get_schema_type_context().

Version 3.37.0-1 (2016/11/04)

  • New Features
    • Replaced the Object Cache Expiry option with new options for finer control of caching features.
      • Head Markup Array Cache Expiry (default 3 days).
      • Shortened URL Cache Expiry (default 1 week).
      • List Column Content Cache Expiry (default 1 week).
      • Filtered Content Text Cache Expiry (default 1 hour).
      • Get Image (URL) Size Cache Expiry (default 1 day).
      • Article Topics Array Cache Expiry (default 4 weeks).
      • Schema Types Array Cache Expiry (default 4 weeks).
  • Improvements
    • None
  • Bugfixes
    • Fixed the SucomUtil get_first_last_next_nums() method, which was not returning a correct 'next' number for single element arrays.
  • Developer Notes
    • Refactored the WpssoSchema get_json_array() method for a slight performance improvement.
    • Added https://schema.org/Thing to the Schema Types array (as top-level parent for all other Schema types).
    • Replaced the $user_id argument in all JSON data and property filters by the Schema $type_id.
    • Renamed the 'wpsso_json_data_https_schema_org' filter to 'wpsso_json_data_https_schema_org_thing'.
    • Renamed the 'wpsso_json_array_type_ids' filter to 'wpsso_json_array_schema_type_ids'.
    • Removed the 'wpsso_add_json_https_schema_org' filter.
    • Renamed the WPSSO_META_TAGS_DISABLE contant to WPSSO_HEAD_HTML_DISABLE.
    • Removed the WPSSO_TRANSIENT_CACHE_DISABLE, WPSSO_OBJECT_CACHE_DISABLE, and WPSSO_FILE_CACHE_DISABLE constants.
    • Added several new filters to adjust transient / object cache expiration:
      • 'wpsso_cache_expire_article_topics' ( $secs );
      • 'wpsso_cache_expire_column_content' ( $secs );
      • 'wpsso_cache_expire_content_text' ( $secs );
      • 'wpsso_cache_expire_head_array' ( $secs );
      • 'wpsso_cache_expire_image_url_size' ( $secs );
      • 'wpsso_cache_expire_schema_types' ( $secs );
      • 'wpsso_cache_expire_shorten_url' ( $secs ); // Pro version

Version 3.36.3-2 (2016/10/23)

  • New Features
    • None
  • Improvements
    • None
  • Bugfixes
    • None
  • Developer Notes
    • Minimum requirements updated to WP v3.5 and PHP v5.4.
    • Renamed the Social Settings 'header' index name to 'text'.
    • Renamed the 'wpsso_admin_post_header' filter to 'wpsso_admin_post_head'.
    • Renamed the WpssoHead get_header_array() method to get_head_array().
    • Added a new WpssoHead get_head_index() method to cache meta tags as array elements. This optimizes the head meta transient cache for Pinterest by storing 1 transient instead of 2.

Version 3.36.2-1 (2016/10/17)

  • New Features
    • None
  • Improvements
    • Changed all http://wpsso.com/ URLs to https.
    • Added transient caching of results when fetching size information for image URLs.
    • Added a new WPSSO SSM extension to the "Extension Plugins and Pro Licenses" settings page.
  • Bugfixes
    • None
  • Developer Notes
    • None

Version 3.36.0-1 (2016/10/15)

  • New Features
    • Added new Item Type options under the Google / Schema tab in the General settings page:
    • Added a "Validate AMP Markup" button under the Social Settings metabox Validate tab for the AMP Validator.
    • Added a "Validate HTML Markup" button under the Social Settings metabox Validate tab for the W3C Markup Validation service.
    • Added a configurable length warning to the Open Graph description textarea (defaults is 300 characters hard limit, and 200 characters soft limit).
  • Improvements
    • Added the https://schema.org/WebPage sub-types in the plugin config schema_type array (AboutPage, CheckoutPage, CollectionPage, ContactPage, ItemPage, ProfilePage, QAPage, and SearchResultsPage).
  • Bugfixes
    • Fixed getting the term object (category and tags) when no term ID is provided to the SucomUtil get_term_object() method.
    • Removed the Open Graph namespace from the HTML tag attributes when using the AMP plugin.
  • Developer Notes
    • Removed the WPSSO_DEFAULT_AUTHOR_OPTIONS constant and all associated default author options.
    • Renamed all http://schema.org URLs to https://schema.org and all http_schema_org filters to https_schema_org.

Requires: 3.8 or higher
Compatible up to: 4.7.2
Last Updated: 4 hours ago
Active Installs: 10,000+

Ratings

4.5 out of 5 stars

Support

7 of 7 support threads in the last two months have been marked resolved.

Got something to say? Need help?

Compatibility

+
=
Not enough data

1 person says it works.
0 people say it's broken.

100,1,1 50,2,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1
100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1
100,1,1
100,1,1
100,1,1
100,1,1
100,1,1
100,1,1 100,1,1
100,1,1
100,1,1
100,1,1
100,1,1
100,1,1
100,1,1
100,1,1 100,2,2 100,1,1 100,1,1 100,1,1
100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 50,2,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1
100,1,1
100,1,1
100,1,1 100,1,1 100,1,1 100,1,1
100,1,1
100,1,1
100,1,1
100,1,1
100,1,1
100,1,1
100,1,1
100,1,1 67,3,2 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 50,2,1 67,3,2 50,2,1 100,1,1 50,2,1 50,2,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1
100,1,1 100,1,1 100,1,1 50,2,1 50,2,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1
100,1,1
100,1,1
100,1,1
100,1,1
100,1,1
100,1,1
100,1,1
100,1,1
100,1,1
100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 50,2,1 100,1,1 50,2,1 0,1,0 50,2,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1
100,1,1 100,1,1 100,1,1 100,1,1 50,2,1 100,1,1 50,2,1 50,2,1 33,3,1 100,1,1 100,1,1 50,2,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,2,2 100,1,1
100,1,1
100,1,1 100,1,1 100,1,1
100,1,1
100,1,1
100,1,1
100,1,1
100,1,1
100,1,1
100,1,1
100,2,2 100,1,1 100,1,1 100,1,1 100,1,1
100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1
100,3,3 100,1,1 50,2,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 50,2,1 25,4,1 100,1,1 100,1,1 100,1,1 100,1,1
100,1,1 100,1,1 100,1,1 100,2,2 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1
100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,2,2 100,1,1
100,1,1 100,1,1
100,1,1
100,1,1
100,1,1 100,1,1 100,1,1 100,1,1 50,2,1 100,1,1 100,4,4 100,2,2 100,1,1 100,1,1
100,1,1 100,1,1 100,2,2 100,2,2 100,1,1 100,3,3 100,2,2 100,1,1 100,2,2 100,1,1 100,1,1 100,3,3 100,4,4 100,2,2 100,2,2 100,1,1 100,2,2
100,1,1
100,1,1
100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1
100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1
100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 50,2,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1
100,1,1
100,1,1 100,2,2 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1
100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1
100,1,1 100,1,1 100,1,1 100,1,1 100,1,1
100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1
100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1
100,1,1 100,1,1 100,1,1 100,1,1 100,1,1
100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1