GEO para universidades
Cuando la IA hable de tu universidad, que hable bien.
Cada vez más futuros estudiantes preguntan a ChatGPT, Perplexity o Gemini antes de decidir. Estructura tu conocimiento para que las IAs te lean, entiendan y citen —y mide tu preparación.
¿Qué másteres de datos ofrece la Universidad UTEF?
La UTEF ofrece el Máster en Data Science (60 ECTS), un programa oficial orientado a la formación de profesionales en análisis de datos, machine learning y visualización avanzada. Disponible en modalidad presencial y online, con inicio en octubre. Para más información y matrícula, consulta la web oficial: universidad.edu/master-data-science
Fuente: Open Knowledge Format · universidad.edu/okf/
Tu conocimiento, estructurado
Así se declara el contenido de una universidad para la IA.
Programas, profesorado, eventos, noticias… cada tipo de contenido se convierte en un concepto con su frontmatter y sus relaciones. Explóralo:
---
type: Griddo Page Content Type
title: Program
description: Degree program with category filters for school, area, modality, and language. Template ProgramDetail. Data pack PROGRAMS.
resource: src/schemas/content-types/page/PROGRAM/index.ts
tags: [program, academic-offer, programs-data-pack]
timestamp: 2026-07-02T00:00:00Z
griddo_schema_type: PageContentType
griddo_from_page: true
griddo_translate: true
griddo_local: false
---
Belongs to the [PROGRAMS data pack](../../data-packs/programs.md). Each instance generates a page rendered by the `ProgramDetail` template.
Category fields (`MultiCheckSelect`) act as filters for [ProgramsDistributor](../../modules/programs-distributor.md) and related listing modules. A program can belong to multiple schools, areas, and modalities simultaneously.
# Schema
| Key | Field type | Title | Mandatory | Notes |
|---|---|---|---|---|
| `title` | TextField | Title | ✅ | Page title and CMS label. |
| `abstract` | Wysiwyg (not full) | Abstract | — | Short rich-text description. |
| `image` | ImageField | Image | — | Thumbnail shown in distributor cards. |
| `centers` | MultiCheckSelect | Centers | — | → [CENTER](../../taxonomies/center.md). `from: categories.centers` |
| `schools` | MultiCheckSelect | Schools | — | → [SCHOOL](../../taxonomies/school.md). `from: categories.schools` |
| `programTypes` | MultiCheckSelect | Program type | — | → [PROGRAM_TYPE](../simple/program-type.md). `from: categories.programTypes` |
| `academicAreas` | MultiCheckSelect | Academic area | — | → [ACADEMIC_AREA](../../taxonomies/academic-area.md). `from: categories.academicAreas` |
| `languages` | MultiCheckSelect | Languages | — | → [LANGUAGE](../../taxonomies/language.md). `from: categories.languages` |
| `modalities` | MultiCheckSelect | Modalities | — | → [MODALITY](../../taxonomies/modality.md). `from: categories.modalities` |
| `intake` | DateField | Starts On | — | Next intake date. `from: intake` |
| `duration` | TextField | Duration | — | Free text (e.g. "18 months"). `from: duration` |
| `seats` | TextField | Seats | — | Free text for available seats. `from: seats` |
| `data` | ReferenceField | Document to download | — | → DOCUMENT (structured data). Manual selection only. |
# Relationships
- Filtered in [ProgramsDistributor](../../modules/programs-distributor.md) by `schools`, `academicAreas`, `programTypes`, `modalities`, `languages`, `centers`.
- [STUDY_PLAN](../simple/study-plan.md) items in the PROGRAMS data pack display inside the `ProgramDetail` template via the StudyPlan module.
- [TESTIMONIAL](../simple/testimonial.md) items reference this program via their `programs` field.
# Citations
[1] [src/schemas/content-types/page/PROGRAM/index.ts](src/schemas/content-types/page/PROGRAM/index.ts)---
type: Griddo Simple Content Type
title: People
description: Person card with center filter. Structurally similar to FACULTY but belongs to the TESTIMONIAL data pack and adds a center category.
resource: src/schemas/content-types/simple/PEOPLE/index.ts
tags: [people, faculty, testimonial-data-pack]
timestamp: 2026-07-02T00:00:00Z
griddo_schema_type: SimpleContentType
griddo_from_page: false
griddo_translate: true
griddo_local: false
---
Belongs to the [TESTIMONIAL data pack](../../data-packs/testimonial.md) despite describing a person, not a testimonial. Its purpose is to represent people (staff, speakers, collaborators) in contexts where center-based filtering is needed — distinct from [FACULTY](faculty.md) which has no such filter.
# Schema
| Key | Field type | Title | Mandatory | Notes |
|---|---|---|---|---|
| `title` | TextField | Label | ✅ | Internal CMS label only. |
| `image` | ImageField | Image | — | Shown on distributor cards. |
| `name` | HeadingField | Name | — | `isMockup: true`. Default tag h4. |
| `position` | TextField | Position | — | `humanReadable: true`. |
| `content` | Wysiwyg (not full) | Content | — | `humanReadable: true`. |
| `contact` | ConditionalField | Contact | — | Same as FACULTY — url+linkedin OR email+linkedin. |
| `centers` | MultiCheckSelect | Centers | — | → [CENTER](../../taxonomies/center.md). Enables center-based filtering. |
## Contact field (ConditionalField)
| Mode | Sub-fields |
|---|---|
| `url` | `url` (UrlField, advanced), `linkedin` (TextField) |
| `email` | `email` (TextField, format: email), `linkedin` (TextField) |
# Key difference vs FACULTY
[FACULTY](faculty.md) has no category fields. `PEOPLE` adds `centers`, making its items filterable by center in distributor queries. Both share the same visual structure but serve different data-pack contexts.
# Citations
[1] [src/schemas/content-types/simple/PEOPLE/index.ts](src/schemas/content-types/simple/PEOPLE/index.ts)---
type: Griddo Page Content Type
title: Event
description: Academic and institutional events with mandatory date, time, image, and six category filters. Template EventDetail. Data pack EVENTS.
resource: src/schemas/content-types/page/EVENT/index.ts
tags: [event, calendar, events-data-pack]
timestamp: 2026-07-02T00:00:00Z
griddo_schema_type: PageContentType
griddo_from_page: true
griddo_translate: true
griddo_local: false
---
Belongs to the [EVENTS data pack](../../data-packs/events.md). Generates a page via the `EventDetail` template. All six category fields are **mandatory**, making events highly filterable across [EventsDistributor](../../modules/events-distributor.md).
# Schema
| Key | Field type | Title | Mandatory | Notes |
|---|---|---|---|---|
| `title` | TextField | Title | ✅ | |
| `eventDate` | DateField | Date | ✅ | `from: eventDate`. Indexable — used for sorting and filtering. |
| `eventTime` | TimeField | Time | ✅ | `from: eventTime` |
| `thumbImage` | ImageField | Image | ✅ | `from: thumbImage`. Shown in distributor cards. |
| `abstract` | Wysiwyg (not full) | Abstract | — | `from: abstract` |
| `centers` | MultiCheckSelect | Centers | ✅ | → [CENTER](../../taxonomies/center.md). `from: categories.centers` |
| `schools` | MultiCheckSelect | Schools | ✅ | → [SCHOOL](../../taxonomies/school.md). `from: categories.schools` |
| `services` | MultiCheckSelect | Services | ✅ | → [SERVICE](../../taxonomies/service.md). `from: categories.services` |
| `locations` | MultiCheckSelect | Locations | ✅ | → [LOCATION](../../taxonomies/location.md). `from: categories.locations` |
| `topics` | MultiCheckSelect | Topics | ✅ | → [TOPIC](../../taxonomies/topic.md). `from: categories.topics` |
| `type` | MultiCheckSelect | Event type | ✅ | → [EVENT_TYPE](../../taxonomies/event-type.md). `from: categories.type` |
# Relationships
- All six categories are mandatory — every event must be classifiable by center, school, service, location, topic, and type.
- [EventsDistributor](../../modules/events-distributor.md) filters on `eventDate` (indexable) and all category fields.
# Citations
[1] [src/schemas/content-types/page/EVENT/index.ts](src/schemas/content-types/page/EVENT/index.ts)---
type: Griddo Page Content Type
title: News
description: News items with date (indexable), image, and five mandatory category filters. Template NewsDetail. Data pack NEWS.
resource: src/schemas/content-types/page/NEWS/index.ts
tags: [news, editorial, news-data-pack]
timestamp: 2026-07-02T00:00:00Z
griddo_schema_type: PageContentType
griddo_from_page: true
griddo_translate: true
griddo_local: false
---
Belongs to the [NEWS data pack](../../data-packs/news.md) alongside [INS_NEWS](ins-news.md). Generates a page via the `NewsDetail` template. See also [INS_NEWS](ins-news.md) for institutional news without category filters.
# Schema
| Key | Field type | Title | Mandatory | Notes |
|---|---|---|---|---|
| `title` | TextField | Title | ✅ | |
| `newsDate` | DateField | Date | — | `from: newsDate`. Indexable — used for chronological ordering. |
| `abstract` | Wysiwyg (not full) | Abstract | — | `from: abstract` |
| `image` | ImageField | Image | ✅ | `from: image` |
| `centers` | MultiCheckSelect | Centers | ✅ | → [CENTER](../../taxonomies/center.md). `from: categories.centers` |
| `schools` | MultiCheckSelect | Schools | ✅ | → [SCHOOL](../../taxonomies/school.md). `from: categories.schools` |
| `services` | MultiCheckSelect | Services | ✅ | → [SERVICE](../../taxonomies/service.md). `from: categories.services` |
| `topics` | MultiCheckSelect | Topics | ✅ | → [TOPIC](../../taxonomies/topic.md). `from: categories.topics` |
| `types` | MultiCheckSelect | Type | ✅ | → [NEWS_TYPE](../../taxonomies/news-type.md). `from: categories.types` |
# Relationships
- `newsDate` is indexable — used by [NewsDistributor](../../modules/news-distributor.md) for sort and recency filtering.
- Both `NEWS` and `INS_NEWS` belong to the same [NEWS data pack](../../data-packs/news.md); distributors can filter by content type to show only one or both.
- `NEWS` has 5 mandatory category fields; [INS_NEWS](ins-news.md) has none — intended for high-level institutional announcements that cross all category boundaries.
# Citations
[1] [src/schemas/content-types/page/NEWS/index.ts](src/schemas/content-types/page/NEWS/index.ts)---
type: Griddo Simple Content Type
title: Study Plan
description: Nested curriculum structure — years > semesters > subjects (with credits and optional document). Data pack PROGRAMS.
resource: src/schemas/content-types/simple/STUDY_PLAN/index.ts
tags: [study-plan, curriculum, programs-data-pack]
timestamp: 2026-07-02T00:00:00Z
griddo_schema_type: SimpleContentType
griddo_from_page: false
griddo_translate: true
griddo_local: false
---
Belongs to the [PROGRAMS data pack](../../data-packs/programs.md). Displayed inside [PROGRAM](../page/program.md) detail pages via the [StudyPlan module](../../modules/study-plan.md). The nesting is three levels deep: years → semesters → subjects.
# Schema
```
STUDY_PLAN
└── title (TextField, mandatory) — CMS label
└── years (ArrayFieldGroup, dropDown, mandatory)
└── heading — Year title (e.g. "Year 1")
└── detail — Year description
└── semesters (ArrayFieldGroup, dropDown, mandatory)
└── semesterTitle (TextField, mandatory, humanReadable)
└── creditsTitle (TextField, humanReadable)
└── subjects (ArrayFieldGroup, dropDown, mandatory)
└── heading — Subject name (mandatory, tag h4)
└── credits (TextField, mandatory)
└── document (FileField) — Downloadable syllabus
```
# Nesting detail
| Level | Key | Type | Mandatory | Notes |
|---|---|---|---|---|
| Root | `title` | TextField | ✅ | Editor label. |
| Year | `heading` | HeadingField | — | Year label. `isMockup: true`. |
| Year | `detail` | (preset) | — | Year description. |
| Semester | `semesterTitle` | TextField | ✅ | e.g. "Semester 1". `humanReadable: true`. |
| Semester | `creditsTitle` | TextField | — | e.g. "30 ECTS". `humanReadable: true`. |
| Subject | `heading` | HeadingField | ✅ | Subject name. Tag h4. |
| Subject | `credits` | TextField | ✅ | Credit value for this subject. |
| Subject | `document` | FileField | — | Downloadable syllabus PDF. |
# Relationships
- Displayed in [PROGRAM](../page/program.md) detail pages via the StudyPlan module.
- Multiple study plans can exist per program (e.g. one per academic year); only the active one is published.
# Citations
[1] [src/schemas/content-types/simple/STUDY_PLAN/index.ts](src/schemas/content-types/simple/STUDY_PLAN/index.ts)---
type: Griddo Page Content Type
title: Press Release
description: Minimal press release with only title and mandatory date. All editorial content lives in the PressReleasesDetail template modules. Data pack PRESS_RELEASES.
resource: src/schemas/content-types/page/PRESS_RELEASES/index.ts
tags: [press-release, media, press-releases-data-pack]
timestamp: 2026-07-02T00:00:00Z
griddo_schema_type: PageContentType
griddo_from_page: true
griddo_translate: true
griddo_local: false
---
Belongs to the [PRESS_RELEASES data pack](../../data-packs/press-releases.md). The schema is intentionally minimal — only metadata fields. All visible content (body copy, contact, attachments) is authored directly in the `PressReleasesDetail` template as page modules, not as structured fields.
# Schema
| Key | Field type | Title | Mandatory | Notes |
|---|---|---|---|---|
| `title` | TextField | Title | ✅ | Page title and CMS label. |
| `itemDate` | DateField | Date | ✅ | `from: itemDate`. Indexable — used for ordering in the press releases listing. |
# Design note
The minimal field set is a deliberate choice: press releases are typically short-lived, media-targeted items. Their content does not need to be filtered or reused across other distributors, so structured fields beyond title and date add no value. Body and contact info are free-form module content.
# Citations
[1] [src/schemas/content-types/page/PRESS_RELEASES/index.ts](src/schemas/content-types/page/PRESS_RELEASES/index.ts)Más allá de schema.org
Datos estructurados vs. Open Knowledge Format.
El marcado schema.org ayuda a los buscadores tradicionales. OKF va un paso más allá: hace que tu conocimiento viaje fuera de la web, verificable y citable por los agentes de IA.
Datos estructurados · schema.org
- Marca entidades dentro de la página (JSON-LD).
- Pensado para buscadores tradicionales (rich snippets).
- El dato vive en el HTML; no viaja fuera de la web.
- Mantenimiento por página y plantilla.
Open Knowledge Format · GEO
- Formato portable: el conocimiento viaja en un bundle (
/okf/). - Pensado para agentes de IA: leer, verificar y citar.
- Cada concepto con tipo, fuente, timestamp y relaciones.
- En Griddo se genera solo desde tu contenido.
SEO + GEO, automático
Griddo lo hace por ti.
Las piezas técnicas que determinan si la IA te representa bien —y que en Griddo funcionan sin trabajo extra.
SEO Outline
La estructura semántica de cada página, generada automáticamente para que buscadores e IAs entiendan la jerarquía de tu contenido.
Meta y keywords por IA
Generación asistida por IA de meta títulos, descripciones y palabras clave, optimizados página a página.
Sitemap automático
Sitemap XML siempre actualizado, sin intervención manual, para un rastreo completo y sin errores.
llms.txt y OKF
Publicación automática de llms.txt y bundles OKF: tu conocimiento, legible y citable por los agentes de IA.
¿Quieres saber cómo funcionan los OKF en Griddo?
Explora el estándar en profundidad, con nuestro propio bundle OKF en vivo y navegable.
Haz que la IA cite a tu universidad, gratis en 2026.
Durante 2026, la generación automática de bundles OKF está incluida sin coste en Griddo. Empieza ahora a estructurar tu conocimiento para que ChatGPT, Perplexity y Gemini te lean y te citen —y adelántate mientras el estándar se consolida.
Analiza la visibilidad de tu universidad en IA
Déjanos tu universidad y te preparamos un diagnóstico personalizado de tu preparación para la búsqueda con IA.