Saltar al contenido principal

Cómo construir una página web profesional en 2026 — de la estrategia al lanzamiento

Pagina web

Construir una página web en 2026 no es lo mismo que en 2020. Google ha cambiado las reglas. Los usuarios son impacientes. Y tus competidores ya tienen webs que cargan en menos de un segundo.

Este artículo no es teoría. Es cómo construimos realmente kodemagisk.no — desde la primera decisión tecnológica hasta el día que enviamos el sitemap a Google Search Console. Cada decisión, cada herramienta y cada error que evitamos en el camino.

Si estás planeando una nueva web para tu empresa — o piensas renovar la que tienes — esta es la guía que te muestra lo que realmente importa en 2026.

1. Antes de escribir una línea de código: estrategia y planificación

El error más común que vemos es empresas que empiezan por el diseño. "Queremos una web bonita" no es una estrategia. Antes de abrir una sola herramienta de diseño, necesitas responder tres preguntas:

¿Para quién es la web? No "para todos". ¿Quién es esa persona que te va a encontrar en Google, va a entender lo que ofreces y va a contactarte? Para kodemagisk.no la respuesta era clara: emprendedores y pequeñas empresas en Noruega que necesitan su primera web profesional.

¿Qué debe conseguir la web? ¿Generar leads? ¿Vender productos? ¿Informar? Nuestra web tiene un solo objetivo: que los visitantes reserven una conversación sin compromiso. Todo en la página apunta hacia esa acción.

¿A qué mercados sirves? Operamos en Noruega, pero tenemos clientes que hablan noruego, inglés, español y rumano. Eso significaba que necesitábamos soporte multilingüe desde el primer día — no como algo añadido después.

Solo cuando tienes estas respuestas empieza la planificación técnica.

2. Elección de tecnologías: Por qué elegimos Astro + Sanity CMS

La elección tecnológica es la decisión que afecta a todo lo que viene después. Eliges mal el framework y lo pagas durante años — con rendimiento lento, mantenimiento difícil y reconstrucciones caras.

Por qué Astro para el frontend

Astro está construido para sitios de contenido. A diferencia de frameworks basados en React como Next.js, Astro envía cero JavaScript al navegador a menos que se lo pidas explícitamente. El resultado son webs que cargan más rápido que casi cualquier otra cosa en el mercado.

Para una web de empresa como kodemagisk.no — donde la mayor parte del contenido es texto, imágenes y navegación — no hay razón para enviar cientos de kilobytes de JavaScript al teléfono del usuario. Astro entiende esto, y por eso conseguimos consistentemente 100/100 en PageSpeed Insights, tanto en desktop como en móvil.

Por qué Sanity CMS para el contenido

Sanity es un sistema de gestión de contenidos noruego desarrollado en Oslo. Es headless, lo que significa que tu contenido se almacena separado de la web — y puede usarse en cualquier lugar.

Para nosotros, Sanity fue la elección natural por tres razones: es lo suficientemente flexible para manejar contenido en cuatro idiomas, nos permite construir experiencias de edición personalizadas para cada sección de la web, y le da al cliente la posibilidad de actualizar el contenido sin llamar al desarrollador.

Cada servicio, cada artículo del blog y cada valoración de clientes en kodemagisk.no se edita en Sanity Studio — con campos dedicados para título SEO, meta descripción y contenido en los cuatro idiomas.

Base de datos y hosting

Usamos MySQL como base de datos, alojada en domene.no — un proveedor noruego con servidores en Noruega. Para una web de empresa que sirve al mercado noruego, esto da menor latencia que proveedores cloud internacionales, y los datos permanecen en Europa en cumplimiento con el GDPR.

3. Seguridad: Antes de todo lo demás

La seguridad no es algo que añades después del lanzamiento. Es algo que configuras antes de escribir un solo componente.

Estrategia Git con tres capas

Configuramos un repositorio en GitHub con una estrategia de ramificación que protege contra errores en producción:

main es producción. Está protegida — nadie puede hacer push directo. El código llega aquí solo a través de pull requests aprobados desde develop.

develop es el entorno de desarrollo. Aquí se reúnen todas las features y correcciones terminadas. Cuando develop está estable y testeado, se crea un pull request a main.

Ramas feature y fix son donde ocurre la programación real. Cada nueva funcionalidad o corrección de errores tiene su propia rama. Cuando está lista, se crea un pull request a develop. Si todos los tests pasan, se fusiona.

Este flujo significa que la web de producción nunca contiene código sin terminar. Cuando algo se fusiona a main, se despliega automáticamente — tanto frontend como backend.

.gitignore e información sensible

Antes del primer commit, configuramos .gitignore para asegurar que la información sensible nunca llegue al repositorio. Variables de entorno, claves API, configuraciones de base de datos y archivos de configuración local — todo excluido del control de versiones. Parece obvio, pero vemos regularmente empresas que filtran claves API y contraseñas a través de repositorios Git públicos.

Seguridad del servidor

En public_html configuramos .htaccess y php.ini para asegurar el servidor:

Bloqueo de acceso directo a archivos de configuración, desactivación de listado de directorios, activación de redirección HTTPS, cabeceras HTTP seguras (X-Content-Type-Options, X-Frame-Options, Content-Security-Policy), y limitación de tamaño de archivos para subidas.

Estas medidas no cuestan nada de implementar pero protegen contra los vectores de ataque más comunes.

4. CI/CD: Despliegue automático en el que puedes confiar

El despliegue manual es un riesgo. Olvidas un paso y acabas con un sitio en producción diferente de lo que probaste localmente.

Configuramos despliegue automático para frontend y backend. Cuando el código se fusiona a main, la web se construye y despliega automáticamente. Sin pasos manuales, sin momentos de "¿me olvidé de subir ese archivo?".

Lo mismo aplica a Sanity Studio. Los cambios en la estructura de contenido se despliegan automáticamente, así que la interfaz de edición siempre está sincronizada con la web.

Para un desarrollador que trabaja solo como yo, CI/CD no es un lujo — es una necesidad. Cuando trabajas solo, no tienes un compañero que verifique que recordaste todo. La automatización hace ese trabajo por ti.

5. Estructura del proyecto y arquitectura de componentes

Antes de empezar a programar, necesitas una estructura de carpetas clara. Un proyecto ordenado es más fácil de mantener, más fácil de depurar y más fácil de ampliar.

Estructura de carpetas

Organizamos el código en un monorepo con dos apps principales: web (el frontend en Astro) y studio (Sanity Studio). Los recursos compartidos — como tipos, queries y configuraciones — están en carpetas comunes.

Los componentes están organizados por responsabilidad, no por página. Hay una carpeta para elementos fundamentales (botones, texto, wrapper), una para componentes globales (navegación, footer, head), una para componentes de sección (hero, proceso, servicios) y una para páginas.

Jerarquía de componentes

Cada página en Astro sigue el mismo patrón: un BaseLayout que gestiona los elementos del head (meta, SEO, JSON-LD, Open Graph), seguido de componentes globales (navegación y footer), y entre ellos — las secciones únicas de esa página.

Esta estructura significa que los cambios en la navegación se reflejan automáticamente en todas las páginas, los metadatos SEO se gestionan en un solo lugar, y las páginas nuevas se construyen rápidamente ensamblando secciones existentes.

6. Sistema de diseño: colores, tipografía y lenguaje visual

Aquí es donde muchos proyectos se tuercen. Saltan directamente al diseño sin construir un sistema primero — y terminan con una web donde cada página se ve ligeramente diferente.

Preparación de colores

Antes de diseñar una sola página, definimos toda la paleta de colores:

Color primario — el azul de acento usado en botones y enlaces. Color secundario — para estados hover e interacciones avanzadas. Colores neutros — una escala completa de grises desde blanco hasta casi negro, con roles definidos: fondo, superficies, texto y bordes. Colores semánticos — activo, inactivo, error, éxito — para estados de UI como formularios de contacto y notificaciones.

Todos los colores se definieron como custom properties de CSS, para reutilizarlos de forma consistente en toda la web.

Tipografía con sistema

Elegimos dos fuentes: Clash Display para títulos y Figtree para texto de cuerpo. Ambas auto-alojadas como archivos WOFF2 — 89 KB en total. Sin dependencias externas, sin peticiones a Google Fonts.

Pero elegir fuentes es solo el comienzo. El trabajo real es construir un sistema tipográfico:

Escala modular (1.25) — Cada nivel de título es exactamente 1,25 veces más grande que el nivel inferior. Esto crea una jerarquía visual clara donde el lector entiende al instante qué es más importante. Usamos ocho tamaños: desde 11px para etiquetas hasta 64px para el título hero.

Pesos definidos — Usamos solo tres pesos de Figtree (400, 500, 600) y dos de Clash Display (400, 500). Cada peso tiene un rol definido. 400 para texto de párrafo, 500 para navegación y etiquetas, 600 para botones y énfasis.

Altura de línea por nivel — Los títulos grandes tienen interlineado ajustado (1.1), mientras que el texto de cuerpo tiene espaciado generoso (1.65) para comodidad de lectura. Esta diferencia es sutil pero notable — especialmente en fondos oscuros donde los ojos necesitan más espacio entre líneas.

Espaciado entre letras — Los títulos grandes se ajustan ligeramente (-0.02em), mientras que las etiquetas en mayúsculas se abren (+0.04em). Son detalles que la mayoría no nota conscientemente, pero contribuyen a que el texto se sienta "correcto".

Logo, favicons y marca

El logo se preparó en múltiples formatos: SVG para la web (escalable infinitamente, tamaño de archivo pequeño), PNG para compartir en redes sociales, y un icono simplificado para favicons. Los favicons se generaron en todos los tamaños necesarios — desde 16x16 para pestañas del navegador hasta 512x512 para iconos de Progressive Web App.

Botones y elementos interactivos

Definimos un estilo de botón con reglas claras: el botón primario (relleno, azul) se usa para la acción principal de una página — nunca más de uno por sección. El botón secundario (contorno) se usa para acciones alternativas. Ambos tienen tamaños definidos para desktop y móvil, con área de toque suficiente (mínimo 44x44px) para accesibilidad.

7. Multilingüismo (i18n): Cuatro idiomas desde el día uno

Kodemagisk.no sirve a clientes que hablan noruego, inglés, español y rumano. El soporte multilingüe se integró en la arquitectura desde el inicio — no se añadió después.

Estructura de rutas

El noruego es el idioma por defecto. Las páginas en inglés están bajo /en/, las españolas bajo /es/ y las rumanas bajo /ro/. Cada ruta tiene una versión localizada:

Noruego: /tjenester/cms-utvikling-med-sanity Inglés: /en/services/cms-development-with-sanity Español: /es/servicios/desarrollo-cms-con-sanity Rumano: /ro/servicii/dezvoltare-cms-cu-sanity

Sistema de traducción

Todos los textos que no vienen de Sanity (navegación, botones, títulos de sección, respuestas FAQ) se almacenan en un archivo i18n central con claves por idioma. Sanity gestiona contenido como artículos de blog y descripciones de servicios — con campos dedicados para cada idioma.

hreflang y x-default

Las etiquetas hreflang le dicen a Google que las cuatro versiones de idioma están relacionadas. Configuramos nb-NO como x-default — para que los usuarios que no coincidan con ninguno de los otros idiomas sean enviados a la versión noruega.

Cal.com: Reservas compatible con GDPR

Para la funcionalidad de reservas elegimos Cal.com — una solución europea compatible con GDPR. Muchas agencias noruegas usan Calendly, que almacena datos en EEUU. Para una empresa que sirve al mercado europeo, esto es un riesgo innecesario. Cal.com nos permite integrar reservas directamente en la web, con datos que permanecen en Europa.

Formulario de contacto

El formulario de contacto está conectado a nuestro correo de empresa en domene.no. Cuando alguien rellena el formulario, recibimos un email inmediatamente — sin herramientas de terceros como Formspree o Netlify Forms. Menos dependencias significa menos cosas que pueden romperse.

8. SEO en 2026: Se trata de velocidad y contenido auténtico

El SEO ha cambiado fundamentalmente. En 2026, ya no se trata de meter keywords en el texto. Google es más inteligente que eso. Lo que realmente cuenta son tres cosas: velocidad, estructura y contenido auténtico.

Core Web Vitals: Los tres números que más importan

Google mide la experiencia de usuario con tres métricas:

LCP (Largest Contentful Paint) — lo rápido que se hace visible el contenido principal. El objetivo es menos de 2,5 segundos. Kodemagisk.no carga en menos de un segundo.

INP (Interaction to Next Paint) — lo rápido que responde la página a clics y pulsaciones de teclas. El objetivo es menos de 200 milisegundos. Con Astro enviamos JavaScript mínimo, así que las interacciones son casi instantáneas.

CLS (Cumulative Layout Shift) — cuánto "salta" el contenido mientras carga la página. El objetivo es menos de 0.1. Al definir dimensiones fijas para imágenes y fuentes, evitamos los cambios de layout por completo.

Kodemagisk.no obtiene 100/100 en Google PageSpeed Insights — tanto en desktop como en móvil. No es suerte. Es el resultado de decisiones tecnológicas deliberadas: Astro que envía JavaScript mínimo, fuentes auto-alojadas que eliminan peticiones externas, imágenes en formato WebP, y un servidor en Noruega que minimiza la latencia para usuarios noruegos.

Imágenes: El formato importa

Todas las imágenes en kodemagisk.no están en formato WebP. WebP ofrece archivos 25-35% más pequeños que JPEG con calidad comparable. Para una web con muchas imágenes, esto solo puede reducir el tiempo de carga varios segundos.

También usamos lazy loading — las imágenes fuera de la pantalla no cargan hasta que el usuario hace scroll. Y definimos width y height en el HTML, para que el navegador sepa exactamente cuánto espacio necesita la imagen antes de cargarla. Esto elimina los cambios de layout.

Datos estructurados (JSON-LD)

Google no solo entiende el texto de tu web — también lee datos estructurados en formato JSON-LD. En kodemagisk.no hemos implementado:

Organization — le dice a Google quiénes somos, dónde estamos y qué servicios ofrecemos. WebSite — vincula la web a la organización. Service — describe cada servicio con nombre, descripción y proveedor. BlogPosting — da a Google metadatos sobre cada artículo: título, fecha, autor, categorías. BreadcrumbList — muestra a Google la estructura del sitio. AggregateRating — muestra valoraciones de clientes directamente en los resultados de búsqueda.

Estos datos estructurados son la razón por la que Google puede mostrar resultados enriquecidos con estrellas, breadcrumbs e información complementaria — cosas que aumentan significativamente la tasa de clics.

Jerarquía de encabezados: H1 → H2 → H3

Cada página en kodemagisk.no tiene exactamente un H1. Las secciones de la página principal tienen H2. Las subsecciones tienen H3. Esta jerarquía nunca se rompe.

Google usa la jerarquía de encabezados para entender de qué trata la página. Y para webs de empresas, Google usa los H2 de la página principal para generar Sitelinks — los subenlaces que aparecen bajo el resultado principal en búsquedas. Un error aquí (como usar H3 donde debería ser H2) puede significar perder los Sitelinks.

Meta title y description: Uno por página

Cada página tiene un título SEO y meta descripción únicos — nunca copiados de otra página. Para páginas de servicios usamos el formato "[Nombre del servicio] — [Propuesta de valor] | Kodemagisk".

robots.txt y sitemap

robots.txt le dice a Google qué páginas deben y no deben indexarse. Bloqueamos páginas de plantilla como /team/, /signin/ y /signup/ (restos de la plantilla con la que empezamos), mientras que todas las páginas reales están abiertas.

