{"id":51,"date":"2019-07-11T11:50:44","date_gmt":"2019-07-11T10:50:44","guid":{"rendered":"https:\/\/organicdigital.co\/blog\/?p=51"},"modified":"2026-09-22T11:00:40","modified_gmt":"2026-09-22T10:00:40","slug":"how-to-implement-breadcrumb-list-schema-mark-up-and-why","status":"publish","type":"post","link":"https:\/\/daveashworth.co\/blog\/how-to-implement-breadcrumb-list-schema-mark-up-and-why\/","title":{"rendered":"How To:  How to Implement BreadcrumbList Schema Markup"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"><strong>TL;DR:<\/strong> <br><code>BreadcrumbList<\/code> schema describes a page\u2019s breadcrumb trail in a machine-readable format, helping search engines understand where the page sits within your website hierarchy. It can also be used by Google when displaying breadcrumb paths in search results. This guide explains the required properties, shows JSON-LD and HTML microdata implementations, and covers how to test your breadcrumb structured data.<\/p>\n\n\n\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_89 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/daveashworth.co\/blog\/how-to-implement-breadcrumb-list-schema-mark-up-and-why\/#Why_use_BreadcrumbList_schema\" >Why use BreadcrumbList schema?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/daveashworth.co\/blog\/how-to-implement-breadcrumb-list-schema-mark-up-and-why\/#What_Is_A_Breadcrumb_Trail\" >What Is A Breadcrumb Trail?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/daveashworth.co\/blog\/how-to-implement-breadcrumb-list-schema-mark-up-and-why\/#What_is_BreadcrumbList_schema\" >What is BreadcrumbList schema?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/daveashworth.co\/blog\/how-to-implement-breadcrumb-list-schema-mark-up-and-why\/#What_are_the_SEO_benefits_of_BreadcrumbList_schema\" >What are the SEO benefits of BreadcrumbList schema?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/daveashworth.co\/blog\/how-to-implement-breadcrumb-list-schema-mark-up-and-why\/#How_to_implement_BreadcrumbList_schema\" >How to implement BreadcrumbList schema<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/daveashworth.co\/blog\/how-to-implement-breadcrumb-list-schema-mark-up-and-why\/#BreadcrumbList_JSON-LD_example\" >BreadcrumbList JSON-LD example<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/daveashworth.co\/blog\/how-to-implement-breadcrumb-list-schema-mark-up-and-why\/#BreadcrumbList_schema_using_HTML_microdata\" >BreadcrumbList schema using HTML microdata<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/daveashworth.co\/blog\/how-to-implement-breadcrumb-list-schema-mark-up-and-why\/#BreadcrumbList_schema_in_WordPress\" >BreadcrumbList schema in WordPress<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/daveashworth.co\/blog\/how-to-implement-breadcrumb-list-schema-mark-up-and-why\/#BreadcrumbList_schema_in_Magento\" >BreadcrumbList schema in Magento<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/daveashworth.co\/blog\/how-to-implement-breadcrumb-list-schema-mark-up-and-why\/#How_to_test_BreadcrumbList_schema\" >How to test BreadcrumbList schema<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/daveashworth.co\/blog\/how-to-implement-breadcrumb-list-schema-mark-up-and-why\/#BreadcrumbList_schema_checklist\" >BreadcrumbList schema checklist<\/a><\/li><\/ul><\/nav><\/div>\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Why_use_BreadcrumbList_schema\"><\/span>Why use BreadcrumbList schema?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Breadcrumbs help users understand where a page sits within a website and navigate back through its hierarchy.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">You can also describe that breadcrumb trail to search engines using <code>BreadcrumbList<\/code> structured data.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Google can use this markup to understand a page&#8217;s position within your site hierarchy and represent that path in search results. A typical breadcrumb might look something like:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Home \u2192 Services \u2192 Technical SEO \u2192 Structured Data<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In this guide I&#8217;ll show you how <code>BreadcrumbList<\/code> schema works, the properties you need to include, how to implement it using JSON-LD or HTML markup, and how to test that Google can read it correctly.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><br><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"What_Is_A_Breadcrumb_Trail\"><\/span><strong>What Is A Breadcrumb Trail?<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">A breadcrumb trail is a series of navigational links that shows users where the current page sits within a website&#8217;s hierarchy.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For example:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Home \u2192 Services \u2192 Technical SEO \u2192 Structured Data<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Each step gives the user a way to navigate back to a broader section of the site without having to rely on the main navigation.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Breadcrumbs are particularly useful on larger websites such as ecommerce sites. If someone lands directly on a product page from Google, the breadcrumb trail can help them navigate back through the relevant subcategory and category to find similar products.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">It&#8217;s important to distinguish the <strong>visible breadcrumb trail<\/strong> from <strong>BreadcrumbList schema<\/strong>. The breadcrumb is the navigation a visitor sees and uses on the page. Breadcrumb structured data describes that hierarchy in a machine-readable format that search engines can understand.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"What_is_BreadcrumbList_schema\"><\/span><strong>What is BreadcrumbList schema?<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><code>BreadcrumbList<\/code> is a Schema.org structured data type used to describe a breadcrumb trail in a machine-readable format.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Each breadcrumb is represented as a <code>ListItem<\/code>, with a <code>position<\/code> showing its order in the trail and a <code>name<\/code> describing that step. The breadcrumb can also include the URL associated with that step using the <code>item<\/code> property.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For example, a breadcrumb trail such as:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Home \u2192 Services \u2192 Structured Data<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">can be represented as a <code>BreadcrumbList<\/code> containing three <code>ListItem<\/code> elements with positions 1, 2 and 3.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This helps Google understand how the current page fits into the hierarchy of your website. Google can then use that information when displaying the page&#8217;s breadcrumb path in search results.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Here&#8217;s an example of how one of my pages appeared in Google when its breadcrumb structured data was being used in the search result:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" width=\"433\" height=\"73\" src=\"https:\/\/daveashworth.co\/blog\/wp-content\/uploads\/2019\/07\/search-result-with-breadcrumb-schema.png\" alt=\"Search result with breadcrumb schema\" class=\"wp-image-53\" srcset=\"https:\/\/daveashworth.co\/blog\/wp-content\/uploads\/2019\/07\/search-result-with-breadcrumb-schema.png 433w, https:\/\/daveashworth.co\/blog\/wp-content\/uploads\/2019\/07\/search-result-with-breadcrumb-schema-300x51.png 300w, https:\/\/daveashworth.co\/blog\/wp-content\/uploads\/2019\/07\/search-result-with-breadcrumb-schema-150x25.png 150w\" sizes=\"(max-width: 433px) 100vw, 433px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Breadcrumb implementation is also something I check when carrying out <a href=\"https:\/\/daveashworth.co\/services-and-consultancy\/website-seo-audits-consultant\/\">website SEO audits<\/a>, particularly on larger sites where understanding the relationship between categories, subcategories and individual pages is important.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"What_are_the_SEO_benefits_of_BreadcrumbList_schema\"><\/span><strong>What are the SEO benefits of BreadcrumbList schema?<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Breadcrumbs can help both users and search engines understand how a page fits within the wider structure of a website.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For users, a visible breadcrumb trail provides another way to navigate between related sections of the site. For search engines, <code>BreadcrumbList<\/code> structured data explicitly describes the relationship between those pages and can be used when presenting breadcrumb information in search results.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I&#8217;ve also seen cases where changes to breadcrumb markup have coincided with substantial changes in organic click-through rate, although I wouldn&#8217;t assume that implementing breadcrumb schema will automatically increase CTR.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">One example came from a site I worked on where the existing structured data was inadvertently removed when a new website template was launched.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The site&#8217;s search appearance changed, and at the same time I saw a noticeable decline in organic CTR. The first arrow below marks the launch of the new template, while the second marks when the structured data issue was corrected:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" width=\"646\" height=\"275\" src=\"https:\/\/daveashworth.co\/blog\/wp-content\/uploads\/2019\/07\/breadcrumb-ctr-case-study.png\" alt=\"Breadcrumb CTR Case Study\" class=\"wp-image-55\" srcset=\"https:\/\/daveashworth.co\/blog\/wp-content\/uploads\/2019\/07\/breadcrumb-ctr-case-study.png 646w, https:\/\/daveashworth.co\/blog\/wp-content\/uploads\/2019\/07\/breadcrumb-ctr-case-study-150x64.png 150w, https:\/\/daveashworth.co\/blog\/wp-content\/uploads\/2019\/07\/breadcrumb-ctr-case-study-300x128.png 300w\" sizes=\"(max-width: 646px) 100vw, 646px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">During that period, CTR fell from around <strong>6.6% to 4.1%<\/strong>, despite rankings remaining relatively stable. It subsequently fell as low as 3.5% before recovering to around 7% within three weeks of the issue being fixed.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">That&#8217;s an interesting correlation and was one of the reasons the missing markup caught my attention, but I wouldn&#8217;t use it as evidence that breadcrumb schema alone caused the CTR changes. Search appearance, query mix and other factors can all affect click-through rate.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I saw a similar relationship between structured data changes and search performance in <a href=\"https:\/\/daveashworth.co\/blog\/case-study-the-importance-of-schema-mark-up\/\">this schema case study<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Breadcrumbs are also only one type of structured data you might use across a site. Depending on the page and organisation, other relevant types can include <a href=\"https:\/\/daveashworth.co\/blog\/how-to-implement-organization-schema-mark-up-and-why\/\">Organisation schema<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"How_to_implement_BreadcrumbList_schema\"><\/span><strong>How to implement BreadcrumbList schema<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">There are several ways to add breadcrumb structured data to a page. The important part is that the markup describes the breadcrumb hierarchy accurately and uses the correct <code>BreadcrumbList<\/code> and <code>ListItem<\/code> properties.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The main properties you&#8217;ll see in the examples below are:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>itemListElement<\/code> \u2014 contains the individual breadcrumbs in the list<br><\/li>\n\n\n\n<li><code>ListItem<\/code> \u2014 represents each step in the breadcrumb trail<br><\/li>\n\n\n\n<li><code>position<\/code> \u2014 defines the order of each breadcrumb<br><\/li>\n\n\n\n<li><code>name<\/code> \u2014 provides the name of the breadcrumb<br><\/li>\n\n\n\n<li><code>item<\/code> \u2014 provides the URL represented by that breadcrumb<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">I&#8217;ll start with JSON-LD, as it&#8217;s generally the easiest implementation to understand and maintain, before showing the equivalent markup within HTML.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"BreadcrumbList_JSON-LD_example\"><\/span>BreadcrumbList JSON-LD example<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;script type=\"application\/ld+json\"&gt;\n{\n  \"@context\": \"https:\/\/schema.org\",\n  \"@type\": \"BreadcrumbList\",\n  \"itemListElement\": &#91;\n    {\n      \"@type\": \"ListItem\",\n      \"position\": 1,\n      \"name\": \"Home\",\n      \"item\": \"https:\/\/daveashworth.co\/\"\n    },\n    {\n      \"@type\": \"ListItem\",\n      \"position\": 2,\n      \"name\": \"Services\",\n      \"item\": \"https:\/\/daveashworth.co\/services-and-consultancy\/\"\n    },\n    {\n      \"@type\": \"ListItem\",\n      \"position\": 3,\n      \"name\": \"Structured Data\"\n    }\n  ]\n}\n&lt;\/script&gt;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">In this example, <code>itemListElement<\/code> contains three <code>ListItem<\/code> objects representing the breadcrumb trail.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Each <code>ListItem<\/code> has a <code>position<\/code> and <code>name<\/code>. The preceding breadcrumbs also have an <code>item<\/code> containing the URL for that step in the trail.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Notice that the final breadcrumb doesn&#8217;t need an <code>item<\/code> URL. It represents the current page, so its <code>name<\/code> and <code>position<\/code> are sufficient for Google&#8217;s breadcrumb implementation.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"BreadcrumbList_schema_using_HTML_microdata\"><\/span>BreadcrumbList schema using HTML microdata<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;ul id=\"breadcrumblist\"\n    itemscope\n    itemtype=\"https:\/\/schema.org\/BreadcrumbList\"&gt;\n\n  &lt;li itemprop=\"itemListElement\"\n      itemscope\n      itemtype=\"https:\/\/schema.org\/ListItem\"&gt;\n    &lt;a itemprop=\"item\" href=\"https:\/\/daveashworth.co\/\"&gt;\n      &lt;span itemprop=\"name\"&gt;Home&lt;\/span&gt;\n    &lt;\/a&gt;\n    &lt;meta itemprop=\"position\" content=\"1\"&gt;\n  &lt;\/li&gt;\n\n  &lt;li itemprop=\"itemListElement\"\n      itemscope\n      itemtype=\"https:\/\/schema.org\/ListItem\"&gt;\n    &lt;a itemprop=\"item\" href=\"https:\/\/daveashworth.co\/services-and-consultancy\/\"&gt;\n      &lt;span itemprop=\"name\"&gt;Services&lt;\/span&gt;\n    &lt;\/a&gt;\n    &lt;meta itemprop=\"position\" content=\"2\"&gt;\n  &lt;\/li&gt;\n\n  &lt;li itemprop=\"itemListElement\"\n      itemscope\n      itemtype=\"https:\/\/schema.org\/ListItem\"&gt;\n    &lt;span itemprop=\"name\"&gt;Structured Data&lt;\/span&gt;\n    &lt;meta itemprop=\"position\" content=\"3\"&gt;\n  &lt;\/li&gt;\n\n&lt;\/ul&gt;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">This describes the same breadcrumb hierarchy as the JSON-LD example, but the structured data properties are added directly to the visible HTML breadcrumb navigation.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>BreadcrumbList<\/code> defines the overall list, while each breadcrumb is marked as a <code>ListItem<\/code> using <code>itemListElement<\/code>. The <code>position<\/code> values then establish the order of the breadcrumbs.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">You don&#8217;t need to implement both this and the JSON-LD example for the same breadcrumb trail. They&#8217;re two different ways of describing the same information.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Whichever implementation method you choose, make sure the structured data represents the breadcrumb hierarchy users would reasonably use to navigate the site. Don&#8217;t simply generate breadcrumb levels from every directory in the URL if those directories don&#8217;t represent the site&#8217;s actual navigation hierarchy.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"BreadcrumbList_schema_in_WordPress\"><\/span><strong>BreadcrumbList schema in WordPress<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">If you&#8217;re using WordPress, check whether your SEO plugin, theme or existing structured data plugin already outputs <code>BreadcrumbList<\/code> schema before adding anything manually.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Many WordPress setups can generate both the visible breadcrumb navigation and the corresponding structured data automatically. If yours does, make sure the breadcrumb hierarchy it generates accurately represents your site structure rather than adding a second implementation.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">You can inspect the generated markup and test a page after implementation using Google&#8217;s structured data testing tools, which I&#8217;ll cover below.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"BreadcrumbList_schema_in_Magento\"><\/span>BreadcrumbList schema in Magento<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Magento sites commonly use breadcrumbs across category and product pages, making <code>BreadcrumbList<\/code> particularly relevant for ecommerce websites.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">As with WordPress, first check what your theme, extensions or existing structured data implementation already generates. You don&#8217;t want to add another BreadcrumbList implementation if valid breadcrumb structured data is already being output.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For a product page, for example, the breadcrumb hierarchy might represent:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Home \u2192 Category \u2192 Subcategory \u2192 Product<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The important part isn&#8217;t which Magento extension generates the markup, but whether the resulting <code>BreadcrumbList<\/code> accurately describes the breadcrumb trail and contains the appropriate <code>ListItem<\/code>, <code>position<\/code>, <code>name<\/code> and <code>item<\/code> properties.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"How_to_test_BreadcrumbList_schema\"><\/span><strong>How to test BreadcrumbList schema<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Once you&#8217;ve implemented your breadcrumb structured data, test it before assuming everything is working correctly.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Google&#8217;s <a href=\"https:\/\/search.google.com\/test\/rich-results?utm_source=chatgpt.com\" target=\"_blank\" rel=\"noopener\">Rich Results Test<\/a> can test either a live URL or a code snippet and show whether Google detects a valid breadcrumb item. Fix any critical errors it identifies before deploying the markup more widely.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Once the markup is live, you can also use <strong>URL Inspection in Google Search Console<\/strong> to check how Google sees the page and request recrawling after making significant changes. Google recommends monitoring the relevant structured data reports in Search Console after deployment and after template or code changes.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Don&#8217;t assume that valid <code>BreadcrumbList<\/code> markup guarantees Google will display breadcrumbs exactly as you&#8217;ve specified them. Structured data makes a page eligible for supported search features, but Google doesn&#8217;t guarantee that those features will always be shown.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If your markup validates correctly but you&#8217;re still having problems with organic visibility, there may be <a href=\"https:\/\/daveashworth.co\/services-and-consultancy\/\">other SEO issues that need investigating<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"BreadcrumbList_schema_checklist\"><\/span>BreadcrumbList schema checklist<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Before you&#8217;re finished, check that:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>the breadcrumb represents a logical user path through the site<br><\/li>\n\n\n\n<li>you&#8217;re using <code>BreadcrumbList<\/code> with ordered <code>ListItem<\/code> elements<br><\/li>\n\n\n\n<li>each breadcrumb has the correct <code>position<\/code> and <code>name<\/code><br><\/li>\n\n\n\n<li>the <code>item<\/code> URL points to the correct page where required<br><\/li>\n\n\n\n<li>the markup accurately reflects the breadcrumb hierarchy<br><\/li>\n\n\n\n<li>the implementation passes Google&#8217;s Rich Results Test<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Of all the structured data mark-up code that can be applied to a website, one which can have the biggest impact is breadcrumb trail schema.  Find out why and how to implement it across your site.<\/p>\n","protected":false},"author":1,"featured_media":52,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[13,9],"tags":[],"class_list":["post-51","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-on-page-seo","category-structured-data"],"_links":{"self":[{"href":"https:\/\/daveashworth.co\/blog\/wp-json\/wp\/v2\/posts\/51","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/daveashworth.co\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/daveashworth.co\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/daveashworth.co\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/daveashworth.co\/blog\/wp-json\/wp\/v2\/comments?post=51"}],"version-history":[{"count":5,"href":"https:\/\/daveashworth.co\/blog\/wp-json\/wp\/v2\/posts\/51\/revisions"}],"predecessor-version":[{"id":2467,"href":"https:\/\/daveashworth.co\/blog\/wp-json\/wp\/v2\/posts\/51\/revisions\/2467"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/daveashworth.co\/blog\/wp-json\/wp\/v2\/media\/52"}],"wp:attachment":[{"href":"https:\/\/daveashworth.co\/blog\/wp-json\/wp\/v2\/media?parent=51"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/daveashworth.co\/blog\/wp-json\/wp\/v2\/categories?post=51"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/daveashworth.co\/blog\/wp-json\/wp\/v2\/tags?post=51"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}