{"id":16943,"date":"2021-09-16T17:09:47","date_gmt":"2021-09-16T15:09:47","guid":{"rendered":"https:\/\/wordlift.io\/blog\/en\/?p=16943"},"modified":"2021-09-17T12:18:23","modified_gmt":"2021-09-17T10:18:23","slug":"structured-data-testing","status":"publish","type":"post","link":"https:\/\/wordlift.io\/blog\/en\/structured-data-testing\/","title":{"rendered":"Is Google Really Indexing My Structured Data Markup?"},"content":{"rendered":"\n<ul class=\"wp-block-list\"><li><a href=\"#google-index\">How does Google index structured data created on the fly with JavaScript?<\/a><\/li><li><a href=\"#json-markup\">How to add JSON-LD markup to your web pages?<\/a><\/li><li><a href=\"#jsonld\">I have added a JSON-LD. How can I check if Google is indexing it<\/a><ol><li><a href=\"#enhancements\">Use the Enhancements section in Google Search Console to see if the markup has been processed<\/a><\/li><li><a href=\"#url-inspector\">Use the URL Inspector in Google Search Console to check a specific URL<\/a><\/li><li><a href=\"#rich-results\">Use the Rich Result Testing Tool<\/a><\/li><li><a href=\"#schema-validator\">Use the Schema Markup Validator (SMV)<\/a><\/li><\/ol><\/li><li><a href=\"#pitfalls\">What are the most common pitfalls preventing Google from indexing schema markup?<\/a><\/li><li><a href=\"#monitoring\">The need for constant monitoring of your schema markup. A few solutions.<\/a><ol><li><a href=\"#favourite-crawler\">Monitoring structured data using your favourite crawler<\/a><\/li><li><a href=\"#colab\">Run your crawler in Python \ud83d\udc0d  and extract the markup<\/a> [CODE AVAILABLE]<\/li><li><a href=\"#wordlift-inspector\">WordLift&#8217;s inspector to extract and validate your semantic markup<\/a><\/li><\/ol><\/li><\/ul>\n\n\n\n<p>It might seem a trivial question at first, but it is not. After adding <a class=\"wl-entity-page-link\" title=\"Schema.org\" href=\"https:\/\/wordlift.io\/blog\/en\/entity\/schema-org\/\" data-id=\"http:\/\/data.wordlift.io\/wl0216\/entity\/schema-org;http:\/\/rdf.freebase.com\/ns\/m.0gvvdn9;http:\/\/yago-knowledge.org\/resource\/Schema.org;http:\/\/dbpedia.org\/resource\/Schema.org;https:\/\/www.wikidata.org\/wiki\/Q3475322;http:\/\/data.qa.wordlift.io\/wl0216\/entity\/schema-org\" >schema markup<\/a> to hundreds of websites, we realized that conditions can differ from one site to another. Before evaluating, if a given markup is effectively helping Google understand the content of a webpage, we need to ensure that Google can crawl and index its markup.&nbsp;<\/p>\n\n\n\n<p>Regardless of the format that you are using to add structured data markup to your webpages, whether it is <a class=\"wl-entity-page-link\" title=\"JSON\/LD\" href=\"https:\/\/wordlift.io\/blog\/en\/entity\/json-ld\/\" data-id=\"http:\/\/data.wordlift.io\/wl0216\/entity\/json-ld;http:\/\/rdf.freebase.com\/ns\/m.0hzq_55;http:\/\/dbpedia.org\/resource\/JSON-LD;http:\/\/de.dbpedia.org\/resource\/JSON-LD;http:\/\/en.dbpedia.org\/resource\/JSON-LD;http:\/\/nl.dbpedia.org\/resource\/JSON-LD\" >JSON-LD<\/a>, Microdata or <a class=\"wl-entity-page-link\"  href=\"https:\/\/wordlift.io\/blog\/en\/entity\/rdfa\/\" data-id=\"http:\/\/data.wordlift.io\/wl0216\/entity\/rdfa;http:\/\/rdf.freebase.com\/ns\/m.0bw_sh;http:\/\/yago-knowledge.org\/resource\/RDFa;http:\/\/dbpedia.org\/resource\/RDFa;http:\/\/cs.dbpedia.org\/resource\/RDFa;http:\/\/de.dbpedia.org\/resource\/RDFa;http:\/\/pt.dbpedia.org\/resource\/RDFa;http:\/\/en.dbpedia.org\/resource\/RDFa;http:\/\/fr.dbpedia.org\/resource\/RDFa;http:\/\/es.dbpedia.org\/resource\/RDFa\" >RDFa<\/a>, you have two options:<\/p>\n\n\n\n<ol class=\"wp-block-list\"><li>Writing the code as part of the <a class=\"wl-entity-page-link\"  href=\"https:\/\/wordlift.io\/blog\/en\/entity\/html\/\" data-id=\"http:\/\/data.wordlift.io\/wl0216\/entity\/html;http:\/\/rdf.freebase.com\/ns\/m.03g20;http:\/\/yago-knowledge.org\/resource\/HTML;http:\/\/dbpedia.org\/resource\/HTML\" >HTML<\/a> of the page (server-side injection),<\/li><li>Using JavaScript to inject the markup into the page (client-side injection).<\/li><\/ol>\n\n\n\n<p>When using JavaScript, structured data is effectively written by a script that gets executed on the client. WordLift, for example, injects for all non-WordPress websites schema markup with JavaScript.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"google-index\">How does Google index structured data created on the fly with JavaScript?<\/h3>\n\n\n\n<p>Google Search interprets structured data that is available in the DOM during the so-called &#8216;rendering phase&#8217;.<\/p>\n\n\n\n<p class=\"has-text-align-center\"><img decoding=\"async\" width=\"624\" height=\"445\" src=\"https:\/\/lh6.googleusercontent.com\/hMUj2GZB8qD1n00eAOCuazudg6-cuZUWaEhzzjryThzb3RO6j9WgIWnIK_Z2hja4W6abxl588-UF7DFX1ChO4EYssdwRLktJ6fT2xeYtttZg3H7hWEDv5waVq6Dvb2nvPSk9YX23=s0\"><\/p>\n\n\n\n<p>Google Search crawls and parses sites using JavaScript with <em>a headless Chromium<\/em> that renders the page and executes the scripts. The crawler will send all pages to a render queue, and the headless browsers will send back the response for indexing. More information on how to <a href=\"https:\/\/developers.google.com\/search\/docs\/advanced\/structured-data\/generate-structured-data-with-javascript#testing\">dynamically add schema markup using JavaScript<\/a> can be found directly on Google Search Central.&nbsp;<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"json-markup\">How to add JSON-LD markup to your web pages?<\/h3>\n\n\n\n<p>There are typically<strong> three ways<\/strong>:&nbsp;<\/p>\n\n\n\n<ol class=\"wp-block-list\"><li><strong>Using a Plug-in that will do it for you<\/strong> (whether you are on WordPress or any other Web CMS a plug-in is an extension that will add the markup to the HTML of your templates).<\/li><li><strong>By adding it manually in the HTML code<\/strong> of the templates and here, we might: &#8211; adding it within the page&#8217;s HEAD section &#8211; adding it anywhere else.<\/li><li>Dynamically <strong>using a tag manager such as Google Tag Manager, Adobe Tag Manager or a custom script. <\/strong>Tag managers are tools that allow marketers to inject JavaScript code without the need to update the HTML code of the templates. This is great because it doesn&#8217;t require the development team to get involved but, it also might lead to trouble, and it&#8217;s always crucial to validate your implementation. To give you an example, Google Search might not see a custom JS that gets deferred (loaded after everything else). Rendering resources are limited and if scripts are not executed in a timely fashion simply they won&#8217;t get processed.<\/li><\/ol>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"jsonld\">I have added a JSON-LD, how can I check if Google is indexing it?<\/h3>\n\n\n\n<p>You can essentially review your implementation using <a class=\"wl-entity-page-link\" title=\"GSC\" href=\"https:\/\/wordlift.io\/blog\/en\/entity\/google-search-console\/\" data-id=\"http:\/\/data.wordlift.io\/wl0216\/entity\/google_search_console;http:\/\/dbpedia.org\/resource\/Google_Search_Console;http:\/\/rdf.freebase.com\/ns\/m.05h5pjx;http:\/\/www.wikidata.org\/entity\/Q328216\" >Google Search Console<\/a>, the Rich Result Test tool, or the Schema Markup Validator available under the schema.org domain. Let&#8217;s see how.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"enhancements\"><strong><em>1. Use the Enhancements section in Google Search Console to see if the markup has been processed.<\/em><\/strong><\/h4>\n\n\n\n<p>This is as simple as opening GSC, looking at the right markup (i.e. Breadcrumbs), and check the metrics there. While very immediate, this approach is limited to the few supported entity types included in the Enhancements section of GSC. To give you an example, the markup for <em>schema:Person <\/em>will not appear here even though effectively it can help you rank higher for all personal branded queries.<\/p>\n\n\n\n<p class=\"has-text-align-center\"><img decoding=\"async\" width=\"624\" height=\"308\" src=\"https:\/\/lh4.googleusercontent.com\/V4jFBEYpg1qMh_ez_vj5wXVHwtQ3caO2p9hW2rnnIbbxwQmcf0NWnCDJrgSBlxdI3wQM27aJl5M8mf0zYOmy1C3AjtmO4xA1ctwGQc1fjC8P5nDIvvEq92-mOooCEjdYUstmi0cw=s0\"><\/p>\n\n\n\n<p class=\"has-text-align-center\"><em>Here is an example of the video tab under GSC\u2019s Enhancements section&nbsp;<\/em><\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"url-inspector\"><strong><em>2. Use the URL Inspector in Google Search Console to check a specific URL<\/em><\/strong><\/h4>\n\n\n\n<p>A more accurate check can be done by using the inspector. Add a URL there and click on &#8220;VIEW CRAWLED PAGE&#8221;. This will show the HTML that Google has been able to parse and index. By looking at the code, you will be able to see if the structured data is present or not and this, of course, takes into account the dynamic data you might have injected using JavaScript.&nbsp;<\/p>\n\n\n\n<p class=\"has-text-align-center\"><img decoding=\"async\" width=\"624\" height=\"172\" src=\"https:\/\/lh4.googleusercontent.com\/rQvUPypRz3P4gXhd7UJTkenP-3JLAhUE5fWuAEGAAw1FFSfoX2af74hxPvGmr6P2mcwjFVQidRjZboEBJCJpKBWyDzYtXtmlwwblYzw20mk46GjPfeqO0rHbgRR-gBGaeeTlC-4j=s0\"><\/p>\n\n\n\n<p class=\"has-text-align-center\"><em>This is the most accurate way to see if Google can index the markup (even when it is added client-side using JavaScript)<\/em><\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"rich-results\"><strong><em>3. Use the Rich Result Testing Tool<\/em><\/strong><\/h4>\n\n\n\n<p>This is as simple as opening the Rich Results Test, entering the URL you want to test, and checking if you receive the message &#8220;Page is eligible for rich results&#8221;. The tool is designed to help you see features that will appear on Google&#8217;s <a class=\"wl-entity-page-link\" title=\"search engine results page (SERP\" href=\"https:\/\/wordlift.io\/blog\/en\/entity\/search-engine-results-page\/\" data-id=\"http:\/\/data.wordlift.io\/wl0216\/entity\/search_engine_results_page_serp;http:\/\/yago-knowledge.org\/resource\/Search_engine_results_page;http:\/\/dbpedia.org\/resource\/Search_engine_results_page;http:\/\/data.wordlift.io\/wl0216\/entity\/search_engine_results_page_serp\" >SERP<\/a>.&nbsp;<\/p>\n\n\n\n<p class=\"has-text-align-center\"><img decoding=\"async\" width=\"624\" height=\"329\" src=\"https:\/\/lh4.googleusercontent.com\/VN6kmRNWGhfSIQCfoIVWT7vROs8uC1mVpLz8N4xEva06Wq-Wnep5y7Xvfdqb0kHQ0Zg4_UxOp3mHWIvrW9cVubLf9YjWoQKzpdpF_-x5pWIlmwlWCH-JwViSoFXI-ye0Q2X9FvUJ=s0\"><\/p>\n\n\n\n<p>When you want to verify that an entity type that Rich Result Test doesn&#8217;t support has been correctly indexed, you can click on If you are testing a structured data type that is not supported by the Rich Results test, &#8220;VIEW RENDERED HTML&#8221;. If the rendered HTML contains the structured data you have added, Google Search will be able to index it.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"schema-validator\"><strong><em>4. Use the Schema Markup Validator (SMV)<\/em><\/strong><\/h4>\n\n\n\n<p class=\"has-text-align-center\"><img decoding=\"async\" width=\"624\" height=\"289\" src=\"https:\/\/lh3.googleusercontent.com\/UoMsNdJYe7NJAaFOJfik_GPpHdutqQDR6LVPW9XOIH1OIHU1OSZOfZk5xnelOnGwQYrnEv_BVBO5DZQAez0pEAM4DSh1DJiPjSZOc03Bpz8R6rSxOQirMB2FaZyJehw9M65HyDcl=s0\"><\/p>\n\n\n\n<p>Also, in this case, you can simply open the tool from <a href=\"https:\/\/validator.schema.org\/\">validator.schema.org<\/a>, add the URL and let it run. The beauty of the validator is that <strong>it will validate the markup using the rules from the schema.org vocabulary<\/strong> rules, and will cover any schema class and attribute \ud83e\udd29.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"pitfalls\">What are the most common pitfalls preventing Google from indexing schema markup?<\/h3>\n\n\n\n<p>In general, when structured data is missing, Google hasn&#8217;t been able to read it for one of the following reasons:&nbsp;<\/p>\n\n\n\n<ol class=\"wp-block-list\"><li>The page is not indexable,<\/li><li>The script doesn&#8217;t load (due to other JavaScript errors on the page, to a misconfiguration of the CDN or other factors),<\/li><li>The script loads too slowly. In this case, Google might not see it; the headless browser might timeout before rendering the code.<\/li><\/ol>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"monitoring\">The need for constant monitoring of your schema markup. A few solutions.<\/h3>\n\n\n\n<p>While checking the first time is crucial, the reality is that websites change all the time and, for various reasons, you might end up losing all the markup. This happens regularly, and the only way to prevent it is to monitor it.&nbsp;<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"favourite-crawler\"><strong><em>1. Monitoring structured data using your favourite crawler<\/em><\/strong><\/h4>\n\n\n\n<p>If structured data markup is present on a webpage, it can be checked programmatically. Here I have linked the instructions for:&nbsp;<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><a href=\"https:\/\/www.screamingfrog.co.uk\/structured-data-testing-validation\/\">Screaming Frog<\/a><\/li><li><a href=\"https:\/\/www.semrush.com\/news\/site-audit-structured-data\/\">SEMrush<\/a><\/li><li><a href=\"https:\/\/sitebulb.com\/product\/structured-data\/\">SiteBulb<\/a><\/li><li><a href=\"https:\/\/help.oncrawl.com\/en\/articles\/404191-structured-data\">OnCrawl<\/a><\/li><li><a href=\"https:\/\/help.woorank.com\/hc\/en-us\/articles\/360000615998-How-Does-Structured-Data-Detection-Work-\">WooRank<\/a><\/li><\/ul>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"colab\"><strong><em>2. Run your own crawler in Python and extract the markup&nbsp;<\/em><\/strong><\/h4>\n\n\n\n<p class=\"has-text-align-center\"><a href=\"https:\/\/colab.research.google.com\/drive\/1PMDYyR99lBBGpwYzF-mJUmL2r56qb3En?usp=sharing\"><img decoding=\"async\" src=\"https:\/\/lh3.googleusercontent.com\/Pw9SKeT3c0oOVmS8LBR2m4mmdgKi7IRh8SrM-MDnco1BrdNvP_RPq_vIOv9U30pCItv-Xxk5R9XPYXHyKXLpMOFVarQORYvnHUvccBlLXNVHKM0mxCDMLwoxflPl5wss_VdcLMkS=s0\" width=\"117\" height=\"20\"><\/a><\/p>\n\n\n\n<p>If Python \ud83d\udc0d&nbsp; is your friend, I have prepared for you a <a href=\"https:\/\/colab.research.google.com\/drive\/1PMDYyR99lBBGpwYzF-mJUmL2r56qb3En?usp=sharing\">Colab<\/a> that you can use to scan the sitemap of your website and extract the markup. It uses <a href=\"https:\/\/github.com\/eliasdabbas\">Elias Dabbas<\/a>&#8216;s fantastic <strong>Advertool library, <\/strong>and here is how it works. We begin by installing the libraries and setting the site&#8217;s sitemap that we like to monitor.&nbsp;<\/p>\n\n\n\n<p class=\"has-text-align-center\"><img decoding=\"async\" width=\"624\" height=\"136\" src=\"https:\/\/lh5.googleusercontent.com\/iye9qpf_kcp8TBk3HUsg6LTECCoRf-K72YpmJxeMiVjvG-CioI8yJoQNS23B8JAZXSv0BhjXKk2NfU_yPDmRZPdcjnPFYpFZwTlCEPCgNsgdJZfqlIjvXGwgYp6AWX3ZdJ1KBeiM=s0\"><\/p>\n\n\n\n<p>We will read the sitemap and, with a simple instruction, create a dataframe from it. We can use this newly created dataframe (called \u201csitemap\u201d) to run the crawler using the column that contains the url (called \u201cloc\u201d). When doing so we store the data on a JSON text file called <em><span class=\"has-inline-color has-vivid-red-color\">output_file.jl<\/span><\/em>.&nbsp;<\/p>\n\n\n\n<p class=\"has-text-align-center\"><img decoding=\"async\" width=\"624\" height=\"175\" src=\"https:\/\/lh4.googleusercontent.com\/KtIx6M21JIksYa10YF9RHuUUf5cQOYcCmaYloypatQxQSgLd1Jh2Lmh9JL5J2i2gzLOD1B5i5TJ_jOraLqI7FPUapJbssTBDNRM2_vhaGXwo2LxWZtsQaZj02Wg8g9DQVj9rxxSi=s0\"><\/p>\n\n\n\n<p>This contains all sorts of information that advertools extracted from each URL but we will focus on a few columns that contain the extracted structured data.&nbsp;<\/p>\n\n\n\n<p>We first convert the json file to a new pandas data frame (called \u201csite_crawl\u201d) using the following command:&nbsp;<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">site_crawl = pd.read_json(<span class=\"has-inline-color has-vivid-red-color\">'output_file.jl'<\/span>, lines=<span class=\"has-inline-color has-vivid-cyan-blue-color\">True<\/span>) <\/pre>\n\n\n\n<p>And then select the attributes we want to monitor. In this specific example, for each URL, we will store the entity type and the context (<span class=\"has-inline-color has-vivid-red-color\">&#8220;<em>url<\/em>&#8220;<\/span>, <span class=\"has-inline-color has-vivid-red-color\">&#8220;<em>jsonld_@context<\/em>&#8220;<\/span>, <span class=\"has-inline-color has-vivid-red-color\">&#8220;<em>jsonld_1_@type<\/em>&#8220;<\/span>) <\/p>\n\n\n\n<p>By doing so, we can immediately check what entity types we\u2019re using on the website (see the chart below), but we can also run a quick comparison between the numbers of URLs we have in the sitemap and the number of URLs that contain the schema markup.<\/p>\n\n\n\n<p>Now, as you can easily guess, this information can be stored on a database (or on Google Sheets) every day to have ongoing monitoring of your structured data. You can run the code from Colab on a regular basis (<a href=\"https:\/\/minimaxir.com\/2018\/11\/cheap-cron\/\">here<\/a> is a link explaining how), or more practically, you can move the script to a cloud environment and run it using cron.&nbsp;<\/p>\n\n\n\n<p class=\"has-text-align-center\"><img decoding=\"async\" width=\"624\" height=\"593\" src=\"https:\/\/lh3.googleusercontent.com\/vZVAmYLXQF2He-POAloE8qLiB0y6fxakK4SdSu6DlTKGhEZHvUggpDOuamxxF9vmHSjqBOQZoYfPijhb1GlGCpizubuhffz3VxZBaTg31G084U67n2GjPvbKNm17SJfoiToLodIQ=s0\"><\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"wordlift-inspector\"><strong><em>3. WordLift&#8217;s inspector to extract and validate your semantic markup<\/em><\/strong><\/h4>\n\n\n\n<p>Once again, <strong>crawlers are great but do not always correctly extract the markup<\/strong> added using JavaScript to a webpage. When the data is injected on the client-side, we need the crawler to render the web page much like a browser would do. In other words, <strong>we&#8217;ll need a headless browser Chromium-based<\/strong> that acts just like Google Search. When using, for example, advertools (and the example above in Python) on pages like this great <a href=\"https:\/\/www.oakley.com\/en-us\/product\/401885?variant=190645381159\">Oxford long sleeve by Oakley<\/a> \ud83d\ude0e&nbsp; <strong>you will not be able to detect the markup<\/strong>. Even though Schema Markup Validator (and Google) do <a href=\"https:\/\/validator.schema.org\/#url=https%3A%2F%2Fwww.oakley.com%2Fen-us%2Fproduct%2F401885%3Fvariant%3D190645381159\">see it<\/a>.&nbsp;&nbsp;<\/p>\n\n\n\n<p>This is one of the reasons why we have created our own URL inspector. Using the <strong>WordLift URL inspector,<\/strong> we can run a monitoring check straight from Google Sheets. As you can see, the inspector extracts the markup and adds a list of the entity classes in Google Sheet.&nbsp;<\/p>\n\n\n\n<p>Our extraction engine can also be used as an <a class=\"wl-entity-page-link\" title=\"Application programming interface\" href=\"https:\/\/wordlift.io\/blog\/en\/entity\/application-programming-interface\/\" data-id=\"http:\/\/data.wordlift.io\/wl0216\/entity\/application_programming_interface;http:\/\/rdf.freebase.com\/ns\/m.0z5n;http:\/\/dbpedia.org\/resource\/Application_programming_interface\" >API<\/a> in any workflow, this is actually how we use it under the hood:<\/p>\n\n\n\n<p>https:\/\/api.wordlift.io\/extract?u=__URL__&#038;ua=__USER_AGENT__<\/p>\n\n\n\n<p>Where __URL__ is the target URL and __USER_AGENT__ is the browser to simulate. The API will return all the structured data found on a URL, being it injected on the server or on the client. Also, the extraction supports several formats like JSON-LD, microdata, RDFa, and more.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"929\" height=\"502\" src=\"https:\/\/wordlift.io\/blog\/en\/wp-content\/uploads\/sites\/3\/2021\/09\/Schermata-2021-09-16-alle-16.03.19.png\" alt=\"\" class=\"wp-image-16944\" srcset=\"https:\/\/wordlift.io\/blog\/en\/wp-content\/uploads\/sites\/3\/2021\/09\/Schermata-2021-09-16-alle-16.03.19.png 929w, https:\/\/wordlift.io\/blog\/en\/wp-content\/uploads\/sites\/3\/2021\/09\/Schermata-2021-09-16-alle-16.03.19-300x162.png 300w, https:\/\/wordlift.io\/blog\/en\/wp-content\/uploads\/sites\/3\/2021\/09\/Schermata-2021-09-16-alle-16.03.19-768x415.png 768w, https:\/\/wordlift.io\/blog\/en\/wp-content\/uploads\/sites\/3\/2021\/09\/Schermata-2021-09-16-alle-16.03.19-150x81.png 150w\" sizes=\"(max-width: 929px) 100vw, 929px\" \/><\/figure>\n\n\n\n<p class=\"has-text-align-center\"><em>Here is the JSON-LD (that has been added using Javascript) as detected by WordLift&#8217;s extract API<\/em><\/p>\n\n\n\n<p>To use the API you&#8217;ll need a key.<\/p>\n\n\n\n<p><em>Want to learn more about <\/em><strong><em>scaling your structured data markup<\/em><\/strong><em>? Are you interested in <\/em><strong><em>monitoring and validating your structured data<\/em><\/strong><em>? <a href=\"https:\/\/wordlift.io\/book-a-demo\/\">Contact us, and we&#8217;ll be happy to assist you.<\/a><\/em><\/p>\n\n\n\n<p><\/p>\n\n\n\n\n","protected":false},"excerpt":{"rendered":"<p>Is Google really indexing your structured data markup? Learn how to ensure that Google can crawl and index your markup. <\/p>\n","protected":false},"author":6,"featured_media":16946,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"wl_entities_gutenberg":"","_wlpage_enable":"","footnotes":""},"categories":[8],"tags":[],"wl_entity_type":[30,3303],"coauthors":[],"class_list":["post-16943","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-seo","wl_entity_type-article","wl_entity_type-faq-page"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v22.6 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Structured Data Testing - WordLift Blog<\/title>\n<meta name=\"description\" content=\"Is Google really indexing your structured data markup? Learn how to ensure that Google can crawl and index your markup.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/wordlift.io\/blog\/en\/structured-data-testing\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Is Google Really Indexing My Structured Data Markup?\" \/>\n<meta property=\"og:description\" content=\"This might seem like a trivial question at first, but it&#039;s not. Before we can evaluate whether a particular markup is actually helping Google understand the content of a web page, we need to make sure that Google can crawl and index its markup.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/wordlift.io\/blog\/en\/structured-data-testing\/\" \/>\n<meta property=\"og:site_name\" content=\"WordLift Blog\" \/>\n<meta property=\"article:published_time\" content=\"2021-09-16T15:09:47+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-09-17T10:18:23+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/wordlift.io\/blog\/en\/wp-content\/uploads\/sites\/3\/2021\/09\/Blog-Covers-43.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"1200\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Andrea Volpini\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:title\" content=\"Is Google Really Indexing My Structured Data Markup?\" \/>\n<meta name=\"twitter:description\" content=\"This might seem like a trivial question at first, but it&#039;s not. Before we can evaluate whether a particular markup is actually helping Google understand the content of a web page, we need to make sure that Google can crawl and index its markup.\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/wordlift.io\/blog\/en\/wp-content\/uploads\/sites\/3\/2021\/09\/Blog-Covers-43.png\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Andrea Volpini\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"10 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/wordlift.io\/blog\/en\/structured-data-testing\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/wordlift.io\/blog\/en\/structured-data-testing\/\"},\"author\":{\"name\":\"Andrea Volpini\",\"@id\":\"https:\/\/wordlift.io\/blog\/en\/#\/schema\/person\/574352082cc71dab8d164410f1cabe0a\"},\"headline\":\"Is Google Really Indexing My Structured Data Markup?\",\"datePublished\":\"2021-09-16T15:09:47+00:00\",\"dateModified\":\"2021-09-17T10:18:23+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/wordlift.io\/blog\/en\/structured-data-testing\/\"},\"wordCount\":1758,\"publisher\":{\"@id\":\"https:\/\/wordlift.io\/blog\/en\/#organization\"},\"image\":{\"@id\":\"https:\/\/wordlift.io\/blog\/en\/structured-data-testing\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/wordlift.io\/blog\/en\/wp-content\/uploads\/sites\/3\/2021\/09\/Blog-Covers-44.png\",\"articleSection\":[\"seo\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/wordlift.io\/blog\/en\/structured-data-testing\/\",\"url\":\"https:\/\/wordlift.io\/blog\/en\/structured-data-testing\/\",\"name\":\"Structured Data Testing - WordLift Blog\",\"isPartOf\":{\"@id\":\"https:\/\/wordlift.io\/blog\/en\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/wordlift.io\/blog\/en\/structured-data-testing\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/wordlift.io\/blog\/en\/structured-data-testing\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/wordlift.io\/blog\/en\/wp-content\/uploads\/sites\/3\/2021\/09\/Blog-Covers-44.png\",\"datePublished\":\"2021-09-16T15:09:47+00:00\",\"dateModified\":\"2021-09-17T10:18:23+00:00\",\"description\":\"Is Google really indexing your structured data markup? Learn how to ensure that Google can crawl and index your markup.\",\"breadcrumb\":{\"@id\":\"https:\/\/wordlift.io\/blog\/en\/structured-data-testing\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/wordlift.io\/blog\/en\/structured-data-testing\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/wordlift.io\/blog\/en\/structured-data-testing\/#primaryimage\",\"url\":\"https:\/\/wordlift.io\/blog\/en\/wp-content\/uploads\/sites\/3\/2021\/09\/Blog-Covers-44.png\",\"contentUrl\":\"https:\/\/wordlift.io\/blog\/en\/wp-content\/uploads\/sites\/3\/2021\/09\/Blog-Covers-44.png\",\"width\":1200,\"height\":1200,\"caption\":\"structured data testing\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/wordlift.io\/blog\/en\/structured-data-testing\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Blog\",\"item\":\"https:\/\/wordlift.io\/blog\/en\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Is Google Really Indexing My Structured Data Markup?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/wordlift.io\/blog\/en\/#website\",\"url\":\"https:\/\/wordlift.io\/blog\/en\/\",\"name\":\"WordLift Blog\",\"description\":\"AI-Powered SEO\",\"publisher\":{\"@id\":\"https:\/\/wordlift.io\/blog\/en\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/wordlift.io\/blog\/en\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/wordlift.io\/blog\/en\/#organization\",\"name\":\"WordLift\",\"url\":\"https:\/\/wordlift.io\/blog\/en\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/wordlift.io\/blog\/en\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/mk0wordliftblog7j5te.kinstacdn.com\/wp-content\/uploads\/sites\/3\/2017\/04\/logo-1.png\",\"contentUrl\":\"https:\/\/mk0wordliftblog7j5te.kinstacdn.com\/wp-content\/uploads\/sites\/3\/2017\/04\/logo-1.png\",\"width\":152,\"height\":40,\"caption\":\"WordLift\"},\"image\":{\"@id\":\"https:\/\/wordlift.io\/blog\/en\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/wordlift.io\/blog\/en\/#\/schema\/person\/574352082cc71dab8d164410f1cabe0a\",\"name\":\"Andrea Volpini\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/wordlift.io\/blog\/en\/#\/schema\/person\/image\/466a1652833e48ca11c81b363eba7c25\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/6b9d3d311b50a8749201fe4b318907a8?s=96&d=mm&r=pg\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/6b9d3d311b50a8749201fe4b318907a8?s=96&d=mm&r=pg\",\"caption\":\"Andrea Volpini\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Structured Data Testing - WordLift Blog","description":"Is Google really indexing your structured data markup? Learn how to ensure that Google can crawl and index your markup.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/wordlift.io\/blog\/en\/structured-data-testing\/","og_locale":"en_US","og_type":"article","og_title":"Is Google Really Indexing My Structured Data Markup?","og_description":"This might seem like a trivial question at first, but it's not. Before we can evaluate whether a particular markup is actually helping Google understand the content of a web page, we need to make sure that Google can crawl and index its markup.","og_url":"https:\/\/wordlift.io\/blog\/en\/structured-data-testing\/","og_site_name":"WordLift Blog","article_published_time":"2021-09-16T15:09:47+00:00","article_modified_time":"2021-09-17T10:18:23+00:00","og_image":[{"width":1200,"height":1200,"url":"https:\/\/wordlift.io\/blog\/en\/wp-content\/uploads\/sites\/3\/2021\/09\/Blog-Covers-43.png","type":"image\/png"}],"author":"Andrea Volpini","twitter_card":"summary_large_image","twitter_title":"Is Google Really Indexing My Structured Data Markup?","twitter_description":"This might seem like a trivial question at first, but it's not. Before we can evaluate whether a particular markup is actually helping Google understand the content of a web page, we need to make sure that Google can crawl and index its markup.","twitter_image":"https:\/\/wordlift.io\/blog\/en\/wp-content\/uploads\/sites\/3\/2021\/09\/Blog-Covers-43.png","twitter_misc":{"Written by":"Andrea Volpini","Est. reading time":"10 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/wordlift.io\/blog\/en\/structured-data-testing\/#article","isPartOf":{"@id":"https:\/\/wordlift.io\/blog\/en\/structured-data-testing\/"},"author":{"name":"Andrea Volpini","@id":"https:\/\/wordlift.io\/blog\/en\/#\/schema\/person\/574352082cc71dab8d164410f1cabe0a"},"headline":"Is Google Really Indexing My Structured Data Markup?","datePublished":"2021-09-16T15:09:47+00:00","dateModified":"2021-09-17T10:18:23+00:00","mainEntityOfPage":{"@id":"https:\/\/wordlift.io\/blog\/en\/structured-data-testing\/"},"wordCount":1758,"publisher":{"@id":"https:\/\/wordlift.io\/blog\/en\/#organization"},"image":{"@id":"https:\/\/wordlift.io\/blog\/en\/structured-data-testing\/#primaryimage"},"thumbnailUrl":"https:\/\/wordlift.io\/blog\/en\/wp-content\/uploads\/sites\/3\/2021\/09\/Blog-Covers-44.png","articleSection":["seo"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/wordlift.io\/blog\/en\/structured-data-testing\/","url":"https:\/\/wordlift.io\/blog\/en\/structured-data-testing\/","name":"Structured Data Testing - WordLift Blog","isPartOf":{"@id":"https:\/\/wordlift.io\/blog\/en\/#website"},"primaryImageOfPage":{"@id":"https:\/\/wordlift.io\/blog\/en\/structured-data-testing\/#primaryimage"},"image":{"@id":"https:\/\/wordlift.io\/blog\/en\/structured-data-testing\/#primaryimage"},"thumbnailUrl":"https:\/\/wordlift.io\/blog\/en\/wp-content\/uploads\/sites\/3\/2021\/09\/Blog-Covers-44.png","datePublished":"2021-09-16T15:09:47+00:00","dateModified":"2021-09-17T10:18:23+00:00","description":"Is Google really indexing your structured data markup? Learn how to ensure that Google can crawl and index your markup.","breadcrumb":{"@id":"https:\/\/wordlift.io\/blog\/en\/structured-data-testing\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/wordlift.io\/blog\/en\/structured-data-testing\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/wordlift.io\/blog\/en\/structured-data-testing\/#primaryimage","url":"https:\/\/wordlift.io\/blog\/en\/wp-content\/uploads\/sites\/3\/2021\/09\/Blog-Covers-44.png","contentUrl":"https:\/\/wordlift.io\/blog\/en\/wp-content\/uploads\/sites\/3\/2021\/09\/Blog-Covers-44.png","width":1200,"height":1200,"caption":"structured data testing"},{"@type":"BreadcrumbList","@id":"https:\/\/wordlift.io\/blog\/en\/structured-data-testing\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Blog","item":"https:\/\/wordlift.io\/blog\/en\/"},{"@type":"ListItem","position":2,"name":"Is Google Really Indexing My Structured Data Markup?"}]},{"@type":"WebSite","@id":"https:\/\/wordlift.io\/blog\/en\/#website","url":"https:\/\/wordlift.io\/blog\/en\/","name":"WordLift Blog","description":"AI-Powered SEO","publisher":{"@id":"https:\/\/wordlift.io\/blog\/en\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/wordlift.io\/blog\/en\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/wordlift.io\/blog\/en\/#organization","name":"WordLift","url":"https:\/\/wordlift.io\/blog\/en\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/wordlift.io\/blog\/en\/#\/schema\/logo\/image\/","url":"https:\/\/mk0wordliftblog7j5te.kinstacdn.com\/wp-content\/uploads\/sites\/3\/2017\/04\/logo-1.png","contentUrl":"https:\/\/mk0wordliftblog7j5te.kinstacdn.com\/wp-content\/uploads\/sites\/3\/2017\/04\/logo-1.png","width":152,"height":40,"caption":"WordLift"},"image":{"@id":"https:\/\/wordlift.io\/blog\/en\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/wordlift.io\/blog\/en\/#\/schema\/person\/574352082cc71dab8d164410f1cabe0a","name":"Andrea Volpini","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/wordlift.io\/blog\/en\/#\/schema\/person\/image\/466a1652833e48ca11c81b363eba7c25","url":"https:\/\/secure.gravatar.com\/avatar\/6b9d3d311b50a8749201fe4b318907a8?s=96&d=mm&r=pg","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/6b9d3d311b50a8749201fe4b318907a8?s=96&d=mm&r=pg","caption":"Andrea Volpini"}}]}},"_wl_alt_label":[],"wl:entity_url":"http:\/\/data.wordlift.io\/wl0216\/post\/is_google_really_indexing_my_structured_data_markup_","_links":{"self":[{"href":"https:\/\/wordlift.io\/blog\/en\/wp-json\/wp\/v2\/posts\/16943"}],"collection":[{"href":"https:\/\/wordlift.io\/blog\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordlift.io\/blog\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordlift.io\/blog\/en\/wp-json\/wp\/v2\/users\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/wordlift.io\/blog\/en\/wp-json\/wp\/v2\/comments?post=16943"}],"version-history":[{"count":0,"href":"https:\/\/wordlift.io\/blog\/en\/wp-json\/wp\/v2\/posts\/16943\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordlift.io\/blog\/en\/wp-json\/wp\/v2\/media\/16946"}],"wp:attachment":[{"href":"https:\/\/wordlift.io\/blog\/en\/wp-json\/wp\/v2\/media?parent=16943"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordlift.io\/blog\/en\/wp-json\/wp\/v2\/categories?post=16943"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordlift.io\/blog\/en\/wp-json\/wp\/v2\/tags?post=16943"},{"taxonomy":"wl_entity_type","embeddable":true,"href":"https:\/\/wordlift.io\/blog\/en\/wp-json\/wp\/v2\/wl_entity_type?post=16943"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/wordlift.io\/blog\/en\/wp-json\/wp\/v2\/coauthors?post=16943"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}