Search Console showing errors in your product structured data?

Google’s recent run of enhancement reports in Search Console gives you lots of insights into how your site is performing in search. Sometimes, though, it gives you stuff to think about, like errors or improvements to make. For instance, if you run an online store, you’re bound to have come across this structured data error: “Either ‘offers’, ‘review’ or ‘aggregateRating’ should be specified.” There’s a very easy solution for this if you run WooCommerce and Yoast SEO: our WooCommerce SEO add-on.

The “Either ‘offers’, ‘review’ or ‘aggregateRating’ should be specified” error in Google Search Console 

The “Either ‘offers’, ‘review’ or ‘aggregateRating’ should be specified” happens for a lot of online stores. It means that Google misses several properties in your product schema implementation. By not offering these, your product listings will not reach their full potential in search. This way, Google has a hard time tying all the product-specific properties together to paint a full picture of your product. In some cases, though, they manage, but why let them figure it out? Fixing this becomes imperative if you want a better chance of standing out. 

Who doesn’t want a product listing like the one pictured below?

Valid product schema might lead to eye-popping rich results like this one from Reverb

Oftentimes, however, invalid or incomplete structured data might cripple your perfomance in search. Errors are all too common, like the one in the screenshot from Search Console below.

The “Either ‘offers’, ‘review’ or ‘aggregateRating’ should be specified” error is very common

Help is at hand: Yoast SEO & WooCommerce SEO

WooCommerce is huge in the WordPress world. According to W3Techs, 15% of all WordPress sites run an online shop on the WooCommerce platform. That’s amazing. We have a plugin that helps customers improve their online store: WooCommerce SEO. This addon ties neatly into Yoast SEO, including the big schema graph we build for every site. It also greatly improves the product schema output by WooCommerce. 

If your site runs on WooCommerce and Yoast SEO you need WooCommerce SEO. Besides all the cool behind-the-scenes improvements, it fixes that dreaded “Either ‘offers’, ‘review’ or ‘aggregateRating’ should be specified” error for you: automatically! It gives Google everything it needs to figure out your products are products and thus increases your chances of getting those important rich results.

Why you should fix this error

Google is increasingly betting on schema structured data to help understand the world. If your site offers search engines enough context about what’s on it, the rewards could be great: rich results. And for some types, visibility on other devices like smart speakers or visual assistants.

Getting your product schema right, means you can get these types of results. The one earlier in this article is from Reverb and shows a nicely formed product rich results, with breadcrumbs, product information, ratings and reviews, pricing details and an in-stock message. This is all powered by product schema. 

Reporting on the performance of products 

To help you track how your products are doing, Google recently added a Product enhancement report to Search Console. This report lets you know if your products are correctly structured and, therefore, eligible for rich results. This week, Google also announced that it will allow you to see the performance of your product in the search results. You can now find a new Product line in the Search Appearance section of the Search Performance section. 

Search Console now has a product results view in Search Appearance

This report shows exactly how well your products are doing: how many impressions did they have and how many clicks? This is invaluable data to improve your product listings. 

Fix the error and check your listings

Seeing the product schema error in Search Console? Using Yoast SEO and WooCommerce? Well, you’re in luck. The WooCommerce SEO add-on is the glue that ties the product schema structured data between those two platforms together. It fixes that dreaded error and gives you a better chance at getting your products noticed in Google!

The post Search Console showing errors in your product structured data? appeared first on Yoast.

Yoast SEO 12.5.1: Patch release for time-offset issue

Today, we’re releasing Yoast SEO 12.5.1. It contains a patch to make sure the publication date of your posts is picked up correctly by Google, so the right time will be shown in the search results. Currently, the time shown in the results might differ from the actual publication time, depending on the time zone you’re in. This patch release is mostly important for news sites, as on these sites the exact timing of the article matters the most.

What’s the issue?

If you’ve updated to WordPress 5.3 and published a number of new posts, you might have seen an incorrect publication time of your article in the search results. This issue is caused by a faulty time offset, which might be originating from Yoast SEO (Premium) and/or WordPress 5.3.

A lot of work went into WordPress 5.3 to update the way it handles dates and times. Unfortunately, this change was not without issue. Both Yoast SEO 12.5 as well as WordPress 5.3 have a bug which leads to outputting a slightly offset publishing time.

The WordPress issue will be fixed in WordPress 5.3.1. We thought it best to push out an update for our plugins as soon as possible. So if you update to Yoast SEO 12.5.1 the issue will be fixed, even if you’re still on WordPress 5.3. Our News SEO plugin already had everything in order, so this was unaffected by this issue.

For which kind of sites is this patch release important?

The exact publication time of an article isn’t crucial for most sites. If your site is a news site though, bringing the latest news on hot topics, you probably want to show in the search results that your article is the most recent article on that topic. If this applies to your site, we’d recommend updating it to Yoast SEO (Premium) 12.5.1. If you have another type of site, feel free to update as well, as it’s always best to have the latest version of our software running on your site. 

TLDR;

If you have a news site we recommend to update to Yoast SEO 12.5.1.

The post Yoast SEO 12.5.1: Patch release for time-offset issue appeared first on Yoast.

Why and how to export your focus keyphrases with Yoast SEO Premium

If you have a large website that contains a lot of content, it can be hard to keep an overview of the current (SEO) status of your website. You might want to get insight into which of your posts haven’t been optimized correctly so that you can fix them! Luckily, Yoast SEO Premium offers a quick and easy solution for this: exporting your keywords/keyphrases.

Get Yoast SEO Premium now »Only $89 (ex VAT) for 1 site

How to export keyphrase data

Yoast SEO Premium includes a tool that allows you to export data about your content to a CSV file. This provides you with an overview of the focus keywords used, and the page they’re used on. It lists all of your public posts, terms, and related keyphrases. You can also choose to include other data by clicking the specific checkboxes. The following data can be exported together with your posts:

  • Keyphrase scores
  • URLs
  • Title
  • SEO title
  • Meta description
  • Readability score

