Skip to content

Case Study: An SEO Strategy That Tripled Revenue in 9 Months


Topical authority has been all the rage and has been the go-to strategy for SEOs over the past few years. The idea here is to write everything about your industry as you can, and Google should see you as the go-to source and rank you.

But, is there a more effective method that can help achieve this authority status, but also going to make you the most revenue?

What if there’s a way that instead of writing two hundred pages covering every single topic within your niche that you can think of, you just need to focus your effort on the hundred most impactful pieces of content that your target audience will find most helpful?

By doing just this, my team at The Search Initiative grew our client’s organic traffic by 115% from 12.8k to 27.6k engaged sessions since the start of the campaign.

organic traffic by 115% from 12.8k to 27.6k

We also increased monthly revenue by 198% from $10.2k/month to $30.6k/month.

In this case study, you’ll learn how to:

  • Identify and optimize your content to capture users at different micro-moments.
  • Implement faceted navigation (more on this later) in a user and search engine-friendly way.
  • Markup key pages on our website with structured data to enhance your visibility in the search results page.

First though, here’s some background about the site we worked on and the main challenges that we overcame during the campaign.

The Challenge

The client specializes in providing commercial plant supplies to businesses across the United States.

Recent Google updates have made it more and more difficult for doing content site SEO (i.e. affiliate marketing and display ads) right now. Because of this, there’s been a surge in eCommerce SEO which I hope to give you a crash course on through this case study.

But before that, check this video to learn the true situation of what’s going on with Google SEO.

The goal in this case, was to improve and diversify the client’s visibility in the SERPs by capturing users at each stage of the buying funnel (i.e. micro-moments) – this included optimizing for informational keywords on the blog to product-specific keywords for category and product pages.


Although the client already had a range of categories and subcategories within the online store, navigating the products was difficult for users due to a lack of filtering options.

To solve this, we implemented faceted navigation, which helped users discover what they’re looking for in less time and allowed the client to rank for relevant long-tail keyword variations for their product range. (You’ll learn exactly how to do this soon).

Finally, in order to improve click-through rates and appear within Google’s rich results, we implemented structured data markup on the website: Product and BreadcrumbList.

Let’s face it, out of these two results, one of which has implemented structured data and the other hasn’t, which are you more likely to click on? The one that has lots of useful information such as reviews, price and availability, right?

Product and BreadcrumbList

Find out how you can overcome these challenges for your website by following the steps below.

Optimizing for Micro-Moments

With this surge in eCommerce, it’s important that you capture the crucial moments where you can put yourself in front of your target audience in the SERPs.

These “micro-moments” are when potential buyers are looking for more information (e.g. “best running shoes”) or make a purchase (e.g. “Nike Air Max).

The question is, can your SEO strategy capture their attention and guide them towards your products? The right SEO approach is your key to converting these micro-moments into sales.

What are Micro-Moments?

Micro-moments are the key moments in a buyer’s journey when they turn to their devices (and Google) to answer a question or perform some sort of action.

For eCommerce websites (but also any other site), these moments are crucial as you’ll want to capture the users at these moments due to their high intent for finding solutions to their queries.

During these brief windows of opportunity, is where you can grab your potential customers’ attention away from your competitors.

The four main types of micro-moments are as follows:

  1. I-want-to-know moments – a person has a question or needs information to make a decision. They’ll typically turn to search engines to find answers e.g. “best bike for beginners”.
  2. I-want-to-go moments – triggered by a desire to find a local business. People will often use their smartphones to search for stores, restaurants, or services nearby e.g. “bike shops near me”
  3. I-want-to-do moments – a person seeks instructions or guidance on how to complete a task e.g. “how to change a bicycle tire”.
  4. I-want-to-buy moments – a person is ready to make a purchase and has completed the journey e.g. “bmx bike 20 inch”

Why are Micro-Moments Important for eCommerce SEO?

Micro-moments are crucial for eCommerce SEO for a few key reasons:

  • Understanding User Intent: In these fleeting moments, users have a specific goal in mind. By understanding these “I-want-to-know,” “I-want-to-go,” “I-want-to-do,” and “I-want-to-buy” moments, you can tailor your SEO strategy to provide the most relevant information at the right time.
  • Increased Visibility: By creating content that addresses users at each type of micro-moment (that is relevant for your website), you’re increasing the visibility and diversity of the keywords that you rank for. This in turn increases the chance of users finding your products when they’re ready to buy.
  • Improved Conversion Rates: When your content aligns with a user’s immediate need, they’re more likely to convert, meaning they’ll add items to their cart and complete a purchase.

