Exciting New Cache Feature Coming in WPSSO Core

There’s an exciting new cache feature coming in WPSSO Core v3.56.0 — a new “Auto-Refresh Cache After Clear All” option will be available under the SSO > Advanced Settings > Cache Settings tab (Pro version).

One of the interesting things about WPSSO is that most cached objects, like meta tags and Schema JSON-LD markup, are created and stored as arrays, independent of the webpage. This makes it possible to loop through all post, term, and user IDs, and re-create those arrays easily — again, completely independently of the webpage (or WordPress action hooks), so no HTTP connection is required — which makes for a very fast and efficient way of creating (or re-creating) cache objects! ;-)

The new “Auto-Refresh Cache After Clear All” option is enabled by default. When you click the “Clear All Cache” button (from any settings page), the WPSSO cache will be cleared and a background task will be started to re-create all the missing WPSSO cache objects. The same class method is also called when the plugin is activated, to optimize the speed of all front-end webpages and back-end editing pages. :)

Continue reading

Choosing your PHP Image Extension for WordPress

WordPress supports two different PHP image processing extensions — ImageMagick and GD — with a preference for ImageMagick over GD. The GD extension can still be used if the WordPress ‘WP_Image_Editor_Imagick’ class does not offer support for the requested mime-type or class method.

In some cases, the ImageMagick extension might not be installed, or might be unreliable (old versions of ImageMagick can be buggy). You can hook the WordPress ‘wp_image_editors’ filter to manage the preferred order of WordPress image classes.

For example, here’s a filter and function to remove the ImageMagick class altogether:

Continue reading

Fix “sslverify = false” for Pro Plugin / Theme Updates

This is a pet peeve of mine – some plugin and theme authors (to make their lives easier) set “sslverify = false” in their Pro version update checks and/or other HTTP requests.

Luckily a few security and error checking plugins like the Query Monitor plugin (for example), will show a warning if the WordPress wp_remote_get() function is executed with “sslverify = false”. To make sure this is never the case, you can use the following filters in your functions.php file.

Continue reading

WPSSO – New Extension for Breadcrumbs Markup

WPSSO Breadcrumbs Markup (aka WPSSO BC) version 1.0.0 for WPSSO Core was released yesterday. You can install and activate the extension from the SSO > Extension Plugins settings page, download it from the WPSSO website, wordpress.org, or GitHub.

Uses Google’s preferred Schema JSON-LD format.

Most comprehensive Schema BreadcrumbsList markup of any plugin.

Adds Schema BreadcrumbList markup to posts, pages, and custom post types.

Select between using ancestors (page parents, grand-parents, etc.) or categories for breadcrumbs.

No theme function or template files to modify!

Simply activate / deactivate the plugin to enable / disable the addition of Schema BreadcrumbList markup.

Continue reading

WPSSO – Robots Option for Search Engines / SEO

WPSSO Core v3.52.0 includes a new “Robots” option for search engines / SEO in the post edit Publish metabox (see the changelog here). Uncheck the “meta name robots” option under the SSO > Advanced > Head Tags List > SEO / Other tab to hide / exclude the “Robots” option from the Publish metabox (enabled by default if no SEO plugin is detected).

This new WPSSO Core version includes a new “Person” role for users – this role is added to all new users by default. You can uncheck the “Add Person Role for New Users” option under the SSO > Advanced > Integration tab to disable this automatic feature (enabled by default). The “Person” role will be used by WPSSO JSON for selects requiring a “Person” role for its Schema markup.

WPSSO Core v3.53.0 also includes fix for the image upscale feature – an incorrectly named variable prevented the proper calculation of the image upscale size.

Continue reading

WPSSO – Why You Shouldn’t Upload Small Images

Once in a while a WPSSO Core user will ask me how to disable notices from WPSSO for small images — they reason that images uploaded to their Media library are sized correctly beforehand, and they cannot re-upload larger images without significantly altering their content layout (including huge images, instead of smaller ones, in their post content). For example, if a user requires a 300x200px image for their content, they upload a 300x200px image to the Media library. What they don’t realize is that WordPress isn’t meant to be used this way and they’re breaking an essential WordPress feature by doing this — not to mention that WPSSO will probably reject the image for being too small for Facebook Open Graph meta tags and Google Schema markup requirements. :-)

