EDS Blog Blocks Not Crawlable || using document-based authoring via da.live with Fastly CDN.
We are running an EDS implementation using document-based authoring via da.live with Fastly CDN. Our blog section uses three custom blocks:
blog-grid— paginated card listing with category filtering, tag colour mapping, and authorDate sortingpage-list— sidebar block surfacing the most recent posts for the current categorycards— category navigation icons
Content is authored in da.live and published through the standard EDS content bus. The query index URL is resolved dynamically at runtime via /config.json using getConfigValue('query-index').
The Problem:
All three blocks render entirely client-side via JavaScript. On the initial HTTP response, the page shell delivered to crawlers looks like this:
html
<div class="blog-grid">
<div><div>Pagination-limit</div><div>10</div></div>
<div><div>Title</div><div>Category Name</div></div>
<div><div>Guides</div><div>bg-guides</div></div>
</div>No blog card content. No article titles. No descriptions. No links to individual posts.
Would appreciate any experience or patterns the community has used for SSR at the edge on EDS, particularly around cache invalidation and block hydration timing.
We have a custom EDS blog block rendering entirely client-side via JavaScript, meaning crawlers and AI bots receive an empty HTML shell with no indexable content on initial page load. We are exploring SSR at the edge via a Fastly Edge Compute worker as the recommended fix, but before we commit to a full implementation we would love to hear how others in the community have approached this — specifically around extracting block config from raw HTML in a worker context, whether Edge Dictionary or dynamic /config.json fetch is the preferred pattern for query index URL resolution, how teams are handling cache invalidation when EDS publishes new content, and whether selective hydration using data-ssr detection in decorate() has caused any block lifecycle timing issues in practice.