This factor reports whether RankGear finds a MusicComposition JSON-LD @type in a page’s raw source — a simple 1 (present) or 0 (absent). It is a text pattern match on the source, not a validation that the structured data is well-formed.
| Factor ID | RG-SCJ-165 |
|---|---|
| Family | Structured Data – JSON-LD |
| Measurement | Binary presence (0 / 1) |
| Measured zone | Raw rendered HTML |
What it measures
This factor reports whether RankGear finds an @type value of MusicComposition in the page’s raw source. MusicComposition describes a distinct musical work — its composer, lyricist, key, time signature, and its relationships to publications and recordings — as opposed to a specific recording or release. The check returns 1 when the type is present and 0 when it is not.
How RankGear measures it
RankGear searches the raw HTML for the string "@type": "MusicComposition", allowing flexible whitespace around the colon and an optional schema: prefix on the type. Matching is case-insensitive, so capitalization differences do not change the result. The detector looks for this text in the source — it does not parse or validate the surrounding JSON-LD graph.
What RankGear looks for
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "MusicComposition",
"name": "Clair de Lune",
"composer": { "@type": "Person", "name": "Claude Debussy" },
"musicalKey": "D-flat major"
}
</script>
# Also matched (optional schema: prefix, flexible spacing, any case):
"@type":"schema:musiccomposition"| Value | Meaning |
|---|---|
| 1 | A MusicComposition @type string was found in the raw source. |
| 0 | No matching string was found. |
How to optimize it
Use MusicComposition only for a genuine musical composition, with an accurate composer, lyricist, key, time signature, publication, and recording relationships. Ensure every property reflects content users can actually verify on the page. Treat this factor as an observation about your markup, not a target to chase: adding the type where the page is not truly about a composition serves neither the reader nor the signal.
Important considerations
- The detector pattern-matches source text rather than validating a JSON-LD graph, so a well-formed schema is not guaranteed by a score of 1.
- A matching string that sits outside valid JSON-LD — in a comment, an example, or a code block — can still produce a 1.
- Capitalization differences do not affect detection; the match is case-insensitive.
- Validate the complete structured data independently with a dedicated schema validator.
- This is a prioritization signal that relates to position within a measured result set — it does not, on its own, cause or guarantee a ranking.
Related factors
Part of the Factors reference · how RankGear measures · glossary.