Advanced SEO Techniques

Articles, News & Blog Post JSON-LD

No items found.
Overview
Structured Data
Structured Data Overview
10:18
501
Adding JSON-LD Structured Data
Adv
16:29
502
Site Name JSON-LD
Adv
503
Articles, News & Blog Post JSON-LD
Adv
504
Site Search JSON-LD
Adv
506
Client Reviews JSON-LD
Adv
506
Breadcrumbs JSON-LD
Adv
508
FAQ Page JSON-LD
Adv
509
Q&A Page JSON-LD
Adv
510
Twitter Cards
Adv
601
Embedding Rich Text in JSON
702
Validating & Debugging JSON-LD
703
Technical SEO
Controlling the Robots
801
Sitemap.xml
802
robots.txt
803
Removing Pages from Google
804
Removing Your WEBFLOW.IO Staged Site from Google
805
More Advanced SEO Techniques
810
Voice Search
810
Influencing Google Search Appearance
Influencing Google's Search Appearance
901
No items found.

Google support three types of "long-format" content, typed as Article, NewsArticle, or BlogPosting.

In this example we'll use BlogPosting but the same rules apply to all.

STEP 1

On your Blog Post Collection page;

Drop an HTML Embed on the page and paste in this code.

<script type="application/ld+json">
{  
  "@context": "http://schema.org",  
  "@type": "BlogPosting", 
  "headline": "{{ Blog Post Title }}", 
  "image": "{{ Post Image }}",  
  "genre": "{{ Post Genre }}",   
  "mainEntityOfPage": {     
    "@type": "WebPage",      
    "@id": "https://www.mybaseUrl.uk/post/{{ Post Slug }}" 
  }, 
  "publisher": {  
    "@type": "Organization",   
    "name": "My Company Name",   
    "email": "[email protected]",   
    "address": "My Company Full Address",   
    "logo": {      
      "@type": "ImageObject",      
      "url": "https://assets-global.website-files.com/company-logo.png"    
    } 
  }, 
  "url": "/{{ Slug }}", 
  "datePublished": "{{ Post Published Date }}", 
  "dateCreated": "{{ Post Created Date }}", 
  "dateModified": "{{ Post Modified Date }}", 
  "description": "{{ Post Description }}",   
  "author": {    
    "@type": "Person",    
    "name": "{{ Author Name }}"  
  } 
}
</script>

Note the {{ Field }} names, which represent Webflow's CMS field embeds.

STEP 2

Re-bind each of your CMS fields to your blog post fields.

STEP 3

Update the static info in the JSON;

  • Company name, address, and email
  • Company logo ( pull the link from your Webflow collection )
  • The front part of the URL under mainEntityOfPage.@id
  • Author name if it's always the same person and you don't have an Author field on your Blog posts.

etc.

STEP 4

Publish, and test;

https://developers.google.com/search/docs/advanced/structured-data

STEP 5 ( Optional )

Change the main article <div> element to an <article> element, under element settings.

Notes

The articleBody property is not used here for 3 reasons;

  • Google doesn't support it
  • Webflow does not support embedding rich text fields, or converting them to plaintext
  • The JSON-LD spec requires a plain text version
  • Webflow doesn't JSON encode its embedded fields which - for long-form content expecially - adds significant invalidation risk.

References

Ezra's post in the Webflow forums.

Google's Structured Data docs

Other JSON-LD examples

Table of Contents
Did we just make your life better?
Passion drives our long hours and late nights supporting the Webflow community. Click the button to show your love.