SportsTeam
SportsTeam is a SportsOrganization subtype (extending Organization) for teams of athletes: basketball teams, football clubs, cricket sides, esports teams. It has 3 properties of its own (athlete, coach, gender) plus sport inherited from SportsOrganization. Google uses it for the sports knowledge panel, team schedules, and results.
The type hierarchy is Thing → Organization → SportsOrganization → SportsTeam. This means SportsTeam inherits all Organization properties: name, url, logo, address, member, foundingDate, sameAs. It does NOT inherit from LocalBusiness or Place (a team is an organization, not a venue).
Full example of schema.org/SportsTeam json-ld markup
The markup is verified as valid with Rich Results Test from Google.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@id": "https://dunmoredynamos.com#team",
"@type": "SportsTeam",
"name": "Dunmore Dynamos",
"description": "Community basketball team representing Dunmore in the Lackawanna County League. Founded 2018. Home games at The Thunderdome.",
"url": "https://dunmoredynamos.com",
"logo": "https://dunmoredynamos.com/images/logo.png",
"sport": "Basketball",
"gender": "https://schema.org/Male",
"foundingDate": "2018",
"coach": {
"@type": "Person",
"name": "Marcus Webb",
"url": "https://dunmoredynamos.com/staff/marcus-webb"
},
"athlete": [
{
"@type": "Person",
"name": "Devon Carter",
"url": "https://dunmoredynamos.com/roster/devon-carter"
},
{
"@type": "Person",
"name": "Jamal Torres",
"url": "https://dunmoredynamos.com/roster/jamal-torres"
}
],
"location": {
"@type": "StadiumOrArena",
"name": "The Thunderdome",
"address": {
"@type": "PostalAddress",
"addressLocality": "Dunmore",
"addressRegion": "PA"
}
},
"sponsor": {
"@id": "https://xoocode.com#organization"
},
"memberOf": {
"@type": "SportsOrganization",
"name": "Lackawanna County Basketball League"
}
}
</script>athlete and coach
athlete takes a Person object (or array) representing current players. coach takes a Person object for coaching staff. Google reads these for the team's knowledge panel roster. Include at least the name on each Person. Adding url or sameAs (Wikipedia, team profile page) helps Google match the person to an existing knowledge graph entity.
sport
sport (inherited from SportsOrganization) is a text string or URL describing the sport: "Basketball", "Football", "Cricket". Google uses this for sport-filtered searches and to categorize the team in the knowledge panel. Use the common English name of the sport.
gender
gender on SportsTeam indicates whether the team is male, female, or mixed. It accepts GenderType values (https://schema.org/Male, https://schema.org/Female) or the text string "Mixed". This is different from gender on Person, where it describes an individual.
SportsTeam vs SportsActivityLocation
A SportsActivityLocation is a place (gym, stadium, pool). A SportsTeam is an organization (a group of athletes). The Dunmore Dynamos are a SportsTeam. The stadium they play in is a SportsActivityLocation (specifically a StadiumOrArena). Do not use one for the other.
Minimal valid version
The smallest markup that still produces a valid SportsTeam entity. Use it as the floor. Reach for the advanced example above when you want search engines and AI agents to understand more about your content.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "SportsTeam",
"name": "Dunmore Dynamos",
"sport": "Basketball"
}
</script>Google rich results this unlocks
Markup matching this example makes your page eligible for the following Google Search rich results. The primary target drives the required / recommended property classification in the advanced code block above.
- Google docsOrganization knowledge panel (indirect)
Common SportsTeam mistakes
Mistakes that pass validation but silently fail to earn rich results or mislead consumers walking the graph. Avoid these and your markup will be ahead of most sites in the wild.
- 01
Using SportsActivityLocation for a team
Wrong"@type": "SportsActivityLocation" for a basketball teamRight"@type": "SportsTeam" for teams; SportsActivityLocation for venuesSportsTeam is an Organization (a group of athletes). SportsActivityLocation is a Place (a gym, stadium, or field). The team plays AT the location. These are fundamentally different entities in the knowledge graph.
- 02
Missing sport property
WrongSportsTeam with name and athlete list but no sportRight"sport": "Basketball"sport (inherited from SportsOrganization) tells Google what sport the team plays. Without it, Google has to infer the sport from the team name or other signals. This is the primary categorization property for sports knowledge panels.
- 03
athlete as a plain string array
Wrong"athlete": ["Devon Carter", "Jamal Torres"]Right"athlete": [{ "@type": "Person", "name": "Devon Carter", "url": "..." }]athlete expects Person objects, not plain strings. Person objects let Google match athletes to existing knowledge graph entities (especially important for professional athletes with Wikipedia pages or social profiles).
- 04
gender as free text
Wrong"gender": "Men's team"Right"gender": "https://schema.org/Male" or "gender": "Mixed"gender on SportsTeam accepts GenderType enum values (Male, Female as schema.org URLs) or the text string "Mixed". Free text like "Men's team" is not a recognized value and will not be parsed for gender-filtered sports searches.
Schema properties in this example
About the example data
The Dunmore Dynamos are a fictional community basketball team based in Dunmore. They play at The Thunderdome and are sponsored by Xoo Code Inc. The sponsor property references Xoo Code via @id.
Comments
Loading comments...