In essence, micro-moments help you bridge the gap between user intent and your product offerings. By optimizing your SEO for these crucial moments, you can significantly boost your website’s and business’ success.

How to Capture Micro-Moments for eCommerce

Read on to find out what you need to know and do in order to maximize your eCommerce SEO efforts by capturing micro-moments.

Understand Your Customers

You need to be able to identify and understand your customers’ journey by identifying key pain points and critical decision-making moments that they will face. Doing so, will allow you to formulate content strategies that position you as the go-to choice for your target audience.

There are several ways that you can find out their potential pain points:

  • Ahrefs Keywords Explorer Tool – search for a seed keyword related to your product on Keywords Explorer.

Ahrefs Keywords Explorer Tool

Scroll down and navigate to the Questions section, click View all.

This shows you all keywords that are phrased as questions that are relevant to your seed query. You can see there are a number of keywords that can be grouped together via the Parent Terms filter.

Parent Terms filter

  • People Also Ask – enter your seed keyword into Google and scroll down to the PAA section to find even more relevant question-based keywords that users are searching for.

Expand the items to reveal even more questions.

People also ask expand the items

  • User Generated Content – If you have an existing website and brand, you can also encourage your customers to leave honest and descriptive reviews, testimonials, and social media posts about your products.

These will highlight any potential issues that customers face with your products that you can then craft content around and address on your website.

In addition, UGC builds trust and authenticity, influencing and driving purchase decisions during micro-moments for prospective customers.

Add content that addresses these key questions and pain points within your product/category pages, or as blog posts/FAQ pages.

Create Content That Addresses Each Micro-moment

The one and only way to ensure that you capture your target audience at each micro-moment, is by understanding their intention.

Let’s go through the intent and content types that suit each of the four micro-moments for eCommerce SEO.

  • Search Intent: answer user questions and build trust with informational content.
  • Content Types: blog posts, FAQ pages, explainer videos
  • Examples: articles that are related to your products (i.e. if you sell clothes, you may publish styling guides for different seasons and events), FAQ pages about how to look after or maintain your products, explainer videos on how to set up your products.
I-want-go (applicable if you have a physical location)
  • Search Intent: help users find your local business
  • Content Types: About page, Contact us page, Google Business Profile
  • Examples: Ensure you clearly display your physical store address and operating hours clearly on your website. Claim and optimize your Google Business Profile with accurate location information, appealing photos and positive customer reviews so that users can quickly find and visit you.
  • Search Intent: users want to learn how to use your products.
  • Content Types: How-to guides, assembly instructions, video tutorials, product manuals.
  • Examples: Create detailed “How-to-Use” guides for your products, with clear step-by-step instructions and visuals. Offer downloadable or online assembly manuals for complex products.Create short video tutorials showcasing product features and functionalities.
  • Search Intent: users want to purchase your product(s)
  • Content Types: Product descriptions, category descriptions
  • Examples: Write compelling product descriptions that highlight features, benefits, and address customer pain points. Create comparison guides showcasing your products versus competitors. Encourage and showcase positive customer reviews and testimonials to build trust.

Personalize the Shopping Experience

Utilize user actions and behavior to personalize their experience on your website. Doing so is a great way to capture their attention and lead them towards placing an order.

Here are some examples of how you can do this:

  • Product Recommendations: Tailor product recommendations displayed to customers based on their browsing and purchase history to engage users during decision-making moments. Doing this also helps increase your average sale value.

For example, Zara displays product items that users may find interesting after viewing a product.

Zara displays product items

The example below shows products that “complete the look”.

complete the look

This enhances their shopping experience as it saves time browsing products and allows them to quickly add these related items to the cart.

  • Streamline the Checkout Process: there’s nothing more frustrating than adding products to cart and getting ready to pay until you realize that the checkout process is super complicated and requires too many steps.

An over complicated checkout process can discourage users from completing the final step in their order process and prevent them from returning to your site ever again.

