On this page:
This is some text inside of a div block.
This is some text inside of a div block.
This is some text inside of a div block.

knowsLanguage

knowsLanguage · Optional

Appears in

Organization

What is it?

knowsLanguage declares the languages in which an organization (or person) can communicate. It answers the question "what languages does this business support?" at the markup level, without requiring visitors to navigate to a language selector or contact page to find out.

The field accepts either a Language node or a text string using IETF BCP 47 language tags (the same format used in HTML lang attributes: en, es, fr-CA, etc.). Schema.org notes that skill level distinctions, such as reading, writing, or speaking, are not captured by this field.

Why this matters for AEO

Language accessibility is a concrete service attribute that AI engines factor into answers about organizations. When a user asks "which immigration lawyers in Miami speak Spanish?" or "does this bank have Mandarin-speaking support?", AI systems look for machine-readable signals about language capability. An organization without knowsLanguage markup forces the AI to infer language support from page text, which is less reliable.

For service businesses targeting multilingual communities, knowsLanguage is a direct competitive differentiator in AI-generated responses. It maps to a user need that is frequently voiced in natural language queries.

What the specs say

Schema.org:knowsLanguage expects a Language or Text value. Of a Person, and less typically of an Organization, to indicate a known language. Use language codes from the IETF BCP 47 standard. [Source: https://schema.org/knowsLanguage]

Google: Not mentioned in Google's structured data documentation for Organization. [Source: https://developers.google.com/search/docs/appearance/structured-data/organization]

How to find your value

IETF BCP 47 codes for common languages:

  • Englishen
  • Spanishes
  • Frenchfr
  • Mandarin Chinesezh
  • Portuguesept
  • Germande
  • Arabicar
  • Japaneseja
  • Koreanko
  • French Canadianfr-CA
  • Brazilian Portuguesept-BR

For regional variants, use the extended tag: es-MX for Mexican Spanish, en-GB for British English.

Format and code

Text strings with BCP 47 codes (recommended)

{
  "@context": "https://schema.org",
  "@type": "Organization",
  "name": "Duolingo",
  "knowsLanguage": ["en", "es", "fr", "de", "pt", "ja", "zh", "ko", "ar"]
}

Single language

{
  "@context": "https://schema.org",
  "@type": "Organization",
  "name": "Alliance Française de Chicago",
  "knowsLanguage": "fr"
}

Language nodes with full names

{
  "@context": "https://schema.org",
  "@type": "Organization",
  "name": "Berlitz Language Centers",
  "knowsLanguage": [
    {
      "@type": "Language",
      "name": "English",
      "alternateName": "en"
    },
    {
      "@type": "Language",
      "name": "Spanish",
      "alternateName": "es"
    },
    {
      "@type": "Language",
      "name": "Mandarin Chinese",
      "alternateName": "zh"
    }
  ]
}

Webflow implementation

Static pages

Add knowsLanguage to the Organization JSON-LD block in Page Settings > Custom Code > Before </body>. For organizations with a fixed language list, hardcode the BCP 47 array. This is the most common and simplest approach.

CMS template pages

For agencies or service firms with team members who speak different languages, store language codes as a multi-reference or comma-separated text field in Webflow CMS. Inject the values into the JSON-LD block dynamically in a CMS template. When using a text field, split the comma-separated string into a JSON array in your client-side code embed.

In Schema HQ

The knowsLanguage field configures knowslanguage in the organization editor. enter language codes as comma-separated values. schema hq handles the array serialization in the json-ld output. is supported

Real examples

{
  "@context": "https://schema.org",
  "@type": "Organization",
  "name": "Fragomen, Del Rey, Bernsen & Loewy",
  "url": "https://www.fragomen.com",
  "knowsLanguage": ["en", "es", "fr", "de", "zh", "pt", "ar", "ru", "ja"]
}
{
  "@context": "https://schema.org",
  "@type": "Organization",
  "name": "Banco Popular de Puerto Rico",
  "url": "https://www.bancopopular.com",
  "knowsLanguage": ["es", "en"]
}

Related fields

FAQ

Should I use text codes or Language nodes?

BCP 47 text codes are simpler and more widely used. Language nodes with a name and alternateName add human-readable labels alongside the machine code. For most implementations, text codes are sufficient. Language nodes are worth using if your markup already uses other structured nodes throughout.

Does knowsLanguage capture reading, writing, and speaking separately?

No. Schema.org explicitly notes that skill level distinctions are not captured. The field declares that a language is known; proficiency level and modality are out of scope.

Is there a limit to how many languages to list?

No technical limit. List the languages your organization actually supports for customer-facing communication. Listing languages your staff does not actively use inflates the signal and can create customer expectation mismatches.

On this page:
This is some text inside of a div block.
This is some text inside of a div block.
This is some text inside of a div block.
Generate schema for your site with Schema HQ

Get Early Access

Get Early Access

Need help with schema on your site?

We implement structured data for Webflow sites — from audit to deployment.

Work with us

Work with us