El sitemap se genera automáticamente e incluye todas las páginas en los cuatro idiomas. Se envía a Google Search Console después del lanzamiento.

9. Accesibilidad: No solo un requisito — una ventaja

La accesibilidad WCAG no es opcional en 2026. La European Accessibility Act (EAA) de la UE está entrando en vigor, y se espera que las empresas noruegas sigan el estándar WCAG 2.1 AA.

En kodemagisk.no esto significa en la práctica: contraste suficiente entre texto y fondo (mínimo 4.5:1 para texto de cuerpo), enlace de salto para navegación por teclado, HTML semántico (niveles de encabezado correctos, landmarks de navegación, atributos ARIA donde sea necesario), todas las imágenes tienen texto alt, y todos los elementos interactivos son accesibles por teclado.

La accesibilidad no es solo ética y requisitos legales — también es SEO. Google premia las webs que siguen estándares de accesibilidad, porque los mismos principios (estructura clara, HTML semántico, texto legible) son lo que Google necesita para entender tu contenido.

10. Estrategia de contenido: Copywriting que vende sin gritar

La infraestructura técnica es el fundamento. Pero lo que el usuario realmente lee es el texto. Y aquí la mayoría de agencias y empresas cometen el mismo error: escriben para ellos mismos, no para el cliente.

Escribe como hablas

Nuestra primera versión del texto en kodemagisk.no estaba llena de palabras como "lógica digital", "escalar tu negocio" y "partner tecnológico estratégico". Suena impresionante — pero nadie busca en Google "partner tecnológico estratégico Oslo".

La gente busca "página web para empresa", "cuánto cuesta una web" y "agencia web Oslo". Tu texto necesita usar las palabras que la gente realmente usa.

Lo reescribimos todo. El título hero se convirtió en "Tu empresa merece una web que trabaje tan duro como tú." Los servicios se organizaron por lo que el cliente necesita (web, tienda online, CMS, webapp), no por tecnología (frontend, backend, CMS).

FAQ con enlaces internos

Nuestra sección FAQ hace doble trabajo. Responde las preguntas que la gente realmente hace ("¿Cuánto cuesta una web?", "¿Cuánto tiempo lleva?"), y enlaza naturalmente a páginas relevantes de la web. Cada enlace en una respuesta FAQ es una señal a Google de que esa página es importante.

11. Blog: Estructurado para Google

Los artículos del blog en kodemagisk.no no son solo artículos — son documentos estructurados que Google entiende.

Cada artículo tiene: un título SEO y meta descripción únicos (desde Sanity), una fecha de publicación y fecha de actualización (Google usa esta última para priorizar contenido actualizado), categorías que son enlaces clickeables (estrategia de enlaces internos), una tabla de contenidos con anclas (mejora la experiencia de usuario y puede generar Sitelinks en búsquedas), metadatos Open Graph para compartir en redes sociales, y schema JSON-LD BlogPosting que da a Google todos los metadatos que necesita.

Las imágenes en los artículos están en formato WebP con texto alt descriptivo y dimensiones definidas.

12. Después del lanzamiento: Google Search Console y visibilidad

Lanzar la web no es el final — es el comienzo del trabajo SEO.

Google Search Console

Después del deploy, enviamos el sitemap a Google Search Console. Luego usamos la función "Inspeccionar URL" para pedir a Google que indexara las páginas más importantes manualmente: la página principal, servicios, proyectos, blog, valoraciones y contacto.

Esto no fuerza la indexación, pero pone las páginas en la cola de Google — en vez de esperar a que Google las descubra por sí mismo.

Google Tag Manager y Analytics

Creamos cuentas en Google Tag Manager (GTM) y Google Analytics 4 (GA4). GTM está implementado en la web y gestiona todos los scripts de seguimiento — para que podamos añadir y eliminar tracking sin cambiar el código.

GA4 nos da información sobre cómo los visitantes usan la web: qué páginas visitan, cuánto tiempo se quedan y qué acciones realizan.

