How to render app_proxy (serverside / in liquid) without javascript?

I’m building a public app that integrates a discussion/forum system into Shopify storefronts. The primary goal is to enhance the user experience and — most importantly — improve SEO for merchants by injecting forum-related content directly into product and collection pages.

To do this, I’m using App Proxy to render content dynamically from our backend. We’ve set up the proxy and installed the app on a test store (forum25.myshopify.com). The password is: a

Here’s an example proxy endpoint that works as expected when accessed directly:

https://forum25.myshopify.com/apps/forum/product/gift-card

What we’re now trying to do is inject that content directly into the product page HTML, so it’s server-rendered, indexable by crawlers, and avoids the limitations of JavaScript-based widgets.

We’ve attempted this using the following Liquid code inside a product template:

{{ 'apps/forum/product/' | append: product.handle | app_proxy_url | remote }}

However, this does not render the app proxy response in the output — it simply renders the path (e.g. apps/forum/product/gift-card) as a string. Can be seen on the product page: https://forum25.myshopify.com/products/gift-card

We’ve verified

  • The app is installed with write_app_proxy scope
  • The App Proxy endpoint is correctly configured and responding with valid HTML
  • The tag is used inside a .liquid template, not inside a dynamic section
  • We’re avoiding any JavaScript fallback to maintain SEO integrity

Our key question:
What is the officially supported way to inject the response from an App Proxy server-side into a product or collection page — so it is visible to search engines and rendered without relying on client-side JavaScript?

I am completely open to being corrected here, if I am wrong.

Is your implemented on the shop via app embed / theme extension app? I believe your app is going to be JS injected anyway, Shopify will inject your initial script tags and whatnot. Unless the theme itself is accessing the data via liquid and rendering out the data, I do not believe you can inject this kind of content into the server side return the user gets when they land on a Shopify page.

Your best bet, is to store the given forum data on the product as a JSON metafield on the product level, create a snippet that parses it and renders the needed HTML, or just JSON+LD schema for whatever this is under, and then provide instructions on how to implement the snippet into the theme.

In the worst-case scenario, I was considering a fallback approach where, upon app installation, we instruct merchants to manually insert a Liquid snippet into the product or collection template — something like:

{{ ‘apps/forum/product/’ | append: product.handle | app_proxy_url | remote }}

The goal here is to inject server-rendered HTML from our App Proxy into the page for full SEO indexing, without relying on JavaScript.

That said, storing forum content in product metafields isn’t viable due to Shopify’s rate limits and payload constraints. If multiple users are actively posting, syncing that into metafields hits the shopify rate limits.

Is there absolutely no way — under any circumstance — to render dynamic content from an App Proxy response directly into a Liquid template server-side, without relying on JavaScript?

If so, that’s a critical limitation for apps aiming to provide remote SEO-friendly embedded content.