---
title: "Organization Schema: Add Organization and WebSite JSON-LD"
description: "Add Organization and WebSite JSON-LD with name, url, logo and sameAs. See a real example, Google's rules and code for Next.js, WordPress and Shopify."
url: https://seenlens.com/fixes/add-organization-schema
last_updated: 2026-11-06
---

# Organization schema: how to add Organization and WebSite JSON-LD

Organization schema is a JSON-LD block that states who runs the site: name, URL, logo and profile links. WebSite schema names the site itself. SeenLens fails a page with no Organization, WebSite, Person or LocalBusiness type, and warns when the type only sits inside another entity. Adding both to the home page takes about 20 minutes.

By SeenLens. Last updated: 2026-11-06

## What does the entity markup check test?

SeenLens collects the top level types in the page's JSON-LD. Items in an `@graph` array count as top level. It passes when one of them is an entity type: Organization, WebSite, Person, LocalBusiness or a close subtype such as Corporation, NGO, OnlineStore, Store or Restaurant.

| What SeenLens finds | Result |
| --- | --- |
| An entity type at the top level | Pass |
| An entity type only inside another type, for example Organization as the publisher of an Article | Warn |
| JSON-LD types, but none is an entity type | Fail |
| No JSON-LD types | Fail |

SeenLens scans one URL. If you scan an inner page that has Article markup only, the check fails for that page. Google recommends Organization markup on the home page or on one page that describes the organization, so an inner page does not need its own copy. Scan the home page to test this check.

The effect on AI answers is unproven. The Ahrefs schema study found no significant citation change after pages added JSON-LD. The practical gains are a clear statement of the entity and Google features such as logo and site name.

## What does a real Organization and WebSite block look like?

This is a trimmed copy of the block on the SeenLens home page. The `@id` values let other nodes refer to the entities.

```text
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "Organization",
      "@id": "https://seenlens.com/#organization",
      "name": "SeenLens",
      "url": "https://seenlens.com/",
      "logo": {
        "@type": "ImageObject",
        "url": "https://seenlens.com/icon",
        "width": 512,
        "height": 512
      },
      "email": "support@seenlens.com",
      "sameAs": [
        "https://github.com/seenlens",
        "https://x.com/seenlens_com",
        "https://dev.to/seenlens",
        "https://www.indiehackers.com/seenlens",
        "https://peerlist.io/seenlens/project/seenlens"
      ]
    },
    {
      "@type": "WebSite",
      "@id": "https://seenlens.com/#website",
      "url": "https://seenlens.com/",
      "name": "SeenLens",
      "inLanguage": "en",
      "publisher": { "@id": "https://seenlens.com/#organization" }
    }
  ]
}
```

Google's Organization documentation lists no required properties and recommends as many relevant ones as you can supply, such as `name`, `url`, `logo`, `sameAs`, `address`, `telephone` and `email`. The logo must be at least 112 by 112 pixels, crawlable and indexable, and it must look right on a white background. For the site name, Google's WebSite markup needs `name` and `url` on the home page, and accepts `alternateName` as a short form.

Add `sameAs` links only to profiles you control that represent the same person or organization.

## How can I check my page?

```text
curl -s https://example.com/ | grep -oE '"@type": ?"[A-Za-z]+"' | sort | uniq -c
```

Look for `Organization` or `WebSite` in the list. Or run the scan and read the evidence line.

## How do I add Organization and WebSite schema?

Put both entities in one `@graph` on the home page. Keep the name the same as the name in your title, logo and social profiles.

### Next.js App Router

Render the graph in the home page component, or in the root layout if you want it on every page. Reuse the escape from the [add JSON-LD](https://seenlens.com/fixes/add-json-ld) guide.

```text
const site = "https://example.com";

const graph = {
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "Organization",
      "@id": site + "/#organization",
      name: "Example Co",
      url: site + "/",
      logo: site + "/logo.png",
      sameAs: ["https://www.linkedin.com/company/example"],
    },
    {
      "@type": "WebSite",
      "@id": site + "/#website",
      name: "Example Co",
      url: site + "/",
      publisher: { "@id": site + "/#organization" },
    },
  ],
};
```

### WordPress

Yoast SEO documents that it outputs Organization (or Person) and WebSite pieces on every page, linked in one graph. Open the plugin's settings and fill in the organization name and logo, then check the page source for the values. The Yoast page does not say which settings feed which field, so verify the output.

### Shopify

Shopify has no filter for Organization. Add a script tag to `layout/theme.liquid`. Use the `json` filter for text values. Check that `shop.url` prints your primary domain.

```text
{% if template == 'index' %}
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Organization",
  "name": {{ shop.name | json }},
  "url": {{ shop.url | json }},
  "logo": "https://example.com/logo.png"
}
</script>
{% endif %}
```

### Static sites

Paste the graph into the home page template. Use absolute URLs for every `url`, `logo` and `@id`.

## How do I verify the fix?

1. Run the curl command on the home page and look for the types.
2. Test the URL in the Rich Results Test or the Schema Markup Validator.
3. Scan the home page with SeenLens. The evidence line lists the entity types.

## When can I ignore this check?

Ignore a failure on an inner page when your home page has the markup. Skip LocalBusiness or Person types that do not describe you. Do not invent profiles or addresses. This check has weight 4 in the structured data dimension.

[Scan your page with SeenLens](https://seenlens.com/)

## Should Organization schema be on every page?

### Should Organization schema be on every page?

No. Google recommends it on your home page or on a single page that describes your organization, such as an about page. Putting it on every page is allowed and some SEO plugins do so by default.

### Which properties does Organization schema need?

Google lists no required properties. It recommends adding as many relevant ones as you can, and highlights name or alternateName, address or telephone, and url or logo.

## Which checks are related?

- [Add JSON-LD](https://seenlens.com/fixes/add-json-ld) covers pages with no block at all.
- [JSON-LD syntax errors](https://seenlens.com/fixes/json-ld-syntax-errors) covers blocks that do not parse.
- [Open Graph tags](https://seenlens.com/fixes/open-graph-tags-missing) covers og:site_name and link previews.

## Sources

- [Google Search Central: Organization structured data](https://developers.google.com/search/docs/appearance/structured-data/organization) (no required properties, home page placement, logo rules; checked 2026-11-06)
- [Google Search Central: Site names](https://developers.google.com/search/docs/appearance/site-names) (WebSite name, url and alternateName on the home page; checked 2026-11-06)
- [Ahrefs: Does schema help AI citations?](https://ahrefs.com/blog/schema-ai-citations/) (1,885 pages and 4,000 controls, published 2026-05-11; vendor study; checked 2026-11-06)
- [Yoast developer docs: Schema functional specification](https://developer.yoast.com/features/schema/functional-specification/) (Organization, WebSite and WebPage pieces; checked 2026-11-06)
- [Shopify Liquid: shop object](https://shopify.dev/docs/api/liquid/objects/shop) (shop.name and shop.url; checked 2026-11-06)
