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!



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.

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

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>

Actionable SEO News Summary – 23rd-1st March 2024

SEO News Summary from the Last 7 Days

Over the past week, the SEO and PPC landscape has seen several significant updates and insights:

  1. Google Structured Data Carousels (Beta):
    Google introduced new documentation for what it calls host carousels within Google Search, aiming to enhance content visibility and interaction.

    More info from google here

  2. Performance Max Campaigns: Concerns have been raised about Google’s lack of transparency around Performance Max (PMax) performance data, with advertisers criticizing the platform for not showing channel-specific KPIs.

  3. Google Chrome Search Suggestions Update: Google Chrome now offers enhanced search suggestions, including what others are searching for and more image thumbnails in the search box*



  4. AI Content and GPTBot: Discussions around AI-generated content and the use of OpenAI’s GPTBot for crawling websites have been prominent. The consensus is that embracing GPTBot can offer more benefits than drawbacks, with advice on improving AI content to avoid generic writing and plagiarism.


  5. Video SEO and Site Migrations: Advanced techniques for video SEO were highlighted, including the debate between self-hosting versus YouTube embedding. Additionally, AI-powered redirect mapping was discussed as a method to speed up site migrations.


  6. Legal and Policy Updates: Google faces a $2.27 billion lawsuit from European publishers over advertising practices, and reminders were issued about Google enforcing stricter rules for consumer finance ad targeting.


  7. Digital Marketing Trends for SMBs: A new report sheds light on the digital marketing approaches of small and medium-sized businesses (SMBs) in 2024, focusing on key trends, goals, and challenges.



*Google Search Suggestions Update:

google search suggestions

Actionable Points for SEO and Digital Marketing

Based on the recent SEO news, here are some actionable recommendations:

  1. Embrace Google’s New Features: Experiment with Google’s structured data carousels and update your site’s structured data accordingly to take advantage of these new search features.
  2. Transparency with Performance Max Campaigns: Closely monitor PMax performance data and consider diversifying your ad strategies to mitigate risks associated with opaque KPIs.
  3. Optimize for Google Chrome’s Enhanced Search Suggestions: Ensure your website’s content is optimized for search suggestions, including the use of relevant keywords and high-quality images.
  4. Unblock GPTBot and Improve AI Content: Do not block GPTBot from crawling your site; instead, focus on creating high-quality, insightful AI-generated content that avoids generic writing and plagiarism.
  5. Advanced Video SEO Techniques: Explore advanced video SEO techniques, such as deciding between self-hosting and YouTube embedding based on your content strategy and ensuring your videos are properly indexed.
  6. AI-Powered Site Migration: Utilize AI for efficient redirect mapping during site migrations to save time and reduce errors, ensuring a smooth transition to a new CMS.
  7. Stay Informed on Legal and Policy Changes: Keep abreast of legal and policy updates affecting digital advertising to ensure your marketing practices remain compliant and effective.

Actionable SEO Tips

Advanced Video SEO Techniques and AI Copy Creation

For advanced video SEO, focus on:

  • Choosing the Right Hosting Platform: Decide between self-hosting and platforms like YouTube based on your goals (e.g., traffic vs. engagement).
  • Optimizing Video Metadata: Ensure titles, descriptions, and tags are keyword-rich and descriptive.
  • Creating Engaging Thumbnails: Use compelling thumbnails to increase click-through rates.
  • Leveraging Video Transcripts: Improve accessibility and indexability by including transcripts.

To create helpful AI copy that ranks well, focus on:

  • Providing Detailed Instructions: Give the AI specific, detailed prompts that align with your content goals.
  • Emphasizing Value and Originality: Instruct the AI to generate content that offers unique insights or solutions.
  • Incorporating SEO Best Practices: Include keywords and SEO strategies within your prompts to guide the AI in producing SEO-friendly content.

Example Prompts for AI Copy Creation

Becoming a Full Stack Developer:

  • “Write an introductory guide for beginners on becoming a full stack developer, focusing on essential skills and languages.”
  • “List the top resources for learning full stack development, including online courses, books, and communities.”
  • “Explain the importance of project-based learning in full stack development and provide examples of beginner-friendly projects.”

