2

I have a standalone website dedicated to a particular software brand of a parent development company.

I'm trying to optimize the About us page and schema.org markup so Google would show the Knowledge Panel about the software brand.

As numerous guides suggest, in such a case a proper markup type for the About us page is Organization.

What would be the correct way to organize the Organization markup for the software brand's About us page?

Here is an initial version I had in mind:


Note:

Company_name ≠ Brand_name

Brand_name = Software_name


<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Corporation",
  "url": "https://www.brand.com/about-us/",
  "name": "Company_name",
  "description": "A description for the company.",
  "brand":
  [
    {
      "@type": "Thing",
      "name": "Brand_name",
      "description": "A description for the brand.",
      "mainEntityOfPage":
      {
        "@type": "SoftwareApplication",
        "name": "Software_name"
      }
    }
  ]
}
</script>

2 Answers 2

2

I would not nest the Brand inside Corporation on the Brand website. I would use an Organization object, citing the Company as the parentOrganization. You can keep the rest as is.

{
    "@context": "https://schema.org",
    "@type": "Organization",
    "name": "Brand_name",
    "brand":
    [
      {
      "@type": "Thing",
      "name": "Brand_name",
      "description": "A description for the brand.",
      "mainEntityOfPage":
        {
          "@type": "SoftwareApplication",
          "name": "Software_name"
        }
      }
   ],
    "description": "A description of the Brand_name",
    "parentOrganization": "Company_name",
    "url": "https://example.com",
    "logo": "https://example.com/images/logo.png",
    "sameAs": [
        "https://twitter.com/brand_name",
        "https://github.com/brand_name",
        "https://www.linkedin.com/company/brand_name/"
    ]
}

Another way you could do this would be to nest SoftwareApplication inside makesOffer. You lose Brand though, as it is not expected inside makesOffer.

{
    "@context": "https://schema.org",
    "@type": "Organization",
    "name": "Brand_name",
    "description": "A description of the Brand_name",
    "parentOrganization": "Company_name",
    "url": "https://example.com",
    "logo": "https://example.com/images/logo.png",
    "makesOffer": {
        "@type": "Offer",
        "itemOffered" : {
            "@type" : "SoftwareApplication",
            "name" : "Software_name"
        }
    },
    "sameAs": [
        "https://twitter.com/brand_name",
        "https://github.com/brand_name",
        "https://www.linkedin.com/company/brand_name/"
    ]
}

See SoftwareApplication & makesOffer

Alternatively, if the About page doesn't contain any info about the software, it may be safer to just specify the relationship between the brand and the company. Then provide SoftwareApplication elsewhere (eg. home page or product page).

{
    "@context": "https://schema.org",
    "@type": "Organization",
    "name": "Brand_name",
    "description": "A description of the Brand_name",
    "parentOrganization": "Company_name",
    "url": "https://example.com",
    "logo": "https://example.com/images/logo.png",
    "sameAs": [
        "https://twitter.com/brand_name",
        "https://github.com/brand_name",
        "https://www.linkedin.com/company/brand_name/"
    ]
}

Here's an example of a way I've written similar semantics that you might find useful:

{
    "@context": "https://schema.org",
    "@type": "Organization",
    "name": "Example Software Company",
    "url": "https://example.com/",
    "logo": "https://example.com/logo.png",

    "hasOfferCatalog": {
        "@type": "OfferCatalog",
        "name": "Software as a service",
        "alternateName": "SaaS",
        "itemListElement": [
            {
                "@type": "Offer",
                "itemOffered": {
                    "@type": "SoftwareApplication",
                    "name": "SalesFarce CRM",
                    "operatingSystem": "All",
                    "applicationCategory": "WebApplication",
                    "aggregateRating": {
                      "@type": "AggregateRating",
                      "ratingValue": "2.6",
                      "ratingCount": "8864"
                    },
                    "offers": {
                      "@type": "Offer",
                      "price": "1.00",
                      "priceCurrency": "USD"
                    }
                }
            }
        ]
    },

    "seller": {
        "@type": "Organization",
        "name": "B2B Software Sales Company",
        "url": "https://www.b2b-software-global.net",
        "logo": "https://www.b2b-software-global.net/logo.png"
    },

    "sameAs": [
        "https://twitter.com/example-software-company",
        "https://linkedin.com/example-software-company",
        "https://facebook.com/example-software-company"
    ]
}
2
  • 1
    Wow, thanks for such detailed examples! It was my initial idea as well to cite the Company as the parentOrganization. But, I walked away from it as I thought it would not be correct to use the Organization markup for the software brand, which is not technically a company. But I guess it's not that crucial? Jul 21, 2022 at 19:12
  • @YaroslavKladko I do not think it is crucial, as there is no rule that says an Organization has to be a technical company. You're welcome! Sep 7, 2022 at 17:04
0

In your example, you are using the type Thing as an embed to the property brand. This contradicts Google:

brand Brand or Organization The brand of the product. Note: If you set the type to anything other than Brand or Organization, we will understand it to be a Thing. This is not specific enough, so we highly recommend using the type Brand or Organization instead.

1
  • When I was checking in with the schema.org documentation, the properties name and description (from the example) were under the Thing type for Brand. I thought it would be correct to use it instead as I'm not very profound with the markup. Thanks for the tip! Jul 21, 2022 at 18:46

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.