Aunque WordPress se diseñó originalmente como una plataforma para blogs, su arquitectura ha evolucionado hasta permitir la creación de sitios web complejos. Una de las claves para esa escalabilidad son los Custom Post Types (CPTs), o tipos de contenido personalizados.
Por defecto, WordPress incluye dos tipos de contenido principales: entradas (posts
) y páginas (pages
). Pero ¿qué ocurre cuando necesitas gestionar productos, portfolios, eventos, testimonios o recetas? En esos casos, duplicar la funcionalidad de entradas no solo es ineficiente, sino contraproducente, tanto para la organización del contenido como para el SEO.
Ahí es donde entran los CPTs. Permiten crear bloques de contenido separados, cada uno con su propia jerarquía, taxonomías, campos personalizados y diseño. Son una solución estructurada, escalable y profesional para webs que van más allá de un blog o una landing page.
- 1. ¿Qué es un Custom Post Type y por qué existen?
- 2. Diferencias entre entradas, páginas y Custom Post Types
- 3. Cómo se crea un Custom Post Type correctamente
- 4. Cómo integrar bien los CPTs con tu tema o maquetador
- 5. Cómo los Custom Post Types afectan a la arquitectura SEO (para bien o para mal)
- 6. Casos reales donde usar CPT mejora la web (y el negocio)
- Conclusión
1. ¿Qué es un Custom Post Type y por qué existen?
Un Custom Post Type (CPT) es, en esencia, una forma de decirle a WordPress que quieres trabajar con un tipo de contenido que no encaja dentro de las entradas o las páginas tradicionales. Aunque internamente funcionan de forma similar a un “post” (comparten la misma base de datos y lógica de consulta), la gran ventaja es que puedes definir sus propias propiedades: un slug personalizado, taxonomías únicas, su propio archivo de archivo y detalles como los campos que admite (editor, imagen destacada, extractos, comentarios, etc.).
Pero su importancia va más allá de lo técnico: los CPTs aportan estructura, orden y claridad tanto para quien gestiona el sitio como para quien lo visita. Desde el punto de vista del editor, permiten tener en el backend zonas independientes para distintos tipos de contenido, lo que mejora el flujo de trabajo y evita confusiones (por ejemplo, no tener mezclados contenidos tan dispares en una web de cocina como noticias, recetas y testimonios dentro del mismo listado de entradas). Desde el punto de vista del usuario/a, cada tipo de contenido puede tener su diseño, su lógica de navegación y su propia jerarquía, lo que en conjunto refuerza la experiencia de uso y la coherencia visual del sitio.
Además, los CPTs están estrechamente ligados al concepto de escalabilidad semántica: permiten que una web crezca sin perder legibilidad ni control. Si una web que inicialmente solo necesitaba entradas y páginas empieza a albergar otros contenidos más especializados (como por ejemplo casos de éxito, fichas de producto, directorios, eventos o cursos), forzar esa nueva información dentro del sistema básico de WordPress se traduce en dos cosas: caos y desorden. Por eso y para eso existen los CPTs: para ofrecer una solución flexible, robusta y a medida que permite extender las capacidades de WordPress sin necesidad de recurrir a plataformas externas ni de reinventar nada.
En resumen, los Custom Post Types existen porque WordPress, siendo un CMS generalista, necesitaba una forma estándar, ordenada y extensible de adaptarse a proyectos que no encajan en el paradigma clásico de “entrada” o “página”. Son la piedra angular de cualquier web profesional que aspira a crecer de forma lógica y sostenible.
2. Diferencias entre entradas, páginas y Custom Post Types
A simple vista, podría parecer que todas las entradas en WordPress funcionan igual: tienen un título, un contenido, y pueden mostrarse en alguna parte de la web. Sin embargo, bajo el capó, WordPress trata de forma diferente a entradas (“posts”), páginas (“pages”) y Custom Post Types (“CPTs”), aunque todos ellos comparten la misma tabla en la base de datos (wp_posts
).
Entradas (Posts)
Las entradas son el tipo de contenido más común en WordPress. Están pensadas para organizar o publicar información cronológica, como noticias, artículos de blog o publicaciones periódicas. Esto implica que:
- Se ordenan por fecha de publicación.
- Pueden pertenecer a taxonomías (es decir, organizarse o catalogarse mediante categorías y etiquetas).
- Suelen mostrarse en bucles como el blog, el archivo de categoría o la página de inicio.
- Tienen funciones específicas asociadas, como el feed RSS o el autor.
Son ideales para contenido vivo, cambiante, que se actualiza con frecuencia o que se organiza de forma temática.
Páginas
Las páginas son estáticas y atemporales. Sirven para mostrar información fija. Las más usuales son las páginas dedicadas a mostrar la información del negocio o del titular de la web (“Quiénes somos”, “Sobre nosotros”, “About”…), la página de contacto (que suele albergar un formulario o enlaces a medios externos para poder contactar), la que define los servicios o el listado de características del negocio, o las que muestran los términos legales. A diferencia de las entradas:
- No tienen una jerarquía temporal.
- No están pensadas para mostrarse en un archivo general como el blog.
- No admiten categorías ni etiquetas (por defecto).
- Pueden organizarse mediante jerarquía de páginas padre-hijo.
Son perfectas para contenidos fundamentales y permanentes en el sitio.
Custom Post Types
Los CPTs vienen a llenar el hueco existente entre las dos anteriores. A nivel técnico, se comportan como entradas, pero su funcionalidad depende completamente de cómo los configures. Puedes elegir:
- Si van a tener taxonomías propias (por ejemplo, «Temáticas», «Tipos», etc.).
- Si serán jerárquicos como las páginas, o lineales como las entradas.
- Si tendrán su propio archivo (
archive-{post_type}.php
), o serán contenidos aislados. - Si se mostrarán en el backend de WordPress, en el menú lateral, o solo se usarán de forma interna.
- Si necesitan un editor clásico, un editor de bloques o incluso campos personalizados mediante ACF o Meta Box.
Por ejemplo, si estás desarrollando una web de cine, podrías crear un CPT llamado películas
, con campos como “Director”, “Duración”, “Género” y “Tráiler”. De esta forma, puedes construir un sistema completamente independiente del blog que muestre y filtre fichas de películas, sin que interfieran con las entradas convencionales.
Además, desde un punto de vista técnico y de SEO, cada CPT puede tener una estructura de URL propia (/peliculas/nombre-de-la-pelicula/
), sus propios esquemas de marcado (con schema.org
o JSON-LD), su plantilla visual personalizada, y sus propias taxonomías (algo que, por otra parte, no se puede hacer fácilmente ni de forma limpia con solo entradas o páginas).
En definitiva, los Custom Post Types ofrecen el control que un desarrollo profesional necesita cuando el contenido va más allá de lo básico. Ignorar su potencial suele llevar a soluciones forzadas que dificultan la escalabilidad, la gestión editorial y el rendimiento a largo plazo del proyecto.
3. Cómo se crea un Custom Post Type correctamente
Crear un Custom Post Type en WordPress puede parecer sencillo —y en cierto modo lo es—, pero hacerlo correctamente implica mucho más que registrar un nuevo tipo de contenido. Si solo usas un plugin sin saber lo que este hace por debajo, es posible que acabes con CPTs mal configurados, con problemas de indexación en buscadores, URLs poco optimizadas o conflictos con taxonomías.
a) ¿Qué opciones hay para crear un CPT?
Existen tres métodos principales para registrar un Custom Post Type:
- Mediante código personalizado
Es la opción más recomendable para desarrollos profesionales. Se registra el CPT medianteregister_post_type()
dentro del archivofunctions.php
del tema hijo, o preferiblemente en un plugin personalizado (o un mu-plugin, para mayor robustez). Esto garantiza portabilidad, rendimiento y control total. - Mediante un plugin generador de CPTs
Plugins como CPT UI o Pods permiten crear CPTs desde el panel de administración. Son útiles para usuarios no técnicos, pero tienen una capa extra de abstracción, y a pesar de que son un opción estupenda, tanto para iniciados/as como para quienes no lo son tanto, es cierto que no siempre generan código optimizado o limpio. - A través de temas o plugins comerciales
Muchos themes incluyen CPTs como “Proyectos”, “Testimonios” o “Equipo”. El problema aquí es la dependencia: si cambias el theme, perderás el contenido o su visualización. Por eso jamás debería registrarse un CPT desde el tema (como ya te expliqué en el artículo ‘Cómo elegir el mejor theme para WordPress sin perder rendimiento ni escalabilidad’, huye de los themes multipropósito que presumen del ‘todo incluido’).
b) El código base para registrar un CPT
Una implementación base de register_post_type()
podría ser algo así:
function crear_cpt_peliculas() {
$labels = array(
'name' => 'Películas',
'singular_name' => 'Película',
'menu_name' => 'Películas',
'add_new' => 'Añadir nueva',
'add_new_item' => 'Añadir nueva película',
'edit_item' => 'Editar película',
'new_item' => 'Nueva película',
'view_item' => 'Ver película',
'all_items' => 'Todas las películas',
'search_items' => 'Buscar películas',
'not_found' => 'No se han encontrado películas',
);
$args = array(
'labels' => $labels,
'public' => true,
'has_archive' => true,
'rewrite' => array('slug' => 'peliculas'),
'supports' => array('title', 'editor', 'thumbnail'),
'menu_icon' => 'dashicons-format-video',
'show_in_rest' => true, // Activar Gutenberg si se desea
);
register_post_type('peliculas', $args);
}
add_action('init', 'crear_cpt_peliculas');
Este código puede ampliarse con taxonomías personalizadas (register_taxonomy()
), campos personalizados, capacidades específicas de usuario… lo que se necesite para dotar al contenido del revestimiento que queramos mostrar.
c) ¿Qué errores hay que evitar?
Registrar un CPT no es solo escribir unas líneas de código. Hay muchos errores comunes que pueden comprometer el SEO, la experiencia de usuario o la escalabilidad del proyecto:
- No definir un
slug
SEO-friendly. Si usas un nombre técnico o genérico comocpt1
, estarás perdiendo oportunidades de posicionamiento. - No activar el archivo (
has_archive
) cuando vas a necesitar una vista tipo índice. - No usar
show_in_rest => true
, lo que rompe la compatibilidad con Gutenberg o la API REST. - No planificar la estructura de campos personalizados: usar plugins como ACF o Meta Box sin un plan puede derivar en una base de datos caótica e ineficiente.
- Registrarlos en el theme en vez de un plugin: este es uno de los errores más graves y habituales. El contenido debe sobrevivir SIEMPRE a cualquier cambio de diseño.
d) Y una vez creado, ¿cómo se integra?
Crear el CPT es solo el primer paso. Después el camino continúa.
- Añade plantillas personalizadas (
single-{post_type}.php
,archive-{post_type}.php
) en tu theme hijo. - Intégralo en los menús, breadcrumbs y sitemap.
- Personaliza la apariencia del backend para mejorar la experiencia editorial.
- Añade soporte para campos SEO (meta title, description, schema…) desde el plugin SEO que más te convenga.
Todo esto forma parte del trabajo que diferencia a un desarrollador profesional especializado en WordPress de una solución genérica. Un CPT mal implementado puede ralentizar tu sitio, generar problemas de indexación o complicar la gestión del contenido. Uno bien planteado, en cambio, puede ser la clave para construir una web a medida, flexible y escalable.
4. Cómo integrar bien los CPTs con tu tema o maquetador
Registrar un Custom Post Type correctamente es solo el primer paso. Para que realmente se integre con naturalidad en tu web —a nivel visual, funcional y editorial—, necesitas trabajar su relación con el tema activo y con el maquetador visual que estés usando (si es que lo usas). De lo contrario, el contenido puede quedar aislado, con estilos incoherentes o incluso inaccesible para el usuario.
a) Plantillas del tema: archive
y single
En la jerarquía de WordPress, cada tipo de contenido puede tener su propia plantilla. Esto es crucial para ofrecer una experiencia coherente:
single-{post_type}.php
se usa para mostrar una entrada individual del CPT. Si has creado un CPT llamadopeliculas
, deberías tener unsingle-peliculas.php
en tu tema hijo.archive-{post_type}.php
sirve para listar todas las entradas del CPT. Ideal para mostrar una galería, listado o directorio.
Si no existen estas plantillas, WordPress usará las genéricas (single.php
o archive.php
), lo cual rara vez es deseable, ya que rompe la personalización.
Estas plantillas deben incluir llamadas a funciones como the_title()
, the_content()
, campos personalizados (usando ACF o similar), imágenes destacadas, taxonomías, y cualquier campo meta necesario para ese contenido. También pueden incorporar paginación, filtros o layouts específicos.
Consejo de profesional: en proyectos bien estructurados, suelo acompañar cada CPT de su propio conjunto de
partials
ytemplate-parts
, para mantener el código ordenado y reutilizable.
b) Con maquetadores visuales (Elementor, Bricks, Oxygen…)
Si trabajas con maquetadores como Elementor Pro, Bricks o Oxygen, la integración puede ser aún más potente… o un desastre si no se hace bien.
Estos constructores permiten:
- Crear plantillas condicionales para tipos de contenido concretos.
- Inyectar campos personalizados directamente mediante widgets dinámicos.
- Mostrar listados (archivos) con loops personalizados.
- Crear relaciones con taxonomías, usuarios, productos…
En Elementor, por ejemplo, puedes usar la funcionalidad Theme Builder para crear una plantilla condicional basada en el post type. Lo ideal es usar widgets dinámicos en lugar de contenido estático, conectando así el diseño con el contenido real del CPT. Además, plugins como ACF, JetEngine o Meta Box se integran muy bien con estos maquetadores.
En Bricks, todo esto se vuelve incluso más potente, gracias a su arquitectura basada en consultas personalizadas y condicionales nativas. Puedes construir layouts ultra rápidos y flexibles sin una línea de código, pero con lógica de backend avanzada.
Ojo: si estás trabajando en una web con un CPT y usas un maquetador, debes asegurarte de que no estás rompiendo la semántica HTML ni la jerarquía de encabezados. De lo contrario, es más que probable que Google no entenderá bien tu contenido.
c) Menús, breadcrumbs y navegación
Una vez el contenido del CPT se visualiza correctamente, hay que integrarlo en la navegación:
- Añádelo al menú principal, o a un menú contextual si es un contenido secundario.
- Asegúrate de que el sistema de breadcrumbs lo tenga en cuenta. Plugins como Yoast SEO o Rank Math suelen gestionarlo bien, pero a veces hay que forzarlo desde código.
- Incluye accesos en otras secciones del sitio: desde el blog, desde la home, desde la cabecera o el footer, etc. El objetivo es que ese contenido no quede aislado del resto del ecosistema de la web.
d) SEO y compatibilidad con el plugin SEO
Plugins como Rank Math, Yoast o SEOPress permiten configurar los meta titles, descripciones, robots y schema de los Custom Post Types. Sin embargo, debes activarlo expresamente y personalizarlo: no dejes los campos por defecto, porque suele tratar al nuevo CPT como si fuese un post genérico.
También puedes ajustar el slug
base (por ejemplo, que en lugar de /peliculas/
sea /film/
o /catalogo/
), y decidir si ese contenido aparecerá en el sitemap o no.
Finalmente, asegúrate de tener URLs limpias, breadcrumbs consistentes, y estructuras internas de enlazado que faciliten la indexación. El objetivo es que el CPT no solo se vea bien, sino que posicione, escale y aporte valor real al sitio web.
5. Cómo los Custom Post Types afectan a la arquitectura SEO (para bien o para mal)
Incluir Custom Post Types (CPTs) en una web puede ser un gran acierto estratégico desde el punto de vista del SEO… pero solo si se planifican correctamente. Su impacto no es neutro. De hecho, pueden ayudarte a escalar tu posicionamiento o, por el contrario, a diluir la autoridad de tu dominio si los usas mal.
Voy a intentar desgranar sus efectos principales.
a) Estructuran mejor el contenido (y Google lo agradece)
Uno de los principios básicos del SEO técnico moderno es ofrecer una estructura de contenidos clara, segmentada y jerárquica. Los CPTs permiten agrupar publicaciones similares bajo un mismo paraguas: por ejemplo, «Recetas», «Cursos», «Proyectos», «Casos de éxito» o «Testimonios».
Esto facilita que:
- Cada tipo de contenido tenga su propia estructura y taxonomías.
- Las URLs sean coherentes (por ejemplo,
/cursos/seo-avanzado/
). - Google entienda rápidamente qué tipo de contenido hay en cada sección.
Este orden reduce el ruido semántico del sitio y lo hace más comprensible tanto para usuarios como para crawlers (bots de rastreo).
b) Evitan la canibalización… si se hace bien
Uno de los errores más comunes en SEO es que varias páginas terminen compitiendo por la misma palabra clave. Con CPTs bien definidos, se puede evitar este solapamiento.
Por ejemplo, en una web donde hay artículos de blog y también proyectos realizados, tener todo dentro de “Entradas” es un caos. Al separar en CPTs (/blog/
y /proyectos/
), puedes trabajar palabras clave distintas para cada área y así evitar conflictos internos.
Sin embargo, si configuras mal las taxonomías o las etiquetas, o duplicas títulos y metas, puede generarse canibalización interna. Es importante hacer una planificación inicial de keywords, y mantener un control sobre cómo compiten los diferentes tipos de contenido.
c) Mejoran la indexación si están bien enlazados
Un CPT mal conectado es un callejón sin salida para Google. Al no formar parte del blog, muchas veces se crean contenidos “huérfanos” que no reciben enlaces internos desde ningún lado.
Esto es un error común: subir proyectos, cursos o servicios en un CPT… y no enlazarlos desde el menú, ni desde otras entradas del blog, ni desde los sitemaps.
Por tanto, los CPT deben estar bien integrados en la arquitectura web:
- Enlazados desde el menú o submenús.
- Aparecer en bloques de “relacionados” o “más vistos”.
- Incluirse en los sitemaps del plugin de SEO.
- Tener breadcrumbs activos para facilitar su jerarquía.
d) Refuerzan la estrategia de clústeres
Una de las mejores prácticas en SEO de contenidos es la creación de topic clusters, es decir, contenidos organizados por núcleos temáticos con una página “pilar” y varias entradas satélite (en este artículo se explica con detalle en qué consiste una buena estrategia de clústeres).
Los CPTs permiten construir fácilmente estos clústeres. Por ejemplo, puedes tener un CPT de “Recursos” que actúe como satélite del blog, o uno de “Guías” vinculado a una categoría clave.
Esta estrategia permite ganar autoridad semántica y mejorar el posicionamiento en palabras clave long tail (estrategia de uso de palabras clave específicas y largas, de tres o más palabras, con el objetivo de generar tráfico orgánico de calidad) y mid tail (estrategia que se centra en palabras clave que están entre las búsquedas generales y las búsquedas muy específicas).
e) Pueden ser un lastre si hay thin content
¿Qué es el thin content?
Puede considerarse como todo aquel contenido de una web que no aporta valor al lector/a. Se podría definir como contenido de poco valor, de baja calidad, o contenido vacío o pobre. De ahí que, en la medida de lo posible, haya que evitarlo, puesto que Google lo identifica y puede etiquetarlo como poco específico, duplicado, o generado de manera automática, penalizándolo.
El lado oscuro de los CPTs aparece cuando se crean sin contenido suficiente o sin intención de posicionamiento. Si generas decenas de entradas vacías (o con textos escuetos, sin keywords ni estructura), lo único que haces es crear thin content, algo penalizable por Google.
¿Solución? Antes de crear un CPT, valida que vas a generar contenido de calidad, optimizado, útil y con una frecuencia mínima de publicación o actualización.
6. Casos reales donde usar CPT mejora la web (y el negocio)
Más allá de la teoría, los Custom Post Types muestran su verdadero potencial cuando se aplican en proyectos reales, con necesidades concretas que van más allá de lo que las entradas y páginas estándar de WordPress pueden ofrecer. De hecho, en muchos negocios digitales, los CPTs son la herramienta que marca la diferencia entre una web estática y una web bien estructurada, usable y preparada de verdad para escalar.
Pongamos un ejemplo típico: una academia online. Este tipo de web no puede ni debe organizar todos sus contenidos dentro del blog. Una buena arquitectura requerirá como mínimo un CPT específico para los cursos, otro para las lecciones (si son independientes), y posiblemente otro para recursos descargables, u otro para casos de éxito de alumnos. Las posibilidades, como vemos, son enormes. Gracias a esta separación, el usuario/a accede directamente a los contenidos que pueden ser de su interés, sin navegar entre artículos de blog o páginas genéricas que le hacen perder el foco, y en muchas ocasiones, propician que desespere porque no encuentra lo que quiere, y termine abandonando la web. Y además es que desde el punto de vista de gestión interna, es un sistema mucho más ordenado, filtrable y reutilizable.
Otro caso clásico es el de una empresa que ofrece servicios en distintas áreas. Imaginemos, por ejemplo, una agencia de marketing que gestiona SEO, redes sociales y desarrollo web. Un CPT para “Proyectos realizados” permite presentar cada caso con sus propias características: imágenes, herramientas utilizadas, resultados obtenidos, cliente, sector… Además, se pueden cruzar esos CPTs con taxonomías personalizadas (como tipo de cliente o sector económico), lo cual multiplica las posibilidades de segmentación y enlazado interno.
También en el ámbito del comercio electrónico, más allá de lo que puede ofrecer WooCommerce (el mejor ejemplo de la suma de un CPT mas campos personalizados), los CPT pueden tener un papel fundamental. Por ejemplo, una tienda que también ofrece formaciones o webinars gratuitos puede usar un CPT para estos eventos, enlazarlos con sus productos relacionados, e incluso mostrarlos en fichas personalizadas dentro del perfil de usuario. Así se refuerza el ecosistema de contenidos y se amplía la funcionalidad de la web sin depender de plugins ajenos innecesarios.
Y no hace falta irse a negocios digitales complejos. Un pequeño restaurante se puede beneficiar de un CPT para el menú, separado en categorías (entrantes, principales o postres), cada uno con su ficha propia, foto y descripción. Esto mejora el SEO local, mejora la usabilidad en móviles y permite actualizaciones dinámicas sin tocar el diseño. Lo mismo puede ocurrir con una web de turismo rural que publica rutas, alojamientos o actividades, o con un despacho de abogados que quiere mostrar sus especialidades y casos de éxito.
Dentro de toda esta casuística, tan variada, usar CPTs no es solo una cuestión de organización: es una decisión estratégica que incide directamente en la experiencia de usuario, la escalabilidad del proyecto y, por supuesto, en el posicionamiento y conversión del sitio web.
Eso sí, su valor aparece cuando se implementan con criterio. No se trata de añadir CPTs por moda, por llenar el panel de administración o simplemente porque se supone que debe hacerse así. Se trata de construir una arquitectura que se alinee con los objetivos reales del negocio.
Conclusión
Los Custom Post Types son una de esas herramientas que demuestran por qué WordPress no es solo una plataforma de blogging, sino un sistema de gestión de contenido (CMS) versátil y altamente escalable. Cuando se entienden bien y se aplican con criterio, los CPTs permiten estructurar la información de una manera lógica, optimizar la experiencia del usuario, facilitar la gestión interna del contenido y, además, mejorar aspectos clave como el SEO, la conversión o el rendimiento general de un proyecto.
Pero no es suficiente con activarlos o instalar un plugin que los cree, sin más. El factor diferencial reside en cómo se diseñan, cómo se relacionan con el resto de elementos de la web y cómo se integran visual y funcionalmente con el tema y los maquetadores utilizados. Un CPT mal planteado puede generar duplicidades de contenido, conflictos de estructura, incompatibilidades con plugins o incluso perjudicar el posicionamiento si no se cuida la indexación y el enlazado interno.
Por eso, el uso de Custom Post Types debe ser una decisión consciente y estratégica. Una que se tome desde la planificación del proyecto —antes de ponerse a maquetar nada— y que esté alineada con los objetivos del negocio, el perfil del cliente y el tipo de contenido que se va a gestionar a medio y largo plazo.
Desde pequeños negocios que necesitan organizar su carta de servicios, hasta plataformas complejas de formación o medios digitales con múltiples secciones editoriales, los CPTs son la clave para construir un WordPress más profesional, robusto y eficiente. Y en un entorno web donde la escalabilidad, la velocidad y la organización son ventajas competitivas claras, no aprovechar esta funcionalidad es, directamente, perder oportunidades.
¿Te gustaría aplicar Custom Post Types en tu web pero no sabes por dónde empezar?
Descubre soluciones de código personalizadas en la mejor biblioteca de snippets en castellano, o contáctame si necesitas una implementación personalizada en tu proyecto WordPress.
📸 Imagen: Sajad Nori en Unsplash