Buenas, seguramente algunos os acordaréis del hilo de seguimiento que hice hace un tiempo cuando empezó la pandemia sobre una app para digitalizar cartas con QR.
El caso es que al final le metimos Google Adsense y nos estaba dando algún dinero para pagar el servidor y poco más pero nos banearon la cuenta por "Inventario valioso: sin contenido: No se pueden monetizar las páginas que no tengan contenido.". Google solo nos da una única oportunidad para apelar y poder recuperar la cuenta (ya se que es casi imposible de recuperar una vez baneada, pero queremos intentarlo).
Para poder hacer que el intento tenga el mayor éxito posible hemos metido un blog chustero super estático (con pre-rendering y angular universal) y ahora queremos hacer una parte de la web que esta hecha puramente con SPA y pasarla a SSR, en concreto queremos hacer que la ruta que muestra las cartas digitales p.e. /show/123-xyz, sea totalmente renderizada en el servidor y poder hacer algo así como una página donde se encuentren todas las cartas y hacer un ranking, creemos que esto puede aumentar el SEO y quitarnos de encima el "Inventario valioso: sin contenido" de Google Adsense, ya que es en esas páginas donde se muestran los anuncios.
Ahora mismo esta ruta (p.e. /show/123-xyz) realmente no existe, ya que lo que hacemos es una vez nos llega la petición a nginx la mandamos a spring que lo que hará será devolver un JSON en una cookie y redireccionar al index donde se cargará el router de angular y cogeremos la cookie y pintaremos el contenido, con lo que de /show/123-xyz pasamos a /show. El caso es que esto no nos vale ni tampoco nos vale la ñapa de hacer lo mismo pero mantener la ruta /show/123-xyz ya que seguimos sin servir el contenido desde el servidor y a Google Adsense eso no le mola.
El resultado final que queremos conseguir es:
- Browser GET /show/123-xyz -> 2. Nginx redirige al backend Spring -> 3. Spring devuelve el HTML con el contenido listo -> 4. la URL en el browser se queda fija con /show/123-xyz
El problema viene ahora que sólo se me ocurren las siguientes opciones:
- Meterle con node.js un express que actue de middleware y hacer que se encargue del SSR haciendo las peticiones a Spring para recuperar los datos (me parece un trabajazo pero creo que sería la mejor opción).
- Pasar todo el código de angular que se encarga de renderizar las cartas digitales a plantillas thymeleaf, HTML, CSS y JS (otra mataura).
¿Se os ocurre alguna otra forma de solucionar el problema sin liarla mucho?