The first instinct when seeing entities.txt examples is: "That's for tech companies with products and integrations." It's not. Every website has entities. Every website has relationships between those entities. The types just differ.
A restaurant's entities are dishes, chefs, and locations, not products and SaaS plans. A healthcare practice's entities are providers, specialties, and services. A university's entities are programs, departments, and faculty. A personal site's entities are the person, their projects, and their roles.
The entities.txt schema is designed to be domain-agnostic. Entity types and relationship types are free-form strings, you define the vocabulary that fits your context. The spec just requires the structure.
This post walks through complete, annotated examples for five different site types. Use these as starting points for your own entities.txt.
1. E-Commerce Site
An outdoor gear retailer. Entities: brand, products, categories. Relationships: what's sold by whom, what pairs with what, who competes with whom.
{
"version": "1.0",
"domain": "outdoorco.com",
"name": "OutdoorCo",
"description": "Premium hiking, camping, and backpacking gear for serious outdoor enthusiasts",
"entities": [
{
"id": "outdoorco",
"name": "OutdoorCo",
"type": "brand",
"description": "Direct-to-consumer outdoor gear brand focused on ultralight backpacking equipment",
"url": "/about",
"identifiers": {
"instagram": "https://instagram.com/outdoorco",
"youtube": "https://youtube.com/c/outdoorco"
}
},
{
"id": "alpine-65l",
"name": "Alpine 65L Backpack",
"type": "product",
"description": "Ultralight 65-liter backpacking pack with framesheet and hipbelt, designed for multi-day backcountry routes",
"url": "/products/alpine-65l",
"capabilities": ["waterproof", "ultralight (2.1 lbs)", "hydration compatible", "bear canister compatible"],
"attributes": {
"weight": "2.1 lbs",
"volume": "65L",
"materials": ["ripstop nylon", "dyneema"]
},
"pricing": { "from": "$289", "url": "/products/alpine-65l" }
},
{
"id": "summit-boots",
"name": "Summit GTX Boots",
"type": "product",
"description": "Gore-Tex waterproof hiking boots with Vibram outsole for three-season use",
"url": "/products/summit-gtx-boots",
"pricing": { "from": "$189", "url": "/products/summit-gtx-boots" }
},
{
"id": "hiking-packs-category",
"name": "Hiking Packs",
"type": "category",
"description": "Full range of daypacks, multi-day packs, and ultralight backpacking packs",
"url": "/collections/hiking-packs"
}
],
"relationships": [
{ "from": "alpine-65l", "type": "sold_by", "to": "outdoorco" },
{ "from": "summit-boots", "type": "sold_by", "to": "outdoorco" },
{ "from": "alpine-65l", "type": "belongs_to", "to": "hiking-packs-category" },
{ "from": "alpine-65l", "type": "pairs_with", "to": "summit-boots" },
{ "from": "outdoorco", "type": "alternative_to", "to": "REI" },
{ "from": "outdoorco", "type": "alternative_to", "to": "Patagonia" },
{ "from": "outdoorco", "type": "serves", "to": "ultralight backpackers and thru-hikers" }
],
"topics": [
{ "name": "ultralight backpacking", "authority": "primary", "pages": ["/blog/ultralight-guide", "/collections/ultralight"] },
{ "name": "hiking gear reviews", "authority": "primary", "pages": ["/blog"] },
{ "name": "backcountry camping", "authority": "secondary" }
],
"pages": {
"/": { "purpose": "homepage", "entities": ["outdoorco", "alpine-65l", "summit-boots"] },
"/about": { "purpose": "about", "entities": ["outdoorco"] },
"/collections/hiking-packs": { "purpose": "product", "entities": ["hiking-packs-category", "alpine-65l"] },
"/products/alpine-65l": { "purpose": "product", "entities": ["alpine-65l"] },
"/blog": { "purpose": "content", "topics": ["ultralight backpacking", "hiking gear reviews"] }
}
}
Key patterns for e-commerce:
- Use
pairs_withrelationships to express product bundling recommendations belongs_tolinks products to their categoriesattributescaptures product specs that don't fit standard fields (weight, dimensions, materials)- Topic authority at
primaryfor your niche (ultralight backpacking),secondaryfor adjacent areas
2. Restaurant
A trattoria in Portland. Entities: the restaurant, dishes, chefs, and locations. Relationships: who created what, where things are served, what the establishment specializes in.
{
"version": "1.0",
"domain": "casabellaportiand.com",
"name": "Casa Bella",
"description": "Authentic Northern Italian trattoria in downtown Portland, Oregon, open since 2011",
"entities": [
{
"id": "casa-bella",
"name": "Casa Bella",
"type": "restaurant",
"description": "Family-owned Italian trattoria specializing in handmade pasta and seasonal Piedmontese cuisine",
"url": "/about",
"attributes": {
"cuisine": "Northern Italian",
"established": "2011",
"seats": 60,
"priceRange": "$$$",
"reservations": "OpenTable"
}
},
{
"id": "chef-marco",
"name": "Chef Marco Rossi",
"type": "person",
"description": "Executive Chef and co-owner, trained at ALMA in Parma and formerly at Osteria Francescana",
"url": "/team"
},
{
"id": "truffle-risotto",
"name": "Black Truffle Risotto",
"type": "dish",
"description": "Carnaroli rice, Acquerello butter, Parmigiano-Reggiano, fresh black truffle from Périgord",
"url": "/menu",
"attributes": {
"dietary": ["gluten-free"],
"price": "$38",
"season": "winter"
}
},
{
"id": "tagliatelle-ragu",
"name": "Tagliatelle al Ragù",
"type": "dish",
"description": "House-made egg tagliatelle with 8-hour Bolognese, one of the restaurant's signature dishes since opening",
"url": "/menu",
"attributes": {
"price": "$28"
}
}
],
"relationships": [
{ "from": "casa-bella", "type": "employs", "to": "chef-marco" },
{ "from": "chef-marco", "type": "created", "to": "truffle-risotto" },
{ "from": "chef-marco", "type": "created", "to": "tagliatelle-ragu" },
{ "from": "truffle-risotto", "type": "served_at", "to": "casa-bella" },
{ "from": "tagliatelle-ragu", "type": "served_at", "to": "casa-bella" },
{ "from": "casa-bella", "type": "located_in", "to": "Portland, Oregon" },
{ "from": "casa-bella", "type": "specializes_in", "to": "Northern Italian cuisine" },
{ "from": "casa-bella", "type": "known_for", "to": "handmade pasta" }
],
"topics": [
{ "name": "Italian cuisine Portland", "authority": "primary" },
{ "name": "handmade pasta", "authority": "primary" },
{ "name": "Northern Italian food", "authority": "primary" },
{ "name": "fine dining Portland", "authority": "secondary" }
],
"pages": {
"/": { "purpose": "homepage", "entities": ["casa-bella", "chef-marco"] },
"/menu": { "purpose": "product", "entities": ["truffle-risotto", "tagliatelle-ragu"] },
"/team": { "purpose": "about", "entities": ["chef-marco"] },
"/about": { "purpose": "about", "entities": ["casa-bella"] },
"/reservations": { "purpose": "support", "entities": ["casa-bella"] }
}
}
Key patterns for restaurants:
createdandknown_forrelationships capture provenance and signature disheslocated_inandspecializes_inare critical for local search queriesattributeson dish entities captures dietary flags, price, and seasonality- The
type: "person"for chefs enables queries like "who is the chef at Casa Bella?"
3. Healthcare Practice
A dental practice in Austin. Entities: the practice, providers, specialties, and services. Relationships: who practices where, what's offered, what's accepted.
{
"version": "1.0",
"domain": "brightdentalaustin.com",
"name": "Bright Dental Care",
"description": "Family and cosmetic dentistry practice in Austin, Texas, with three convenient locations",
"entities": [
{
"id": "bright-dental",
"name": "Bright Dental Care",
"type": "practice",
"description": "Multi-location family dentistry practice offering preventive, restorative, and cosmetic dental services",
"url": "/about",
"attributes": {
"locations": 3,
"accepting_new_patients": true
}
},
{
"id": "dr-chen",
"name": "Dr. Sarah Chen, DDS",
"type": "provider",
"description": "Lead cosmetic dentist specializing in dental implants, veneers, and full-mouth rehabilitation",
"url": "/team/dr-chen",
"attributes": {
"credentials": "DDS, University of Texas School of Dentistry",
"specialties": ["cosmetic dentistry", "dental implants", "veneers", "teeth whitening"],
"languages": ["English", "Mandarin"]
}
},
{
"id": "dental-implants",
"name": "Dental Implants",
"type": "service",
"description": "Single-tooth and full-arch implant placement and restoration",
"url": "/services/dental-implants",
"pricing": { "from": "$3,000 per implant", "url": "/services/dental-implants" }
},
{
"id": "teeth-whitening",
"name": "Professional Teeth Whitening",
"type": "service",
"description": "In-office Zoom whitening and take-home whitening trays",
"url": "/services/teeth-whitening",
"pricing": { "from": "$299", "url": "/services/teeth-whitening" }
}
],
"relationships": [
{ "from": "dr-chen", "type": "practices_at", "to": "bright-dental" },
{ "from": "dr-chen", "type": "specializes_in", "to": "dental-implants" },
{ "from": "dental-implants", "type": "offered_by", "to": "bright-dental" },
{ "from": "teeth-whitening", "type": "offered_by", "to": "bright-dental" },
{ "from": "bright-dental", "type": "serves", "to": "Austin metro area" },
{ "from": "bright-dental", "type": "located_in", "to": "Austin, Texas" },
{ "from": "bright-dental", "type": "accepts", "to": "Delta Dental" },
{ "from": "bright-dental", "type": "accepts", "to": "Cigna" },
{ "from": "bright-dental", "type": "accepts", "to": "Aetna" },
{ "from": "bright-dental", "type": "accepts", "to": "most PPO insurance plans" }
],
"topics": [
{ "name": "cosmetic dentistry Austin", "authority": "primary" },
{ "name": "dental implants Austin", "authority": "primary" },
{ "name": "family dentistry Austin", "authority": "primary" },
{ "name": "teeth whitening", "authority": "secondary" }
],
"pages": {
"/": { "purpose": "homepage", "entities": ["bright-dental", "dr-chen"] },
"/services/dental-implants": { "purpose": "product", "entities": ["dental-implants", "dr-chen"] },
"/services/teeth-whitening": { "purpose": "product", "entities": ["teeth-whitening"] },
"/team/dr-chen": { "purpose": "about", "entities": ["dr-chen"] },
"/about": { "purpose": "about", "entities": ["bright-dental"] }
}
}
Key patterns for healthcare:
acceptsrelationships for insurance are high-value, "does this practice accept my insurance?" is a common AI query- Provider credentials and languages in
attributesanswer specific capability questions specializes_inon providers directly answers "who should I see for X?"located_inis critical for local healthcare queries
4. University or Educational Organization
A small liberal arts college. Entities: the institution, programs, departments, and notable faculty. Relationships: what's offered, who leads what, what the institution is known for.
{
"version": "1.0",
"domain": "ridgecollege.edu",
"name": "Ridge College",
"description": "Liberal arts college in Vermont with 2,400 students, known for environmental studies and creative writing programs",
"entities": [
{
"id": "ridge-college",
"name": "Ridge College",
"type": "educational-institution",
"description": "Small liberal arts college founded in 1887, offering undergraduate programs with a focus on interdisciplinary inquiry",
"url": "/about",
"attributes": {
"founded": 1887,
"enrollment": 2400,
"setting": "rural Vermont",
"endowment": "$180M"
}
},
{
"id": "environmental-studies",
"name": "Environmental Studies Program",
"type": "program",
"description": "Interdisciplinary major combining ecology, policy, economics, and field research at the college's 400-acre conservation forest",
"url": "/academics/environmental-studies"
},
{
"id": "creative-writing-mfa",
"name": "MFA in Creative Writing",
"type": "program",
"description": "Low-residency MFA program in fiction, nonfiction, and poetry with a nationally recognized faculty",
"url": "/graduate/mfa-creative-writing"
}
],
"relationships": [
{ "from": "environmental-studies", "type": "offered_by", "to": "ridge-college" },
{ "from": "creative-writing-mfa", "type": "offered_by", "to": "ridge-college" },
{ "from": "ridge-college", "type": "located_in", "to": "Middlebury, Vermont" },
{ "from": "ridge-college", "type": "known_for", "to": "environmental studies" },
{ "from": "ridge-college", "type": "known_for", "to": "creative writing MFA" },
{ "from": "ridge-college", "type": "alternative_to", "to": "Middlebury College" },
{ "from": "ridge-college", "type": "alternative_to", "to": "Bennington College" }
],
"topics": [
{ "name": "environmental studies", "authority": "primary" },
{ "name": "liberal arts education", "authority": "primary" },
{ "name": "creative writing MFA programs", "authority": "primary" },
{ "name": "small colleges Vermont", "authority": "secondary" }
],
"pages": {
"/": { "purpose": "homepage", "entities": ["ridge-college"] },
"/academics/environmental-studies": { "purpose": "product", "entities": ["environmental-studies"] },
"/graduate/mfa-creative-writing": { "purpose": "product", "entities": ["creative-writing-mfa"] },
"/about": { "purpose": "about", "entities": ["ridge-college"] },
"/admissions": { "purpose": "support", "entities": ["ridge-college"] }
}
}
5. Personal / Portfolio Site
An independent consultant or content creator. Entities: the person, their services, projects, and areas of expertise.
{
"version": "1.0",
"domain": "janedoe.com",
"name": "Jane Doe",
"description": "Independent UX researcher and content strategist specializing in fintech and healthcare products",
"entities": [
{
"id": "jane-doe",
"name": "Jane Doe",
"type": "person",
"description": "Senior UX researcher with 12 years of experience, previously at Stripe and One Medical",
"url": "/about",
"identifiers": {
"linkedin": "https://linkedin.com/in/janedoe",
"twitter": "https://twitter.com/janedoeux"
},
"attributes": {
"location": "San Francisco, CA",
"specialties": ["UX research", "content strategy", "fintech", "healthcare UX"]
}
},
{
"id": "ux-research-service",
"name": "UX Research",
"type": "service",
"description": "User interviews, usability testing, and synthesis for product teams at Series A–C startups",
"url": "/services/ux-research",
"pricing": { "from": "$250/hour", "url": "/services" }
},
{
"id": "ux-writing-book",
"name": "Words That Work: A UX Writing Field Guide",
"type": "creative-work",
"description": "Practical guide to UX writing, microcopy, and content design, published by O'Reilly in 2024",
"url": "/book",
"identifiers": {
"amazon": "https://amazon.com/dp/XXXXXXXXXX"
}
}
],
"relationships": [
{ "from": "jane-doe", "type": "offers", "to": "ux-research-service" },
{ "from": "jane-doe", "type": "authored", "to": "ux-writing-book" },
{ "from": "jane-doe", "type": "specializes_in", "to": "fintech UX" },
{ "from": "jane-doe", "type": "specializes_in", "to": "healthcare product design" }
],
"topics": [
{ "name": "UX research", "authority": "primary" },
{ "name": "UX writing", "authority": "primary" },
{ "name": "fintech product design", "authority": "primary" },
{ "name": "content strategy", "authority": "secondary" }
],
"pages": {
"/": { "purpose": "homepage", "entities": ["jane-doe"] },
"/about": { "purpose": "about", "entities": ["jane-doe"] },
"/services/ux-research": { "purpose": "product", "entities": ["ux-research-service"] },
"/book": { "purpose": "product", "entities": ["ux-writing-book"] },
"/blog": { "purpose": "content", "topics": ["UX research", "UX writing"] }
}
}
Universal Starter Template
Regardless of site type, every entities.txt starts from the same base. Copy this, replace the placeholder values, and add the entity types that fit your domain:
{
"version": "1.0",
"domain": "yourdomain.com",
"name": "Your Organization Name",
"description": "One to two sentences describing what you do and who you serve.",
"entities": [
{
"id": "your-org-slug",
"name": "Your Organization",
"type": "organization",
"description": "Detailed description of your organization.",
"url": "/about",
"identifiers": {
"linkedin": "https://linkedin.com/company/yourcompany"
}
}
],
"relationships": [
{
"from": "your-org-slug",
"type": "serves",
"to": "describe your primary audience here"
}
],
"topics": [
{ "name": "your primary topic", "authority": "primary" }
],
"pages": {
"/": { "purpose": "homepage", "entities": ["your-org-slug"] },
"/about": { "purpose": "about", "entities": ["your-org-slug"] }
}
}
From there, add your key entities (products, services, people, locations, dishes, whatever fits your context), connect them with relationships, declare your topic authority, and extend the pages map to cover your key URLs.
The fastest way to generate a complete starter entities.txt for your specific site is to run a free audit on ansly. The audit crawls your site, extracts your entities using AI, infers relationships from your page structure, and generates a complete entities.txt JSON that you can review, refine, and publish. It handles the extraction work so you can focus on the curation.
For the full spec and the reasoning behind this standard, see entities.txt: Why Every Website Needs a Semantic Identity File for AI Agents.