Published
November 12, 2022
Updated
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.
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