Tech SEO Audit and Site Migration Checklist:

  • “Create a comprehensive checklist for conducting a technical SEO audit, covering site speed, mobile-friendliness, and on-page SEO factors.”
  • “Outline the steps for a successful site migration to a new CMS, emphasizing SEO considerations like URL structure and 301 redirects.”
  • “Discuss common pitfalls in site migrations and how to avoid them, focusing on maintaining search rankings and user experience.”

These prompts are designed to guide AI in producing detailed, valuable content that addresses specific user needs and adheres to SEO best practices.

Screaming Frog – Custom Extraction – Extract Specific Page Copy [2026]

Last Updated – a few days ago (probably)

  • Open Screaming Frog
  • Go to Configuration in the top menu
  • Custom > Custom Extraction
  • Use Inspect Element (right click on the copy and choose “inspect” if you use Chrome browser) – to identify the name, class or ID of the div or element the page copy is contained in:

    In this example the Div class is “prose” (f8ck knows why)

  • You can copy the Xpath instead – but it appears to do the same thing as just entering the class or id of the div:
  • The following will scrape any text in the div called “prose”:

*Click Image to enlarge^

Once you are in the Custom Extraction Window – Choose:

  • Extractor 1
  • X Path
  • In the next box enter –> //div[@class=’classofdiv‘] —->

    in this example – //div[@class=’prose’]
  • Extract Text

//div[@class='prose']
^Enter the above into the 3rd 'box' in the custom extraction window/tab.
Replace "prose" with the name of the div you want to scrape.


If you copy the Xpath using Inspect Element – select the exact element you want. For example, don’t select the Div that contains text you want to scrape – select the text itself:

Here are some more examples:

How to Extract Common HTML Elements

