ProRank SEO

Schema

Generate JSON-LD for Organization, WebSite, Product, Collection, Article, Breadcrumb, and FAQPage — inject via the ProRank Schema JSON-LD theme app embed.

The two things you must check first

  • The theme app embed must be enabled. Saved schemas live as Shopify shop metafields. They only become storefront JSON-LD when the ProRank Schema JSON-LD theme app embed is enabled on the active theme.
  • Many themes already emit Product schema. If you blindly inject another Product schema on top, you can create duplicates that Search Console or validators flag. Use Live Schema Validation first to see what the theme already renders, and only inject what's missing.

Supported types

TypeWhereEmbed requiredNotes
OrganizationShop-level metafieldYesInjected on every page by the app embed.
WebSite (+ Sitelinks Search)Shop-level metafieldYesOne per shop; SearchAction wired to /search?q={search_term_string}.
Product (+ Offer / Brand / AggregateRating)Template-scopedYesAggregateRating only renders when a connected review provider returns data.
CollectionPage (+ ItemList)Template-scopedYesItemList is built from collection products visible to the app.
ArticleTemplate-scopedYesPublish dates, author, hero image.
BreadcrumbListTemplate-scopedYesGenerated from canonical URL path.
FAQPagePage-specific snippet or embed outputDepends on setupFAQ schema must render only on the FAQ page. If the embed does not render it for that page, use the in-app snippet preview for manual placement.

Shop-level schemas (Organization, WebSite) are configured once and apply globally. Template-scoped schemas are generated per resource (e.g. one Product schema per product) and emitted only on the matching template.

How the app embed works

The ProRank Schema JSON-LD theme app embed is a Shopify-managed Liquid block that ships with the app. When enabled on the active theme, it reads the shop's ProRank metafields at render time and emits the relevant JSON-LD into the page <head>. There is no theme file write involved — the embed lives in Shopify's app-block system.

Online Store → Themes
  → Customize (active theme)
    → App embeds (left sidebar)
      → ProRank Schema JSON-LD
      → Toggle ON → Save

After a ProRank app update, the embed's internal UUID may change. Symptoms: the embed shows as enabled in Customize, but Live Schema Validation reports every template as "Missing". Fix: toggle the embed OFF, Save, then toggle it ON and Save again. This forces Shopify to re-register the current embed.

Live Schema Validation

Live Schema Validation scans the live storefront for representative templates (product, collection, page, article, home, blog index) and reports what JSON-LD ProRank actually finds. It checks:

  • Whether the embed script tag is present.
  • Whether the JSON is well-formed.
  • Whether the expected type for the template is present (Product on product, CollectionPage on collection, etc.).
  • Whether required fields for that type are populated.
  • Whether multiple Product / Article blocks are present (duplicate risk).

Run Live Schema Validation after enabling the embed for the first time and after any major theme change. If a row goes from green to red, that's your earliest signal something in the theme started emitting its own competing JSON-LD.

Review schema (AggregateRating)

The Review Schema tool generates AggregateRating and Review JSON-LD for products. ProRank does not invent ratings — it reads real review data from a connected provider:

  • Judge.me
  • Loox
  • Yotpo
  • Okendo
  • Shopify Reviews

Without a connected provider, no review schema renders, even if the toggle is on. This is deliberate — fake ratings violate Google's structured-data policy and can earn a manual action.

Some Shopify review apps already emit their own AggregateRating in their theme block. Connect the provider through ProRank or through the review app's native embed, not both. Use Live Schema Validation to confirm only one block renders per product.

FAQ Page — the manual-paste exception

FAQPage schema describes Q/A content that lives in a specific page's body. The schema must only appear on the actual FAQ page. Depending on the theme and app embed setup, that can be rendered by the ProRank embed or placed manually on the relevant FAQ template/section.

Workflow: build the FAQ schema in the app, click Preview snippet, copy the generated <script type="application/ld+json">…</script> block, and paste it into the FAQ template or a custom section if the app embed is not already rendering that FAQ schema on the live page.

The duplicate-schema risk

Many premium and popular Shopify themes already include Product, Article, and BreadcrumbList JSON-LD in their default snippets. If you turn on ProRank's Product schema on top, Google's validator will report two @type: "Product" blocks per page. That is noisy, can produce confusing AggregateRating mismatches, and may cause Google to ignore one of the blocks. Avoid duplicates instead of relying on Google to reconcile them.

The safe pattern:

  1. Run Live Schema Validation on representative templates before injecting anything.
  2. If the theme already emits a clean Product / Article / BreadcrumbList block, leave it. Disable that type in ProRank.
  3. If the theme emits an incomplete block (e.g. missing AggregateRating, missing GTIN), prefer fixing the theme block, or disable the theme block and let ProRank own it — but not both at once.

Where this lives

Routes

  • app.schema.tsx — main schema editor
  • app.review-schema.tsx — provider connection + review schema
  • schema-generator.server.ts — JSON-LD builders

Validation

Live Schema Validation is the first stop when something looks off. Combine it with Google's Rich Results Test for final confirmation on a public URL.