Replies: 7 comments 4 replies
-
I don't think that this is very author friendly and looks rather complicated for authors to write JSON-LD blocks correctly. |
Beta Was this translation helpful? Give feedback.
-
Hard no on "less than ideal authoring UI". If we can't nail the authoring, there is no chance this feature will be used by authors. |
Beta Was this translation helpful? Give feedback.
-
But nobody wants to author a LD schema! Capturing the data should be done in a use friendly matter and if really needed, the schema can be generated client side (we do that for some blocks in Express https://github.com/adobe/express-website/blob/main/express/blocks/how-to-steps-carousel/how-to-steps-carousel.js#L209-L212). |
Beta Was this translation helpful? Give feedback.
-
is there any downside to simply adding JSON-lD to the DOM client side? As the example shared by @kptdobe shows we've done this successfully for Express... |
Beta Was this translation helpful? Give feedback.
-
Spoke to @davidnuescheler today and he concurs with majority opinion. |
Beta Was this translation helpful? Give feedback.
-
Adding those properties client-side might not be an option, at least for product data. For regular Google search this seems fine. Product data:
Regular search:
|
Beta Was this translation helpful? Give feedback.
-
This was added in adobe/helix-html-pipeline#653 |
Beta Was this translation helpful? Give feedback.
-
This discussion proposes adding support for JSON-LD-based structured data. I support SEO Tech for Adobe.com and am available to make the proposed changes if all stakeholders agree.
Goals:
Non-goals:
Features
Authors can add any type of JSON-LD data in a rudimentary way using the metadata block:
If we (developers) prefer, we can make a new metadata-like block instead:
Webmasters can index on JSON-LD data. Example:
This search index can also act as an SEO report to understand which pages have videos and corresponding structured data.
Proposed Changes
Alternatives Considered
Milo has developed custom key/value blocks for complex structured data (see event, video, etc.) In these cases the JSON-LD is added at render time. Google supports dynamically-generated JSON-LD but Franklin's indexer does not. This results in bad webmaster/developer UX because indexer does not support XPath either and trying to parse this data out of div tables requires regex that is unpleasant to write and difficult to get right, and would be even worse if tables just accepted a JSON string like the one proposed herein.
Blocks or autoblocks that fetch API data to create JSON-LD were proposed, but these require a call at load time (performance) to a pre-existing API (availability) that may require a credential (security). This may work for something like video, but such a feature may be fragmented depending on its source (e.g. YouTube vs. AdobeTV vs. B.Y.O. Video). We could create a simple API using Franklin's spreadsheet features, but it does not support search, and we may be loading a huge JSON just to do so (performance). The indexer problem would still exist.
All proposals, including this one, have less than ideal authoring UX. They all include significant and/or cryptic data entry, but this proposal enables the most. An improved UX is beyond the scope of this proposal, but in the future I would like to propose features in Sidekick to help with the creation of pre-filled blocks and/or database-driven batch jobs that add the metadata/block to the document.
Conclusion
JSON-LD is used to represent document metadata, just like meta tags do. Authors should be able add JSON-LD using any type of schema without restriction. Webmasters should be able to use JSON-LD for their search indices just like Google does with theirs. This proposal enables both.
Beta Was this translation helpful? Give feedback.
All reactions