Un candado ausente en un sitio con certificado válido es contenido mixto: la página llegó por https y algo dentro de ella no. El navegador bloquea o degrada, y el candado se va.

Encuéntrelo en un solo sitio

La consola nombra la URL exacta. Adivinar qué imagen es cuesta mucho más tiempo que abrirla.

// browser console
Mixed Content: The page at 'https://...' was loaded over HTTPS,
but requested an insecure resource 'http://...'.

De dónde suele venir

  • URL http:// absolutas en la base de datos: escritas cuando el sitio era http y nunca actualizadas.
  • Una URL de script o de fuente escrita a mano en el tema.
  • Un incrustado: un mapa, un vídeo, un widget, cuyo proveedor sigue en http.

Arregle la base de datos

wp search-replace 'http://yourdomain.com' 'https://yourdomain.com' --all-tables --precise
Haga copia antes de un buscar y reemplazar. Reescribe todas las tablas, y un reemplazo ingenuo puede corromper los datos serializados: use una herramienta que entienda la serialización, como hace wp search-replace.

Atrape el resto

<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">

Eso le dice al navegador que traiga los subrecursos http por https en su lugar. Es una red para lo que usted no controla, no un sustituto de arreglar sus propias URL: si el otro extremo no tiene https, el recurso falla.

¿Preferir la URL sin protocolo? No

//example.com/x.js era la respuesta antigua y hoy se desaconseja: en una página abierta localmente por file:// se rompe, y esconde qué protocolo se pretende. Escriba https:// de forma explícita.

Tras arreglarlo, recargue a la fuerza. El navegador guarda en caché su veredicto sobre la página y seguirá mostrando el candado roto desde la caché.