Skip to content

PodcastSeries JSON-LD is missing sameAs/logo, and Organization sub-nodes have no contactPoint/address #70

Description

@argyleink

Context

An is-agentic.com scan of whiskey.fm flagged incomplete structured data:

JSON-LD Organization with name + description - add url and sameAs/logo/address for full score

Organization schema found but missing: contactPoint, address
Add Organization JSON-LD that includes both contactPoint (with email/phone and contactType) and address (PostalAddress). This lets AI verify your business legitimacy and answer contact queries.

Current state

packages/starpod/src/layouts/Layout.astro already emits a solid PodcastSeries node (name, about, description, url, webFeed, image, nested author/publisher Organization objects) — good baseline. What's missing:

{
  '@context': 'https://schema.org',
  '@type': 'PodcastSeries',
  // ...
  author: { '@type': 'Organization', name: show.title, url: canonicalURL.origin },
  publisher: { '@type': 'Organization', name: show.title, url: canonicalURL.origin }
  // no sameAs, no logo on the PodcastSeries node
  // no contactPoint/address on the Organization nodes
}
  • No sameAs array on the PodcastSeries node — starpodConfig.platforms already has apple/spotify/youtube/overcast/pocketCasts URLs, which are exactly what sameAs wants (canonical profile links proving the entity is the same across the web). This looks like a straightforward win since the data already exists in config.
  • No logo on the Organization sub-nodes (only the top-level PodcastSeries.image is set).
  • No contactPoint (email + contactType) or address on the Organization nodes — reasonable, since StarpodConfig has no field for either today. address may not even make sense for every show (a podcast isn't always a registered local business) — could be optional/skippable, but contactPoint seems like a reasonable ask once contact-page work (Contact page has too little real content for agent trust checks #69) lands, since that's the same email/contact info.

Proposed fix

  • Populate sameAs on the PodcastSeries node from Object.values(starpodConfig.platforms).filter(Boolean).
  • Add an optional logo field to StarpodConfig (or reuse an existing show-image asset) and wire it onto the Organization nodes.
  • Add an optional contactPoint (built from a config-level contact email, see Contact page has too little real content for agent trust checks #69) once there's a canonical place to source it from. Treat address as optional/skippable — not every show has one worth publishing.

🤖 Filed with Claude Code

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions