Web site created using create-react-app
La página del Boletín Oficial de la Propiedad Industrial, en la sede de la Oficina de Patentes, le dice a los buscadores que su descripción es «Web site created using create-react-app»: sitio web creado con la herramienta tal. Es la frase que trae de fábrica la plantilla con la que se hizo, y sigue sin cambiar. La página declara además que está en inglés, y sin JavaScript solo tiene una frase que enseñar, también en inglés.
- Dominios
- sede.oepm.gob.es · sede.gobiernodecanarias.org
- Guardado
- 31 AGO 2026
- Citas
- 5 en 2 ficheros guardados
- Lectura
- unos 3 min

El Boletín Oficial de la Propiedad Industrial es donde la Oficina Española de Patentes y Marcas publica las solicitudes y concesiones de marcas, patentes y diseños. Su página en la sede electrónica pesa 895 bytes y empieza declarando el idioma del documento: inglés. Es lo que leen los buscadores y los lectores de pantalla para saber en qué lengua pronunciar lo que viene. Lo que viene, cuando el programa de la página lo dibuja, está en castellano. Así se ve el 28 de septiembre de 2026, y con el boletín ya dibujado la página sigue declarándose en inglés.

- Copia
- archivo
- Guardado
- 31 ago 2026
- Peso
- 895 B
- sha256
- 4e8d70ce72cb…
| 1 | …html><html lang="en"><head><meta charset="utf-8"/><link rel="icon" href="/ |
Un poco más allá, en la misma línea, porque el fichero entero es una sola, está la descripción, la frase que un buscador enseña debajo del título en sus resultados. Dice «Web site created using create-react-app». Es la frase de ejemplo de la plantilla, la que se pone para que el autor la sustituya por la suya, y que en la sede de la Oficina de Patentes sigue tal cual. La misma frase está en la página de suscripción al boletín, que es la otra de esa aplicación que guardamos.
- Copia
- archivo
- Guardado
- 31 ago 2026
- Peso
- 895 B
- sha256
- 4e8d70ce72cb…
| 1 | …name="description" content="Web site created using create-react-app"/><link rel="apple-touch-icon" href="/ |
Y luego el cuerpo del documento. Es un solo hueco vacío, con nombre, en el que la aplicación se dibujará cuando el navegador ejecute su programa, y delante de él una frase para quien no lo ejecute: «You need to enable JavaScript to run this app.», necesita activar JavaScript para ejecutar esta aplicación. También de fábrica, también en inglés. A quien llegue con JavaScript apagado, o con un navegador que no lo ejecute, la página le enseña esa frase y nada más: en la pantalla no aparece ni el nombre del boletín, ni un enlace, ni una explicación en castellano de qué es esto.

- Copia
- archivo
- Guardado
- 31 ago 2026
- Peso
- 895 B
- sha256
- 4e8d70ce72cb…
| 1 | …</head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id=" |
Aparte de eso, el fichero trae poca cosa, casi toda de la plantilla: un icono, una hoja de estilos y el programa que dibuja el boletín, todo en la carpeta bopi del servidor. De fuera de la plantilla hay dos cosas: el título de la pestaña, de cuatro letras, «BOPI», y la petición de una tipografía a los servidores de Google. Con JavaScript en marcha, el navegador ejecuta el programa y dibuja el boletín dentro del hueco, y nada de lo anterior se ve. Se ve en el código, en lo que lee un buscador o en un navegador con JavaScript apagado.
- Copia
- archivo
- Guardado
- 31 ago 2026
- Peso
- 895 B
- sha256
- 4e8d70ce72cb…
| 1 | …<title>BOPI</title><script defer="defer" src="/ |
Hay otro caso, para comparar. En la sede electrónica del Gobierno de Canarias, la página para renovar la demanda de empleo también se dibuja entera con un programa, hecho con otra herramienta, y también tiene su aviso para quien no lo ejecute. Dice «Debe activar javascript en su navegador para poder ejecutar esta aplicación.» Está escrito en castellano, para la persona que va a renovar su demanda. El 28 de septiembre, con el JavaScript apagado, se ve así.