Including the following can help alleviate this:

  • Guest Checkout: Offer a guest checkout option alongside account creation. This allows faster purchases for those who may not want to create an account.

Guest Checkout

  • Minimal Form Fields: Only ask for essential information like the customer’s name, shipping address, email, and payment details. Any other fields should be made optional.

Minimal Form Fields

  • Pre-Filled Forms: If users are logged in, pre-fill their shipping and billing information to save them time.

Pre-Filled Forms

  • Clear Labels and Instructions: Use clear and concise labels for all form fields and provide guidance where needed.

For example, Nike makes the checkout process less overwhelming by expanding and collapsing sections of the checkout process.

Clear Labels and Instructions

  • Saved Carts / Wishlist: Allow users to save their carts or add products to a wishlist for later purchase, even if they haven’t completed checkout.

Saved Carts

  • One-Click / Express Checkout: For returning customers, consider offering a one-click (or express) checkout option for faster purchases.

Express Checkout

Optimize Your Website for Mobile

In the age of smartphones, where most browsing and purchasing happens on mobile devices, a mobile-first approach is no longer a suggestion – it’s a necessity for eCommerce success.

This is backed by data from Statista, which shows that 54.67% of all global searches are now made on mobile devices.

Implement Responsive Web Design

Your website should adapt seamlessly to any screen size, from smartphones to tablets and desktops.

A responsive design ensures everything – text, images, buttons – adjusts automatically to fit the user’s device, offering an optimal user experience.


Prioritize Speed and Performance

Mobile users are impatient.

Their need to access information quickly and effortlessly directly influences their decisions during micro-moments.

A slow-loading website is a conversion killer.

Here are some ways to optimize speed:

  • Image Optimization: Ensure your images are compressed without sacrificing quality. Tools like TinyPNG or plugins like WP Rocket can help.

Also implement lazy-loading, which is where only certain parts of a webpage, especially images, are loaded until they are needed, instead of loading everything at once.

  • Minify Code: Remove unnecessary code like spaces and unnecessary line breaks as well as reducing/rewriting comments and renaming variables on your website’s JavaScript and CSS files to reduce loading times. Read on to find out which plugin you can use to do this.

Here’s a simple example:

Original Code

