Saltar al contenido Saltar a la navegación
De vuelta al soporte principal

Comience con la API REST de SEOPress

Métodos de autenticación

A través de las cookies de WordPress

Headers para enviar con su solicitud:

  • X-WP-Nonce: abra la consola de su navegador, introduzca «wpApiSettings» y copie el nonce
  • Cookie: abra la consola de su navegador, vaya a Aplicaciones y copie el nombre Y el valor de esta cookie wordpress_logged_in_ (p. ej.: wordpress_logged_in_41432erzre768dffez23456=admin%AREGREJOGRE54Y65KO534KTO4O3TJ43EFFEKZFOEZK£FEZRGTH)

A través de contraseñas de aplicaciones

Se requiere SEOPress 6.8.

Es la mejor solución. Cree una contraseña de aplicación desde su perfil de WordPress.

Use su usuario de WP (por ejemplo, admin) y esta nueva contraseña de aplicación para autenticarse (elija «Basic Authentification» en Postman o equivalente).

Body (JSON Object) para enviar con su solicitud según el punto final:

Título y meta descripción

{
    "title":"this is SEO title",
    "description":"this is meta description"
}

Palabras clave objetivo

{
    "_seopress_analysis_target_kw":"keyword1, keyword2"
}

Metadatos sociales

{
    "_seopress_social_fb_title":"my facebook title",
    "_seopress_social_fb_desc":"my facebook description",
    "_seopress_social_fb_img":"facebook image URL",
    "_seopress_social_fb_img_attachment_id":"facebook attachment ID",
    "_seopress_social_fb_img_width":"facebook attachment width",
    "_seopress_social_fb_img_height":"facebook attachment height",
    "_seopress_social_twitter_title":"my twitter title",
    "_seopress_social_twitter_desc":"my twitter description",
    "_seopress_social_twitter_img":"twitter image URL",
    "_seopress_social_twitter_img_attachment_id":"twitter attachment ID",
    "_seopress_social_twitter_img_width":"twitter attachment width",
    "_seopress_social_twitter_img_height":"twitter attachment height"
}

Meta robots

{
    "_seopress_robots_index":"yes",
    "_seopress_robots_follow":"yes",
    "_seopress_robots_archive":"yes",
    "_seopress_robots_snippet":"yes",
    "_seopress_robots_imageindex":"yes",
    "_seopress_robots_canonical":"my canonical URL",
    "_seopress_robots_primary_cat":"my primary cat ID",
    "_seopress_robots_breadcrumbs":"my custom breadcrumbs"
}

Desde SEOPress 10.4, el término principal de otra taxonomía pública y jerárquica tiene su propia clave, _seopress_robots_primary_term_{taxonomy} (por ejemplo, _seopress_robots_primary_term_genre). Acepta un ID de término, o un valor vacío para eliminarlo. _seopress_robots_primary_cat sigue siendo la clave de las categorías y de las categorías de productos.

Redirección

{
    "_seopress_redirections_enabled":"yes",
    "_seopress_redirections_logged_status":"both|only_logged_in|only_not_logged_in",
    "_seopress_redirections_type":"301|302|307",
    "_seopress_redirections_value":"my redirection URL"
}

Desde SEOPress 10.4, solo un usuario con la capacidad manage_options o unfiltered_html puede dirigir una redirección a otro sitio web. Consulte Seguridad y sitios headless más abajo.

Respuesta:

Si tiene éxito:

{
    "code": "success"
}

Si falla:

{
    "code": "rest_forbidden",
    "message": "Sorry, you are not allowed to do that.",
    "data": {
        "status": 401
    }
}

o

{
    "code": "rest_cookie_invalid_nonce",
    "message": "Cookie check failed",
    "data": {
        "status": 403
    }
}

o, desde SEOPress 10.4, cuando se rechaza el destino de la redirección:

{
    "code": "seopress_redirection_external_target",
    "message": "You are not allowed to redirect this content to another website. Use a URL on this site, or ask an administrator.",
    "data": {
        "status": 403
    }
}

Obtener metadatos de publicaciones

Desde SEOPress 5.0, puede solicitar los metadatos SEO de sus publicaciones utilizando nuestra API REST.

Estas rutas GET son públicas y no requieren autenticación ni la capacidad edit_post. Los metadatos solo se devuelven para publicaciones publicadas de un tipo de contenido que los visitantes pueden ver (desde SEOPress 10.4), cuando la protección por contraseña no bloquea la solicitud.

Actualmente hay 2 rutas disponibles:

  • /wp-json/seopress/v1/posts/[postId] : reemplace [postId] por el ID de su publicación
  • /wp-json/seopress/v1/posts/by-url?url=https://example.com/seopress-best-wordpress-seo-plugin/ reemplace la URL por el enlace permanente deseado

Método disponible: GET.

Cuando los metadatos están disponibles, la respuesta contiene success: true y los metadatos en data. En caso contrario, data vale null. El JSON siguiente muestra únicamente el objeto data; por ejemplo, el título se obtiene de response.data.title.

{ 
    "title": "SEOPress, Best WordPress SEO plugin", 
    "description": "My super meta description", 
    "canonical": "https://example.com/seopress-best-wordpress-seo-plugin/", 
    "og": { 
        "title": "My Facebook title", 
        "description": "My Facebook description", 
        "image": "https://example.com/seopress-best-wordpress-seo-plugin.jpg",
        "attachment_id": "1",
        "image_width": "1920",
        "image_height": "1080"
    }, 
    "twitter": { 
        "title": "My Twitter title", 
        "description": "My Twitter description", 
        "image": "https://example.com/seopress-best-wordpress-seo-plugin.jpg",
        "attachment_id": "1",
        "image_width": "1920",
        "image_height": "1080"
    },
    "robots": {
        "noindex": false, 
        "nofollow": false, 
        "nosnippet": false, 
        "noimageindex": false 
    },
    "primarycat": "1",
    "breadcrumbs": "my custom breadcrumbs for current item",
    "redirections": {
        "enabled": true,
        "status":"both",
        "type":"301",
        "value":"https://example.com/destination-url/"
    }
}

Para solicitar sus datos, puede utilizar, por ejemplo, la API HTTP de WordPress.

Obtener metadatos de términos

Desde SEOPress 5.5, puede solicitar los metadatos SEO de sus términos utilizando nuestra API REST.

Esta ruta GET es pública, con o sin el parámetro taxonomy, y no requiere autenticación ni la capacidad edit_post. Desde SEOPress 10.4, solo describe términos de una taxonomía consultable públicamente, y el término debe pertenecer a la taxonomía que solicita: para una categoría de producto de WooCommerce, por ejemplo, añada ?taxonomy=product_cat.

Actualmente hay 2 rutas disponibles:

  • /wp-json/seopress/v1/terms/[termId] : reemplace [termId] por el ID de su término
  • /wp-json/seopress/v1/terms/[termId]?taxonomy=[yourCustomTaxonomy] similar a la ruta anterior, con la taxonomía como argumento (predeterminado: «category» si no se indica)

Método disponible: GET.

Cuando los metadatos están disponibles, la respuesta contiene success: true y los metadatos en data. En caso contrario, data vale null. El JSON siguiente muestra únicamente el objeto data; por ejemplo, el título se obtiene de response.data.title.

{ 
    "title": "My super term title", 
    "description": "My super term meta description",
    "canonical": "https://example.com/seopress-best-wordpress-seo-plugin/",
    "og": { 
        "title": "My Facebook term title", 
        "description": "My Facebook term description", 
        "image": "https://example.com/term-seopress-best-wordpress-seo-plugin.jpg",
        "attachment_id": "1",
        "image_width": "1920",
        "image_height": "1080" 
    }, 
    "twitter": { 
        "title": "My Twitter term title", 
        "description": "My Twitter term description", 
        "image": "https://example.com/term-seopress-best-wordpress-seo-plugin.jpg",
        "attachment_id": "1",
        "image_width": "1920",
        "image_height": "1080"
    }, 
    "robots": { 
        "noindex": false, 
        "nofollow": false, 
        "nosnippet": false, 
        "noimageindex": false 
    },
    "breadcrumbs": "my custom breadcrumbs for current item",
    "redirections": {
        "enabled": true,
        "status":"both",
        "type":"301",
        "value":"https://example.com/destination-url/"
    }
}

Enviar metadatos de publicación

Para escribir los metadatos SEO de sus publicaciones, puede usar estos puntos finales:

  • título y meta descripción: /wp-json/seopress/v1/posts/[postId]/title-description-metas
  • palabras clave objetivo: /wp-json/seopress/v1/posts/[postId]/target-keywords
  • metadatos sociales: /wp-json/seopress/v1/posts/[postId]/social-settings
  • meta robots: /wp-json/seopress/v1/posts/[postId]/meta-robot-settings
  • redirección: /wp-json/seopress/v1/posts/[postId]/redirection-settings

Capacidad de usuario necesaria por seguridad: edit_post

Método disponible: PUT.

Un rol marcado en SEO > Avanzado > Seguridad no puede usar estas rutas, igual que en la metabox SEO: Metaboxes SEO: roles bloqueados para todas ellas, Análisis del contenido: roles bloqueados para las palabras clave objetivo. Desde SEOPress 10.4, la misma restricción se aplica cuando estas rutas se leen con GET, y se comprueba el destino de la redirección (ver más abajo).

Seguridad y sitios headless (desde SEOPress 10.4)

SEOPress 10.4 restringe lo que la API REST muestra a los visitantes y lo que cada rol puede modificar. Si utiliza un front-end headless, o una integración que lee o escribe datos SEO, revise los puntos siguientes.

Las rutas públicas solo describen contenido público

Las rutas públicas seopress/v1/posts/[postId], seopress/v1/posts/by-url y seopress/v1/terms/[termId] están abiertas a cualquiera. Ahora solo describen el contenido al que un visitante ya podría acceder:

  • publicaciones de un tipo de contenido visible (entradas, páginas, productos, tipos de contenido personalizados públicos). Los bloques reutilizables, las partes de plantilla y los registros internos de otros plugins devuelven data: null, aunque estén publicados;
  • términos de una taxonomía consultable públicamente, y solo cuando el término existe en la taxonomía que solicita.

Para exponer a propósito un tipo de contenido o una taxonomía internos, por ejemplo para una integración que dependía del comportamiento anterior, use estos filtros. Los borradores y las publicaciones protegidas con contraseña siguen ocultos, devuelva lo que devuelva el filtro de publicaciones.

// Describe the posts of an internal post type in the public SEO route.
add_filter( 'seopress_api_public_post_is_readable', function( $allowed, $post_id, $post_type ) {
	if ( 'my_internal_type' === $post_type ) {
		return true;
	}
	return $allowed;
}, 10, 3 );