You can import the CSV data into Google Sheets or Microsoft Excel and start working on your SEO! You can use this overview for doing a content audit or to quickly see which posts haven’t been optimized correctly.

Other data export options

The Tools section in Yoast SEO Premium includes several other options to import and export data:

  • Import settings
    Import settings from another Yoast SEO installation by pasting them and clicking “Import settings”.
  • Export settings
    You can export your Yoast SEO settings in order to use these settings on another site.
  • Import from other SEO plugins
    Yoast SEO is able to automatically detect data from your old SEO plugin and import the settings.
  • Export redirects
    If you have a lot of redirects on your site
  • Import redirects
    There are different things you can import in the Tool section of Yoast SEO. You can import from other redirect plugins, import from a CSV file or import your redirects directly from your .htaccess file.

Read more: Become a Yoast SEO pro: Yoast SEO Import & Export features »

The post Why and how to export your focus keyphrases with Yoast SEO Premium appeared first on Yoast.

WordPress 5.2.4 Update

Late-breaking news on the 5.2.4 short-cycle security release that landed October 14. When we released the news post, I inadvertently missed giving props to Simon Scannell of RIPS Technologies for finding and disclosing an issue where path traversal can lead to remote code execution.

Simon has done a great deal of work on the WordPress project, and failing to mention his contributions is a huge oversight on our end.

Thank you to all of the reporters for privately disclosing vulnerabilities, which gave us time to fix them before WordPress sites could be attacked.

Duplicate content: Causes and solutions

Search engines like Google have a problem – it’s called ‘duplicate content’. Duplicate content means that similar content appears at multiple locations (URLs) on the web, and as a result search engines don’t know which URL to show in the search results. This can hurt the ranking of a webpage, and the problem only gets worse when people start linking to the different versions of the same content. This article will help you to understand the various causes of duplicate content, and to find the solution to each of them.

What is duplicate content?

Duplicate content is content which is available on multiple URLs on the web. Because more than one URL shows the same content, search engines don’t know which URL to list higher in the search results. Therefore they might rank both URLs lower and give preference to other webpages.

In this article, we’ll mostly focus on the technical causes of duplicate content and their solutions. If you’d like to get a broader perspective on duplicate content and learn how it relates to copied or scraped content or even keyword cannibalization, we’d advise you to read this post: What is duplicate content.

Let’s illustrate this with an example

Duplicate content can be likened to being at a crossroads where road signs point in two different directions for the same destination: Which road should you take? To make matters worse, the final destination is different too, but only ever so slightly. As a reader, you don’t mind because you get the content you came for, but a search engine has to pick which page to show in the search results because, of course, it doesn’t want to show the same content twice.

Let’s say your article about ‘keyword x’ appears at http://www.example.com/keyword-x/ and the same content also appears at http://www.example.com/article-category/keyword-x/. This situation is not fictitious: it happens in lots of modern Content Management Systems. Then let’s say your article has been picked up by several bloggers and some of them link to the first URL, while others link to the second. This is when the search engine’s problem shows its true nature: it’s your problem. The duplicate content is your problem because those links both promote different URLs. If they were all linking to the same URL, your chances of ranking for ‘keyword x’ would be higher.

If you don’t know whether your rankings are suffering from duplicate content issues, these duplicate content discovery tools will help you find out!

Causes of duplicate content

There are dozens of reasons for duplicate content. Most of them are technical: it’s not very often that a human decides to put the same content in two different places without making clear which is the original – it feels unnatural to most of us. There are many technical reasons though and it mostly happens because developers don’t think like a browser or even a user, let alone a search engine spider – they think like a programmer. Take that article we mentioned earlier, that appears on http://www.example.com/keyword-x/ and http://www.example.com/article-category/keyword-x/. If you ask the developer, they will say it only exists once.

Misunderstanding the concept of a URL

No, that developer hasn’t gone mad, they are just speaking a different language. A CMS will probably power the website, and in that database there’s only one article, but the website’s software just allows for that same article in the database to be retrieved through several URLs. That’s because, in the eyes of the developer, the unique identifier for that article is the ID that article has in the database, not the URL. But for the search engine, the URL is the unique identifier for a piece of content. If you explain that to a developer, they will begin to get the problem. And after reading this article, you’ll even be able to provide them with a solution right away.

Session IDs

You often want to keep track of your visitors and allow them, for instance, to store items they want to buy in a shopping cart. In order to do that, you have to give them a ‘session.’ A session is a brief history of what the visitor did on your site and can contain things like the items in their shopping cart. To maintain that session as a visitor clicks from one page to another, the unique identifier for that session – called the Session ID – needs to be stored somewhere. The most common solution is to do that with cookies. However, search engines don’t usually store cookies.

At that point, some systems fall back to using Session IDs in the URL. This means that every internal link on the website gets that Session ID added to its URL, and because that Session ID is unique to that session, it creates a new URL, and therefore duplicate content.

URL parameters used for tracking and sorting

Another cause of duplicate content is using URL parameters that do not change the content of a page, for instance in tracking links. You see, to a search engine, http://www.example.com/keyword-x/ and http://www.example.com/keyword-x/?source=rss are not the same URL. The latter might allow you to track what source people came from, but it might also make it harder for you to rank well – very much an unwanted side effect!

This doesn’t just go for tracking parameters, of course. It goes for every parameter you can add to a URL that doesn’t change the vital piece of content, whether that parameter is for ‘changing the sorting on a set of products’ or for ‘showing another sidebar’: all of them cause duplicate content.

Scrapers and content syndication

Most of the reasons for duplicate content are either the ‘fault’ of you or your website. Sometimes, however, other websites use your content, with or without your consent. They don’t always link to your original article, and therefore the search engine doesn’t ‘get’ it and has to deal with yet another version of the same article. The more popular your site becomes, the more scrapers you’ll get, making this problem bigger and bigger.

