eCommerce Structured Data

E-commerce Example for Structured Data Carousels

Below are step by step instructions

You will need:

  • A “summary” or “Product Listings Page” with structured data
  • Structured data on the product pages themselves

At the time of writing, this feature is only available in EU countries.

Step 1: Choose and Implement a Summary Page

Create a summary page that lists multiple products, each linking to a detailed product page.

For example, a category page that lists “Top 5 Winter Coats.”

Step 2: Add Required Properties to the Summary Page

Add the ItemList structured data to your summary page. Here’s an example in JSON-LD format:

<html>
  <head>
    <title>Top 5 Winter Coats</title>
    <script type="application/ld+json">
      {
        "@context": "https://schema.org",
        "@type": "ItemList",
        "itemListElement": [
          {
            "@type": "ListItem",
            "position": 1,
            "item": {
              "@type": "Product",
              "name": "Puffy Coat Series by Goat Coat",
              "image": [
                "https://example.com/photos/1x1/photo.jpg",
                "https://example.com/photos/4x3/photo.jpg",
                "https://example.com/photos/16x9/photo.jpg"
              ],
              "offers": {
                "@type": "AggregateOffer",
                "lowPrice": 45.00,
                "highPrice": 60.00,
                "priceCurrency": "USD"
              },
              "aggregateRating": {
                "@type": "AggregateRating",
                "ratingValue": 4.9,
                "reviewCount": 50
              },
              "url": "https://www.example.com/puffy-coats"
            }
          },
          {
            "@type": "ListItem",
            "position": 2,
            "item": {
              "@type": "Product",
              "name": "Wool Coat Series by Best Coats Around",
              "image": [
                "https://example.com/photos/1x1/photo.jpg",
                "https://example.com/photos/4x3/photo.jpg",
                "https://example.com/photos/16x9/photo.jpg"
              ],
              "offers": {
                "@type": "AggregateOffer",
                "lowPrice": 189.00,
                "highPrice": 200.00,
                "priceCurrency": "USD"
              },
              "aggregateRating": {
                "@type": "AggregateRating",
                "ratingValue": 4.7,
                "reviewCount": 827
              },
              "url": "https://www.example.com/wool-coats"
            }
          },
          {
            "@type": "ListItem",
            "position": 3,
            "item": {
              "@type": "Product",
              "name": "Antarctic Coat by Cold Coats",
              "image": [
                "https://example.com/photos/1x1/photo.jpg",
                "https://example.com/photos/4x3/photo.jpg",
                "https://example.com/photos/16x9/photo.jpg"
              ],
              "offers": {
                "@type": "Offer",
                "price": 45.00,
                "priceCurrency": "USD"
              },
              "aggregateRating": {
                "@type": "AggregateRating",
                "ratingValue": 4.9,
                "reviewCount": 1290
              },
              "url": "https://www.example.com/antarctic-coat"
            }
          }
        ]
      }
    </script>
  </head>
  <body>
  </body>
</html>

Step 3: Validate Your Code

  1. Rich Results Test: Validate your structured data using the Rich Results Test.
  2. URL Inspection Tool: Use the URL Inspection tool in Google Search Console to ensure your page is accessible and not blocked by robots.txt or noindex tags.

Step 4: Deploy Your Page

  1. Deploy your summary page and a few detail pages.
  2. Use the URL Inspection tool to request indexing of your new pages.

Step 5: Submit a Sitemap

  1. Create a sitemap including your summary and detail pages.
  2. Submit the sitemap through Google Search Console to ensure Google knows about all your pages.

Step 6: Follow Guidelines

  1. Ensure compliance with Search Essentials.
  2. Adhere to general structured data guidelines and specific requirements for carousel rich results.

Example Detail Pages

Each product linked from the summary page should have its own detail page with structured data. For example:

<html>
  <head>
    <title>Puffy Coat Series by Goat Coat</title>
    <script type="application/ld+json">
      {
        "@context": "https://schema.org",
        "@type": "Product",
        "name": "Puffy Coat Series by Goat Coat",
        "image": [
          "https://example.com/photos/1x1/photo.jpg",
          "https://example.com/photos/4x3/photo.jpg",
          "https://example.com/photos/16x9/photo.jpg"
        ],
        "description": "A stylish and warm puffy coat perfect for winter.",
        "offers": {
          "@type": "Offer",
          "price": 45.00,
          "priceCurrency": "USD",
          "url": "https://www.example.com/puffy-coats"
        },
        "aggregateRating": {
          "@type": "AggregateRating",
          "ratingValue": 4.9,
          "reviewCount": 50
        }
      }
    </script>
  </head>
  <body>
  </body>
</html>

That should be it!



Deleting White Space from Excel Cells

I had to use the VBA method at the bottom to remove whitespace from a Screaming Frog custom extraction:

Method 1: TRIM Function

The TRIM function removes all spaces from text except for single spaces between words.

  1. Suppose your text is in cell A1.
  2. In another cell, enter the following formula:excelCopy code=TRIM(A1)

Method 2: CLEAN and SUBSTITUTE Functions

If there are non-breaking spaces (which TRIM doesn’t remove), you can use the SUBSTITUTE function to replace them with regular spaces first.

  1. In a cell, enter the following formula:excelCopy code=SUBSTITUTE(A1, CHAR(160), " ") This replaces non-breaking spaces with regular spaces.
  2. Then, apply the TRIM function:excelCopy code=TRIM(SUBSTITUTE(A1, CHAR(160), " "))

Method 3: Find and Replace

You can also use the Find and Replace feature to remove extra spaces:

  1. Select the range of cells you want to clean.
  2. Press Ctrl + H to open the Find and Replace dialog box.
  3. In the “Find what” box, enter two spaces (press the space bar twice).
  4. In the “Replace with” box, enter one space.
  5. Click “Replace All.”
  6. Repeat the process until no double spaces are found.
  7. For leading and trailing spaces, you can remove them manually by replacing leading spaces with nothing and trailing spaces similarly.

Method 4: VBA Macro

For more advanced cleaning, you can use a VBA macro:

  1. Press Alt + F11 to open the VBA editor.
  2. Insert a new module by clicking Insert > Module.
  3. Copy and paste the following code into the module:

Sub RemoveSpaces()
    Dim cell As Range
    For Each cell In Selection
        If cell.HasFormula = False Then
            cell.Value = Trim(WorksheetFunction.Clean(cell.Value))
        End If
    Next cell
End Sub

  1. Close the VBA editor.
  2. Select the range of cells you want to clean.
  3. Press Alt + F8, select RemoveSpaces, and click Run.

By using these methods, you can efficiently remove unwanted whitespace from your cells in Excel.

Categorising Data – By Colour – In Excel (Using an IF statement)

Had to categorise some keywords, if there’s a quicker way of doing it – please let me know

  • Paste keywords into column A
  • In column D – Paste all relevant words for a category.
    For example – I pasted all the words I could think of relating to gardening – such as “tree”, “fruit”, “garden”, “bush”, etc. – There were 18 words in total
  • In cell E2 paste the formula:
=IF(SUMPRODUCT(--ISNUMBER(SEARCH($D$1:$D$19,A2)))>0, "Contains value from range", "Does not contain value from range")
  • Now drag the formula down
  • Filter column E to “contains value for range”
  • Colour in the keywords green – or a chosen, relevant colour
excel conditional formatting with If Statement

Add another list of relevant words – for example, above I have added sports, to highlight sports netting keywords.

Drag formula down and repeat

I found a quicker way – use Chat GPT and the prompt:

“please can you group these keywords by theme or words containing – e.g. keywords containing “golf”.

Please include the search volume.

The list is set out with a keyword – then a comma, – then the search volume for the keyword, – then a second comma – before the next keyword is listed

funny polo shirts , 170 ,
funny polo shirt , 30 ,

“

replace “funny polo shirts” with a list of your own keywords.

Change a URL into a String of Words in Excel

Put URLs into column A – Find and Replace – enter domain to find and replace with nothing

in column b – add a heading in B1 of “string of words”

in cell b2 enter the formula:

=SUBSTITUTE(SUBSTITUTE(A2, "/", " "), "-"," ")