// Describe the terms of a non-public taxonomy in the public SEO route.
add_filter( 'seopress_api_public_term_is_readable', function( $allowed, $term_id, $taxonomy ) {
	if ( 'my_internal_taxonomy' === $taxonomy && term_exists( $term_id, $taxonomy ) ) {
		return true;
	}
	return $allowed;
}, 10, 3 );

Metadatos SEO en las rutas del núcleo de WordPress (/wp/v2)

SEOPress registra sus metadatos de publicación en las rutas REST del núcleo de WordPress (/wp/v2/posts, /wp/v2/pages, etc.) para que el editor de bloques pueda leerlos y guardarlos. Hasta la 10.4, también aparecían en las respuestas públicas de estas rutas. Desde SEOPress 10.4:

  • un usuario que no puede editar la publicación, visitantes incluidos, ya no recibe ningún metadato de SEOPress (_seopress_*) en el campo meta. Por defecto, ninguna clave sigue siendo pública;
  • un usuario que puede editar la publicación los conserva, salvo las claves de un área de la que su rol está bloqueado en SEO > Avanzado > Seguridad (por ejemplo, las palabras clave objetivo para un rol marcado en Análisis del contenido: roles bloqueados).

Para un front-end headless, la fuente recomendada es la ruta seopress/v1/posts/[postId]: devuelve los valores tal y como se muestran en el sitio. Si su front-end lee los metadatos sin procesar desde /wp/v2, indique las claves que deben seguir siendo públicas con el filtro seopress_rest_public_meta_keys:

// Keep the SEO title and meta description in public /wp/v2 responses.
add_filter( 'seopress_rest_public_meta_keys', function( $keys, $post ) {
	$keys[] = '_seopress_titles_title';
	$keys[] = '_seopress_titles_desc';
	return $keys;
}, 10, 2 );

Indique solo las claves que su front-end necesita: las palabras clave objetivo, una redirección que no está activada o los ajustes del análisis de contenido no están pensados para ser públicos.

Redirecciones a otro sitio web

Cualquier usuario que puede editar una publicación puede activar su redirección. Desde SEOPress 10.4, el destino de la redirección de una publicación o de un término debe estar en su sitio, salvo que el usuario tenga la capacidad manage_options o unfiltered_html. Así se impide que un usuario convierta una de sus URL en un enlace hacia cualquier dominio (una redirección abierta).

  • Un destino en su sitio, o en un host añadido con el filtro allowed_redirect_hosts de WordPress, siempre se acepta.
  • Se acepta conservar el destino ya guardado, de modo que un autor puede seguir actualizando una publicación que un administrador ha redirigido.
  • No se comprueba nada cuando ningún usuario ha iniciado sesión (cron, WP-CLI, importaciones).
  • El gestor de redirecciones de SEOPress PRO no se ve afectado: tiene sus propias capacidades.

La regla se aplica a todas las formas de guardar la redirección de una publicación o de un término, incluida la API REST. Con PUT /wp-json/seopress/v1/posts/[postId]/redirection-settings, un destino rechazado devuelve el error seopress_redirection_external_target (HTTP 403) y no se guarda nada. A través de /wp/v2, se conserva el destino anterior sin aviso. Para permitir que más usuarios redirijan a otro sitio web, use el filtro seopress_redirection_external_target_allowed:

// Accept the shop subdomain as a redirection target for every user who can edit the post.
add_filter( 'seopress_redirection_external_target_allowed', function( $allowed, $url ) {
	if ( 'shop.example.com' === wp_parse_url( $url, PHP_URL_HOST ) ) {
		return true;
	}
	return $allowed;
}, 10, 2 );

Restricciones de la metabox SEO en las rutas de lectura

Las rutas de escritura de la metabox SEO ya rechazaban un rol marcado en SEO > Avanzado > Seguridad. Desde SEOPress 10.4, las rutas GET que lee la metabox siguen la misma regla, de modo que un rol bloqueado ya no puede obtener los campos que la metabox le oculta. Los administradores nunca se bloquean.

Ruta Se rechaza cuando el rol está marcado en
title-description-metas, target-keywords, meta-robot-settings, preview-title-description-metas, page-preview, count-target-keywords-use tanto Metaboxes SEO: roles bloqueados como Análisis del contenido: roles bloqueados
social-settings, redirection-settings, redirection-test Metaboxes SEO: roles bloqueados
content-analysis (GET) y content-analysis/analyze (POST) Análisis del contenido: roles bloqueados

Todas estas rutas se encuentran en /wp-json/seopress/v1/posts/[postId]/ y siguen requiriendo la capacidad edit_post. Las abilities de SEOPress que modifican los ajustes SEO aplican las mismas restricciones de rol desde la 10.4 (la lectura sigue permitida en ellas), consulte Usar las abilities de SEOPress (Free y PRO).

Obtener la configuración de SEOPress

Desde SEOPress 5.5, puede solicitar la configuración global de SEOPress a través de nuestra API REST.

Tenga en cuenta que, por razones de seguridad, debe iniciar sesión con un usuario que tenga la capacidad manage_options.