Order of parameters

Another common cause is that a CMS doesn’t use nice clean URLs, but rather URLs like /?id=1&cat=2, where ID refers to the article and cat refers to the category. The URL /?cat=2&id=1 will render the same results in most website systems, but they’re completely different for a search engine.

Comment pagination

 In my beloved WordPress, but also in some other systems, there is an option to paginate your comments. This leads to the content being duplicated across the article URL, and the article URL + /comment-page-1/, /comment-page-2/ etc.

Printer-friendly pages

If your content management system creates printer-friendly pages and you link to those from your article pages, Google will usually find them, unless you specifically block them. Now, ask yourself: Which version do you want Google to show? The one with your ads and peripheral content, or the one that only shows your article?

WWW vs. non-WWW

This is one of the oldest in the book, but sometimes search engines still get it wrong: WWW vs. non-WWW duplicate content, when both versions of your site are accessible. Another, less common situation but one I’ve seen as well is HTTP vs. HTTPS duplicate content, where the same content is served out over both.

Conceptual solution: a ‘canonical’ URL

As we’ve already seen, the fact that several URLs lead to the same content is a problem, but it can be solved. One person who works at a publication will normally be able to tell you quite easily what the ‘correct’ URL for a certain article should be, but sometimes when you ask three people within the same company, you’ll get three different answers…

That’s a problem that needs addressing because, in the end, there can be only one (URL). That ‘correct’ URL for a piece of content is referred to as the Canonical URL by the search engines.

canonical_graphic_1024x630

Ironic side note

Canonical is a term stemming from the Roman Catholic tradition, where a list of sacred books was created and accepted as genuine. They were known as the canonical Gospels of the New Testament. The irony is it took the Roman Catholic church about 300 years and numerous fights to come up with that canonical list, and they eventually chose four versions of the same story

Identifying duplicate contents issues

You might not know whether you have a duplicate content issue on your site or with your content. Using Google is one of the easiest ways to spot duplicate content.

There are several search operators that are very helpful in cases like these. If you’d want to find all the URLs on your site that contain your keyword X article, you’d type the following search phrase into Google:

site:example.com intitle:"Keyword X"

Google will then show you all pages on example.com that contain that keyword. The more specific you make that intitle part of the query, the easier it is to weed out duplicate content. You can use the same method to identify duplicate content across the web. Let’s say the full title of your article was ‘Keyword X – why it is awesome’, you’d search for:

intitle:"Keyword X - why it is awesome"

And Google would give you all sites that match that title. Sometimes it’s worth even searching for one or two complete sentences from your article, as some scrapers might change the title. In some cases, when you do a search like that, Google might show a notice like this on the last page of results:

This is a sign that Google is already ‘de-duping’ the results. It’s still not good, so it’s worth clicking the link and looking at all the other results to see whether you can fix some of them.

Read more: DIY: duplicate content check »

Practical solutions for duplicate content

Once you’ve decided which URL is the canonical URL for your piece of content, you have to start a process of canonicalization (yeah I know, try saying that three times out loud fast). This means we have to tell search engines about the canonical version of a page and let them find it ASAP. There are four methods of solving the problem, in order of preference:

  1. Not creating duplicate content
  2. Redirecting duplicate content to the canonical URL
  3. Adding a canonical link element to the duplicate page
  4. Adding an HTML link from the duplicate page to the canonical page

Avoiding duplicate content

Some of the above causes for duplicate content have very simple fixes to them:

  • Are there Session ID’s in your URLs?
    These can often just be disabled in your system’s settings.
  • Have you got duplicate printer friendly pages?
    These are completely unnecessary: you should just use a print style sheet.
  • Are you using comment pagination in WordPress?
    You should just disable this feature (under settings » discussion) on 99% of sites.
  • Are your parameters in a different order?
    Tell your programmer to build a script to always put parameters in the same order (this is often referred to as a URL factory).
  • Are there tracking links issues?
    In most cases, you can use hash tag based campaign tracking instead of parameter-based campaign tracking.
  • Have you got WWW vs. non-WWW issues?
    Pick one and stick with it by redirecting the one to the other. You can also set a preference in Google Webmaster Tools, but you’ll have to claim both versions of the domain name.

If your problem isn’t that easily fixed, it might still be worth putting in the effort. The goal should be to prevent duplicate content from appearing altogether, because it’s by far the best solution to the problem.

301 Redirecting duplicate content

In some cases, it’s impossible to entirely prevent the system you’re using from creating wrong URLs for content, but sometimes it is possible to redirect them. If this isn’t logical to you (which I can understand), do keep it in mind while talking to your developers. If you do get rid of some of the duplicate content issues, make sure that you redirect all the old duplicate content URLs to the proper canonical URLs.

 Sometimes you don’t want to or can’t get rid of a duplicate version of an article, even when you know that it’s the wrong URL. To solve this particular issue, the search engines have introduced the canonical link element. It’s placed in the <head> section of your site, and it looks like this:

<link rel="canonical" href="http://example.com/wordpress/seo-plugin/" />

In the href section of the canonical link, you place the correct canonical URL for your article. When a search engine that supports canonical finds this link element, it performs a soft 301 redirect, transferring most of the link value gathered by that page to your canonical page.

This process is a bit slower than the 301 redirect though, so if you can just do a 301 redirect that would be preferable, as mentioned by Google’s John Mueller.

Keep reading: rel=canonical • What it is and how (not) to use it »

Linking back to the original content

If you can’t do any of the above, possibly because you don’t control the <head> section of the site your content appears on, adding a link back to the original article on top of or below the article is always a good idea. You might want to do this in your RSS feed by adding a link back to the article in it. Some scrapers will filter that link out, but others might leave it in. If Google encounters several links pointing to your original article, it will figure out soon enough that that’s the actual canonical version.

