Structured Data Guide
Shopify Music Product Schema: MusicAlbum & MusicRecording JSON-LD for Music Stores
Independent music stores, record labels, and vinyl shops on Shopify sell products with rich musical identity — artist, genre, label, pressing edition, track listing — but most of this data is invisible to AI shopping agents. MusicAlbum JSON-LD is the structured data type that makes your music catalog machine-readable.
MusicRelease (or MusicAlbum) JSON-LD block alongside your Product block. Essential properties: byArtist (MusicGroup or Person), genre, datePublished, musicReleaseFormat (VinylFormat, CDFormat, DigitalFormat), track (array of MusicRecording), and recordLabel. Store music metadata in Shopify metafields, render both JSON-LD blocks from product.liquid.
Why Music Schema Unlocks Discovery for Record Stores on Shopify
Music collectors and buyers use AI shopping agents in highly specific ways. "Find me jazz vinyl from the 1960s under $25" or "does [store] have any post-punk albums by [artist]?" — these queries require multiple music-specific filters to work simultaneously:
genre→ "jazz", "post-punk"musicReleaseFormat→ "vinyl"datePublished→ "1960s" (filtering by year range)byArtist.name→ artist name matchingoffers.price→ price ceiling
Without MusicAlbum or MusicRelease structured data, your Shopify music products have no genre, no artist identity, and no format signals. An AI agent sees a product named "Kind of Blue — LP" but doesn't know it's a jazz album, a vinyl record, or a Miles Davis recording — unless the structured data says so explicitly.
Schema.org Music Type Hierarchy
| Type | Extends | Use For |
|---|---|---|
MusicAlbum |
MusicPlaylist → CreativeWork | The conceptual album as a creative work — artist, genre, release year, track list |
MusicRelease |
MusicAlbum | A specific commercial release (pressing, format, edition) — adds musicReleaseFormat, catalogNumber, releaseOf |
MusicRecording |
CreativeWork | An individual track — byArtist, duration, inAlbum, isrcCode |
MusicGroup |
PerformingGroup → Organization | A band, group, or musical act — used as value of byArtist for groups |
MusicRelease Properties Reference
| Property | Type | Description |
|---|---|---|
name |
Text | Album title (release-specific: may include edition/format note) |
byArtist |
MusicGroup or Person | Primary artist or band — use MusicGroup for bands, Person for solo artists |
genre |
Text or URL | Musical genre: "Jazz", "Post-Punk", "Electronic", "Classical" |
datePublished |
Date | Original release date: "1959-08-17" (not the repress date) |
recordLabel |
Organization | Record label: {"@type":"Organization","name":"Columbia Records"} |
musicReleaseFormat |
MusicReleaseFormatType URL | schema.org/VinylFormat, CDFormat, CassetteFormat, DigitalAudioTapeFormat |
catalogNumber |
Text | Label catalog number: "CL 1355" |
releaseOf |
MusicAlbum | Points to the canonical MusicAlbum this is a release of |
track |
ItemList of MusicRecording | Track listing — array of MusicRecording with position, name, duration |
numTracks |
Integer | Total track count — can use instead of full track listing |
albumReleaseType |
MusicAlbumReleaseType URL | AlbumRelease, SingleRelease, EPRelease, BroadcastRelease |
description |
Text | Liner notes, pressing notes, or product description |
image |
ImageObject or URL | Album cover image |
MusicReleaseFormatType Enumeration Values
| Format | Schema.org Value |
|---|---|
| Vinyl (LP/EP/7") | https://schema.org/VinylFormat |
| CD | https://schema.org/CDFormat |
| Cassette tape | https://schema.org/CassetteFormat |
| DVD | https://schema.org/DVDFormat |
| Blu-ray | https://schema.org/BluRayFormat |
| Digital Audio Tape | https://schema.org/DigitalAudioTapeFormat |
Note: there is no DigitalDownloadFormat in the current schema.org enumeration. For digital download products, use MusicAlbum as the base type and include a downloadUrl property alongside the offers block on the Product.
MusicRelease JSON-LD Example: Vinyl LP
/* Product block (commerce) */
{
"@context": "https://schema.org",
"@type": "Product",
"name": "Kind of Blue — Vinyl LP (2023 Columbia Remaster)",
"description": "The most iconic jazz album ever recorded. Miles Davis's 1959 modal masterpiece, newly remastered for 2023 by Columbia/Legacy. 180g heavyweight vinyl.",
"image": "https://your-store.myshopify.com/cdn/shop/products/kind-of-blue-vinyl.jpg",
"brand": {"@type": "Brand", "name": "Columbia/Legacy Recordings"},
"offers": {
"@type": "Offer",
"price": "29.99",
"priceCurrency": "USD",
"availability": "https://schema.org/InStock",
"url": "https://your-store.myshopify.com/products/kind-of-blue-vinyl"
},
"additionalProperty": [
{"@type": "PropertyValue", "name": "Weight", "value": "180g"},
{"@type": "PropertyValue", "name": "Speed", "value": "33⅓ RPM"},
{"@type": "PropertyValue", "name": "Pressing", "value": "2023 Columbia Remaster"}
],
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "5.0",
"reviewCount": "4218"
}
}
/* MusicRelease block (music signals) */
{
"@context": "https://schema.org",
"@type": "MusicRelease",
"name": "Kind of Blue",
"musicReleaseFormat": "https://schema.org/VinylFormat",
"catalogNumber": "88985449391",
"releaseOf": {
"@type": "MusicAlbum",
"name": "Kind of Blue",
"albumReleaseType": "https://schema.org/AlbumRelease",
"byArtist": {
"@type": "Person",
"name": "Miles Davis",
"sameAs": "https://en.wikipedia.org/wiki/Miles_Davis"
},
"datePublished": "1959-08-17",
"recordLabel": {
"@type": "Organization",
"name": "Columbia Records"
},
"genre": ["Jazz", "Modal Jazz", "Hard Bop"],
"numTracks": 5,
"track": {
"@type": "ItemList",
"itemListElement": [
{"@type": "ListItem", "position": 1, "item": {"@type": "MusicRecording", "name": "So What", "duration": "PT9M22S"}},
{"@type": "ListItem", "position": 2, "item": {"@type": "MusicRecording", "name": "Freddie Freeloader", "duration": "PT9M46S"}},
{"@type": "ListItem", "position": 3, "item": {"@type": "MusicRecording", "name": "Blue in Green", "duration": "PT5M37S"}},
{"@type": "ListItem", "position": 4, "item": {"@type": "MusicRecording", "name": "All Blues", "duration": "PT11M33S"}},
{"@type": "ListItem", "position": 5, "item": {"@type": "MusicRecording", "name": "Flamenco Sketches", "duration": "PT9M26S"}}
]
}
},
"url": "https://your-store.myshopify.com/products/kind-of-blue-vinyl"
}
Shopify Liquid Template: MusicRelease JSON-LD
{% comment %} product.liquid — MusicRelease JSON-LD for music products {% endcomment %}
{% assign music_artist = product.metafields.music.artist.value %}
{% if music_artist %}
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "MusicRelease",
"name": {{ product.metafields.music.album_title.value | default: product.title | json }},
{% if product.metafields.music.format.value %}
"musicReleaseFormat": {{ product.metafields.music.format.value | json }},
{% endif %}
{% if product.metafields.music.catalog_number.value %}
"catalogNumber": {{ product.metafields.music.catalog_number.value | json }},
{% endif %}
"releaseOf": {
"@type": "MusicAlbum",
"name": {{ product.metafields.music.album_title.value | default: product.title | json }},
"byArtist": {
"@type": {{ product.metafields.music.artist_type.value | default: "MusicGroup" | json }},
"name": {{ music_artist | json }}
{% if product.metafields.music.artist_wiki.value %}
,"sameAs": {{ product.metafields.music.artist_wiki.value | json }}
{% endif %}
},
"datePublished": {{ product.metafields.music.release_date.value | json }},
"genre": {{ product.metafields.music.genre.value | json }},
{% if product.metafields.music.record_label.value %}
"recordLabel": {
"@type": "Organization",
"name": {{ product.metafields.music.record_label.value | json }}
},
{% endif %}
{% if product.metafields.music.num_tracks.value %}
"numTracks": {{ product.metafields.music.num_tracks.value }},
{% endif %}
"albumReleaseType": "https://schema.org/AlbumRelease"
},
"url": "https://{{ shop.domain }}{{ product.url }}"
{% if product.metafields.reviews.rating %}
,"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "{{ product.metafields.reviews.rating.value }}",
"reviewCount": "{{ product.metafields.reviews.rating_count.value }}"
}
{% endif %}
}
</script>
{% endif %}
Required metafields for music products
| Metafield key | Type | Example value |
|---|---|---|
music.artist | Single-line text | "Miles Davis" |
music.album_title | Single-line text | "Kind of Blue" |
music.genre | Single-line text | "Jazz" |
music.release_date | Date (ISO 8601) | "1959-08-17" |
music.format | Single-line text | "https://schema.org/VinylFormat" |
music.record_label | Single-line text | "Columbia Records" |
music.num_tracks | Integer | 5 |
music.catalog_number | Single-line text | "88985449391" |
music.artist_type | Single-line text | "Person" or "MusicGroup" |
music.artist_wiki | Single-line text (URL) | "https://en.wikipedia.org/wiki/Miles_Davis" |
Common Music Schema Mistakes on Shopify
| Mistake | Effect | Fix |
|---|---|---|
| Using only Product @type for music products | Artist, genre, and format data invisible; product not matched in music-discovery queries | Add a MusicRelease or MusicAlbum JSON-LD block alongside Product on music product pages |
| Setting byArtist to a plain string instead of a Person or MusicGroup object | Artist entity not connected to knowledge graph; artist-query matching weaker | Use {"@type":"MusicGroup","name":"The Beatles"} or {"@type":"Person","name":"Bob Dylan"} |
| Omitting musicReleaseFormat | Format-filter queries ("jazz vinyl", "albums on CD") can't match your product | Always set musicReleaseFormat to the correct schema.org VinylFormat, CDFormat, etc. |
| Using the repress date as datePublished instead of original release date | Year-filter queries ("albums from the 1960s") fail to match original recordings repressed today | Set datePublished to the original album release date — add pressing/remaster date in additionalProperty or description |
| Skipping sameAs on byArtist | Artist identity not linked to knowledge graph; disambiguation fails for common artist names | Add sameAs to the artist's Wikipedia or MusicBrainz page URL for unambiguous entity linking |
CatalogScan Music Schema Checks
CatalogScan's AI Readiness scan detects Shopify stores in music, vinyl, and audio media categories and checks for MusicAlbum or MusicRelease JSON-LD alongside standard Product blocks. Stores missing music markup on music products receive a music-signal gap warning. The scan validates: byArtist structure (object vs. plain string), musicReleaseFormat using schema.org enumeration values, genre presence, and datePublished format.
Related guides: Book product schema for bookstores · Digital product delivery schema · Ecommerce product schema overview · Shopify schema markup guide
FAQ
Should I use MusicAlbum or MusicRelease for a vinyl product on Shopify?
MusicRelease is the more specific type for a physical product — it adds musicReleaseFormat (VinylFormat, CDFormat) and catalogNumber. Use MusicRelease as the @type for the Shopify product, and inside a releaseOf property, embed the canonical MusicAlbum with the original release metadata. If you only have one format per album, MusicAlbum alone is also acceptable.
How do I express vinyl vs. CD vs. digital in music schema?
Use musicReleaseFormat on MusicRelease with schema.org MusicReleaseFormatType URLs: https://schema.org/VinylFormat, https://schema.org/CDFormat, https://schema.org/CassetteFormat. For digital downloads, there's no DigitalDownloadFormat — use MusicAlbum @type and add a downloadUrl alongside the Offer block in the Product JSON-LD.
How do I add a track listing to my album schema?
Use the track property with an ItemList containing MusicRecording objects. Each MusicRecording has: name (track title), position (track number), and duration (ISO 8601: "PT3M45S"). Track listings improve AI agent matching for song-specific queries like "which album has [song] on it?".
How does music schema help AI shopping agents find my music store?
AI agents filter music discovery queries by genre, artist name, format, and release year. Without MusicAlbum markup, your products are generic to AI agents. With it, "jazz vinyl from the 1960s under $30" can match your products because genre, musicReleaseFormat, datePublished, and price are all machine-readable and filterable.
Should I use datePublished for the original release or the current pressing/remaster?
Use the original release date in datePublished — this is what collectors search for ("albums from 1959", "1970s rock"). Add the pressing/remaster date in additionalProperty or in the description text. Using the repress date breaks year-range filtering for historical recordings.