Actualmente hay 10 rutas disponibles:

  • /wp-json/seopress/v1/options/dashboard-settings: Configuración del panel
  • /wp-json/seopress/v1/options/titles-settings: Configuración de títulos y metas
  • /wp-json/seopress/v1/options/social-settings: Configuración de redes sociales
  • /wp-json/seopress/v1/options/sitemaps-settings: Configuración de mapas de sitio
  • /wp-json/seopress/v1/options/analytics-settings: Ajustes de medición y análisis estadístico
  • /wp-json/seopress/v1/options/advanced-settings: Ajustes avanzados
  • /wp-json/seopress/v1/options/bot-settings: Configuración de bots
  • /wp-json/seopress/v1/options/indexing-settings: Configuración de indexación instantánea
  • /wp-json/seopress/v1/options/license-settings: Configuración de licencia
  • /wp-json/seopress/v1/options/pro-settings: Configuración PRO

Método disponible: GET.

Obtendrá en respuesta un JSON con la siguiente información (p. ej., con la configuración del panel):

{
  "cards_order": [
    "seopress-page-list",
    "notice-insights-alert",
    "seopress-news-panel"
  ],
  "toggle-rich-snippets": "1",
  "toggle-404": "1",
  "toggle-bot": "1",
  "toggle-titles": "1",
  "toggle-white-label": "0",
  "toggle-social": "1",
  "toggle-xml-sitemap": "1",
  "toggle-google-analytics": "1",
  "toggle-advanced": "1",
  "toggle-woocommerce": "1",
  "toggle-edd": "1",
  "toggle-local-business": "1",
  "toggle-dublin-core": "1",
  "toggle-breadcrumbs": "1",
  "toggle-robots": "1",
  "toggle-news": "1",
  "toggle-rewrite": "1",
  "toggle-instant-indexing": "1",
  "notice-wizard": "1"
}

Obtener el historial de indexación instantánea

Desde SEOPress 10.4, cada URL enviada a IndexNow o a Google, de forma manual o automática, se registra en un historial que puede solicitar utilizando nuestra API REST.

Tenga en cuenta que, por razones de seguridad, debe iniciar sesión con un usuario que tenga la capacidad manage_options, salvo para la ruta por publicación (edit_post).

Actualmente hay 2 rutas disponibles:

  • /wp-json/seopress/v1/instant-indexing/history: todo el historial, del más reciente al más antiguo, lista de argumentos disponibles a continuación:
    • page (opcional): integer, por defecto 1
    • per_page (opcional): integer, de 1 a 100, por defecto 20
    • search (opcional): string, parte de una URL
    • source (opcional): manual o auto
  • /wp-json/seopress/v1/posts/[postId]/indexing-history: los 20 últimos envíos de una publicación, reemplace [postId] por el ID de su publicación

Métodos disponibles: GET, y DELETE en /instant-indexing/history para vaciar todo el historial.

Obtendrá en respuesta un JSON con la siguiente información:

{
    "items": [
        {
            "id": 42,
            "url": "https://example.com/my-post/",
            "post_id": 123,
            "engine": "indexnow",
            "source": "auto",
            "status_code": 200,
            "success": true,
            "message": "",
            "date_gmt": "2026-10-28T09:15:00+00:00",
            "date": "October 28, 2026 9:15 am"
        }
    ],
    "total": 1,
    "total_pages": 1,
    "max_rows": 5000
}

engine vale indexnow o google. La ruta por publicación devuelve items, además de automatic (si el envío automático está activado) y history_url (el enlace a la pestaña Historial, vacío para un usuario que no puede abrirla). Por defecto, el historial conserva las 5.000 filas más recientes, una fila por URL y por motor de búsqueda. Cambie este número con el filtro seopress_instant_indexing_history_max_rows; 0 detiene el registro.

Obtener redirecciones

Desde SEOPress 8.8, puede obtener la lista de redirecciones de SEOPress a través de nuestra API REST.

Tenga en cuenta que, por razones de seguridad, debe iniciar sesión con un usuario que tenga la capacidad read_redirection.

Actualmente hay 1 ruta disponible:

  • /wp-json/seopress/v1/redirections: para obtener todas las redirecciones, lista de argumentos disponibles a continuación:
    • id (opcional): integer, ID de la redirección
    • enabled (opcional): string, yes o no
    • type (opcional): array de tipos de redirección, 301, 302, 307, 404, 410, 451

Método disponible: GET.

Obtendrá en respuesta un JSON con la siguiente información:

{
  "success": true,
  "data": {
    "1681": {
      "origin": "my-origin-redirect",
      "destination": "https://www.seopress.org/redirect",
      "enabled": "yes",
      "type": "301",
      "param": "",
      "enabled_regex": "",
      "logged_status": "",
      "ip": "",
      "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36",
      "full_origin": "",
      "date_request": "",
      "count": "14",
      "redirect_date_request": "1747125367"
    }
  }
}

Obtener informes de Search Console de sus publicaciones

Desde SEOPress 5.7, puede solicitar los informes de Google Search Console de sus publicaciones utilizando nuestra API REST.

Tenga en cuenta que, por razones de seguridad, debe iniciar sesión con un usuario que tenga la capacidad edit_post.

Actualmente hay 1 ruta disponible:

  • /wp-json/seopress/v1/posts/[postID]/inspect : reemplace [postID] por el ID de su publicación

Método disponible: GET, POST.

Obtendrá en respuesta un JSON con la siguiente información:

{
    "google_api_key_is_empty": false,
    "data": {
        "inspectionResult": {
            "inspectionResultLink": "https://search.google.com/search-console/inspect?resource_id=https://example.com/&id=xxxxxxxx&utm_medium=link&utm_source=api",
            "indexStatusResult": {
                "coverageState": "Indexed, not submitted in sitemap",
                "crawledAs": "MOBILE",
                "googleCanonical": "https://example.com/",
                "indexingState": "INDEXING_ALLOWED",
                "lastCrawlTime": "2022-04-29T13:25:27Z",
                "pageFetchState": "SUCCESSFUL",
                "referringUrls": [
                    "https://www.example.com/"
                ],
                "robotsTxtState": "ALLOWED",
                "sitemap": null,
                "userCanonical": "https://example.com/",
                "verdict": "PASS"
            },
            "mobileUsabilityResult": {
                "verdict": "PASS"
            },
            "richResultsResult": {
                "verdict": "PASS",
                "detectedItems": [
                {
                    "richResultType": "Logos",
                    "items": [
                    {
                        "name": "Unnamed item"
                    }
                    ]
                },
                {
                    "richResultType": "Sitelinks searchbox",
                    "items": [
                        {
                            "name": "Unnamed item"
                        }
                        ]
                    }
                ]
            }
        }
    }
}

Solicitar las alertas SEO

Desde SEOPress PRO 9.7 | PRO

/wp-json/seopress/v1/alerts

Método: GET

Devuelve el estado en tiempo real de las tres verificaciones de alertas SEO: detección de noindex en la página de inicio, accesibilidad del robots.txt y accesibilidad del sitemap XML. Los resultados se almacenan en caché durante 5 minutos.

Ejemplos

  • Obtener las alertas SEO: /wp-json/seopress/v1/alerts
  • Forzar una nueva verificación (omite la caché): /wp-json/seopress/v1/alerts?force=true

Parámetros

Argumento Descripción
[force] Booleano. Omite la caché y fuerza una nueva verificación. Por defecto: false. Limitado a una vez por usuario cada 60 segundos.

Respuesta

{
    "homepage_noindex": {
        "status": "ok",
        "checked_url": "https://example.com",
        "noindex_found": false
    },
    "robots_txt": {
        "status": "ok",
        "checked_url": "https://example.com/robots.txt",
        "http_code": 200
    },
    "xml_sitemap": {
        "status": "error",
        "checked_url": "https://example.com/sitemaps.xml",
        "http_code": 404
    },
    "timestamp": "2026-03-31T12:00:00+00:00"
}

Capacidad requerida: manage_options

Solicitar los esquemas automáticos

Desde SEOPress PRO 9.7 | PRO

/wp-json/seopress/v1/schemas

Método: GET

Devuelve todas las plantillas de esquemas automáticos (datos estructurados) configuradas en SEOPress.

Ejemplos

  • Obtener todos los esquemas: /wp-json/seopress/v1/schemas
  • Filtrar por tipo de esquema: /wp-json/seopress/v1/schemas?type=faq

Parámetros

Argumento Descripción
[type] Filtrar los esquemas por tipo. Valores aceptados: articles, localbusiness, faq, howto, courses, recipes, jobs, videos, events, products, softwareapp, services, review, custom.

Respuesta

{
    "data": [
        {
            "id": 123,
            "title": "My FAQ Schema",
            "type": "faq",
            "rules": [...],
            "meta": {
                "_seopress_pro_rich_snippets_faq_...": "..."
            }
        }
    ],
    "total": 1
}

Capacidad requerida: edit_schemas

Solicitar un esquema automático

/wp-json/seopress/v1/schemas/[schemaId]

Método: GET

Devuelve una plantilla de esquema automático por su identificador.

Parámetros

Argumento Descripción
<schemaId> El identificador del esquema.

Capacidad requerida: edit_schema

Crear un esquema automático

/wp-json/seopress/v1/schemas

Método: POST

Crea una nueva plantilla de esquema automático.

Cuerpo JSON

{
    "title": "My FAQ Schema",
    "type": "faq",
    "rules": [...],
    "meta": {
        "_seopress_pro_rich_snippets_faq_...": "..."
    }
}

Parámetros

Argumento Descripción
<title> El título del esquema. Obligatorio.
<type> El tipo de esquema. Obligatorio. Valores aceptados: articles, localbusiness, faq, howto, courses, recipes, jobs, videos, events, products, softwareapp, services, review, custom.
[rules] Reglas de segmentación (tipos de contenido, taxonomías, etc.). Opcional.
[meta] Valores de metadatos del esquema. Las claves deben empezar por _seopress_pro_rich_snippets_. Opcional.

Capacidad requerida: publish_schemas

Actualizar un esquema automático

/wp-json/seopress/v1/schemas/[schemaId]

Método: PUT

Actualiza una plantilla de esquema automático existente.

Parámetros

Argumento Descripción
<schemaId> El identificador del esquema.
[title] El título del esquema.
[type] El tipo de esquema.
[rules] Reglas de segmentación.
[meta] Valores de metadatos del esquema.

Capacidad requerida: edit_schema

Eliminar un esquema automático

/wp-json/seopress/v1/schemas/[schemaId]

Método: DELETE

Elimina una plantilla de esquema automático.

Parámetros

Argumento Descripción
<schemaId> El identificador del esquema.

Capacidad requerida: delete_schema

Solicitar los esquemas manuales de una entrada

Desde SEOPress PRO 5.0 | PRO

/wp-json/seopress/v1/posts/[postId]/schemas-manual

Método: GET

Devuelve los rich snippets manuales (datos estructurados) configurados para una entrada específica, junto con los tipos de esquemas disponibles y sus campos.

Parámetros

Argumento Descripción
<postId> El identificador de la entrada.

Capacidad requerida: edit_post

Enviar los esquemas manuales de una entrada

/wp-json/seopress/v1/posts/[postId]/schemas-manual