WordPress and several 3rd party plugins provide different image sizes based on the resolution of the viewing device (aka responsive images). For example, a 300x200px image in your content will look blurry on high resolution screens (almost all current mobile phones, tablets, and laptops) because the browser must “upscale” the image to 450x300px or 600x400px in order to fill a 300x200px space on these high resolution screens. WordPress includes additional image markup in the webpage to provide alternative sizes (300x200px, 450x300px, and 600x400px for example), which allows the browser to choose the appropriate image based on the screen resolution. If you upload a 300x200px image to the Media library, WordPress will not be able to offer these additional image sizes, and WPSSO will not be able to use this image for most social sites and search engines (which have minimum image size requirements).

So, what should you do if you want a 300x200px image in your content?

That’s what WordPress image sizes are for. ;-)

Continue reading

WPSSO – New JetPack Breaks Shortlinks for CPTs

A number of WPSSO Core customers using JetPack have reported that shortlinks no longer work for Custom Post Types (CPTs). According to JetPack, this is a feature, and PHP code specifically for this JetPack feature must be added to your functions.php file — or an additional property added to the Custom Post Type definition. Unless you have made these PHP code changes, JetPack will break the WordPress wp_get_shortlink() function for all Custom Post Types.

Because of this new JetPack feature, older versions of WPSSO Core (before version 3.48.7) may show a warning on Custom Post Type editing pages that the post shortlink is empty — which also prevents WPSSO Core from checking the current post webpage for duplicate meta tags. Additionally, the WordPress “Get Shortlink” button on post editing pages and the link rel="shortlink" HTML tag in webpage headers will be missing.

WPSSO Core version 3.48.7 now checks for empty values returned by the wp_get_shortlink() function and provides a correct shortlink URL. This not only addresses the new Jetpack feature, but also fixes incorrectly coded themes that disable the link rel="shortlink" HTML tag by returning an empty shortlink value (a violation of the WordPress theme guidelines).

Continue reading

WPSSO JSON Pro – New Job Posting Options

The upcoming WPSSO JSON Pro v1.18.0 release (ETA Nov 11-12th) includes new Schema Job Posting options in the Social and Search Optimization metabox and support for the Simple Job Board plugin (along with pre-existing support for the WP Job Manager plugin from Automattic). See the WPSSO JSON changelog for more details.

You’ll find three new Schema Job Posting options in the Social and Search Optimization metabox:

  • Job Title
  • Employment Type
  • Job Posting Expires

Continue reading

WPSSO Core – New “Cache Status” in Dashboard

The upcoming WPSSO Core v3.48.0 release includes several changes to cache handling methods and filters.

If your site still uses the default WordPress transient cache in the database options table (most WordPress sites), you’ll find a new “Cache Status” metabox on the SSO > Plugin Dashboard and Features Status page.

If you’re using an external object cache, like APC, Memcache, Redis, Xcache, etc., this new metabox will not be displayed. Support for your chosen external object cache could be added at a later date, depending on user requests and the availability of an API to get (or count) all stored keys by prefix.

Continue reading

Help Test the New BFO Feature in WPSSO v3.47.0

As my recent post on Make WordPress Plugins explains, there’s a serious problem in many themes and plugins using the content filter, and although this problem well known, it has largely been ignored by the WordPress community. :-/

I’d like your feedback on the new Block Filter Output (BFO) feature that will be enabled in WPSSO version 3.47.0 (currently in pre-release) — the Block Filter Output (BFO) feature attempts to make the content filter usable by monitoring the content filter for webpage output, and fixing incorrectly coded filter hooks (that send text to the webpage instead of returning it, as all filter hooks must). WPSSO version 3.47.0 will also enable the “Apply WordPress Content Filter” option by default, and use the BFO feature to report any content filter issues.

If you are a Pro version user, you can try the latest pre-release / release candidate version by selecting the “Release Candidate and Up” version filter for WPSSO under the SSO > Update Manager settings page. Let me know if WPSSO reports any issues with your content filters — hopefully it won’t, but if it does, you’ll have the necessary information to contact the theme or plugin author and have them fix their code. ;-)

Continue reading