Conclusion: duplicate content is fixable, and should be fixed

Duplicate content happens everywhere. I have yet to encounter a site of more than 1,000 pages that hasn’t got at least a tiny duplicate content problem. It’s something you need to constantly keep an eye on, but it is fixable, and the rewards can be plentiful. Your quality content could soar in the rankings, just by getting rid of duplicate content from your site!

Read on: Rel=canonical: The ultimate guide »

The post Duplicate content: Causes and solutions appeared first on Yoast.

SEO Basics: How to start with SEO?

You’ve had this great idea. You’ve built this amazing website. And then, you want that website to attract visitors! You want to be found! What to do? How do you get started with SEO? How do you start with SEO on a brand new site? In this blog post, I’ll talk you through the 7 steps you need to take in order to get your SEO strategy up and running. 

So, you’ve started your first site and you want it to be found, so you can share your thoughts and views with the world. What to do? Let’s go through the steps of starting with SEO!

  1. Install Yoast SEO

    Provided that your website is on WordPress, installing Yoast SEO should be the first step in your SEO strategy. Our Yoast SEO plugin will help you to make sure your website is crawlable and findable. Yoast SEO will immediately take care of some technical SEO issues, just by being installed on your website. Besides that, our plugin will help you to construct your website in such a way that Google will understand and rank it. We offer a free and a premium plugin. If you’re just starting out, you’ll probably won’t need our premium version yet, although it can already save you some valuable time.

  2. Get that first link

    Google needs to know your website exists. And, in order for Google to know about your awesome new site, you need at least one external link towards your site. The reason for this: Google crawls the web. It follows links and saves all the webpages it finds in a very large database called the index. So, if you want to get into that index, you need (at least) one external link. So make sure to get that link from an external website!

  3. What do you want to rank for?

    Make sure to attract the right audience to your website. Who are your customers? For whom did you build this website? What terms do your customers use when searching on Google? Find out as much as you can about your audience.

    SEOs refer to this stage as doing your keyword research. This is a hard and important phase. There are a lot of helpful tools that make doing keyword research easier. Some of these tools are free, others are rather expensive. While these tools will make the difficult phase of keyword research easier, you should remember that you can’t outsource your keyword research to a tool. You really need to think about your audience and about the search terms they are using. Take your time for this phase. It is crucial. If you do your keyword research correctly, you’ll come up with a long list of keywords you want to rank for.

  4. Set realistic goals

    For a new site, it is rather hard to rank high in the beginning. Older sites already have a history, established their authority and a lot of links pointing towards them. That means that Google’s crawlers come by more often at older sites. For a new site to rank, you’ll always need to be a little patient. And remember: some search terms will be out of reach for a new site because there’s too much competition. Trying to rank for [WordPress SEO] will be rather hard for any new blog, because of some fierce competition on that term from Yoast.com.

    If you’re just starting with your site, try to aim at ranking for long-tail keywords. Long-tail keywords are keywords that are longer and more specific and have far less competition than the popular head keywords. After a while, when your site starts to rank for the long-tail keywords, you could try and go after the more head keywords.

  5. Internal linking

    As I already mentioned in step 2, Google follows links. Google also follows the links on your website, your internal linking structure. It crawls through your website following the internal linking structure of your site. That structure is like a guide to Google. Make sure your internal linking structure is flawless. That’ll help with your ranking. 

    If you start with a brand new website, you’ll probably don’t have much content yet. This is the perfect time to think about structure. Now it is relatively easy. It’s like having a new closet and you haven’t started buying clothes. Now is the time to think about the things you want to put on the top shelf and which items you want to hide in the back of your closet. So, decide which pages are most important to you. What are the pages you want to rank with? Make sure that these pages have the most internal links pointing towards them.

  6. Start writing

    In order to get ranked, you need to have content. A very important step in how to start with your SEO is to write amazing content for all these search terms you want to be found for. The content analysis in the Yoast SEO plugin will help you to write that content. Our analysis will help you to write a text that is both readable and SEO friendly.

    While you’re writing, make sure to use the words you want to be found for. Use them in headings and in the introduction and conclusion of your text. After writing your text, you should optimize your SEO title and your meta description. The Yoast SEO plugin will help you to do all these things.

  7. Get those links!

    External links are important to get your site in high positions in those search engines. But gathering those external links can be a hard process. Make sure to write content people want to share and link to. Original ideas and great, valuable content will make the chance that people would want to share that much bigger.

    Of course, reaching out to people and making them aware of your awesome website and product can be a good strategy to get those external links too. Read more about a successful link building strategy or find out what link building is first.

And then what?

The truth is that SEO is more than these 7 steps. This is only the very beginning, the steps you take to start with SEO. In order to get longterm high rankings in the search engines, you need to do hard work. Your content has to be amazing, your site structure has to remain flawless (and that’s challenging when your site is growing) and you’ll have to keep earning those external links. The only way to really do that, in the long run, is to make sure that your audience enjoys visiting your website. If you want to rank the highest, make sure your site is the very best. Good luck!

Read more: wordPress SEOL the definitive guide »

The post SEO Basics: How to start with SEO? appeared first on Yoast.

Yoast SEO 12.5: Behind the scenes improvements

These last couple of months here at Yoast SEO HQ have all been about building better things. Behind the scenes, we’re making good progress at getting our flagship plugins ready for the future. While we’re busy building the future, we also stick to our regular two-week release schedule, which means it’s time to introduce Yoast SEO 12.5.

Fixing bugs and behind the scenes scaffolding

Yoast SEO 12.5 is one where most of the work went on behind the scenes. We’re working on improving our codebase and will be releasing something cool pretty soon. To get that done, we need to do some cleaning up. 