Método: PUT

Actualiza los rich snippets manuales de una entrada específica.

Cuerpo JSON

{
    "schemas": [
        {
            "_seopress_pro_rich_snippets_type": "faq",
            "_seopress_pro_rich_snippets_faq": [...]
        }
    ]
}

Parámetros

Argumento Descripción
<postId> El identificador de la entrada.

Capacidad requerida: edit_post

Solicitar los datos del sitemap de vídeo de una entrada

Desde SEOPress PRO 5.0 | PRO

/wp-json/seopress/v1/posts/[postId]/video-sitemap

Método: GET

Devuelve los datos del sitemap de vídeo de una entrada específica, incluidas todas las entradas de vídeo y sus campos (URL, título, descripción, miniatura, duración, valoración, etc.).

Parámetros

Argumento Descripción
<postId> El identificador de la entrada.

Capacidad requerida: edit_post

Enviar los datos del sitemap de vídeo de una entrada

Desde SEOPress PRO 5.1

/wp-json/seopress/v1/posts/[postId]/video-sitemap

Método: PUT

Actualiza los datos del sitemap de vídeo de una entrada específica.

Cuerpo JSON

{
    "_seopress_video_disabled": false,
    "videos": [
        {
            "url": "https://www.youtube.com/watch?v=xxxxx",
            "title": "My Video Title",
            "desc": "My video description",
            "thumbnail": "https://example.com/thumb.jpg",
            "duration": 120,
            "rating": 4.5,
            "tag": "seo, wordpress",
            "family_friendly": false,
            "internal_video": false,
            "view_count": 1500
        }
    ]
}

Parámetros

Argumento Descripción
<postId> El identificador de la entrada.

Capacidad requerida: edit_post

Solicitar los ajustes de Google News de una entrada

Desde SEOPress PRO 5.0 | PRO

/wp-json/seopress/v1/posts/[postId]/google-news-settings

Método: GET

Devuelve los ajustes del sitemap de Google News de una entrada específica.

Parámetros

Argumento Descripción
<postId> El identificador de la entrada.

Capacidad requerida: edit_post

Enviar los ajustes de Google News de una entrada

Desde SEOPress PRO 5.1

/wp-json/seopress/v1/posts/[postId]/google-news-settings

Método: PUT

Actualiza los ajustes del sitemap de Google News de una entrada específica.

Cuerpo JSON

{
    "_seopress_news_disabled": "yes"
}

Parámetros

Argumento Descripción
<postId> El identificador de la entrada.
<_seopress_news_disabled> Establecer en «yes» para excluir la entrada del sitemap de Google News. Omitir o establecer cualquier otro valor para incluirla.

Capacidad requerida: edit_post

Generar metadatos SEO con IA

Desde SEOPress PRO 5.0 | PRO

/wp-json/seopress/v1/posts/[postId]/generate-metas-by-ai

Método: POST

Genera un título SEO y una meta descripción para una entrada mediante IA.

Ejemplos

  • Generar metadatos en francés: POST /wp-json/seopress/v1/posts/123/generate-metas-by-ai {"lang": "fr_FR"}

Parámetros

Argumento Descripción
<postId> El identificador de la entrada.
[lang] Idioma/locale para la generación. Opcional. Por defecto: locale del sitio (p. ej. en_US).

Capacidad requerida: edit_post

Generar metadatos sociales con IA

Desde SEOPress PRO 9.4 | PRO

/wp-json/seopress/v1/posts/[postId]/generate-social-metas-by-ai

Método: POST

Genera etiquetas meta para redes sociales (Open Graph o Twitter) para una entrada mediante IA.

Ejemplos

  • Generar un título de Facebook en inglés: POST /wp-json/seopress/v1/posts/123/generate-social-metas-by-ai {"platform": "facebook", "meta_type": "title", "lang": "en_US"}

Parámetros

Argumento Descripción
<postId> El identificador de la entrada.
<platform> La plataforma social. Valores aceptados: «facebook», «twitter».
<meta_type> Qué metadato generar. Valores aceptados: «title», «desc».
[lang] Idioma/locale para la generación. Opcional. Por defecto: locale del sitio.

Capacidad requerida: edit_post

Solicitar sugerencias de palabras clave significativas

Desde SEOPress PRO 5.0 | PRO

/wp-json/seopress/v1/posts/[postId]/significant-keywords

Método: GET

Devuelve sugerencias de palabras clave basadas en el análisis del contenido de la entrada.

Parámetros

Argumento Descripción
<postId> El identificador de la entrada.

Respuesta

{
    "suggestions": [
        {"keyword": "seo", "count": 12, "density": 2.5},
        {"keyword": "wordpress", "count": 8, "density": 1.7}
    ]
}

Capacidad requerida: edit_post

Obtener problemas de SEO

Desde SEOPress 8.2, puede obtener sus problemas de SEO (función de auditoría del sitio) utilizando nuestra API REST.

Tenga en cuenta que, por razones de seguridad, debe iniciar sesión con un usuario que tenga la capacidad manage_options.

