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.

TL;DR Add a 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:

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
CDhttps://schema.org/CDFormat
Cassette tapehttps://schema.org/CassetteFormat
DVDhttps://schema.org/DVDFormat
Blu-rayhttps://schema.org/BluRayFormat
Digital Audio Tapehttps://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.artistSingle-line text"Miles Davis"
music.album_titleSingle-line text"Kind of Blue"
music.genreSingle-line text"Jazz"
music.release_dateDate (ISO 8601)"1959-08-17"
music.formatSingle-line text"https://schema.org/VinylFormat"
music.record_labelSingle-line text"Columbia Records"
music.num_tracksInteger5
music.catalog_numberSingle-line text"88985449391"
music.artist_typeSingle-line text"Person" or "MusicGroup"
music.artist_wikiSingle-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.