Google Business Profile

Para visibilidad local, creamos un Google Business Profile (antes Google My Business). Esto nos da visibilidad en Google Maps y resultados de búsqueda locales — una web en Oslo que aparece en búsquedas de "agencia web Oslo" combinada con un Business Profile tiene significativamente más posibilidades de obtener clics.

El Business Profile contiene dirección, horarios, enlace a la web, categorías de servicios y valoraciones de clientes que coinciden con los datos AggregateRating de la web.

Checklist: Todo lo que necesitas (en el orden correcto)

Fase 1 — Estrategia y seguridad

  • Definir público objetivo, objetivos y mercados
  • Elegir stack tecnológico (frontend, CMS, base de datos, hosting)
  • Crear repositorio GitHub con protección de ramas (main/develop/feature)
  • Configurar .gitignore para proteger información sensible
  • Configurar seguridad del servidor (.htaccess, php.ini, HTTPS, cabeceras de seguridad)
  • Configurar CI/CD para despliegue automático

Fase 2 — Sistema de diseño

  • Definir paleta de colores (primario, secundario, neutro, semántico)
  • Diseñar logo y generar favicons en todos los tamaños
  • Elegir y auto-alojar fuentes (WOFF2)
  • Construir sistema tipográfico (escala, pesos, altura de línea, espaciado de letras)
  • Definir estilos de botones, tamaños y estados
  • Documentar todo como CSS custom properties

Fase 3 — Fundamento técnico

  • Configurar estructura del proyecto y organización de carpetas
  • Instalar dependencias (pnpm)
  • Construir componentes base (layout, navegación, footer, head)
  • Configurar rutas multilingües (i18n)
  • Configurar robots.txt
  • Configurar generación de sitemap

Fase 4 — Contenido y CMS

  • Construir schemas de Sanity con campos SEO (seoTitle, seoDescription)
  • Construir componentes de sección para cada página
  • Configurar queries GROQ para obtener contenido
  • Escribir contenido para cada página (copywriting con mentalidad SEO)
  • Escribir títulos SEO y meta descripciones para todas las páginas
  • Rellenar contenido en Sanity Studio

Fase 5 — SEO y datos estructurados

  • Implementar JSON-LD (Organization, WebSite, Service, BlogPosting, BreadcrumbList)
  • Verificar jerarquía de encabezados (H1 → H2 → H3) en todas las páginas
  • Optimizar imágenes (WebP, lazy loading, dimensiones definidas)
  • Verificar contraste WCAG AA (mínimo 4.5:1 para texto de cuerpo)
  • Ejecutar PageSpeed Insights y corregir problemas
  • Verificar metadatos Open Graph y Twitter Card

Fase 6 — Lanzamiento y visibilidad

  • Deploy a producción
  • Enviar sitemap a Google Search Console
  • Inspeccionar y solicitar indexación de páginas clave
  • Implementar Google Tag Manager y Analytics 4
  • Crear Google Business Profile con información completa
  • Monitorizar Core Web Vitals y resultados de búsqueda las semanas siguientes

Conclusión

Construir una página web profesional en 2026 no se trata de elegir la plantilla correcta o el diseño más bonito. Se trata de tomar cientos de pequeñas decisiones reflexivas — desde la estrategia de ramificación en Git hasta el espaciado entre letras en los títulos — que juntas crean una web rápida, segura, accesible y visible en búsquedas.

Kodemagisk.no está construida para ser exactamente ese ejemplo. No porque sea perfecta, sino porque cada decisión es deliberada. Y esa es la verdadera diferencia entre una web que "funciona" y una web que trabaja para tu empresa.

Si quieres que tu web siga los mismos principios — contacta para una conversación sin compromiso. Te decimos cuánto costará y cuánto tiempo llevará, sin obligaciones.

Kodemagisk es una agencia web en Oslo que construye páginas web, tiendas online y aplicaciones web para pequeñas y medianas empresas en Noruega. Hablamos noruego, inglés, español y rumano.