function calculateArea(width, height) {
// Calculate and return the area
const area = width * height;
return area;

// Example usage
const rectangleWidth = 10;
const rectangleHeight = 5;
const totalArea = calculateArea(rectangleWidth, rectangleHeight);
console.log("The area of the rectangle is:", totalArea);

Minified Code

function calculateArea(w,h){return w*h}
// Example usage (same as above)
  • Leverage Caching: Store frequently accessed content on users’ devices for faster loading times on repeat visits, again, plugins like WP Rocket and NitroPack are great for this.

A great tool worth investing in that compresses and lazy loads images, takes care of minification and offers additional page performance optimization is NitroPack.

Simplify Navigation

Complex menus and dropdowns are a nightmare on mobile screens.

Opt for a clean, intuitive navigation bar with easily identifiable icons and categories.

Consider using hamburger menus (three horizontal lines) for secondary navigation options.

intuitive navigation bar

Prepare for Seasonality

Targeting seasonal keywords (i.e. queries that experience a boost in popularity and search demand during specific times of the year) is another way to capture users who are ready to take some sort of action.

For example, if you run an eCommerce website that sells flowers, you’ll want to make sure that you have content that targets individuals looking to purchase Valentine’s Day flowers for their loved ones well before the day arrives.

If you’re looking for some inspiration to find seasonal keywords, just ask ChatGPT to get you started.

Here’s the prompt we used: “Can you suggest some seasonal keyword examples for [type of website / niche]”

chat gpt seasonal keyword examples

Then, use Google Trends data to show you the seasonality of all of these keywords.

Enter your keyword and select the target location.

Google Trends

Set the time frame to at least the last 5 years so that you can get a good idea of the seasonality for the keyword.

Set the time frame to at least the last 5 years

In the above example, you can see that search demand shoots up every June, which indicates that you need to ensure that your page for “Father Day gifts” is created, optimized and ready well in advance of June.

Switch the time frame to Past 12 Months to pinpoint exactly when the search interest starts to rise.

In this case, it’s around the end of April / start of May – so in reality, you’d need to have your page content published and your page crawled and indexed before this.

Switch the time frame to Past 12 Months

Adopting these tactics will ensure that your website is ready to cater to users at each type of micro-moment.

Implementing Faceted Navigation for Improved UX

Finding the right product within an eCommerce website can be difficult, especially considering some sites have hundreds of categories and subcategories for thousands of products.

But it’s not just eCommerce websites that can use this, there are many other types of websites that use faceted navigation to improve the user experience:

  • Library Databases: Digital libraries often allow users to filter search results by author, publication date, subject, and more.

Library Databases

Travel Booking Sites: Sites like Expedia use faceted navigation to let users filter by flight duration, price, number of stops, and airline.

Travel Booking Sites

  • Real Estate Sites: These sites allow users to filter properties by facets like location, price, property type etc.

Real Estate Sites

  • Content Websites: These sites allow users to filter content using facets, allowing users to narrow down their search to find the right content that they’re looking for. The example below allows users to filter recipes.

Content Websites

One such way to improve the experience of your website visitors (while also improving your keyword visibility) is with the help of faceted navigation.

What is Faceted Navigation?

Faceted navigation is commonly used in online search and eCommerce platforms to allow users to refine and filter results by applying multiple criteria (or “facets”).

Each facet represents a different attribute or property of the items being searched. This helps users narrow down large sets of data to find what they are looking for more efficiently.

The two main components of faceted navigation are:

  • Facets: These are categories or attributes that describe the items. For example, in an online store, facets might include brand, price, color, size, and rating.


  • Filters: These are specific options within each facet. For example, within the “color” facet, filters might include red, blue, green, etc.


Typically, facets and their filters are presented as a list or a series of checkboxes on the side of the webpage. Users can select multiple filters within and across different facets to refine their search.

How Faceted Navigation Works

  • Initial Search: Users start with a broad search query or category selection.

For example:

Initial Search

  • Facet Selection: Users apply filters from various facets to narrow down the results.

For example: size, color, brand, and price range simultaneously.

  • Dynamic Updates: As filters are applied, the search results (and sometimes the URL) dynamically update to reflect the narrowed down selection, often without the need for a page refresh.

The number of ways that the URL changes can also vary:

  1. It stays as it is and only the listings update.
  2. The site appends parameters to the URL, for example “?color=black&size-6”
  3. The site appends a hash to the URL such as “#color=black”
  4. A new static URL is created like /shoes/black/

In the Under Armour example, the URL changed to:

The website also displays the filters applied at the top of the page.

Dynamic Updates

Things to Consider Before Implementing Faceted Navigation

While faceted navigation is great for the user experience, there are some (solvable) SEO issues that it presents.

As you’ve seen, every time a new facet (or combination of facets) is selected, new URLs are automatically generated. Considering that there are countless possibilities for combining these facets, it means that each one could potentially have its own URL – leading to duplicate content issues where multiple pages have very similar, or potentially identical content.

Duplicate content itself doesn’t have a direct impact on your rankings. However, it does make it more difficult for Google to try and consolidate the duplicate URLs into one canonical page (the original page). It also means that Google may inaccurately index a page because the signals have been diluted between the duplicate versions of the original page.

These pages also lead to index bloat, which is where Google indexes pages on your site that offer little value to the end user. As Google’s John Mueller mentions in the video below, having lots of low-quality pages indexed can have an impact on how Google perceives your site as a whole.

Finally, Google has a limited number of resources that it allocates to crawl each site – the crawl budget. If its crawlers are having to crawl and index all of these low-quality pages on your site, then it means other, more important pages aren’t.

While managing crawl budget is only important for websites with over 1M pages or 10k pages where content is always changing, if you have a website with hundreds of category pages, each of which have hundreds if not thousands of facet combinations, the number of pages Google crawls can shoot rapidly.

As you can see, each of these issues stems from the multiple pages that faceted navigation creates.

Implementing Faceted Navigation

In order to prevent the issues outlined previously, you need to be aware of some items to ensure your success.

How you do this will vary depending on your website’s CMS and setup.

  • WordPress – the WP Grid Builder is a great plugin that allows for real time faceted search for your eCommerce site, but also for blogs.
  • WooCommerce – Follow the steps outlined in this guide to implement Faceted Search on your WooCommerce website.
  • Shopify – Follow this guide to implement storefront filtering on your Shopify website.

Implement Facets as Buttons and Inputs, Not Internal Links

Since you don’t want Google to crawl and index each and every faceted page that gets created, you should use buttons and inputs for your facets instead of internal links.

Google cannot interact with buttons or inputs, which means that those faceted URLs will never be crawled or indexed, unless you have internal links/backlinks pointing towards them. If you do have internal links or backlinks to your faceted pages, there is a workaround for this which I’ll explain soon.

But first, here’s a quick example of a website where the Facets are implemented as buttons as opposed to anchored <a href> links.

Implement Facets as Buttons and Inputs,

Here is the basic HTML code for this:

<button type="button">



The labels i.e. “black”, “blue” etc, from the Facet are implemented as inputs.

The labels

Here is the basic HTML code for inputs:

<label >
  <input type="checkbox">

Now, this setup ensures that your faceted pages aren’t accessible to Google. But what if you have internal links or backlinks pointing to them?

In this case, you’ll need to add a canonical tag in the <head> section of the faceted pages so that they point to the original category page: <link rel=”canonical” href=”URL of the category page”>

For example, if you had the two following URLs:

  1. = original category page
  2.”black” = faceted page

You’ll want to add the following line of code to”black:

<link rel="canonical" href="">

Making Important Faceted Pages Accessible to Google

Not all of the faceted pages should be ignored by Google, because they have great traffic potential and can rank for long-tail keywords (i.e. “blue mens suits” instead of just “mens suits”).

To do this, have alternate crawl paths to these pages so that Google is able to access them.

This is achieved by adding internal links that users can click onto from the main category page at the top of the page. That’s it!

Here’s an example:

Important Faceted Pages Accessible to Google

By doing this,

This implementation has achieved a few things:

  • You haven’t wasted any crawl budget as you’re specifically adding a link allowing Google to crawl and index the desired page.
  • You have maintained the shareability of the URL which is great for the user experience.
  • Your faceted page is able to rank and generate its own traffic.

In order to ensure that Google can crawl and index the desired pages, make sure that:

  • You have a canonical tag that is self-referential so that Google knows that this is the primary version of your page. Ensure each page has the following line in the <head> section of the page: <link rel=”canonical” href=”URL of the same page”>
  • You don’t have a noindex tag, so that Google isn’t blocked from indexing the URL. Make sure that you don’t have the following line in the source code of the page: <meta name=”robots” content=”noindex”>
  • You remove any disallow rules within the robots.txt OR you add allow rules – so that Google isn’t blocked from discovering these URLs.

In your robots.txt file, you should remove any rules like this which would prevent Google from cralwing your important pages:

Disallow: /price?
Disallow: /size?
Disallow: /brand?

Or, you can add rules like the following so that they are allowed to crawl them:

Allow: /price?
Allow: /size?
Allow: /brand?
  • You remove any nofollow attributes on internal links that point towards your faceted page – so that Google is able to follow and discover the faceted page

Make sure that you don’t have the following line in the source code of the page: <meta name=”robots” content=”nofollow”>

But also, check for any internal links pointing to the page that also have a nofollow attribute, for example: <a href=”/smartphones?brand=samsung&color=black” rel=”nofollow”>Black Samsung Smartphones</a>

Use AJAX to Reduce Google’s Crawling of Duplicate Content

Building your faceted navigation with AJAX (which stands for Asynchronous JavaScript And XML and allows web pages to update parts of the content without reloading the entire page) and avoiding adding any <a href=…> internal links will ensure that most of the issues presented above will be prevented.

Users will be able to view the filters with the page reloading and Google won’t treat each facet combination as a page as it won’t see any internal links to faceted pages. This means that the links won’t be followed by Google’s crawlers and thus, won’t be indexed.

How you implement AJAX will vary depending on your website’s platform.

Additional Things to Consider

Here some extra things to take note of when it comes to implementing faceted navigation:

  • Don’t Overwhelm: Having too many options to filter products can overwhelm your users. Start with the most important and commonly used facets and consider adding others based on user feedback and behavior.
  • Prioritize Key Facets: Ensure the most relevant facets for your products are prominently displayed.

For example, the Price and Brand facets are more prominent and have been expanded by default so that all available options are displayed to the user. Whereas, Color, Cable Type and Connectivity Type are collapsed.

Price and Brand facets

  • Understandable Labels: Use simple and descriptive labels for facets and filters to ensure that your users can easily understand what they mean. For example, the ones below are all one or two words long.

Understandable Labels

  • Consistent Terminology: Maintain consistent terminology across your site to avoid confusion. For example, on a clothing page, the filter may be “Color”, but on an electronics page, it’s “Shade”. Users might not understand that “Color” and “Shade” represent the same filter type across different categories.

Consistent Terminology

  • Flexible Filtering: Allow users to select multiple filters within a facet and across different facets to refine their search and produce a better experience by showing them exactly what they need and want.

Flexible Filtering

Following the above steps will ensure that your faceted pages are optimized to boost your organic traffic and rank for lots of long-tail, high-converting keywords.

Helping Google Understand Your Content With Schema Markup

Although the majority of your content efforts should be on writing helpful, valuable content for your audience. There are also some tactics you can employ to help search engines like Google understand your content better and in turn, enhance your visibility within the search results.

One such way is through structured data (aka schema markup).

What is Schema Markup?

Despite their sophisticated algorithms, search engines require assistance to read, identify, and categorize content accurately. Why? Because unlike humans, search engines lack the visual and intuitive abilities to interpret content.

While you can easily recognize a list of ingredients as a recipe, a search engine cannot make that connection on its own. This is where schema markup comes into play.

Schema markup, or structured data, is the language used to help search engines understand the content of a page.

The “language” refers to code that is specified by a standardized format that helps Google to classify content.

Going back to our recipe example, this means that you can classify the ingredients used, the cooking time, the temperature, the number of calories etc.

Why is Schema Markup Important for SEO?

Marking up your content with schema markup isn’t a direct ranking factor, but it does have additional benefits, such as:

  1. Better SEO Result: By helping Google understand your content better, you’re increasing your chances of getting a better search result and the search engine is able to show you for more relevant search queries.
  2. More Clicks: Providing context to allow search engines to classify the content can lead to better visibility and higher click-through rates. This is because Google uses this information to improve the appearance of the search results.

Here’s an example of how an eCommerce product page, with Product structured data appears in the search results in comparison to one without.

Product structured data

And here’s another example, without structured data.

without structured data

You can see that in the result with structured data, Google displays the price and availability of the product. This additional information provides a richer search experience and gives users the opportunity to make a more informed decision to click through.

Essential Schema Markup for eCommerce SEO

Before going into the different types of schema markup that are useful for eCommerce websites, it’s important to know that you can write/create structured data in a number of formats i.e. microdata and RDFa.

However, Google recommends JSON-LD (Javascript Object Notation for Linked Objects). This is a JavaScript notation that you can embed in a <script> tag in the <head> and <body> elements of an HTML page and uses data that is organized in name-value pairs.

The examples below will all be in JSON-LD format.


Here are the main properties commonly used for Product schema markup to provide comprehensive information about a product:

  • @context:
  • @type:
    • Value: “Product”
    • Description: Specifies the type of item.
  • name:
    • Description: The name of the product.
  • image:
    • Description: URL(s) of the product image(s).
  • description:
    • Description: A description of the product.
  • sku:
    • Description: The stock-keeping unit, a unique identifier for the product.
  • brand:
    • Description: The brand of the product.
    • Sub-properties:
      • @type: “Brand”
      • name: Name of the brand.

Here’s an example of what a page with Product markup looks like with Google displaying the name and image of the product.

Product markup


This is an optional addition to the Product markup, but is recommended if available as Google can then display this information within the search results.


  • Description: Aggregate rating of the product.
  • Sub-properties:
    • @type: “AggregateRating”
    • ratingValue: The average rating value.
    • reviewCount: The total number of reviews.

This is an optional addition to the Product markup, but is recommended if available as Google can then display this information within the search results.


  • Description: Detailed customer reviews of the product.
    • Sub-properties:
      • @type: “Review”
      • author: The author of the review.
    • Sub-properties:
      • @type: “Person”
      • name: Name of the reviewer.
      • datePublished: The date the review was published.
      • reviewBody: The text of the review.
      • reviewRating: The rating given in the review.
    • Sub-properties:
      • @type: “Rating”
      • ratingValue: The rating value given.
      • bestRating: The highest possible rating value.


  • Description: Provides details about the offer.
  • Sub-properties:
    • @type: “Offer”
    • url: URL of the product page.
    • priceCurrency: Currency used for the price (e.g., “USD”).price: The price of the product.
    • priceValidUntil: The date until which the price is valid.
    • itemCondition: The condition of the product (e.g., ““).
    • availability: Availability status of the product (e.g., ““).
    • seller: The seller of the product.
  • Sub-properties:
    • @type: “Organization”
    • name: Name of the selling organization.

Here’s an example of a complete Product markup:

<script type="application/ld+json">
  "@context": "",
  "@type": "Product",
  "name": "Example Product",
  "image": "",
  "description": "A description of the example product.",
  "sku": "12345",
  "brand": {
    "@type": "Brand",
    "name": "ExampleBrand"
  "offers": {
    "@type": "Offer",
    "url": "",
    "priceCurrency": "USD",
    "price": "19.99",
    "priceValidUntil": "2024-12-31",
    "itemCondition": "",
    "availability": "",
    "seller": {
      "@type": "Organization",
      "name": "Example Store"
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.5",
    "reviewCount": "24"
  "review": [
      "@type": "Review",
      "author": {
        "@type": "Person",
        "name": "John Doe"
      "datePublished": "2024-05-21",
      "reviewBody": "This product is fantastic!",
      "reviewRating": {
        "@type": "Rating",
        "ratingValue": "5",
        "bestRating": "5",
        "worstRating": "1"


eCommerce websites can easily have hundreds of categories with even more subcategories and thousands upon thousands of products. This can quickly make it a nightmare for users to navigate.

Breadcrumb navigation is a great tactic that helps users understand their position within a website through contextual links displayed as a path.

Breadcrumb navigation

For the purpose of this case study, I’ll show you how to markup your category and product pages with BreadcrumbList schema markup, which helps Google understand the relationship between your pages too.

If you want to learn more about how to implement breadcrumb navigation, check out this other case study.

Here are the main properties that make up BreadcrumbList structured data:

  •  @context:
  • @type:
    • Value: “BreadcrumbList”
    • Description: Specifies that the markup is for a breadcrumb list.
  • itemListElement:
    • Description: An array of list items, each representing a breadcrumb in the list.
  • @type: “ListItem”
    • Description: Specifies the type of each element in the list.
  • Position:
    • Description: The position of the breadcrumb in the list (starting at 1 for the first item).
  • Name:
    • Description: The name of the breadcrumb (e.g., “Home”).
  • Item:
    • Description: The URL of the breadcrumb link.

And this is the full markup as an example:

<script type="application/ld+json">
  "@context": "",
  "@type": "BreadcrumbList",
  "itemListElement": [
      "@type": "ListItem",
      "position": 1,
      "name": "Home",
      "item": ""
      "@type": "ListItem",
      "position": 2,
      "name": "Category",
      "item": ""
      "@type": "ListItem",
      "position": 3,
      "name": "Subcategory",
      "item": ""
      "@type": "ListItem",
      "position": 4,
      "name": "Example Product",
      "item": ""

Here’s how your pages can appear in the search results if you implement this markup.

implement this markup

Generating Schema Markup with AI

There are numerous methods to implement structured data onto your web pages, but by far the quickest and easiest way right now, is with ChatGPT. The tool will automatically generate any schema markup (so long as you provide it with the property pair values).


Here’s an example prompt for Product markup:

Please generate JSON-LD Product schema markup for my eCommerce website. Here is the information about my product.

Basic Information:

Product Name: [Enter the name of the product]
Description: [Enter a description of the product]
Image URL: [Enter the URL of the product image]
SKU: [Enter the stock-keeping unit (SKU) of the product]

Brand Information:

Brand Name: [Enter the name of the brand]

Offer Details:

Product URL: [Enter the URL of the product page]
Price: [Enter the price of the product]
Price Currency: [Enter the currency code (e.g., USD)]
Price Valid Until (YYYY-MM-DD): [Enter the validity date of the price]
Item Condition (e.g., New, Used): [Enter the condition of the product]
Availability (e.g., InStock, OutOfStock): [Enter the availability status]

Seller Information:
Seller Name: [Enter the name of the seller]

Aggregate Rating (Optional):

Average Rating Value: [Enter the average rating value]
Number of Reviews: [Enter the total number of reviews]
Customer Reviews (Optional):

Reviewer Name: [Enter the name of the reviewer]
Review Date (YYYY-MM-DD): [Enter the date of the review]
Review Text: [Enter the text of the review]
Rating Given: [Enter the rating value given in the review]

Here’s an example of ChatGPT-generated Product markup using the above prompt.

ChatGPT-generated Product markup


Here’s an example prompt for BreadcrumbList markup:

Please generate JSON-LD BreadcrumbList schema markup for my eCommerce website. Here is the information that you will need:

Breadcrumb 1:

Name: [Enter the name of the first breadcrumb]
URL: [Enter the URL of the first breadcrumb]

Breadcrumb 2:

Name: [Enter the name of the second breadcrumb]
URL: [Enter the URL of the second breadcrumb]

Breadcrumb 3:

Name: [Enter the name of the third breadcrumb]
URL: [Enter the URL of the third breadcrumb]
Breadcrumb X:

Name: [Enter the name of the X breadcrumb]
URL: [Enter the URL of the X breadcrumb]

Here’s an example of ChatGPT-generated BreadcrumbList markup using the above prompt.

ChatGPT-generated BreadcrumbList markup

Please generate JSON-LD BreadcrumbList schema markup for my eCommerce website. Here is the information that you will need:

Breadcrumb Information:
Breadcrumb 1:
Name: "Home"
URL: ""
Breadcrumb 2:
Name: "Products"
URL: ""
Breadcrumb 3:
Name: "Widgets"
URL: ""
Breadcrumb 4:
Name: "SuperWidget 3000"
URL: ""

And here’s the output code:

  "@context": "",
  "@type": "BreadcrumbList",
  "itemListElement": [
      "@type": "ListItem",
      "position": 1,
      "name": "Home",
      "item": ""
      "@type": "ListItem",
      "position": 2,
      "name": "Products",
      "item": ""
      "@type": "ListItem",
      "position": 3,
      "name": "Widgets",
      "item": ""
      "@type": "ListItem",
      "position": 4,
      "name": "SuperWidget 3000",
      "item": ""

Validating Your Schema Markup

Before adding the structured data to your website, it’s important to validate it using this tool.

Doing so ensures that the structured data accurately represents the content on your page and it helps identify and correct errors or inconsistencies in the markup.

Switch to “Code Snippet” and paste in the schema markup and click “Run Test”.

Validating Your Schema Markup

The tool will display any errors or warnings (i.e. missing properties etc) on the right hand side of the page. But, you’ll want to see something like this.

display any errors or warnings

Here’s what it would look like if an error is present.

error is present

Once you’ve validated the schema markup, you can add it to the <head> section of your web page.

The Results

Since the start of the campaign, the organic traffic grew by 115% from 1.28k to 27.6k engaged sessions.

organic traffic grew by 115%

During the same period, revenue increased by 198% from $10.2k/month to $30.6k/month.

revenue increased by 198%

The number of keywords that the site ranks for in the top 10 positions of Google increased from 2,005 to 2,737 since the start of the campaign.

top 10 positions of Google increased from 2,005 to 2,737


In this case study, I’ve shown how to optimize your website to capture users at each stage of the journey.

You’ve learned how to:

  • Identify and optimize your content to capture users at different micro-moments.
  • Implement faceted navigation in a user and search engine-friendly way.
  • Markup key pages on our website with structured data to enhance your visibility in the search results page.

If you’re looking for help with your site’s SEO, get in touch with my team at The Search Initiative.


Get a Free Website Consultation from The Search Initiative:



    Article by

    Matt Diggity

    Matt is the founder of Diggity Marketing, LeadSpring, The Search Initiative, The Affiliate Lab, and the Chiang Mai SEO Conference. He actually does SEO too.

    Want to rank easier, higher and faster?

    Sign up and join 100,000+ other subscribers and get SEO test results sent straight to your inbox.

    moz sidebar

    "One of the most effective SEOs I've ever met"- Cyrus Sheppard

    As Seen On...

    Search Engine Journal
    New York Post
    ahrefs brand