Actualmente hay 2 rutas disponibles:

  • /wp-json/seopress/v1/seo-issues/[postId] : para obtener los problemas de SEO de la publicación, reemplace [postId] por el ID de la publicación deseada
  • /wp-json/seopress/v1/seo-issues/ para obtener todos los problemas, lista de argumentos disponibles a continuación:
    • id (opcional): ID de la publicación
    • ignore (opcional): booleano (1 o 0)
    • type (opcional): all_canonical, json_schemas, old_post, permalink, headings, title, description, social, robots, img_alt, nofollow_links, outbound_links, internal_links
    • priority (opcional): high, medium, low, good
    • name (opcional): json_schemas_duplicated, json_schemas_not_found, old_post, keywords_permalink, headings_not_found, headings_h1_duplicated, headings_h1_not_found, headings_h1_without_target_kw, headings_h2_without_target_kw, headings_h3_without_target_kw, title_without_target_kw, title_too_long, title_not_custom, description_without_target_kw, description_too_long, description_not_custom, og_title_duplicated, og_title_empty, og_title_missing, og_desc_duplicated, og_desc_empty, og_desc_missing, og_img_empty, og_img_missing, og_url_duplicated, og_url_empty, og_url_missing, og_sitename_duplicated, og_sitename_empty, og_sitename_missing, x_title_duplicated, x_title_empty, x_title_missing, x_desc_duplicated, x_desc_empty, x_desc_missing, x_img_empty, x_img_missing, meta_robots_duplicated, meta_robots_noindex, meta_robots_nofollow, meta_robots_noimageindex, meta_robots_nosnippet, meta_robots_nositelinkssearchbox, img_alt_missing, img_alt_no_media, nofollow_links_too_many, outbound_links_missing, internal_links_missing, canonical_duplicated, canonical_missing

Método disponible: GET.

Obtendrá en respuesta un JSON con la siguiente información:

{
    "success": true,
    "data": [
        {
            "id": "1",
            "post_id": "1",
            "issue_name": "json_schemas_not_found",
            "issue_desc": "",
            "issue_type": "json_schemas",
            "issue_priority": "medium",
            "issue_ignore": "1"
        },
        {
            "id": "2",
            "post_id": "1",
            "issue_name": "keywords_permalink",
            "issue_desc": "",
            "issue_type": "permalink",
            "issue_priority": "medium",
            "issue_ignore": "0"
        },
        {
            "id": "3",
            "post_id": "1",
            "issue_name": "headings_h1_without_target_kw",
            "issue_desc": "",
            "issue_type": "headings",
            "issue_priority": "high",
            "issue_ignore": "0"
        }
    ];
}

Solicitar el análisis de contenido

Desde SEOPress 5.0 | Free

/wp-json/seopress/v1/posts/[postId]/content-analysis

Método: GET

Ejecuta un análisis de contenido completo en la entrada indicada y devuelve las verificaciones SEO detalladas (enlaces internos, enlaces salientes, puntuación, uso de palabras clave, etc.).

Desde SEOPress 10.4, la respuesta también contiene score_summary: cuántas verificaciones supera y no supera la entrada, y cuántas se han ejecutado (passed, failed, total), sin contar las verificaciones ignoradas. Es la proporción que se muestra en la columna Puntuación. score ahora indica el impacto de cada verificación, indexado por verificación, en lugar de la lista de impactos distintos. Un rol marcado en Análisis del contenido: roles bloqueados no puede solicitar el análisis.

Parámetros

Argumento Descripción
<postId> El identificador de la entrada.
[target_keywords] Opcional. Palabras clave separadas por comas a analizar. Si se omite, se usan las palabras clave guardadas en la base de datos.

Capacidad requerida: edit_post

Guardar el análisis de contenido

Desde SEOPress 5.0 | Free

/wp-json/seopress/v1/posts/[postId]/content-analysis

Método: POST

Guarda los datos del análisis de contenido (enlaces internos, enlaces salientes y puntuación) de una entrada.

Cuerpo JSON

{
    "score": "good",
    "internal_links": ["https://example.com/page1", "https://example.com/page2"],
    "outbound_links": ["https://external.com/page1"]
}

Parámetros

Argumento Descripción
<postId> El identificador de la entrada.

Capacidad requerida: edit_post

Solicitar el informe de Google Page Speed

Desde SEOPress 8.8, puede solicitar su informe de Google Page Speed mediante nuestra API REST.

Tenga en cuenta que, por razones de seguridad, debe iniciar sesión con un usuario que tenga la capacidad manage_options.

Actualmente hay 1 ruta disponible:

  • /wp-json/seopress/v1/page-speed para obtener el informe de Google Page Speed, lista de argumentos disponibles a continuación:
    • device (opcional): mobile (default) or desktop

Método disponible: GET.

Recibirá una respuesta JSON.

Solicitar estadísticas de Google Analytics 4

Desde SEOPress 8.8, puede solicitar sus estadísticas de Google Analytics 4 mediante nuestra API REST.

Tenga en cuenta que, por razones de seguridad, debe iniciar sesión con un usuario que tenga la capacidad edit_dashboard.

Actualmente hay 1 ruta disponible:

  • /wp-json/seopress/v1/ga4 para obtener las estadísticas de Google Analytics 4

Método disponible: GET.

Recibirá una respuesta JSON con todas las métricas por fecha.

Solicitar estadísticas de Matomo Analytics

Desde SEOPress 8.8, puede solicitar sus estadísticas de Matomo Analytics mediante nuestra API REST.

Tenga en cuenta que, por razones de seguridad, debe iniciar sesión con un usuario que tenga la capacidad edit_dashboard.

Actualmente hay 1 ruta disponible:

  • /wp-json/seopress/v1/matomo para obtener las estadísticas de Matomo Analytics

Método disponible: GET.

Recibirá una respuesta JSON con todas las métricas por fecha.