//div[@class='read-more']
XPathOutput
//h1Extract all H1 tags
//h3[1]Extract the first H3 tag
//h3[2]Extract the second H3 tag
//div/pExtract any <p> contained within a <div>
//div[@class=’author’]Extract any <div> with class “author” (remember to check ‘ quote marks are correct)
//p[@class=’bio’]Extract any <p> with class “bio”
//*[@class=’bio’]Extract any element with class “bio”
//ul/li[last()]Extract the last <li> in a <ul>
//ol[@class=’cat’]/li[1]Extract the first <li> in a <ol> with class “cat”
count(//h2)Count the number of H2’s (set extraction filter to “Function Value”)
//a[contains(.,’click here’)]Extract any link with anchor text containing “click here”
//a[starts-with(@title,’Written by’)]Extract any link with a title starting with “Written by”

 

How to Extract Common HTML Attributes

XPathOutput
//@hrefExtract all links
//a[starts-with(@href,’mailto’)]/@hrefExtract link that starts with “mailto” (email address)
//img/@srcExtract all image source URLs
//img[contains(@class,’aligncenter’)]/@srcExtract all image source URLs for images with the class name containing “aligncenter”
//link[@rel=’alternate’]Extract elements with the rel attribute set to “alternate”
//@hreflangExtract all hreflang values

 

How to Extract Meta Tags (including Open Graph and Twitter Cards)

I recommend setting the extraction filter to “Extract Inner HTML” for these ones.

Extract Meta Tags:

XPathOutput
//meta[@property=’article:published_time’]/@contentExtract the article publish date (commonly-found meta tag on WordPress websites)

Extract Open Graph:

XPathOutput
//meta[@property=’og:type’]/@contentExtract the Open Graph type object
//meta[@property=’og:image’]/@contentExtract the Open Graph featured image URL
//meta[@property=’og:updated_time’]/@contentExtract the Open Graph updated time

Extract Twitter Cards:

XPathOutput
//meta[@name=’twitter:card’]/@contentExtract the Twitter Card type
//meta[@name=’twitter:title’]/@contentExtract the Twitter Card title
//meta[@name=’twitter:site’]/@contentExtract the Twitter Card site object (Twitter handle)

How to Extract Schema Markup in Microdata Format

If it’s in JSON-LD format, then jump to the section on how to extract schema markup with regex.

Extract Schema Types:

XPathOutput
//*[@itemtype]/@itemtypeExtract all of the types of schema markup on a page

References:

Update:

If the ‘shorter code’ in the tables above doesn’t work for some reason, you may have to right click – inspect and copy the full Xpath code to be more specific with what you want to extract:

For sections of text like paragraphs and on page descriptions, select the actual text in the inspect window before copying the Xpath.

Update 2

We wanted to compare the copy and internal links before and after a site-migration to a new CMS.

To see the links in HTML format – you just need to check “Extract Text” to “Extract Inner HTML” in the final drop down:
(click image to enlarge)

On the new CMS, it was easier to just copy the XPath

Why Use Custom Extraction with Screaming Frog?

I’m glad you asked.

We used it to check that page copy had migrated properly to a new CMS.

We also extracted the HTML within the copy, to check the internal links were still present.

One cool thing you can do – is scrape reviews and then analyse the reviews to see key feedback/pain points that could inform superior design.

Here’s a good way to use custom extraction/search to find text that you want to use for anchor text for internal links:

custom search screaming frog

I’m still looking into how to analyse the reviews – but this tool is a good starting point: https://seoscout.com/tools/text-analyzer

Throw the reviews in and see what words are repeated etc

This tool is also very good:

https://voyant-tools.org

Or – just paste into Chat GPT and ask for insights and pain-points to help develop a better product.

I asked Chat GPT and Google Gemini why I would want to scrape copy from sites and got these responses:


Monitoring Competitors

Content Strategy Insights: Gather headings, titles, and meta descriptions from competitor websites to gain insights into their content strategies and how they optimize for search engines.

Pricing Information: For e-commerce platforms, you can use custom extraction to keep an eye on competitors’ pricing strategies by pulling prices for similar products.

Promotional Strategies: Collect details on promotions, discounts, or special offers from competitors’ sites to evaluate how they stack up against your own promotional efforts.

Keyword Usage: Identify specific keywords from competitors’ content to understand how they are targeting particular topics or niches.

Backlink Analysis: While Screaming Frog isn’t primarily a backlink tool, you can utilize custom extraction to pinpoint external links on a page, providing insights into a competitor’s backlink strategy.

Optimizing Your Own Website

Content Optimization: Employ custom extraction to review your own site’s headings, titles, meta descriptions, and keyword usage to spot areas that need improvement.

Structural Data: Extract and assess structured data (like Schema markup) across your site to ensure proper implementation and identify potential enhancement opportunities.

Internal Linking: Analyze internal linking structures to understand the flow of page authority throughout your site and to find orphan pages or those with insufficient internal link support.

Audit Forms and Calls to Action (CTAs): Extract form action URLs and CTA links to verify they are working correctly and to optimize their placement and wording.

Identify Outdated Content: Use custom extraction to locate dates and timestamps on your content, which can help you identify articles or pages that may require updates.

Gemini said:

Reasons to Use Custom Extraction in Screaming Frog:

The custom extraction feature in Screaming Frog provides numerous advantages for website analysis and data collection. Here are some important reasons to utilize it:

  1. Extract Specific Data:

Go beyond basic SEO metrics: While Screaming Frog offers valuable insights, custom extraction enables you to focus on specific data points that may not be easily accessible, such as product prices, article publish dates, or user reviews.

Gain deeper competitor insights: Extract information on competitor pricing strategies, product descriptions, or content structures to compare with your own website.

Gather information for internal analysis: Monitor specific elements on your site, like call to action (CTA) button text or internal linking structures, to observe changes and assess their impact.

  1. Automate Data Collection:

Save time and effort: Collecting data manually can be labor-intensive and prone to errors. Custom extraction streamlines the process, allowing you to efficiently gather information across numerous pages.

Maintain consistent data: By setting up automated data extraction, you ensure uniform data collection over time, which facilitates better trend analysis and comparisons.

  1. Enhance Reporting and Analysis:

Combine extracted data with existing Screaming Frog metrics: Merge the extracted data with other SEO parameters such as page titles, meta descriptions, and internal links for a more thorough analysis.

Create custom reports: Use the extracted data to generate tailored reports for specific purposes, like competitor pricing comparisons or evaluations of content performance.

Monitoring Competitors:

Custom extraction serves as a valuable tool for competitor monitoring in various ways:

Extract competitor pricing data: Keep track of competitor pricing trends, identify potential gaps in your own pricing strategy, and make informed pricing decisions.

Analyze competitor content structure and keywords: Learn how competitors format their content, pinpoint their targeted keywords, and gain insights to enhance your own strategy.

Note for self – for Magento 2, Hyva theme Sub-category page copy – scrape using:

//div[@id='descriptionDiv']
Product page descriptions upper and lower divs -
//div[@class="product-description"]
//*[@id="specifications"]/div/div[2]/div/div/div/div/div
//*[@id="description"]/div/div[2]

For personal reference –

//div[@class=’product-description’]

//div[@class=’prose’]

/html/body/div[1]/div[3]/main/div[4]/div/div

//div[@class=’category-description read-more’]

Screaming Frog Custom Extraction

Configuration → Custom → Extraction → Add (one per row). All extract as Extract Text unless noted.

Priority extractors (most likely to contain untranslated English)

NameTypeSelectorExtractor
Meta DescriptionXPath//meta[@name='description']/@contentExtract Text
Meta KeywordsXPath//meta[@name='keywords']/@contentExtract Text
OG TitleXPath//meta[@property='og:title']/@contentExtract Text
OG DescriptionXPath//meta[@property='og:description']/@contentExtract Text
H1 FullCSSPathh1Extract Text
All H2sXPath//h2Extract Text
All H3sXPath//h3Extract Text
Product Description BodyCSSPath.product-descriptionExtract Text
USP / Special Feature BlocksCSSPath.special-feature-itemExtract Text
Review TitlesCSSPath[itemprop='name']Extract Text
Review BodiesCSSPath[itemprop='reviewBody']Extract Text
BreadcrumbsCSSPathnav.breadcrumbsExtract Text
Image AltsXPath//img/@altExtract Text
Image TitlesXPath//img/@titleExtract Text
Schema.org descriptionXPath//script[@type='application/ld+json']Extract Inner HTML

English-word detection (fires only if it finds English)

These use XPath’s contains() to return a value only when specific English words appear in body text. Handy for flagging pages fast:

NameTypeSelector
Has “the “XPath//body[contains(., ' the ')]/@class
Has “and “XPath//body[contains(., ' and ')]/@class
Has “with “XPath//body[contains(., ' with ')]/@class
Has “made “XPath//body[contains(., ' made ')]/@class
Has “quality “XPath//body[contains(., ' quality ')]/@class
Has “features “XPath//body[contains(., ' features ')]/@class
Has “delivery “XPath//body[contains(., ' delivery ')]/@class

AboutPage Schema Example [2026]

Great for your About Pages

<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "AboutPage",
"name": "Business Dad",
"url": "https://businessdaduk.com/",
"description": "a blog for the people by the people",
"mainEntityOfPage": {
"@type": "WebPage",
"@id": "https://businessdaduk.com/"
},
"sameAs": [
"https://twitter.com/baddadbusiness",
],
"potentialAction": {
"@type": "SearchAction",
"target": "https://businessdaduk.com/search?query={search_term_string}",
"query-input": "required name=search_term_string"
}
}
</script>

You can also add:
– An about page image URL
– Read action – instead of search
– Publisher

<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "AboutPage",
"name": "Business Dad",
"url": "https://businessdaduk.com/",
"description": "a blog for the people by the people",
"mainEntityOfPage": {
"@type": "WebPage",
"@id": "https://businessdaduk.com/",
"image": "https://businessdaduk.com/images/about-page-image.jpg"
},
"sameAs": [
"https://twitter.com/baddadbusiness"
],
"potentialAction": {
"@type": "ReadAction",
"target": "https://businessdaduk.com/about-us"
},
"publisher": {
"@type": "Organization",
"name": "Business Dad",
"logo": {
"@type": "ImageObject",
"url": "https://businessdaduk.com/logo.jpg"
}
}
},
</script>