ThorneLabs

Use Microdata to Improve Your Snippets in Google Search Results


Lately I have been trying to find new ways to make all my blogs posts more relevant in Google Search Results. One major thing I have neglected to pay attention to since the inception of this blog was how my blog post snippets look in Google Search Results.

Most of my blog post snippets looked like this in Google Search Results:

SERP Snippet Incorrect

Notice the normal blue title link and green URL, but in the search result snippet there is redundant information; the title is shown again as well as the date string I put in all my blog posts, but, despite having a date string in my blog post, Googlebot was not parsing it properly and placing it at the front of the snippet in the usual muted grey font.

The was happening because Googlebot was parsing the H1 header and date of each blog post as the beginning of the blog post instead of the actual beginning of the blog post paragraph. There is probably a way to fix this by changing how I structure my HTML, but I was not interested in changing any of that. There had to be a simple way to make my blog post snippets look like this:

SERP Snippet Correct

Notice how the redundant title is gone, the date is now parsed differently and placed at the front of the snippet in a muted grey font, and the snippet description now has more text content.

To begin figuring out how to fix this, I started with Google’s Customizing Results Snippets documentation. I did not find what I was looking for until I scrolled to the bottom of that page and clicked the link to Providing Structured Data.

On that page I came across the Using Microdata section, and I knew this was what I needed to fix my blog post snippets in Google Search Results.

From that same page: “Microdata uses simple attributes in HTML tags (often span or div) to assign brief and descriptive names to items and properties.” Using microdata, I can tell Googlebot, and any other web crawler that follows the microdata standard, exactly which parts of my blog posts contain the title, date, author, and body, so it can parse the web page in a predictable manner.

Google even provides a Structured Data Testing Tool to help you put the HTML microdata attributes in the proper place.

So, on March 7, 2018, I added the following itemprop attributes to all of my blog posts:

  • itemscope itemtype=“http://schema.org/Article”
  • itemprop=“datePublished”
  • itemprop=“articleBody”

After making and publishing the changes, I waited two days, but I did not see any changes in Google Search Results when I checked using a site:thornelabs.net Google Search query. I should not have expected any changes that quickly, but, after several more days of no changes, I started trying to figure out what could have been taking so long.

So, after some research, I made and published the following changes to see if the Google Search Results would update more quickly:

  • March 8, 2018: Probably insignificant, but I updated the meta descriptions on several index pages (specific pages that list many blog posts) that had duplicate descriptions
  • March 11, 2018: I resubmitted my sitemap.xml through Google Search Console
  • March 15, 2018: I added itemprop author. Google’s Structured Data Testing Tool will throw errors if you are missing certain schema.org attributes, but you do not appear to need them if you do not have real content for them. As Googlebot crawls your website, the Structured Data section in Google Search Console will be updated and inform you of any errors it finds in your structured data. So far, despite not using all of the required attributes for the Article schema.org type, Google Search Console has not thrown any errors for me.
  • March 15, 2018: Despite a Google webmaster blog saying otherwise, I removed the lastmod parameter from my sitemap.xml. Turns out lastmod in a sitemap is optional and not used by search engines (1, 2). After publishing the changes, I resubmitted my sitemap.xml through Google Search Console.

Perhaps it was a coincidence, but, after resubmitting my sitemap.xml without a lastmod tag, on March 16, 2018 I finally started to see changes in Google Search Results.

However, not all of my blog posts snippets were updated at once. Every few days I would re-run a site:thornelabs.net Google Search query, page through the results, and see different blog post snippets updated. Additionally, I noticed that the Structured Data section in Google Search Console would update every 3 - 4 days with more pages that Googlebot found structured data on.

At the time of writing, a majority of my blog post snippets have been updated, but there are still plenty that have not been updated. There does not seem to be an obvious update pattern. The number of web pages you need updated, and the frequency Googlebot crawls your website are more than likely the main factors in how quickly snippets will be updated.