> ## Documentation Index
> Fetch the complete documentation index at: https://documentation.onesignal.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Solución de problemas WordPress

> Guía completa para solucionar problemas comunes de configuración con Notificaciones Web Push de OneSignal en WordPress, incluyendo compatibilidad de navegador (Chrome, Firefox, Safari), integración de plugin y resolución de conflictos de CDN o caché.

## Problemas comunes de configuración

### Verificar la configuración de tu dashboard de OneSignal

Asegúrate de haber completado cada paso en la [guía de configuración de WordPress](./wordpress):

* Selecciona la opción **WordPress Plugin** al crear tu aplicación OneSignal
* Tu URL del Sitio debe coincidir exactamente con la URL del navegador
  * Por ejemplo, `https://example.com` **no** es lo mismo que `https://www.example.com`. Usa una versión consistentemente.
  * Solo se soporta un origen de sitio para push. Consulta [Política del mismo origen](https://developer.mozilla.org/en-US/docs/Web/Security/Same-origin_policy).
* Asegúrate de haber agregado al menos una solicitud de permiso.

### No agregar el código de OneSignal manualmente

El plugin de WordPress de OneSignal incluye **automáticamente** el script de inicialización y el Service Worker.

* **No** agregues código `init` de JavaScript de OneSignal a tu sitio.
* **No** uses la [Configuración de Código Personalizado](./web-push-custom-code-setup) con el plugin de WordPress. Si necesitas personalizar el método `init`, **desinstala el plugin** y agrega el código y el Service Worker manualmente.

### Enviar notificación cuando se publica una entrada

Cuando publicas una entrada, página o tipo de entrada personalizado, OneSignal puede enviar automáticamente una notificación a tus suscriptores.

<Frame caption="Metabox de OneSignal Push Notifications——arrastra para reposicionar si es necesario">
  <img src="https://mintcdn.com/onesignal/kAXbp86YqdTAbPtE/images/web-push/onesignal-push-notifications-metabox-wordpress.png?fit=max&auto=format&n=kAXbp86YqdTAbPtE&q=85&s=428a477e16f85fa50f9ff69678304340" alt="Metabox de OneSignal Push Notifications——arrastra para reposicionar si es necesario" width="3252" height="1674" data-path="images/web-push/onesignal-push-notifications-metabox-wordpress.png" />
</Frame>

Si no ves la casilla **Enviar notificación cuando la entrada se publique o actualice**, verifica estos elementos:

1. Revisa los metaboxes a la derecha y abajo del editor. Puedes arrastrar y soltar según sea necesario.
2. Revisa las Opciones de Pantalla en la parte superior del editor para asegurarte de que el metabox **OneSignal Push Notifications** esté marcado.

<Frame caption="Opciones de Pantalla mostrando el metabox de OneSignal Push Notifications marcado">
  <img src="https://mintcdn.com/onesignal/kAXbp86YqdTAbPtE/images/web-push/wordpress-screen-options-onesignal-push-notifications-metabox-checked.png?fit=max&auto=format&n=kAXbp86YqdTAbPtE&q=85&s=fd11371fd17a5d66fec241bcc2ff5084" alt="Opciones de Pantalla mostrando el metabox de OneSignal Push Notifications marcado" width="1896" height="330" data-path="images/web-push/wordpress-screen-options-onesignal-push-notifications-metabox-checked.png" />
</Frame>

3. Verifica si usas un Tipo de Entrada Personalizado. Normalmente se encuentra en la URL como `post_type=your_custom_type`. Si es así, agrega el tipo de entrada personalizado al campo **Tipos de Entrada Personalizados** en la [configuración del plugin WordPress de OneSignal](./wordpress#add-a-custom-post-type-to-onesignal-wordpress-plugin).

<Frame caption="Ejemplo de dónde encontrar el nombre del tipo de entrada personalizado">
  <img src="https://mintcdn.com/onesignal/kAXbp86YqdTAbPtE/images/web-push/wordpress-find-custom-post-types-field.png?fit=max&auto=format&n=kAXbp86YqdTAbPtE&q=85&s=3239d37ca790551c1fd3685f8424f319" alt="Configuración del plugin WordPress de OneSignal mostrando el campo de Tipos de Entrada Personalizados" width="1154" height="894" data-path="images/web-push/wordpress-find-custom-post-types-field.png" />
</Frame>

***

## Cómo solucionar problemas de tu sitio

<Steps>
  <Step title="Verificar que el plugin esté activo y abrir herramientas de desarrollador">
    Carga tu sitio en una ventana de navegador normal (no incógnito) con el plugin habilitado.

    <Frame caption="Haz clic derecho en tu sitio, haz clic en Inspeccionar y abre la pestaña Console.">
      <img src="https://mintcdn.com/onesignal/3zq1PvSaqvUE2bIx/images/docs/28c27ab14a40621fbcc2c4168d49a2bf72088536a669be59c160b7a30a7fcd95-Screenshot_2025-02-27_at_10.39.27_AM.png?fit=max&auto=format&n=3zq1PvSaqvUE2bIx&q=85&s=38d793be0784bcfd8acee745e3757dcf" alt="Herramientas de Desarrollador del navegador abiertas con la pestaña Console seleccionada en un sitio WordPress" width="1814" height="1024" data-path="images/docs/28c27ab14a40621fbcc2c4168d49a2bf72088536a669be59c160b7a30a7fcd95-Screenshot_2025-02-27_at_10.39.27_AM.png" />
    </Frame>
  </Step>

  <Step title="Verificar errores de OneSignal en la consola">
    Abre la pestaña **Console**, refresca la página y busca errores rojos o amarillos relacionados con OneSignal.
    Consulta [Errores comunes de consola de OneSignal](#common-onesignal-console-errors) para ayuda.
  </Step>

  <Step title="Verificar estado de suscripción en el navegador">
    Después de que la página termine de cargarse y no veas errores de OneSignal en la Consola, pega esto:

    ```javascript JavaScript theme={null}
    OneSignal.User.PushSubscription.id
    ```

    Si el visitante está suscrito, devuelve una cadena (el ID de Suscripción). Si no está suscrito o la suscripción aún no está lista, puedes ver **`null`** o un valor vacío. Si ves **`OneSignal is not defined`**, espera unos segundos y vuelve a intentarlo, o primero corrige los errores de Consola en [Errores comunes de consola de OneSignal](#common-onesignal-console-errors)——el SDK puede estar cargándose aún mediante el cargador diferido.

    <Frame caption="Encuentra tu ID de Suscripción de OneSignal en la consola.">
      <img src="https://mintcdn.com/onesignal/tc0EvmtSSX56SX0c/images/docs/96cdeebdc8888b5c49b6466bf6975a75fb9497f7e54d34f7da3d6c25b35250ae-Screenshot_2025-02-27_at_11.15.16_AM.png?fit=max&auto=format&n=tc0EvmtSSX56SX0c&q=85&s=f396b737c9cd56257c59d6515086aec6" alt="Consola del navegador mostrando el resultado de la cadena del id de PushSubscription del usuario de OneSignal" width="1258" height="448" data-path="images/docs/96cdeebdc8888b5c49b6466bf6975a75fb9497f7e54d34f7da3d6c25b35250ae-Screenshot_2025-02-27_at_11.15.16_AM.png" />
    </Frame>
  </Step>

  <Step title="Verificar ID de Suscripción en el dashboard de OneSignal">
    En el **dashboard de OneSignal**, ve a **Audience > Subscriptions** y busca el ID devuelto arriba.

    <Frame caption="Busca en tu dashboard de OneSignal el ID de Suscripción.">
      <img src="https://mintcdn.com/onesignal/Z6xkXGfmy814If53/images/docs/e3907be9912e3ed3a934c6968f2e6f9354af519b8c670d1f7de07f32e71a8a80-Screenshot_2025-02-27_at_11.18.06_AM.png?fit=max&auto=format&n=Z6xkXGfmy814If53&q=85&s=76657b84cf0f8f29fa03a776f26cf66c" alt="Campo de búsqueda de Suscripciones del dashboard de OneSignal con búsqueda de ID de suscripción" width="2726" height="780" data-path="images/docs/e3907be9912e3ed3a934c6968f2e6f9354af519b8c670d1f7de07f32e71a8a80-Screenshot_2025-02-27_at_11.18.06_AM.png" />
    </Frame>
  </Step>

  <Step title="Enviar una notificación push de prueba">
    Si la suscripción existe y el estado es **Subscribed**, sigue la [guía de Push](./push) para enviar una notificación.
    Si no aparece nada, consulta [Notifications not shown](./notifications-not-shown-web-push) para correcciones específicas del navegador.
  </Step>
</Steps>

***

## Errores comunes de consola de OneSignal

### <Danger>SdkInitError: OneSignal: This web push config can only be used on ... Your current origin is ...</Danger>

<Frame caption="Error de discordancia de URL del sitio.">
  <img src="https://mintcdn.com/onesignal/_KaXe4GQkxsEfa17/images/docs/334686c64af6155f95d674d0cfd28a5b92739f3cae57382073365ec9206b7e7c-Screenshot_2025-02-27_at_11.35.59_AM.png?fit=max&auto=format&n=_KaXe4GQkxsEfa17&q=85&s=2d8d0656875180f0b77dd88795a4bced" alt="Consola SdkInitError mostrando discordancia de origen de configuración de web push" width="2090" height="192" data-path="images/docs/334686c64af6155f95d674d0cfd28a5b92739f3cae57382073365ec9206b7e7c-Screenshot_2025-02-27_at_11.35.59_AM.png" />
</Frame>

Tu URL del sitio en el dashboard de OneSignal no coincide con tu dominio real.
Asegúrate de que coincida exactamente con el dominio que ves en el navegador.

### <Danger>PushPermissionNotGrantedError: The user dismissed the permission prompt.</Danger>

El visitante rechazó la solicitud del navegador. No aparecerá nuevamente hasta que expire un período de espera.
Consulta [Solicitudes de permiso web](./permission-requests) para reglas del navegador o limpia los datos del sitio para reintentar inmediatamente.

### <Danger>The OneSignal web SDK can only be initialized once.</Danger>

<Frame caption="Error de inicialización duplicada de OneSignal.">
  <img src="https://mintcdn.com/onesignal/Xl2NHJvxakrK4JbL/images/docs/e88d53c6c92a546f188c06e14e1776da8ad63c658c64044b6a674802ce2a2277-Screenshot_2025-02-27_at_2.40.32_PM.png?fit=max&auto=format&n=Xl2NHJvxakrK4JbL&q=85&s=cc2d3a0773b894f423f0d6db598a37a1" alt="Error de consola: el SDK web de OneSignal solo puede inicializarse una vez" width="2164" height="182" data-path="images/docs/e88d53c6c92a546f188c06e14e1776da8ad63c658c64044b6a674802ce2a2277-Screenshot_2025-02-27_at_2.40.32_PM.png" />
</Frame>

Estás cargando OneSignal dos veces. Elimina el código de OneSignal agregado manualmente si estás usando el plugin.

### <Danger>Installing service worker failed.. 403 or 404 error</Danger>

<Frame caption="Archivo Service Worker faltante (403/404).">
  <img src="https://mintcdn.com/onesignal/tc0EvmtSSX56SX0c/images/docs/990e505-Screen_Shot_2020-02-01_at_9.31.44_PM.png?fit=max&auto=format&n=tc0EvmtSSX56SX0c&q=85&s=0d719e6b826477612901d07e1d505f15" alt="Error de consola: instalación del service worker fallida con 403 o 404" width="3364" height="200" data-path="images/docs/990e505-Screen_Shot_2020-02-01_at_9.31.44_PM.png" />
</Frame>

Asegúrate de que este archivo sea accesible (reemplaza `your-site.com` y ajusta el **nombre real de la carpeta del plugin** si difiere del predeterminado):
`https://your-site.com/wp-content/plugins/onesignal-free-web-push-notifications/sdk_files/OneSignalSDKWorker.js`

Si no, consulta [Soporte común de plugin](#common-plugin-support) para corregir problemas de CDN o caché.

***

## Soporte común de plugin

Los CDN y plugins de caché pueden bloquear los archivos requeridos de OneSignal. Las rutas a continuación asumen que el directorio del plugin es **`onesignal-free-web-push-notifications`**; ajusta si tu instalación usa un nombre de carpeta diferente.

### Autoptimize

En **Excluded scripts**, agrega:

```
wp-content/plugins/onesignal-free-web-push-notifications/sdk_files/(.*)
```

### WP Rocket

Bajo **CDN > Exclude Files From CDN**, agrega:

```
(.*)/onesignal-free-web-push-notifications/sdk_files/(.*)
```

### LiteSpeed Cache

Bajo **CDN > Exclude Path**, agrega:

```
(.*)/onesignal-free-web-push-notifications/sdk_files/(.*)
```

Luego presiona guardar.

### WP Super Cache

1. Ve a **Settings > WP Super Cache > CDN**
2. En **Exclude if substring**, incluye: `onesignal-free-web-push-notifications`
3. Haz clic en **Contents** > **Delete Cache**

### WP Engine

WP Engine puede reescribir las URLs de los plugins a través de su CDN. Las reglas de **Procesamiento post-HTML** son específicas de cada entorno; el fragmento a continuación es solo un **ejemplo**——confirma las rutas con el [soporte de WP Engine](https://wpengine.com/support/) o tu Portal de Usuario antes de aplicarlas.

En WP Engine **plugin > General Settings > HTML Post-Processing**, puede que necesites reglas similares a las siguientes. Reemplaza cada marcador de posición con los valores de **tu** sitio y el nombre de host CDN de WP Engine:

| Marcador de posición   | Reemplazar con                                                                    |
| ---------------------- | --------------------------------------------------------------------------------- |
| `YOURSITEHERE`         | Tu dominio sin prefijo (segmento de regex), p. ej. `example` para `example.com`   |
| `mywpenginehandleHere` | El nombre de tu instalación de WP Engine (subdominio antes de `.wpengine.com`)    |
| `wpengineCDNpathHere`  | Tu segmento de ruta NetDNA / CDN de WP Engine (suele aparecer en las URLs de CDN) |
| `mywebsiteHere`        | El origen de tu sitio activo sin ruta, p. ej. `https://example.com`               |

```text text theme={null}
#https?://(www\.)?(YOURSITEHERE\.com|mywpenginehandleHere.wpengine.com|wpengineCDNpathHere.wpengine.netdna-(ssl|cdn).com)/wp-(content|includes)#
=> https://wpengineCDNpathHere-wpengine.netdna-ssl.com/wp-$4
#https://wpengineCDNpathHere-wpengine.netdna-ssl.com/plugins/onesignal-free-web-push-notifications/#
=> https://mywebsiteHere.com/wp-content/plugins/onesignal-free-web-push-notifications/
#https://wpengineCDNpathHere-wpengine.netdna-ssl.com/wp-content/plugins/onesignal-free-web-push-notifications/#
=> https://mywebsiteHere.com/wp-content/plugins/onesignal-free-web-push-notifications/
```

### W3 Total Cache

1. Ve a **Performance > CDN**
2. Bajo **Rejected files**, agrega:

```
{plugins_dir}/onesignal-free-web-push-notifications/sdk_files/*
```

<Frame caption="Configuración de exclusión de W3 Total Cache.">
  <img src="https://mintcdn.com/onesignal/MUgio66t0sYhGEvj/images/docs/64ad121-Screen_Shot_2020-03-02_at_7.36.18_PM.png?fit=max&auto=format&n=MUgio66t0sYhGEvj&q=85&s=1b7d1eb06d32c8beef4026a70111dcdb" alt="Lista de archivos rechazados de CDN de W3 Total Cache incluyendo la ruta sdk_files de OneSignal" width="1071" height="494" data-path="images/docs/64ad121-Screen_Shot_2020-03-02_at_7.36.18_PM.png" />
</Frame>

### BunnyCDN

Excluye *onesignal* en las Rutas Excluidas de CDN del plugin.

<Frame caption="Ejemplo de exclusión de BunnyCDN.">
  <img src="https://mintcdn.com/onesignal/ciRrThfP6xMpI7GY/images/docs/025f46c1159398106997c97a61ad26ffe4ecd6f7a068dcd6e3f743762e6e697b-Screenshot_2024-11-19_at_9.34.35_AM.png?fit=max&auto=format&n=ciRrThfP6xMpI7GY&q=85&s=d893359f9da931a9db313391a58cf1ca" alt="Rutas excluidas del plugin WordPress de BunnyCDN incluyendo onesignal" width="1830" height="518" data-path="images/docs/025f46c1159398106997c97a61ad26ffe4ecd6f7a068dcd6e3f743762e6e697b-Screenshot_2024-11-19_at_9.34.35_AM.png" />
</Frame>

### CDN Enabler

En Settings > CDN Enabler, agrega esto a "Exclusions":

```
onesignal-free-web-push-notifications
```

### PressCDN

En Exclude Directories, agrega:

```
/wp-content/plugins/onesignal-free-web-push-notifications/
```

### Breeze

En **Settings > CDN > Exclude Content**, agrega:

```
/onesignal-free-web-push-notifications/sdk_files/
```

<Frame caption="Ejemplo de exclusión de Breeze.">
  <img src="https://mintcdn.com/onesignal/Z6xkXGfmy814If53/images/docs/e0ea4ad-Screen_Shot_2020-06-30_at_7.59.26_PM.png?fit=max&auto=format&n=Z6xkXGfmy814If53&q=85&s=c12fed5c62e460beec878171e940928d" alt="Campo de exclusión de contenido CDN de Breeze con la ruta sdk_files de OneSignal" width="1219" height="552" data-path="images/docs/e0ea4ad-Screen_Shot_2020-06-30_at_7.59.26_PM.png" />
</Frame>

### Hummingbird Pro

Ve a **Hummingbird > Asset Optimization**. Bajo **JavaScript** (y **CSS** si los assets de OneSignal aparecen allí), localiza archivos cuyas URLs contengan **`onesignal-free-web-push-notifications`** o **`OneSignalSDK`**. **Excluye** dichos archivos de la minificación/combinación/aplazamiento, o cambia la optimización de esos assets a **No cargar** para que el plugin no los reescriba ni los retrase.

<Frame caption="Optimización de Assets de Hummingbird Pro.">
  <img src="https://mintcdn.com/onesignal/RWtLFPeffHrC81wI/images/docs/a888a91-PastedGraphic-4_3.png?fit=max&auto=format&n=RWtLFPeffHrC81wI&q=85&s=e376446d64ec7fa8a8067ac7e8e551ba" alt="Lista de optimización de assets de Hummingbird Pro mostrando exclusiones de scripts" width="476" height="90" data-path="images/docs/a888a91-PastedGraphic-4_3.png" />
</Frame>

### Sucuri

Sigue la [guía de Whitelist de Sucuri](https://kb.sucuri.net/firewall/Whitelist+and+Blacklist/whitelist-file-folder) para permitir archivos de OneSignal.

### Solid Security (anteriormente iThemes Security)

Deshabilita **Disable PHP in Plugins** (o equivalente) bajo **System Tweaks** para que `OneSignalSDKWorker.js.php` pueda ejecutarse.

<Frame caption="Configuración de plugin PHP de iThemes.">
  <img src="https://mintcdn.com/onesignal/KSCNwSpBCNSQ8xdF/images/docs/f78a21b-php-in-plugins.jpg?fit=max&auto=format&n=KSCNwSpBCNSQ8xdF&q=85&s=ee27f7a8662e6f8e2b001056b22aa904" alt="Configuración del plugin de seguridad para permitir PHP en plugins desmarcada o deshabilitada" width="818" height="188" data-path="images/docs/f78a21b-php-in-plugins.jpg" />
</Frame>

### Defender Security plugin

No habilites "Prevent PHP execution".
Ve a Defender Plugin > Security Tweaks y verifica que la configuración esté deshabilitada.

### Ejemplo de .htaccess para acceso al Service Worker

```apache theme={null}
<Files *.php>
Order allow,deny
Deny from all
</Files>
<Files OneSignalSDKWorker.js.php>
Allow from all
ForceType 'application/javascript; charset=UTF-8'
</Files>
<Files OneSignalSDKWorker.js>
Allow from all
ForceType 'application/javascript; charset=UTF-8'
</Files>
```

<Note>
  Apache 2.4+ frecuentemente usa `Require all denied` / `Require all granted` en lugar de `Order allow,deny`. Consulta a tu hosting o ajusta las reglas para que coincidan con la versión de Apache de tu servidor.
</Note>

***

## Ralentizaciones del servidor o sitio inalcanzable después de enviar notificaciones

Si tu servidor experimenta ralentizaciones o se vuelve inalcanzable después de enviar notificaciones, a menudo se debe al aumento de carga de activos de notificación o recursos limitados del servidor.

### No alojar tus propios íconos de notificación

Evita el auto-alojamiento de imágenes usadas en notificaciones. Cuando alojas tus propios íconos o imágenes de notificación, tu servidor puede sobrecargarse ya que el navegador de cada destinatario intenta obtener la imagen al mismo tiempo que se envía una notificación.
Para reducir la tensión del servidor, usa soluciones de alojamiento de imágenes o servicios CDN optimizados para acceso de alta concurrencia.

### Considera actualizar recursos de alojamiento

Si los problemas del servidor persisten, puede que necesites:

* **Actualizar tu plan de alojamiento:** Puede ser necesario un mayor ancho de banda o un alojamiento más potente para manejar envíos de notificaciones a gran escala.
* **Consultar con tu proveedor de alojamiento:** Tu proveedor puede ofrecer perspectivas u optimizaciones específicas para tu entorno de alojamiento.

***