Besides getting ready for future releases, we’ve fixed a number of bugs. One of those bugs happened for terms where keywords and snippet preview data would be synced across all languages in a MultilingualPress multisite environment. Another bug misplaced visually hidden text in several elements inside the Snippet Preview. We’ve also deprecated the old Search Console integration as that won’t be returning in that same shape or form.

A reminder about support for older versions of WordPress 

With yesterday’s release of WordPress 5.3, we will return to our initial position of only supporting the latest two versions of WordPress. In this case, that’s WordPress 5.2 and WordPress 5.3, and not versions before that. This means we’ll end our support for WordPress 4.9, which we’ve supported longer than usual to allow people to transition to WordPress 5.0 and ease over people to the classic editor or block editor. Luckily, the vast majority of you have probably updated to the latest versions.

In WordPress 5.2, the core team upped the minimum PHP requirements from an ancient 5.2 to the slightly less ancient 5.6. By supporting the last two versions of WordPress, we can now develop our software using PHP 5.6. This means that we can develop faster and more securely. Read Joost’s post on supporting older versions of WordPress.

Update now to Yoast SEO 12.5

Yoast SEO 12.5 is a fairly basic release with lots of stuff going on in the background. We’ve fixed a number bugs and helped Yoast SEO get ready for future improvements.

The post Yoast SEO 12.5: Behind the scenes improvements appeared first on Yoast.

WordPress 5.3 “Kirk”

Album cover for WordPress 5.3 Kirk, showcasing a duotone red/cream Rahsaan Roland Kirk playing the saxophone on a red background.

Introducing our most refined user experience with the improved block editor in WordPress 5.3! Named “Kirk” in honour of jazz multi-instrumentalist Rahsaan Roland Kirk, the latest and greatest version of WordPress is available for download or update in your dashboard.

5.3 expands and refines the block editor with more intuitive interactions and improved accessibility. New features in the editor increase design freedoms, provide additional layout options and style variations to allow designers more control over the look of a site.

This release also introduces the Twenty Twenty theme giving the user more design flexibility and integration with the block editor. Creating beautiful web pages and advanced layouts has never been easier.


Block Editor Improvements

This enhancement-focused update introduces over 150 new features and usability improvements, including improved large image support for uploading non-optimized, high-resolution pictures taken from your smartphone or other high-quality cameras. Combined with larger default image sizes, pictures always look their best.

Accessibility improvements include the integration of block editor styles in the admin interface. These improved styles fix many accessibility issues: color contrast on form fields and buttons, consistency between editor and admin interfaces, new snackbar notices, standardizing to the default WordPress color scheme, and the introduction of Motion to make interacting with your blocks feel swift and natural.

For people who use a keyboard to navigate the dashboard, the block editor now has a Navigation mode. This lets you jump from block to block without tabbing through every part of the block controls.


Expanded Design Flexibility

WordPress 5.3 adds even more robust tools for creating amazing designs.

  • The new Group block lets you easily divide your page into colorful sections.
  • The Columns block now supports fixed column widths.
  • The new predefined layouts make it a cinch to arrange content into advanced designs.
  • Heading blocks now offer controls for text and background color.
  • Additional style options allow you to set your preferred style for any block that supports this feature.

Introducing Twenty Twenty

A desktop preview of the Twenty Twenty theme, showing both the front-end and the editor view.
A mobile image of the Twenty Twenty  theme, over a decorative backgorund of brown-grey bars.

As the block editor celebrates its first birthday, we are proud that Twenty Twenty is designed with flexibility at its core. Show off your services or products with a combination of columns, groups, and media blocks. Set your content to wide or full alignment for dynamic and engaging layouts. Or let your thoughts be the star with a centered content column!

As befits a theme called Twenty Twenty, clarity and readability is also a big focus. The theme includes the typeface Inter, designed by Rasmus Andersson. Inter comes in a Variable Font version, a first for default themes, which keeps load times short by containing all weights and styles of Inter in just two font files.


Improvements for Everyone

An icon showing an arrow rotating a square.

Automatic Image Rotation

Your images will be correctly rotated upon upload according to the embedded orientation data. This feature was first proposed nine years ago and made possible through the perseverance of many dedicated contributors.

A plus in a square, indicating health.

Improved Site Health Checks

The improvements introduced in 5.3 make it even easier to identify issues. Expanded recommendations highlight areas that may need troubleshooting on your site from the Health Check screen.

A email icon.

Admin Email Verification

You’ll now be periodically asked to confirm that your admin email address is up to date when you log in as an administrator. This reduces the chance of getting locked out of your site if you change your email address.


For Developers

Date/Time Component Fixes

Developers can now work with dates and timezones in a more reliable way. Date and time functionality has received a number of new API functions for unified timezone retrieval and PHP interoperability, as well as many bug fixes.

PHP 7.4 Compatibility

WordPress 5.3 aims to fully support PHP 7.4. This release contains multiple changes to remove deprecated functionality and ensure compatibility. WordPress continues to encourage all users to run the latest and greatest versions of PHP.

The Squad

This release was led by Matt MullenwegFrancesca Marano, and David Baumwald. They were enthusiastically supported by a large release squad:

The squad was joined throughout the twelve week release cycle by 645 generous volunteer contributors (our largest group of contributors to date) who collectively fixed 658 bugs.

Put on a Rahsaan Roland Kirk playlist, click that update button, and check the profiles of the fine folks that helped:

