Schematic generates JSON-LD structured data and manages meta titles/descriptions for your Shopify store. Schemas inject server-side — search crawlers see them on the very first request, no JavaScript rendering needed.
Features
From auto-generating structured data to editing every meta tag with a live Google preview — all inside your Shopify admin.
Select which schema types you want and let Schematic pull real data from your Shopify store to generate structured data automatically. Supports Product, Organization, WebSite, Article, CollectionPage, LocalBusiness, FAQPage, and BreadcrumbList schemas. A built-in quality validator discards incomplete items — no broken schemas ever reach Google.
Update schemas and meta tags for hundreds of pages at once. Simple 2-column format for schemas, 3-column for meta tags. Re-importing the same CSV updates existing records instead of creating duplicates.
Edit meta titles and descriptions for Products, Collections, Pages, and Articles with a real-time Google SERP preview — see exactly how your page will appear in search results as you type. Character counters turn red before you exceed the recommended limits (70 / 160). Status badges flag missing, long, or partially filled fields across your entire catalog.
Schemas are injected via a Theme App Extension directly into the server-rendered HTML
<head> — no client-side JavaScript. Google's crawler sees structured
data on the very first HTTP response.
Every schema you create, edit, or delete is instantly synced to Shopify metafields. The theme extension reads directly from those metafields — no extra configuration. App-namespaced, so they never conflict with your existing store data.
Many stores have two or three SEO apps installed that silently overwrite each other, or meta tags edited manually in the Shopify admin that a CSV import could accidentally destroy. Schematic now detects those situations automatically and lets you decide what to do — instead of overwriting without warning.
How it works
No developers, no Liquid code, no theme edits required.
Find Schematic on the Shopify App Store and install it with one click. OAuth authentication — no credentials to manage.
In your theme editor, enable the "SEO Schema Injection" App Embed. Takes under 60 seconds. The app guides you with a direct link.
Auto-generate structured data from your entire catalog in one click, or upload a CSV to bulk-import custom schemas and meta tags.
Check your storefront with Google's Rich Results Test. Your JSON-LD is already in the HTML source — no waiting, no caching issues.
Pricing
7-day free trial on both plans. Billed through Shopify — appears on your regular Shopify invoice.
Monthly
Billed monthly · Cancel anytime
7 days free · No card during trial
Annual
Equivalent to $7.50/mo · Billed once per year
7 days free · No card during trial
All plans billed through Shopify Billing — appears on your regular Shopify invoice. No external payment processor.
Documentation
Everything you need to get the most out of the app.
Go to the Schematic listing on the Shopify App Store and click Install. Shopify will ask you to authorize the permissions the app needs — these are described in detail in the Privacy & Data section. After authorizing, you'll be redirected to the Schematic dashboard inside your Shopify admin.
The app injects schemas into your storefront via a Theme App Extension called "SEO Schema Injection". Without it, schemas are saved but not visible to Google.
To activate it:
Schematic stores schemas in Shopify metafields under its own app-owned namespace. On your first visit, the app registers the required metafield definitions automatically. If for any reason this needs to be done manually, go to Settings → Define Metafields inside the app and click the button.
Auto-generate is the fastest way to get structured data across your entire catalog. Navigate to Auto-Generate (/app/auto-generate) from the main menu.
Auto-Generate works with the following 5 types. Each pulls data directly from your Shopify store — no manual input needed.
| Schema Type | Source data | Notes |
|---|---|---|
| Product | Shopify products API | Includes price, availability, brand, SKU, offers, variants |
| Article | Blog posts | headline, author, datePublished, dateModified, publisher |
| CollectionPage | Collections | Name, description, URL |
| Organization | Shop settings | Shop name, logo, email, URL — one per store |
| WebSite | Shop settings | Includes SearchAction for Google Sitelinks Searchbox |
Schematic validates every schema before saving it. Incomplete items are automatically skipped — they will never reach your storefront or confuse Google. The results screen tells you exactly what was skipped and why.
Items are discarded when:
The generator processes items in batches of 50 using Shopify's cursor-based pagination. If your catalog is large, the process may take several minutes. Pagination state is persisted — if you close the tab and return, you can continue where it left off rather than starting over.
CSV import lets you update schemas and meta tags in bulk. There are two separate importers — one for JSON-LD schemas, one for meta titles and descriptions.
Navigate to CSV Import (/app/csv-import). The file must have exactly 2 columns with a header row:
url,schema
https://my-store.myshopify.com/products/blue-shirt,{"@context":"https://schema.org","@type":"Product","name":"Blue Shirt","offers":{"@type":"Offer","price":"29.99","priceCurrency":"USD"}}
https://my-store.myshopify.com/collections/mens,{"@context":"https://schema.org","@type":"CollectionPage","name":"Men's Collection","url":"https://my-store.myshopify.com/collections/mens"}
| Column | Value |
|---|---|
url | Full URL of the Shopify resource (product, collection, article, or page) |
schema | Valid JSON-LD object (single schema per row, stringified) |
@type + Shopify resource handle.Navigate to Meta Import (/app/meta-import). The file must have exactly 3 columns:
url,meta_title,meta_description
https://my-store.myshopify.com/products/blue-shirt,Blue Shirt — Free Shipping | My Store,Premium cotton blue shirt. Available in S M L XL. Free shipping on orders over $50.
https://my-store.myshopify.com/collections/mens,Men's Collection | My Store,Shop our full range of men's clothing. New arrivals every week.
| Limit | Value |
|---|---|
| Max file size | 5 MB |
| Cooldown between imports | 10 seconds |
| Max resources per meta import batch | 150 rows |
The Meta Tags Editor (/app/meta) lets you view and edit meta titles and descriptions across all resource types. Use the tabs at the top to switch between Products, Collections, Articles, and Pages.
Each row shows an automatic status badge for the title and description fields:
| Badge | Meaning |
|---|---|
| OK | Filled and within the recommended character limit |
| Partial | Filled but shorter than recommended (may be too brief) |
| Long | Exceeds the recommended limit (Google may truncate it) |
| Missing | No value set — Google will use its own fallback |
Click Edit on any resource to open the editor. As you type, the SERP preview panel updates in real time — showing exactly how the result will appear on a Google search page, including the blue title link and the gray description snippet. Character counters turn amber near the limit and red when exceeded.
Leaving a meta title or description blank causes Shopify to use its own fallback — the resource's title for meta title, or an auto-generated snippet for description. To clear all custom values for a resource at once, use the Remove button in the meta tags list. There is no "Restore default" button in the editor itself — simply clear or leave the field empty.
Meta tag edits — whether made manually in the editor or via CSV import — are tracked internally. This is what powers Conflict Detection: the app can tell when another app or a Shopify admin edit has overwritten a value Schematic previously set. There is no merchant-facing audit log view in this version.
The manual schema editor (/app/schemas/new) lets you create or edit any JSON-LD schema from scratch. Use it for schema types that aren't auto-generated (LocalBusiness, FAQPage, BreadcrumbList), or when you need full control over the output.
In the Schemas list, expand any row and click the Edit button to open it in the editor. Each schema row shows its type, target resource, and last-modified date at a glance.
The following types are only available via the manual editor (no auto-generation). Select them from the template dropdown when creating a new schema:
The editor validates your JSON in real time. If the JSON is malformed (missing comma, unclosed bracket, etc.) an error indicator appears inline. Schematic does not block saving on schema.org semantic errors — only on invalid JSON syntax.
It's common for Shopify stores to have multiple SEO-related apps installed at the same time, or meta tags that were edited directly inside the Shopify admin by the merchant or a team member. When Schematic writes to those same fields without checking, it can silently overwrite values you intended to keep — and you'd only notice the next time you look at a product page in Google.
Conflict Detection solves this at three levels: meta tags, JSON-LD schemas, and theme files. In each case, Schematic spots the conflict, tells you exactly what it found, and lets you decide whether to take control or leave the existing value alone.
In the meta tags list (/app/meta), any resource whose meta title or meta description was set outside of Schematic — by another app, by a Shopify admin edit, or by a previous tool — is automatically flagged with an amber EXT badge next to the affected field.
When you open the editor for one of those resources, a warning banner appears above the affected field explaining that the current value was set externally. You then choose one of two options:
| Option | What it does |
|---|---|
| Overwrite and save | Schematic replaces the external value with whatever you type and takes ownership of the field going forward. |
| Keep external value | Schematic saves a preserve policy for that resource + field. It will never write to it again — not manually, not via CSV import, not via auto-generate — unless you explicitly change this. |
CSV bulk meta import also respects this: the import page has a checkbox labelled "Overwrite externally-set meta tags" (off by default). When it's off, any row whose resource has an external value is automatically skipped. The results summary lists those rows as "skipped (external)" with the reason, so nothing is lost silently.
Go to the Schemas list (/app/schemas) and click "Scan for conflicts". Schematic inspects the metafields of every resource where it has already saved a schema, and looks for JSON-LD written by other apps in different metafield namespaces.
Resources with a detected conflict show a red CONFLICT (n) badge, where n is the number of competing JSON-LD blocks found. Click the badge to open a modal showing:
@type of the competing schemaFrom the modal, choose what Schematic should do:
| Option | What it does |
|---|---|
| Use Schematic | On the next write operation (edit, auto-generate, or import), Schematic's schema takes precedence. The external namespace is not deleted — only your storefront will serve Schematic's version via the theme extension. |
| Keep external (skip Schematic) | Saves a preserve policy. Schematic will skip this resource in all future operations. The badge changes to a blue KEPT EXTERNAL label. |
You can click Re-scan at any time to refresh the detection results.
Go to Settings → Theme SEO Scan and click "Scan theme". Schematic downloads the key files of your active theme and analyzes them for SEO-related conflicts. This does not modify your theme — it only reads.
The scan checks: product, collection, article, and page templates, layout/theme.liquid, and config/settings_data.json.
It reports three types of findings:
| Finding type | What it means | What to do |
|---|---|---|
| JSON-LD IN THEME | A hardcoded <script type="application/ld+json"> block exists directly in your theme code. Schematic cannot remove or modify it. |
Open your theme code editor, find the file and line number shown, and remove or disable the hardcoded block manually if you want Schematic's schemas to be the only ones. |
| OTHER APP EMBED | Another app embed that appears to handle structured data or meta tags is active in your theme (detected by known embed handles such as structured-data, seo-schema, rich-snippets, json-ld, etc.). | Decide which app you want managing schemas. Disable the competing embed in your theme editor under App Embeds, or use the "Keep external" policy in Schematic for those resources. |
| DUPLICATE | Multiple application/ld+json blocks were found in the same template file. |
Review the file and remove duplicates. Google ignores duplicate schemas and may flag the page in Search Console. |
Each finding includes the filename, line number, and a code snippet so you can locate it quickly in the theme editor.
Conflict Detection covers the most common scenarios, but there are situations where detection is not technically possible from the Shopify admin:
<script type="application/ld+json"> tag via JavaScript (e.g., from a product.json endpoint). If the pattern doesn't match what the scanner looks for, it won't be flagged. Use browser DevTools → Sources to inspect the page if you suspect this.No. Schematic detects them as external and marks them with the EXT badge. It will not overwrite them unless you click "Overwrite and save" in the editor, or import a CSV with "Overwrite externally-set meta tags" turned on. By default, your existing values are always preserved.
No. Run the conflict scan first to see exactly which resources have competing schemas or embeds. Then decide resource by resource: for the ones you want Schematic to manage, click "Use Schematic". For anything you want the other app to keep, click "Keep external". You can keep both apps installed and use each one for different parts of your store if you prefer.
Yes, at any time. Go back to the editor or the schema modal and the decision buttons are always available. Policies are not permanent — you can switch from "keep external" to "use Schematic" (or vice versa) whenever you need to. Re-running the scan also gives you a fresh starting point.
The Theme App Extension is the mechanism by which Schematic delivers structured data to your storefront. It runs as a Liquid App Embed called "SEO Schema Injection" — part of Online Store 2.0's App Embeds system.
On every page load, the extension reads the relevant Shopify metafields (set by the app) and renders a <script type="application/ld+json"> block directly inside the <head> of the HTML document. The rendering happens on Shopify's servers, not in the visitor's browser.
This means:
application/ld+json. You should see the JSON-LD block in the <head>.Both the Monthly and Annual plans include a 7-day free trial. During the trial you have full access to every feature — no caps on schema count, CSV rows, or edits. No credit card is required to start the trial.
After 7 days, Shopify automatically charges the plan you selected when installing. You can cancel at any time from the Billing page before the trial ends.
If you don't subscribe, the storefront metafields are cleaned up automatically — Schematic stops injecting JSON-LD into your theme. Your data inside the app is preserved: schemas, meta tags, and settings remain intact in case you reactivate later.
You can switch from Monthly to Annual (or vice versa) at any time from the Billing section inside the app. The switch applies immediately — Shopify cancels the current subscription and creates the new one. You don't need to uninstall and reinstall.
Uninstall the app from your Shopify admin (Apps → Schematic → Delete). Cancellation is effective immediately. Shopify refunds unused days of paid subscriptions per their billing terms — the exact amount depends on Shopify's policy, not Schematic.
All charges are processed through Shopify Billing — there is no external payment processor or separate invoice. The charge appears on your regular Shopify bill under "Apps".
| Scope | Why it's needed |
|---|---|
read_products, write_products | Read product data to auto-generate Product schemas; write schemas to product metafields |
read_content, write_content | Read articles and pages for Article schemas; write meta tags via Shopify's SEO fields |
read_metaobjects, write_metaobjects, write_metaobject_definitions | Register and manage the app's own metafield definitions |
read_themes | Detect whether the theme App Embed is active and show the warning if not |
When you uninstall Schematic, a Shopify webhook fires. Within 48 hours, all data associated with your shop is permanently deleted from our servers — schemas, meta tag records, audit log, and the shop registration. The deletion is automatic; no action is needed from you.
Schematic implements all required Shopify GDPR webhooks:
For the full privacy policy, see verlezzalabs.com/privacy-policy.html.
Structured data appearing in Google Search results is a multi-step process. First, Google must crawl and index your pages. Then, the Search team evaluates whether your schemas qualify for rich results (they have additional editorial requirements beyond technical validity). This can take days to several weeks after the schemas are in place.
If the Rich Results Test shows your schemas as valid, the implementation is correct — you just need to wait for Google's crawl cycle.
Yes. Schematic uses the Theme App Extension (App Embed) system, which is supported by all Online Store 2.0 themes. No Liquid code modifications are needed. If you're using an older theme that does not support App Embeds, please contact support — we can advise on your options.
Schemas stored in Shopify metafields will remain until Shopify eventually removes orphaned metafields. However, the Theme App Extension will no longer render them on the storefront (the Embed is part of the app), so Google will stop seeing them on the next crawl. Meta titles and descriptions set via the SEO fields will persist — they're standard Shopify data.
Each installation is per shop — one Shopify store, one subscription. To use Schematic on additional stores, install it separately on each one. There is currently no multi-store bundle pricing.
Yes. After running Auto-Generate, click Edit next to any schema to open it in the manual editor. Your changes are saved immediately to the metafield. Re-running Auto-Generate will not overwrite schemas you have manually edited.
The app interface is in English only. However, schemas are generated from your store's catalog data — so if your product titles and descriptions are in Spanish (or any other language), the generated schemas will be in that language. Multi-language UI support is planned for a future release.
Yes — you can create, import, and manage schemas without the embed active. The schemas will be saved to metafields. However, they won't appear on your storefront or be visible to Google until you activate the Theme App Extension.
This means your trial has ended or you don't have an active subscription. Go to Settings → Billing inside the app to choose a plan. If you believe this is an error, contact support@verlezzalabs.com.