^The formula will find and replace forward slashes with spaces and hyphens/dashes with spaces.

I used this, to then use the Google Sheets formula DETECTLANGUAGE to check URLs where in French / Dutch

Screaming Frog – How to Save & Load a Custom Crawl Coniguration

Handy if you have loads of custom extractions set up etc.

  • Saving Custom Config File:

Under the Configuration Menu – go to – Profiles>Save As

  • Importing The Custom Config File

Configuration > Profiles > Load…

SF custom Config File Import
  • Save as default

    Also worth knowing – if you use a similar setup each time you run Screaming Frog – let’s say, you exclude anything with “account” or “customer” in the URL, you can save your setup/config as default:

Which can be a nice time saver too!

I pretty much always add the following to the excludes ‘file’, so it’s easier to keep it in the default setup:

^https?://[^/]+/customer/account/.*
^https?://[^/]+/checkout/cart/.*

^.\?.

.js$

.css$

How to Improve the Relationship between SEO & Developers [Breaking Down Silos]

If you work in SEO –

Walk into the developers office/pit/den

Say the following:

“Look, it’s not my fault you were bullied in school for being a bunch of gimps, and if I get another passive-aggressive comment or tut from you bunch of pizza-munching wankers, I’ll drag each of you outside one by one and beat the fuck out of you using my own technical skillset. Now stop being finger-pointing, arrogant pricks and start communicating properly”

Job done

How to Automate a Crawl & Populate a Report with Screaming Frog [Like DeepCrawl but 99% Cheaper]

Screaming Frog is the greatest SEO tool of all time. Possibly the greatest tool of all time, closely followed by the George Foreman grill.

There’s a free version  and if you have massive ecommerce website, with thousands of URLs, the posh paid version is well cheap too – if I remember rightly, is only about £200.

Absolute bargain.

Scheduling a Report / Crawl

Before you start – create a crawl config file.

I usually go with default settings, plus exclude cart pages and follow redirects.

You’ll also need to create a Google Drive and Looker Studio Account.

Schedule a Screaming Frog Crawl

File > Scheduling:

click “+Add”

Give the scheduled crawl a name and set the time and date you want the first crawl to run

Also choose the frequency.

Note —> if you have a computer with a decent processor, that runs fine when you are crawling with Screaming Frog and you’re still able to do you work, then just set it for a date and time when you’ll be in work and on your computer.

However, if you have a slower computer, and running Screaming Frog at the same time as trying to do your normal work slows the computer down too much, you’ll probably want to set the crawl overnight, or at your lunchtime.

You can set windows computers to “wake up”, as long as they are plugged in. So that you’re able to run a crawl before or after work.

Although your IT department might not like it – computer running unattended with a battery etc could be in theory a fire harzard etc.

More on how to wake up your computer, later…

Back to scheduling on Screaming Frog:

On the start options tab, enter the URL you want to crawl and select your config file

I didn’t choose anything for “auth config”

For crawl config – upload the config file you saved earlier

In the Export – choose a folder on your computer and your Google Drive account:

  • Click the configure icon for “Export for Looker Studio” at the bottom.
  • Click the 3 arrows to populate everything >>

By default, your crawl will go in a sheet in Google Drive at:
‘My Drive > Screaming Frog SEO Spider > Project Name > [task_name]_custom_summary_report’.

When asked – choose Google Sheets as a data source:

Ensure the ‘use first rows as headers’ option is ticked and select ‘Connect’ in the top-right.

  • Add the Data Source to Each Table in the Report in Looker Studio

You can probably do this in bulk somehow, but I went to each table/graph and added the Google Sheet as the data source:

  • When the scheduled crawl, crawls – the template should be populated
  • Youll now have a nice looking visual report that automatically updates each week, or month, or as frequently as you like

Waking Up Your Computer so the Crawl Can Run

Screaming Frog won’t run unless your computer is on.

You can ‘wake up’ your computer though.

Search for “Task Scheduler”

  • Create Task…

  • Click the General Tab and use the following settings:
  • Click on the “Actions” tab and choose a program to run. Doesn’t really matter what program, I usually choose chrome. SF should run automatically
  • Click the “Triggers” tab and click new