123host, 1994rstefan, 5hel2l2y, @irsdl, Aaron D. Campbell, Aaron Jorbin, Aashish S, Abhijit Rakas, abrightclearweb, acalfieri, acosmin, Adam Silverstein, Adam Soucie, Adhitya Rachman, ahdeubzer, Ahmad Awais, Ajay Ghaghretiya, Ajit Bohra, ajlende, Akira Tachibana, albertomake, Alex Concha, Alex Dimitrov, Alex Lion, Alex Sanford, Alexander Botteram, Alexandre D'Eschambeault, Alexandru Vornicescu, alexeyskr, alextran, Ali Ayubi, allancole, Allen Snook, Alvaro Gois dos Santos, Amanda Rush, amolv, Anders Norén, Andrea Fercia, Andrea Gandino, Andrea Grillo, Andrea Middleton, Andreas Brain, Andrei Draganescu, Andrew Duthie, Andrew Nacin, Andrew Nevins, Andrew Ozz, Andrew Taylor, Andrey Savchenko, Andrés Maneiro, Andy Fragen, Andy Meerwaldt, Angela Gibson, Anh Tran, anischarolia, Anthony Burchell, Anton Timmermans, Apermo, Arafat Rahman, arena, Ari Stathopoulos, Arun Sathiya, Asad, asadkn, Ashar Irfan, ashwinpc, Aslam Shekh, atlasmahesh, au87, Aubrey Portwood, augustuswm, Aurooba Ahmed, Avina Patel, Axel DUCORON, Ayesh Karunaratne, backermann1978, Bartosz Romanowski, Bego Mario Garde, Benjamin Intal, Benjamin Zekavica, bennemann, bgermann, Bhaktii Rajdev, bibliofille, Biranit, Birgir Erlendsson, bitcomplex, BjornW, boblinthorst, Boone Gorges, Boro Sitnikovski, Bradley Jacobs, Bradley Taylor, Brandon Kraft, Brent Swisher, Bronson Quick, bsetiawan88, Burhan Nasir, Carlos Bravo, Carolina Nymark, Catalin Dogaru, Cathi Bosco, Chandra Patel, Charlie Merland, Chetan Prajapati, Chetan Satasiya, Chico, Chintan hingrajiya, ChriCo, Chris Aprea, Chris Van Patten, Christian Chung, Christian Wach, christianoliff, Christoph Herr, cleancoded, cmagrin, codesue, CompileNix, Corey Salzano, courtney0burton, Cristiano Zanca, Csaba (LittleBigThings), D.S. Webster, daleharrison, Dan Foley, Dan Jones, DanBUK, Daniel Bachhuber, Daniel Jalkut (Red Sweater), Daniel James, Daniel Llewellyn, Daniel Richards, danieliser, daniloercoli, Danny van Kooten, Darren Ethier, darthhexx, Dave Parker, Dave Smith, Dave Whitley, davetgreen, David Aguilera, David Anderson, David Binovec, David Binovec, David Decker, David Herrera, David Rozando, David Shanske, daxelrod, Debabrata Karfa, Deni, Denis Cherniavsky, Denis Yanchevskiy, Dennis, Dennis Hipp, Dennis Snell, Derek Sifford, derweili, dfangstrom, Dharmin Shah, Dhaval kasavala, dhuyvetter, Diane Co, DiedeExterkate, Diego La Monica, digitalapps, Dilip Bheda, Dima, dingo-d, Dion Hulse, Dixita Dusara, Dominik Schilling, Drew Jaynes, Dukex, dushanthi, EcoTechie, Edi Amin, Eduardo Toledo, Ella van Durpe, Elliot Condon, Emerson Maningo, Emil Dotsev, Emil Uzelac, Enrique Piqueras, Enrique Sánchez, erikkroes, estelaris, evalarumbe, faazshift, Fabian Kägy, fblaser, Felipe Elia, Felix Arntz, Fencer04, flipkeijzer, Florian TIAR, Foysal Remon, Gal Baras, Garrett Hyder, Garth Mortensen, Gary Jones, Gary Pendergast, Gaurang Dabhi, Gennady Kovshenin, Gesundheit Bewegt GmbH, ghoul, girlieworks, glauberglauber, Glenn, GravityView, gregsullivan, Grzegorz Ziółkowski, gwwar, Hardeep Asrani, Hardik Thakkar, hardipparmar, Hareesh Pillai, Hareesh Pillai, harryfear, harshbarach, haszari, He Yifei, Helen Hou-Sandi, Henry Wright, herbmiller, herregroen, hirofumi2012, HKandulla, Howdy_McGee, hoythan, Hugh Lashbrooke, hypest, Ian Belanger, Ian Dunn, ianmjones, Igor Zinovyev, imath, Imran Sayed, intimez, Ipstenu (Mika Epstein), iqbalbary, Irene Strikkers, Isabel Brison, Ismail El Korchi, J.D. Grimes, jagirbaheshwp, Jake Spurlock, Jalpa Panchal, James Nylen, jameslnewell, janak Kaneriya, Janki Moradiya, janw.oostendorp, jared_smith, jarocks, Jarret, jave.web, javorszky, Jay Swadas, Jaydip, Jean-Baptiste Audras, Jeff Farthing, Jeff Paul, jeichorn, Jen Miller, jenkoian, Jeremy Felt, Jesper van Engelen, Jessica Lyschik, jffng, jikamens, jitendrabanjara1991, jkitchen, jmmathc, joakimsilfverberg, Job, jodamo5, Joe Dolson, Joe Hoyle, Joe McGill, Joen Asmussen, John Blackbourn, John James Jacoby, John Regan, jojotjebaby, Jonathan Champ, Jonathan Davis, Jonathan Desrosiers, Jonathan Goldford, Jonny Harris, Jono Alderson, Joost de Valk, Jorge Bernal, Jorge Costa, Joseph Scott, Josepha Haden, Josh Pollock, Joshua Noyce, JoshuaWold, Joy, jsnajdr, Juanfra Aldasoro, Juhi Patel, Juliette Reinders Folmer, Julio Potier, junktrunk, Justin Ahinon, Justin Tadlock, K. Adam White, kafleg, Kailey (trepmal), Kakshak Kalaria, Kamran Khorsandi, karlgroves, katielgc, kbrownkd, Kelly Dwan, Kelly Hoffman, Kerfred, kero, ketanumretiya030, kevIN kovaDIA, killerbishop, killua99, Kjell Reigstad, Knut Sparhell, kokers, Konstantin Obenland, Konstantinos Xenos, kuus, laurelfulford, lbenicio, leogermani, leonblade, lessbloat, Lindstromer, lllor, lordlod, LoreleiAurora, Luan Ramos, luciano-croce, luigipulcini, luisherranz, Luke, Luke Carbis, Luke Cavanagh, m1tk00, maartenleenders, Maciej Palmowski, Mahesh Waghmare, Maje Media LLC, malthert, manooweb, Manuel Augustin, Manzoor Wani, MarcGuay, Marcin Pietrzak, Marco Martins, MarcosAlexandre, Marcus Kazmierczak, marekhrabe, Marie Comet, Mario Aguiar, Mario Peshev, Marius Jensen, Mark D Wolinski, Mark Jaquith, Mark Uraine, Marko Heijnen, Martin Spatovaliyski, Martin Splitt, Marty Helmick, Mary Baum, masummdar, Mat Gargano, Mat Lipe, Mathieu Sarrasin, Matt Chowning, Matthew Boynes, Matthew Haines-Young, matthias.thiel, mattyrob, Matías Ventura, Maxime Culea, Maxime Jobin, maxme, Meet Makadia, mehidi258, Mehul Kaklotar, Mel Choyce, Melin Edomwonyi, meloniq, Michael Arestad, Michael Babker, Michael Nelson, Michael Panaga, michel.weimerskirch, Michiel Heijmans, Miguel Fonseca, Miguel Vieira, mihaiiceyro, Miina Sikk, Mikael Korpela, Mike Auteri, Mike Glendinning, Mike Hansen, Mike Jolley, Mike Reid, Mike Schroder, MikeNGarrett, Milan Dinić, Mobeen Abdullah, Mohsin Rasool, Monika Rao, Monique Dubbelman, Morgan Kay, Morten Rand-Hendriksen, Morteza Geransayeh, moto hachi ( mt8.biz ), mppfeiffer, mrmadhat, msaggiorato, mtias, Muhammad Afzal, Mukesh Panchal, munyagu, mzorz, nadir, Naveen Kharwar, Nayana Maradia, Ned Zimmerman, Neel Patel, Nextendweb, Niall Kennedy, Nick Daugherty, Nick Halsey, nicolad, Nicolas Juen, Niels de Blaauw, Niels Lange, Nikhil Chavan, nikolastoqnow, Niku Hietanen, Nilambar Sharma, Nishit Langaliya, Nitish Kaila, nmenescardi, noahtallen, notnownikki, Okamoto Hidetaka, Omaar Osmaan, Omar Reiss, onlanka, oxyc, ozmatflc, Paal Joachim Romdahl, Paragon Initiative Enterprises, Paresh Shinde, Pascal Birchler, Pascal Casier, patilvikasj, Patrick Baldwin, Paul Bearne, Paul Biron, Paul Schreiber, Paul Vincent Beigang, Pedro Mendonça, pepe, Peter Wilson, PhillipJohn, Pierre Gordon, pikamander2, Pilar Mera, Pinar Olguc, powerbuoy, Pramod Jodhani, Pratik, Pratik K. Yadav, Prem Tiwari, Presskopp, Priyank Patel, Quantumstate, Raaj Trambadia, Raam Dev, raboodesign, Rahul Vaza, Ramanan, Rami Yushuvaev, ramon fincken, RC Lations, rebasaurus, ReikoDD, Remco Tolsma, retrofox, Riad Benguella, Richard Korthuis, Riddhi Mehta, Rishabh Budhiraja, Robert Anderson, Robert Chapin, Robert Ivanov, rogueresearch, Roi Conde, Ronak Ganatra, Ronny Harbich, Roy Randolph, Roy Tanck, Ryan Boren, Ryan Kienstra, Ryan McCue, Ryan Welcher, Sébastien SERRE, samgordondev, Sami Ahmed Siddiqui, Samir Shah, Samuel Wood (Otto), Sanket Mehta, sarah semark, sarath.ar, saskak, sbardian, Scott Reilly, Sebastian Pisula, Seghir Nadir, Sergey Biryukov, Sergey Predvoditelev, sergiomdgomes, seuser, sgastard, Shady Sharaf, Shamim Hasan, Sharaz Shahid, Shashank Panchal, shawfactor, Shital Marakana, siliconforks, simono, sirreal, Sixes, Slava Abakumov, Slobodan Manic, smerriman, snapfractalpop, socalchristina, Soren Wrede, Spectacula, spenserhale, spuds10, Stanimir Stoyanov, Stefano Minoia, Stephen Bernhardt, Stephen Edgar, Steven Word, studyboi, Subrata Sarkar, Sudhir Yadav, Sultan Nasir Uddin, sun, svanhal, Swapnil V. Patil, swapnild, Sybre Waaijer, Sérgio Estêvão, Takayuki Miyauchi, Takis, Tammie Lister, tazotodua, technote, Tellyworth, Tessa Kriesel, them.es, Themezly, Thijs Hulshof, Thomas Kräftner, thomaswm, Thord D. Hedengren, Thorsten Frommen, Thrijith Thankachan, tigertech, Tim Carr, Tim Havinga, Tim Hengeveld, Timothy Jacobs, timph, tmatsuur, tmdesigned, TobiasBg, toddhalfpenny, Todor Gaidarov, Tom J Nowell, Tommy Ferry, Toni Viemerö, tonybogdanov, Tor-Bjorn Fjellner, torres126, Torsten Landsiedel, Towhidul Islam, trasweb, Travis Northcutt, travisseitler, triplejumper12, truchot, truongwp, Tugdual de Kerviler, Tung Du, Udit Desai, Ulrich, Utsav tilava, Vaishali Panchal, vbaimas, Venutius, Viktor Veljanovski, Vishal Kakadiya, vishitshah, vladlu, Vladut Ilie, vortfu, Vova Feldman, vrimill, w3rkjana, Webdados (Marco Almeida), WebMan Design | Oliver Juhas, Weston Ruter, William Earnhardt, William P. Davis, William Patton, withinboredom, worldweb, yanngarcia, Yannicki, yarnboy, yashar_hv, Yoav Farhi, yodiyo, Yui, Yvette Sonneveld, zaantar, zalak151291, Zebulan Stanphill, Česlav Przywara, Айрат Халитов 🔥, and 水野史土.