Desde SEOPress PRO 10.4, cuando la última sincronización con Matomo ha fallado, la respuesta explica el motivo en lugar de estar vacía. reason vale token_rejected, unreachable, unreadable u other:

{
    "error": {
        "reason": "unreachable",
        "summary": "Your Matomo instance could not be reached.",
        "hint": "Check the Matomo URL, that the instance is up, and that its TLS certificate is valid.",
        "response": "",
        "time": 1761643200,
        "date": "October 28, 2026 9:20 am"
    }
}

Solicitar clasificaciones de SEOPress Insights

Desde SEOPress Insights 2.0, puede solicitar las clasificaciones de sus palabras clave utilizando nuestra API REST.

Tenga en cuenta que, por razones de seguridad, debe iniciar sesión con un usuario que tenga la capacidad manage_options.

Actualmente hay 1 ruta disponible:

  • /wp-json/seopress-insights/v1/rankings, lista de argumentos disponibles a continuación:
    • kws (opcional): array de ID
    • cpt (opcional): string, seopress_rankings
    • dates (opcional): array de timestamps

Método disponible: GET.

Obtendrá en respuesta un JSON con la siguiente información:

{
    "2025/02/17": [
        {
            "keyword": "your keyword",
            "p": 18,
            "url": "https://www.seopress.org/example",
            "search_volume": 2900,
            "cpc": 4.1100000000000003,
            "competition": 0.13,
            "date": 1739760053,
            "added": 1634064757,
            "id": 7389
        }
    ],
}

Solicitar competidores de SEOPress Insights

Desde SEOPress Insights 2.0, puede solicitar los competidores que ocupan la primera posición utilizando nuestra API REST.

Tenga en cuenta que, por razones de seguridad, debe iniciar sesión con un usuario que tenga la capacidad manage_options.

Actualmente hay 1 ruta disponible:

  • /wp-json/seopress-insights/v1/competitors, lista de argumentos disponibles a continuación:
    • kws (opcional): array de ID
    • cpt (opcional): string, seopress_p1_rankings
    • dates (opcional): array de timestamps

Método disponible: GET.

Obtendrá en respuesta un JSON con la siguiente información:

{
    "2025/02/17": [
        {
            "keyword": "your keyword",
            "p": 18,
            "url": "https://www.example.com/my-competitor",
            "search_volume": 2900,
            "cpc": 4.1100000000000003,
            "competition": 0.13,
            "date": 1739760053,
            "added": 1634064757,
            "id": 7389
        }
    ],
}

Desde SEOPress Insights 2.0, puede solicitar sus backlinks utilizando nuestra API REST.

Tenga en cuenta que, por razones de seguridad, debe iniciar sesión con un usuario que tenga la capacidad manage_options.

Actualmente hay 1 ruta disponible:

  • /wp-json/seopress-insights/v1/backlinks

Método disponible: GET.

Obtendrá en respuesta un JSON con la siguiente información:

[
    {
        "backlink": "https://example.com/seopress",
        "acr_rank": 1,
        "anchor_text": "visit website",
        "source_title": "SEOPress",
        "source_out_domains_ext": "2",
        "source_out_links_ext": "3",
        "source_out_links_int": "6",
        "source_language": "en",
        "source_language_desc": "English",
        "source_language_conf": 99,
        "flag_redirect": 0,
        "flag_frame": 0,
        "flag_no_follow": 1,
        "flag_images": 0,
        "flag_deleted": 0,
        "flag_alt_text": 0,
        "flag_mention": 0,
        "target_url": "https://www.seopress.org/",
        "indirect_target_url": "",
        "indirect_target_type": "",
        "target_title": "SEOPress - The Best SEO Tools for WordPress in 2025",
        "target_language": "en",
        "target_language_desc": "English",
        "target_language_conf": 99,
        "links_root_domain": -1,
        "domain_id": 3245,
        "first_indexed_date": "2025-02-19",
        "last_seen_date": "2025-02-19",
        "date_lost": "",
        "reason_lost": "",
        "link_type": "TextLink",
        "link_sub_type": "TextLink_Normal",
        "target_citation_flow": 42,
        "target_trust_flow": 28,
        "target_topical_tf": "Business",
        "target_topical_tf_value": 27,
        "source_cf": 9,
        "source_tf": 0,
        "source_topical_tf": "",
        "source_topical_tf_value": "",
        "source_topical_tf_1": "",
        "source_topical_tf_value_1": "",
        "source_topical_tf_2": "",
        "source_topical_tf_value_2": "",
        "date": false
    },
]

Solicitar el escritorio de Insights

Devuelve los datos del escritorio: resumen de indicadores, tendencia de posiciones, mayores subidas y bajadas, distribución de posiciones, palabras clave favoritas y resumen de backlinks.

GET /wp-json/seopress-insights/v1/dashboard

Añade un enlace que la importación de Majestic no ha encontrado, por ejemplo una colaboración o un artículo invitado. Solo source_url es obligatorio.

POST /wp-json/seopress-insights/v1/backlinks/manual

{
  "source_url": "https://example.com/blog/post",
  "target_url": "https://your-site.com/page",
  "anchor_text": "your anchor",
  "source_language": "en",
  "flag_no_follow": false,
  "source_cf": 30,
  "source_tf": 25,
  "first_indexed_date": "2026-08-01",
  "source_topical_tf": "Computers/Internet"
}

Todas las rutas de Insights requieren la capacidad de Insights correspondiente. Consulte las capacidades de usuario de SEOPress e Insights.