schedule the computer to wake up at the same time and frequency that you’ve set for the screaming frog crawls.

Then, that should be it.

The best way to run automatic crawls, is to sin up to Google cloud. At the moment you get $300 worth of credits free, and each crawl on an average ecommerce sure, will cost around a dollar a go.

Here’s the tutorial on how to set up Screaming Frog on the cloud ☁️:

https://www.screamingfrog.co.uk/seo-spider/tutorials/seo-spider-cloud/

It’s a bit of a mission/long process, but worth it. I reckon.

Anyway, here is the report, in all her glory (well, 1 part of 1 page):

Helpful Core Update – March 2024

Core Update and Helpful Content System:

  • As the name suggests, Google’s March 2024 core update aims to prioritise useful information over content that seems optimized for search engines. In theory, spammy shite should be dropped in the rankings. In theory. Hopefully the twats at hydragun who keep robbing my MMA blogs content will get a spanking.
  • The helpful content system is revamped and integrated into the core ranking algorithm to better identify genuinely helpful content and reduce unoriginal content.
  • The guys in the know, expect the rollout to take a month, with significant ranking fluctuations during this period.
  • Google aims to reduce low-quality, unoriginal content in search results by 40%. Not 100%, updates begin at 40.

Actionable To-Do List:

  1. Review Content Quality: Assess your website’s content for originality and usefulness to real users, not just for SEO.
  2. Write from experience, and in the first person.  Unless you’re a big brand, then do what you like.
  3. Monitor Rankings: Prepare for fluctuations in search rankings as the update rolls out. Use this time to identify areas for improvement.
  4. Update Content Strategy: Focus on creating high-quality, original content that addresses your audience’s needs and questions. Use forums and social media groups to identify your customers pain points and common questions. Your CS and sales teams can also provide insights. Also get chat gpt to put keywords into themes of different queries.
  5. Avoid Spam Tactics: Steer clear of expired domain abuse, scaled content abuse, and site reputation abuse to avoid penalties.
  6. Build your brand. Branded searches and search volumes, make a massive difference, in my experience (see what I did there?).

It generally helps, in theory, to write from experience rather than just giving an overview that anyone could scrape and rewrite from the internet. Include your own images, videos etc.

I don’t have any images of Google updates, see here’s a pic of my dog:


Big brands will still probably have a massive advantage regardless of what they do.

Spam Updates:

  • Significant changes to spam handling will start on May 5, 2024, affecting sites through algorithmic adjustments or manual actions.
  • New spam policies target expired domain abuse, scaled content abuse (especially AI-generated content), and site reputation abuse.

General Recommendations:

  • Recognize the shift towards rewarding authoritative and genuinely helpful content.
  • Anticipate a more significant impact from updates targeting spam and low-quality content.
  • Understand that recovery from these updates may require fundamental changes beyond SEO, focusing on building a reputable and sought-after brand for quality content.

Image from BBC

BusinessAudience Schema Example [2024]

Hi, this schema is supposed to inform Google who you are targeting with your products and services.

In theory, this could mean that people who fit within your target audience, are more likely to see your website in the search results.

Here’s an example for an ecommerce football website, selling to parents and clubs:

<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "Store",
"name": "Ultimate Football Gear",
"url": "https://www.ultimatefootballgear.com",
"audience": [
{
"@type": "BusinessAudience",
"audienceType": "Parents",
"geographicArea": {
"@type": "AdministrativeArea",
"name": "Nationwide"
},
"suggestedMinIncome": 30000,
"suggestedMaxIncome": 100000,
"description": "Middle-class and working-class parents looking for affordable football gear for their children."
},
{
"@type": "BusinessAudience",
"audienceType": "Sports Clubs",
"geographicArea": {
"@type": "AdministrativeArea",
"name": "Nationwide"
},
"description": "Local sports clubs seeking quality football equipment for team use."
}
],
"offers": {
"@type": "Offer",
"itemOffered": {
"@type": "Product",
"name": "Youth Football Kit",
"description": "A complete football kit for young players, perfect for training and matches.",
"category": "Sporting Goods > Team Sports > Football",
"sku": "YFK123",
"brand": {
"@type": "Brand",
"name": "Ultimate Football"
}
},
"price": "49.99",
"priceCurrency": "USD"
}
}
</script>