Also, many thanks to all of the community volunteers who contribute in the support forums. They answer questions from people across the world, whether they are using WordPress for the first time or since the first release. These releases are more successful for their efforts!

If you want learn more about volunteering with WordPress, check out Make WordPress or the core development blog.


Thanks for choosing WordPress!

People of WordPress: Kim Parsell

You’ve probably heard that WordPress is open-source software, and may know that it’s created and run by volunteers. WordPress enthusiasts share many examples of how WordPress changed people’s lives for the better. This monthly series shares some of those lesser-known, amazing stories.

Meet Kim Parsell

We’d like to introduce you to Kim Parsell. Kim was an active and well-loved member of the WordPress community. Unfortunately, she passed away in 2015. Lovingly referred to as #wpmom, she leaves behind a legacy of service. 

Kim Parsell

How Kim became #wpmom

In order to understand how highly valued the WordPress community was to Kim Parsell, you have to know a bit about her environment.

Kim was a middle-aged woman who lived off a dirt road, on top of a hill, in Southern rural Ohio. She was often by herself, taking care of the property with only a few neighbors up and down the road.

She received internet access from towers that broadcast wireless signals, similar to cell phones but at lower speeds.

Connecting through attending live podcast recordings

By listening to the regular podcast, WordPress Weekly, Kim met members of the WordPress community and was able to talk to them on a weekly basis. The show and its after-hours sessions provided Kim a chance to mingle with the who’s who of WordPress at the time. It helped establish long-lasting relationships that would open up future opportunities for her.

