On this page:
This is some text inside of a div block.
This is some text inside of a div block.
This is some text inside of a div block.

byArtist

byArtist · No Google rich result

Appears in

MusicRecording

What is it?

byArtist identifies the performer of a music recording or album. It accepts a MusicGroup or Person object, connecting the track to the artist who performed it. Search engines and music knowledge panels use this field to associate songs with their performers across streaming platforms, discographies, and knowledge graphs.

Why this matters for AEO

AI answer engines answering "Who sings [song name]?" pull artist attribution directly from structured data. A recording with a byArtist object containing the artist's name and URL gives AI systems a machine readable link between the track and the performer. Without it, AI engines must infer the artist from page text, which introduces ambiguity for covers, remixes, and collaborations.

What the specs say

Schema.org: The artist that performed this album or recording. Accepts MusicGroup or Person. schema.org/byArtist

Google: No dedicated Google structured data page exists for MusicRecording. Google does not document specific requirements for this field, but it contributes to music knowledge graph entries.

How to find your value

  • Streaming platform — Artist name on the track or album page
  • Music database — MusicBrainz, Discogs, or AllMusic artist entry
  • Record label site — Artist roster or release catalog
  • Webflow CMS — An "Artist" reference field in your tracks collection

Format and code

Type: MusicGroup or Person

Band or group (MusicGroup):

{
  "@context": "https://schema.org",
  "@type": "MusicRecording",
  "name": "Rope",
  "byArtist": {
    "@type": "MusicGroup",
    "name": "Foo Fighters"
  },
  "duration": "PT4M5S"
}

Solo artist (Person):

{
  "@context": "https://schema.org",
  "@type": "MusicRecording",
  "name": "Purple Rain",
  "byArtist": {
    "@type": "Person",
    "name": "Prince"
  },
  "duration": "PT8M41S"
}

With sameAs link for disambiguation:

{
  "@context": "https://schema.org",
  "@type": "MusicRecording",
  "name": "Sweet Home Alabama",
  "byArtist": {
    "@type": "MusicGroup",
    "name": "Lynyrd Skynyrd",
    "sameAs": "https://musicbrainz.org/artist/bda28c08-b224-46e4-89f5-8a8b2c4ee93b"
  }
}

Plain text (simpler but less useful):

{
  "@type": "MusicRecording",
  "name": "Sweet Home Alabama",
  "byArtist": "Lynyrd Skynyrd"
}

Plain text works but provides no type information. Use a MusicGroup or Person object when possible.

Common invalid pattern:

  • "byArtist": {"@type": "Organization", "name": "Foo Fighters"} (use MusicGroup, not Organization, for bands)

Webflow implementation

Static pages

In Page Settings > Custom Code > Before </head>:

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "MusicRecording",
  "name": "Your Track Title",
  "byArtist": {
    "@type": "MusicGroup",
    "name": "Your Artist Name"
  },
  "duration": "PT3M30S"
}
</script>

CMS template pages

If your Webflow CMS has a "Tracks" collection with a reference to an "Artists" collection:

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "MusicRecording",
  "name": "{{wf {&quot;path&quot;:&quot;name&quot;,&quot;type&quot;:&quot;PlainText&quot;} }}",
  "byArtist": {
    "@type": "MusicGroup",
    "name": "{{wf {&quot;path&quot;:&quot;artist.name&quot;,&quot;type&quot;:&quot;PlainText&quot;} }}"
  }
}
</script>

In Schema HQ

The byArtist field is mapped from CMS artist reference fields to the byArtist property. It detects whether the artist is a MusicGroup or Person based on the linked collection structure and includes sameAs links when available.

Real examples

Foo Fighters (schema.org official example):

{
  "@context": "https://schema.org",
  "@type": "MusicRecording",
  "name": "Rope",
  "byArtist": {
    "@type": "MusicGroup",
    "name": "Foo Fighters"
  },
  "duration": "PT4M5S",
  "inAlbum": "foo-fighters-wasting-light.html"
}

Sweet Home Alabama (builtvisible.com structured data guide):

{
  "@type": "MusicRecording",
  "name": "Sweet Home Alabama",
  "byArtist": "Lynard Skynard",
  "url": "http://www.example.com/sweet-home-alabama",
  "duration": "PT4M45S",
  "inAlbum": "Second Helping"
}

Related fields

FAQ

Should byArtist use MusicGroup or Person?

Use MusicGroup for bands and ensembles. Use Person for solo artists performing under their own name. If a solo artist uses a stage name (e.g., "The Weeknd"), MusicGroup is still acceptable because search engines treat it as a performing entity rather than a legal identity.

How do I handle featured artists or collaborations?

Use an array of byArtist values. Each entry should be a separate MusicGroup or Person object. For a track by "Drake featuring Rihanna," include both as separate byArtist entries rather than concatenating them into a single name string.

Does Google show rich results for byArtist?

Google does not offer a dedicated MusicRecording rich result. However, byArtist data feeds into Google's music knowledge graph, powering the artist panels and song cards that appear in search results. Correct attribution here strengthens entity associations across Google's systems.

On this page:
This is some text inside of a div block.
This is some text inside of a div block.
This is some text inside of a div block.

Need help with schema on your site?

We implement structured data for Webflow sites — from audit to deployment.

Work with us

Work with us