^As you can see above, you can combine with product/offers schema.

Here’s a normal example:

<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "Store",
"name": "Ultimate Football Gear",
"url": "https://www.ultimatefootballgear.com",
"audience": [
{
"@type": "BusinessAudience",
"audienceType": "Parents",
"geographicArea": {
"@type": "AdministrativeArea",
"name": "Nationwide"
},
"suggestedMinIncome": 30000,
"suggestedMaxIncome": 100000,
"description": "Middle-class and working-class parents looking for affordable football gear for their children."
},
{
"@type": "BusinessAudience",
"audienceType": "Sports Clubs",
"geographicArea": {
"@type": "AdministrativeArea",
"name": "Nationwide"
},
"description": "Local sports clubs seeking quality football equipment for team use."
}
]
}
</script>

How to Make Coffee Stronger & Less Jittery [Reduces caffeine tolerance]

Okay so, caffeine is as necessary as oxygen to most parents.

**Drink coffee and consume everything else at your own risk, innit.**

Wait at Least 1 Hour Before Having a Coffee

You’re cortisol levels are high and adenesine levels are low in the morning, you can greatly reduce caffeine intake with minimal negative impact by waiting an hour after waking up, before consuming caffeine.

^I robbed this concept from the Huberman Lab podcast…seems to work.

If youre a 3 or 4 a day type of guy, waiting an hour or two in the morning, you can usually cut back by 1 or perhaps 2 coffees per day.

Add These To Your Coffee ☕️

Make the fecker stronger by adding:

– 100mg agmatine – makes it more potent

– 100mg l theanine – makes it less jittery & last longer

Ideally take the agmatine 5 mins before the coffee, doesn’t make a massive difference though.

Agmatine is pretty potent and affects people differently.

There’s good research now on agmatine for depression and it had minimal side effects, usually GI upset and headaches for some at higher doses.

Studies on agmatine and depression used doses around 2.5g per day. Which is high.

Agmatine is classed as a “novel food” in the UK, so do your own research before necking ten ton of it in your next coffee.

Start with 100mg, people take much more but its best to find a sweet spot.

People use agmatine to drop caffeine intake and to reduce tolerance rather than to just make the daily coffee stronger.

1 coffee usually lasts me all day if I take 500mg agmatine in the morning.

Optimise Mitochondrial Function

Caffeine works by blunting the effects of adenosine. It can also increase dopamine levels slightly.

This isn’t the only way to get more energy. Research optimising mitochondrial function if you want to take your energy up another notch.

ALCAR, PQQ, coQ10, red light therapy and even methylene blue are options to fire up the powerhouses. Just do some research before jumping in, ALCAR can impact TMAO release which may or may not be bad for cardiovascular health (jury is still out), and methylene blue with red light therapy is highly effective but doctors and academics ha e different opinions on methylene blue and its long term effects.

Anything that reduces excessive inflammation will also help you feel better and more energised. Sounds woo woo, but look into the research on grounding and grounding mats (or just stand bare foot on the garden for 5 mins).

Other Stuff

Jumping in an ice bath with also give you a big hit of dopamine – the feel good motivational hormone – for at least a few hours.

getting sunlight in your eyes in the morning, and minimising light in the evening, especially blue light, is also good for optimising dopamine.

Light is important yo:

If you have chronic low energy, you could have burnout or even depression.

I’m not fully versed in burnout, but the way I understand it…you will normally derive energy and motivation from dopamine and feel good hormones, when you’re burnt out, you’ve depleted all your dopamine and it hasn’t been restocked – so you start relying on stress hormones to keep going.

Optimising dopamine levels and receptor sensitivity is pretty complex but you want to try and optimise sleep, and avoid too many dopamine peaking activities.

Positive intermittent reinforced is used in gambling and social media to keep people hooked – it hammers your dopamine levels. Adult / pawn films also does the same, as does coke, sugary foods and energy drinks.