Since she lived in a location where few around her used or had even heard of WordPress, the community was an opportunity for her to be with like-minded people. Kim enjoyed interacting with the community, both online and at WordCamp events, and many community members became her second family, a responsibility she took very seriously.

“Many members of the WordPress community became her second family, a responsibility she took very seriously.”

Jeff Chandler

One of the first women of WordPress

Kim is regarded as one of the first “women of WordPress,” investing a lot of her time in women who wanted to break into tech. She worked hard to create a safe environment sharing herself and her knowledge and was affectionately called #wpmom.

She contributed countless hours of volunteer time, receiving “props” for 5 major releases of WordPress, and was active on the documentation team. 

“Affectionately called #wpmom, Kim was an investor. She invested countless hours into the WordPress project and in women who wanted to break into tech.”

Carrie Dils
Kim at WordCamp San Francisco

Kim Parsell Memorial Scholarship

In 2014, she received a travel stipend offered by the WordPress Foundation that enabled her to attend the WordPress community summit, held in conjunction with WordCamp San Francisco. She shared with anyone who would listen, that this was a life-changing event for her. 

The WordPress Foundation now offers that scholarship in her memory. The Kim Parsell Memorial Scholarship provides funding annually for a woman who contributes to WordPress to attend WordCamp US, a flagship event for the WordPress community.

This scholarship truly is a fitting memorial. Her contributions have been vital to the project. Moreover, the way she treated and encouraged the people around her has been an inspiration to many.  

Her spirit lives on in the people she knew and inspired. Here’s hoping that the Kim Parsell Memorial Scholarship will serve to further inspire those who follow in her footsteps.

Drew Jaynes

Kim is missed, but her spirit continues to live on

Sadly Kim died just a few short months later. But her spirit lives on in the people she knew and inspired within her communities. The Kim Parsell Memorial Scholarship will serve to further inspire those who follow in her footsteps.

Contributors

@wpfiddlybits, @yvettesonneveld, @josephahaden, Topher Derosia, Jeff Chandler, Carrie Dils, Jayvee Arrellano, Jan Dembowski, Drew Jaynes

WordPress 5.3 RC4

The fourth release candidate for WordPress 5.3 is now available!

WordPress 5.3 is currently scheduled to be released on November 12 2019, but we need your help to get there—if you haven’t tried 5.3 yet, now is the time!

There are two ways to test the WordPress 5.3 release candidate:

For details about what to expect in WordPress 5.3, please see the first,  second and third release candidate posts.

Release Candidate 4 contains three bug fixes for the new default theme, Twenty Twenty (see #48450), and addresses the following:

  • The Twemoji library has been updated from 12.1.2 to 12.1.3 (see #48293).
  • Two regressions in the Media component (see #48451 and #48453).
  • One bug in the Upload component (see #48472)
  • Five bugs in the Block Editor component (see #48502)

Plugin and Theme Developers

Please test your plugins and themes against WordPress 5.3 and update the Tested up to version in the readme to 5.3. If you find compatibility problems, please be sure to post to the support forums so we can figure those out before the final release.

The WordPress 5.3 Field Guide has also been published, which details the major changes.

A new dev note has been published since the Field Guide was released, Use of the “wp_update_attachment_metadata” filter as “upload is complete” hook. Plugin and theme authors are asked to please read this note and make any necessary adjustments to continue working well in WordPress 5.3 or share any difficulties encountered on #48451.

How to Help

Do you speak a language other than English? Help us translate WordPress into more than 100 languages!

If you think you’ve found a bug, you can post to the Alpha/Beta area in the support forums. We’d love to hear from you! If you’re comfortable writing a reproducible bug report, file one on WordPress Trac, where you can also find a list of known bugs.