- Copia
- archivo
- Guardado
- 31 ago 2026
- Peso
- 3,0 kB
- sha256
- 56e5c04c19f9…
| 37 | document. |
| 38 | vaadin.themesLoaded['sede'] = true; |
| 39 | } |
| 40 | //]]> |
| 41 | </script> |
| 42 | <script type="text/javascript"> |
| 43 | //<![CDATA[ |
| 44 | setTimeout('if (typeof com_ |
| 45 | //]]> |
| 46 | </script> |
| 47 | <div id=" |
| 48 | <noscript>Debe activar javascript en su navegador para poder ejecutar esta aplicación.</noscript> |
| 49 | </html> |
Un aviso de fábrica no rompe nada: con JavaScript, la aplicación del boletín se dibuja en castellano. Lo que queda como venía son las partes que solo leen los buscadores, los lectores de pantalla y quien llega sin JavaScript. El detector del museo, un programa que busca estos avisos en las páginas de su captura del 23 al 26 de septiembre de 2026, los encuentra en 30 sitios públicos; en 19 lleva la frase de fábrica de la plantilla, en inglés.
El 28 de septiembre de 2026 pedimos las dos páginas otra vez. La del boletín sigue pesando 895 bytes, con su inglés declarado, su descripción de plantilla y su frase para quien no ejecute JavaScript; solo han cambiado los nombres de su programa y de su hoja de estilos. La de Canarias sigue avisando en castellano. Son dos aplicaciones públicas que se dibujan con un programa: una avisa en el inglés de la plantilla y la otra, en castellano.
Dos páginas que sin JavaScript solo tienen una frase que decir. Una la dice en el inglés de la plantilla; la otra, en castellano.
- La página https://sede.oepm.gob.es/bopi/, guardada el 31 de agosto de 2026 con 895 bytes en una sola línea, declara lang="en", lleva la descripción «Web site created using create-react-app», el título «BOPI», una petición de tipografía a Google y un cuerpo formado por el aviso «You need to enable JavaScript to run this app.» y un div vacío con id root.
- La página de suscripción al boletín de la misma sede lleva la misma descripción.
- El 28 de septiembre de 2026 la página del boletín se sirve con 895 bytes, las mismas cadenas y otros nombres de programa y de hoja de estilos, y, dibujada en nuestro navegador con JavaScript, enseña el boletín en castellano y sigue declarando lang="en".
- La página de renovación de la demanda de empleo de sede.gobiernodecanarias.org, guardada el 31 de agosto de 2026, lleva el aviso «Debe activar javascript en su navegador para poder ejecutar esta aplicación.», y lo sigue llevando el 28 de septiembre.
- La regla javascript-obligatorio del detector del museo, pasada el 28 de septiembre sobre los 590.886 ficheros HTML de la captura del 23 al 26 de septiembre de 2026 (de cada ruta de cada sitio, la última copia anterior al cierre, con respuesta 200 y no vacía), casa en 30 sitios, 19 de ellos con la frase «You need to enable JavaScript to run this app».
- Las vitrinas citan las copias guardadas el 31 de agosto de 2026 en la captura anterior, la del 31 de agosto al 11 de septiembre, registradas con su huella; en la captura del 23 al 26 de septiembre la página del boletín tiene los mismos 895 bytes y solo cambian los nombres de su programa y de su hoja de estilos, y la de Canarias, servida con otro número de sesión, conserva el aviso.
- No decimos que las aplicaciones funcionen mal con JavaScript activado: no las hemos usado para ningún trámite, y el boletín se dibuja.
- No decimos que nadie navegue sin JavaScript ni cuántos lo hacen.
- No decimos qué enseña hoy un buscador concreto debajo del enlace del boletín: decimos qué descripción le da la página.
- No decimos que la aplicación de Canarias esté hecha con create-react-app: no lo está, y sirve de comparación por su aviso.
- Y no decimos que usar esta plantilla sea un error: lo que miramos es qué se dejó sin rellenar.
De dónde sale cada cita
Cada trozo de código de esta ficha está en un fichero guardado tal como lo entregó el servidor, con su huella (sha256) y su hora. Las citas entre «» se comprueban por programa contra ese fichero antes de publicar.
- https://sede.oepm.gob.es/bopi/31 de agosto de 2026, 16:26archivosha256 4e8d70ce72cbf897acc4654ba50b55880af60acd9b4977db4eb3e578b49c9170
- https://sede.gobiernodecanarias.org/empleo/sede/sce/SERELE-Inter/app/session1788181704202?tipoAcc=darde&servicio=renovar31 de agosto de 2026, 19:42archivosha256 56e5c04c19f9d2186b8ff5a5a7b4d8be50e2d6be3ab7d8bcce693baefddf1c28