Gamine Migracao SiteGround-Hostinger

GAMINE | RELATORIO CONSOLIDADO DE MIGRACAO

Migracao SiteGround

para Hostinger VPS

WordPress -> Stack Open Source | Brand Continuidade | SEO Moderno

v1.0 | Maio 2026 | Para decisao e planeamento


Sumario Executivo

Este relatorio consolida a analise completa da migracao do site Gamine de WordPress/SiteGround para uma stack open source self-hosted no Hostinger VPS. Cobre a metodologia de acesso via browser (Claude Code + Chrome com dois paineis em simultaneo), a estrategia de preservacao de brand, a arquitectura tecnica do novo site, as ferramentas open source seleccionadas, os riscos e planos de contingencia, a estrategia SEO, e a estimativa de tempo e custo.


1. Metodologia de Acesso --- Claude Code com Browser

1.1 Como o Claude Code vai operar

O Claude Code utiliza o Computer Use --- capacidade de ver e interagir com o ecra como um utilizador humano. Com o Chrome aberto em duas sessoes simultaneas, o Claude Code pode navegar os dois paineis de controlo sem precisar de credenciais SSH no contexto da sessao.

Setup recomendado: Abrir o Chrome com duas janelas lado a lado: janela esquerda com o SiteGround Site Tools, janela direita com o Hostinger hPanel. O Claude Code ve ambas em simultaneo e opera as duas sem intervencao manual.

1.2 O que o Claude Code faz em cada painel


SiteGround Site Tools Hostinger hPanel (leitura/exportacao) (construcao/deploy)

Aceder a WordPress Admin -> Tools Criar subdominio de staging: -> Export Exportar todo o conteudo new.gamine.org Apontar para em formato WXR (XML) directoria isolada no VPS

File Manager -> SSH Terminal no hPanel Dar comandos wp-content/uploads/ Download de de setup do stack novo todo o media (imagens, videos,
PDFs)

WordPress Admin -> Appearance -> File Manager -> upload de Customize Documentar cores, fontes, ficheiros Deploy de containers logotipos em uso Docker novos

WordPress Admin -> Plugins -> DNS Manager -> adicionar registos Installed Inventariar Configuracao de dominio para funcionalidades a replicar staging


1.3 Limitacoes do acesso via browser

  • Velocidade: operacoes via GUI sao mais lentas que SSH directo --- compensado pelo facto de nao requererem preparacao adicional

  • File Manager do SiteGround tem limite de upload/download por sessao --- para ficheiros > 500MB usar o FTP credentials disponiveis no mesmo painel

  • O SSH Terminal do Hostinger hPanel tem timeout de sessao --- o Claude Code deve manter actividade ou usar tmux para sessoes longas

  • Se o SiteGround bloquear por deteccao de bot: desactivar temporariamente o Cloudflare Bot Fight Mode em Security -> WAF

2. Auditoria do WordPress Existente

2.1 O que vai ser auditado

Antes de construir qualquer coisa, o Claude Code faz uma auditoria completa do site WordPress actual para garantir que nada se perde na migracao. A auditoria cobre seis areas:


Area O que se extrai Metodo

Conteudo Todos os posts, paginas, WP Export (WXR XML) categorias, tags, via WP Admin comentarios, menus de
navegacao

Media Todas as imagens, videos, File Manager PDFs, documentos com URLs SiteGround -> originais wp-content/uploads/

Brand / Design Cores HEX, fontes (nome + WP Customizer + peso + tamanho), logotipos inspecao CSS via em todos os formatos, DevTools espacamentos

Estrutura de URLs Todas as URLs publicas Screaming Frog (posts, paginas, arquivos) (gratis ate 500 URLs) para mapa de redirects ou crawl manual

Funcionalidades Lista de plugins activos e o WP Admin -> Plugins que cada um faz: -> Installed Plugins formularios, SEO, cache,
newsletter, analytics

SEO actual Meta titles, meta Yoast/RankMath descriptions, structured export + Google data, sitemap XML, Search Console robots.txt existentes


Prioridade critica: O mapa completo de URLs existentes tem de ser extraido ANTES de qualquer alteracao DNS. E a base para os redirects 301 que preservam o SEO acumulado nos 3 anos de site Gamine.

3. Preservacao de Brand --- A Preocupacao Central

3.1 O problema

A maior preocupacao declarada e que a mudanca de plataforma nao seja perceptivel visualmente --- apenas um revamp intencional do site. Isto implica que o novo site tem de replicar com precisao absoluta o design system do WordPress antes de o evoluir.

3.2 Processo de extraccao do brand actual

O Claude Code extrai o brand system do WordPress existente em tres passos:

  1. Inspectar o CSS do tema activo via Chrome DevTools (F12 -> Sources -> tema.css) e documentar todas as variaveis CSS definidas: cores, fontes, espacamentos, border-radius

  2. Extrair o ficheiro style.css do tema via File Manager SiteGround e fazer parse automatico de todas as custom properties

  3. Documentar em brand-tokens.json --- um ficheiro estruturado que se torna a fonte de verdade para o novo site

// brand-tokens.json --- gerado automaticamente pelo Claude Code

{

\"colors\": {

\"primary\": \"#6B3FA0\", // purpura Gamine --- extraido do CSS

\"primary_light\":\"#9B6BC8\",

\"primary_pale\": \"#F5F0FB\",

\"text\": \"#1A1A1A\",

\"text_muted\": \"#6A5A7A\",

\"background\": \"#FFFFFF\",

\"background_alt\":\"#FAF8FF\"

},

\"typography\": {

\"font_heading\": \"[nome extraido do WP]\",

\"font_body\": \"[nome extraido do WP]\",

\"size_h1\": \"[valor extraido]\",

\"size_h2\": \"[valor extraido]\",

\"size_body\": \"[valor extraido]\",

\"line_height\": \"[valor extraido]\"

},

\"spacing\": {

\"section_padding\": \"[valor extraido]\",

\"card_padding\": \"[valor extraido]\"

},

\"logos\": {

\"main_svg\": \"/assets/brand/gamine-logo.svg\",

\"favicon\": \"/assets/brand/favicon.ico\",

\"og_image\": \"/assets/brand/og-1200x630.jpg\"

}

}

3.3 Como o novo site usa o brand-tokens.json

O ficheiro brand-tokens.json e a fonte de verdade unica. O Astro (ou Next.js) importa os tokens em build time e gera CSS custom properties automaticamente. Qualquer alteracao futura ao brand e feita num so lugar e propaga-se a todo o site.

/* global.css --- gerado a partir de brand-tokens.json */

:root {

--color-primary: #6B3FA0;

--color-primary-light:#9B6BC8;

--font-heading: \'NomeFonte\', sans-serif;

--font-body: \'NomeFonte\', sans-serif;

--size-h1: 2.5rem;

/* ... todos os tokens */

}

3.4 Fontes --- o caso especial

As fontes sao o elemento mais critico de continuidade visual. Ha tres cenarios possiveis:


Cenario Situacao Solucao

Fonte Google Ex: Inter, Lato, Montserrat Self-host via fontsource Fonts --- gratuitas e open source (npm) --- sem dependencia Google, GDPR compliant

Fonte Adobe Requer licenca Adobe --- Manter ligacao ao Adobe Fonts (Typekit) nao open source Fonts CDN, OU substituir por alternativa open source de perfil similar

Fonte Ficheiros .woff2 na pasta Extrair ficheiros do File proprietaria do tema WP Manager SiteGround e comprada self-host no novo site (licenca segue o site)


Avenir (Brandbook Eureekka): A fonte Avenir nao e open source --- e proprietaria da Linotype. Se estiver a ser usada no site Gamine, a solucao e: (a) licenca web font via Adobe Fonts, ou (b) usar Nunito como substituto open source de perfil geometrico muito proximo.

4. Stack Tecnica --- 100% Open Source

4.1 Arquitectura do novo site

CAMADA DE APRESENTACAO

+----------------------------------+

| Astro 4 (framework principal) |

| - Paginas estaticas por defeito |

| - Ilhas React para interacoes |

| - Build: HTML/CSS/JS optimizado |

+----------------------------------+

| consome via API

v

CAMADA DE CONTEUDO (CMS)

+----------------------------------+

| Directus (headless CMS) |

| - Interface para Marta/Alice |

| - Editor rich text (igual ao WP)|

| - Media library |

| - REST API + GraphQL |

+----------------------------------+

| persiste em

v

CAMADA DE DADOS

+----------------------------------+

| PostgreSQL (ja no stack) |

| MinIO (media storage) |

+----------------------------------+

|

CAMADA DE SERVICOS ADICIONAIS

+----------------------------------+

| Listmonk (newsletters) |

| Nginx (reverse proxy TLS) |

| Docker (containers) |

+----------------------------------+

4.2 Tabela de ferramentas open source


Funcionalidade Ferramenta Substitui Licenca / Notas (WP)

Framework web Astro 4 Tema WordPress MIT --- build estatico, velocidade maxima

Headless CMS Directus WP Admin + editor BSL 1.1 --- self-hosted, interface igual ao WP

Newsletter Listmonk Mailchimp plugin AGPL --- self-hosted, / WP Newsletter sem custo por subscritor

SEO tecnico astro-seo + Yoast SEO MIT --- integrado no schema.org build, sem plugin manual overhead

Analytics Umami Google Analytics MIT --- GDPR nativo, / Jetpack Stats self-hosted

Formularios Formbricks Contact Form 7 / MIT --- self-hosted, Gravity Forms workflows de resposta

Pesquisa interna Meilisearch WP Search / MIT --- full-text Relevanssi search, extremamente rapido

Media CDN MinIO + Nginx WP Media Library Apache 2.0 --- ja no stack

Cache Nginx WP Super Cache --- nativo no Nginx, sem proxy_cache plugin

Imagens sharp (build Smush / Imagify Apache 2.0 --- time) optimizacao automatica no build

Sitemap XML astro-sitemap Yoast Sitemap MIT --- gerado automaticamente no build

Redirects Nginx map Redirection --- ficheiro de directive plugin configuracao, zero runtime


4.3 Casos em que open source nao e possivel


Caso Porque nao open Alternativa e custo source

Fonte Avenir (se Proprietaria Adobe Fonts (\~€25/mes plano em uso) Linotype --- nao individual) OU substituir por pode ser Nunito (Google Fonts, gratis, redistribuida perfil similar)

Email Self-hosting SMTP Brevo (ex-Sendinblue) --- 300 transaccional em VPS tem emails/dia gratis, depois €9/mes. (confirmacoes, deliverability OU Amazon SES \~\$0.10/1000 newsletters) baixa --- IPs de emails VPS partilhado
estao
frequentemente em
blacklists

Mapas (se o site Google Maps API tem Leaflet.js (MIT) + OpenStreetMap tiver localizacao custo apos tiles (gratis). Para geocoding: de servicos) threshold. Nominatim (gratis) ou Geoapify OpenStreetMap e (\~€0/mes ate 3000 req/dia) open source mas sem routing avancado

Video hosting Self-hosting de Mux.com (\~\$0.015/min (se houver videos video consome visualizado) para videos premium, no site) largura de banda OU embed YouTube/Vimeo para elevada no VPS conteudo publico --- custo zero


5. SEO --- Estrategia Moderna

5.1 O que o novo site faz melhor que o WordPress

O WordPress com Yoast e uma abordagem defensiva ao SEO --- corrige problemas que o WordPress cria. O Astro nao cria esses problemas de origem. A diferenca em termos de SEO tecnico e substancial:


Metrica SEO WordPress + Yoast Astro novo site

Core Web Vitals 2-5s (JS pesado, render \< 1s (HTML estatico, (LCP) blocking) zero JS por defeito)

Tamanho da pagina 800KB-2MB tipico \< 200KB tipico

JavaScript jQuery + plugins = Zero JS por defeito, bloqueante multiplos scripts apenas onde necessario

Seguranca (HTTPS, Depende de plugins e TLS 1.3, CSP, HSTS headers) configuracao SiteGround configurados no Nginx

Structured data Plugin Yoast (nem sempre Gerado (Schema.org) correcto) programaticamente, 100% controlado

Sitemap XML Yoast gera, pode ter astro-sitemap --- gerado erros no build, sempre correcto


5.2 Structured data especifico para a Gamine

O novo site implementa Schema.org para os tipos de conteudo relevantes para o nicho de saude materna. Isto e critico para Rich Snippets no Google:

  • Article / BlogPosting: todos os posts do blog com author, datePublished, image

  • MedicalWebPage: paginas de conteudo clinico (gravidez, parto, pos-parto)

  • FAQPage: secoes de perguntas frequentes --- aparecem directamente nos resultados Google

  • LocalBusiness: informacao da Gamine em Lisboa (morada, telefone, horario)

  • BreadcrumbList: navegacao hierarquica --- melhora CTR nos resultados

  • Event: se a Gamine tiver eventos ou workshops presenciais

5.3 Estrategia de preservacao de SEO na migracao

A migracao e o momento de maior risco para o SEO acumulado. Tres acoes criticas:

  1. Exportar todos os dados de Search Console ANTES da migracao: queries, paginas, impressoes, CTR. Baseline para comparar pos-migracao.

  2. Criar ficheiro de redirects 301 completo: CADA URL antiga -> nova URL correspondente. Zero 404s apos migracao. Implementado em Nginx com directiva map.

  3. Manter os mesmos slugs onde possivel. Se /blog/titulo-do-post era o formato WP, manter /blog/titulo-do-post no novo site. Evita redirects desnecessarios.

# nginx.conf --- redirects 301 gerados automaticamente pelo Claude Code

# a partir do mapa de URLs exportado do WordPress

map \$uri \$redirect_uri {

default 0;

/2023/04/titulo-do-post/ /blog/titulo-do-post;

/category/gravidez/ /blog/gravidez;

/wp-content/uploads/2023/imagem.jpg /media/imagem.jpg;

# ... gerado automaticamente para todas as URLs

}

server {

if (\$redirect_uri) {

return 301 \$redirect_uri;

}

}

5.4 Novas oportunidades SEO que o WordPress nao permite facilmente

  • Multilingue PT/EN com hreflang correcto --- critico para audiencia expat anglofona

  • Paginas de aterragem por bairro de Lisboa: \'Maternidade expat Chiado\', \'Gravidez expat Belem\' --- long-tail SEO local

  • Hub de conteudo tematico: todas as paginas sobre \'primeiro trimestre\' interligadas em cluster semantico --- melhora authority por tema

  • Performance extrema (\< 1s LCP) --- desde 2024 o Google usa Core Web Vitals como factor de ranking directamente

6. Riscos --- O Que Pode Correr Bem e Mal

6.1 Riscos de alto impacto


Risco Probabilidade Impacto Mitigacao

Queda de SEO MEDIA Perda de trafico Mapa de redirects pos-migracao organico acumulado em 100% antes de (redirects mal 3 anos --- cortar DNS. feitos) potencialmente grave Monitorizar Search para aquisicao de Console clientes diariamente nas 2 semanas pos-migracao.

Media em falta BAIXA Paginas com imagens Verificar todos os apos migracao quebradas --- mau UX e assets antes de (imagens 404) penalizacao SEO cortar DNS com script de crawl automatico.

Downtime durante BAIXA Minutos a horas de Corte de DNS apos corte de DNS site inacessivel --- validacao total em impacto em clientes staging. TTL activos reduzir para 300s 24h antes do corte.

Funcionalidade MEDIA Plugin especifico (ex: Auditoria de WordPress sem booking, pagamentos) plugins na Fase 1 equivalente open sem substituto directo identifica casos. source Alternativa desenvolvida antes de cortar WP.

Directus BAIXA Conteudo nao e Sessao de formacao demasiado complexo actualizado porque a de 1h com a Alice. para Marta/Alice interface e dificil Interface Directus e comparavel ao WP Admin em complexidade.

VPS Hostinger sem BAIXA Stack ja tem 21 Directus e capacidade para containers --- Listmonk sao stack adicional adicionar Astro leves. Astro e build + Directus + estatico pos-build Listmonk pode --- sem runtime. pressionar CPU/RAM Monitorizar apos deploy.


6.2 O que pode correr especialmente bem

  • Velocidade do novo site: a diferenca de performance entre um site WordPress tipico e um Astro estatico e dramatica e imediatamente perceptivel pelos visitantes e pelo Google

  • Custo zero de hosting adicional: o site Gamine passa a correr no VPS Hostinger que ja pagas --- elimina a subscricao SiteGround

  • Controlo total: sem actualizacoes automaticas de plugins que quebram o site, sem vulnerabilidades WordPress conhecidas, sem dependencia do SiteGround

  • Newsletter integrada: o Listmonk self-hosted elimina custos de Mailchimp/Brevo a medida que a lista cresce --- relevante quando a lista ultrapassar os 2000 subscritores

  • Multilingue PT/EN nativo: o Astro suporta i18n de origem, sem plugins --- critico para a estrategia de expansao anglofona com os videos dobrados

7. Plano de Implementacao --- 5 Fases


FASE 1 | Auditoria e Extraccao (SiteGround)

Objectivo: Backup completo, brand system documentado, mapa de URLs gerado


  1. Abrir Chrome: janela esquerda SiteGround Site Tools, janela direita Hostinger hPanel

  2. SiteGround -> WordPress Admin -> Tools -> Export All -> download WXR

  3. SiteGround -> File Manager -> wp-content/uploads/ -> download ZIP de todo o media

  4. Chrome DevTools no site live -> extrair CSS do tema -> gerar brand-tokens.json

  5. SiteGround -> WordPress Admin -> Plugins -> listar todos os plugins activos com funcao

  6. Screaming Frog (gratis, instalar localmente) -> crawl de gamine.org -> exportar todas as URLs

  7. Google Search Console -> exportar dados de performance das ultimas 12 semanas

  8. Estimar duracao: 4-8 horas


FASE 2 | Setup do Ambiente Staging (Hostinger)

Objectivo: Subdominio new.gamine.org operacional com stack completo


  1. Hostinger hPanel -> DNS -> adicionar A record: new.gamine.org -> IP do VPS

  2. SSH Terminal Hostinger -> criar directoria /opt/prod/gamine-web/

  3. Docker Compose -> subir Directus + PostgreSQL + Nginx para new.gamine.org

  4. Docker Compose -> subir Listmonk para newsletters.gamine.org

  5. Configurar TLS com Let\'s Encrypt para new.gamine.org

  6. Testar acesso: https://new.gamine.org deve mostrar pagina de placeholder

  7. Estimar duracao: 3-5 horas


FASE 3 | Migracao de Conteudo e Build do Site

Objectivo: Todo o conteudo WP migrado, site novo visualmente identico ao WP


  1. Script Python -> parser do WXR exportado -> posts e paginas inseridos no Directus via API

  2. Upload de todos os ficheiros media para MinIO -> actualizar URLs no Directus

  3. Scaffold do projecto Astro com brand-tokens.json como fonte de verdade

  4. Implementar todos os componentes do site: Home, Blog, Post, Sobre, Servicos, Contacto

  5. Integrar astro-seo + structured data Schema.org em todas as paginas

  6. Gerar ficheiro de redirects Nginx a partir do mapa de URLs exportado

  7. Build do Astro -> deploy de HTML estatico para Nginx

  8. Validacao visual: comparar new.gamine.org com gamine.org pagina a pagina

  9. Estimar duracao: 20-40 horas (a parte mais longa --- construcao do site novo)


FASE 4 | Validacao e QA

Objectivo: Zero erros, SEO validado, performance confirmada


  1. Screaming Frog -> crawl de new.gamine.org -> zero 404s

  2. Google PageSpeed Insights -> new.gamine.org -> confirmar LCP \< 2.5s, CLS \< 0.1

  3. Validacao Schema.org: schema.org/validator para cada tipo de pagina

  4. Testar formularios, newsletter signup, todos os links internos e externos

  5. Testar em mobile (Chrome DevTools) e em Safari (compatibilidade)

  6. Marta e Alice: revisao visual completa e aprovacao formal

  7. Estimar duracao: 4-8 horas


FASE 5 | Corte de DNS e Go-Live

Objectivo: gamine.org serve o novo site, SiteGround cancelado


  1. 24h antes: reduzir TTL dos registos DNS para 300 segundos

  2. Confirmar que o backup completo do WordPress esta guardado localmente (nao depender do SiteGround)

  3. Hostinger hPanel -> DNS -> alterar A record de gamine.org para IP do VPS

  4. Aguardar propagacao DNS (5-30 minutos com TTL baixo)

  5. Verificar https://gamine.org -> novo site a funcionar

  6. Monitorizar Google Search Console diariamente durante 14 dias

  7. Submeter novo sitemap XML ao Google Search Console

  8. Submeter pedido de re-indexacao para as paginas principais via URL Inspection

  9. Cancelar subscricao SiteGround apos confirmar estabilidade (aguardar 30 dias)

  10. Estimar duracao: 2-4 horas

8. Estimativa de Tempo e Custo

8.1 Tempo total estimado


Fase Minimo Maximo Notas

Fase 1 --- Auditoria 4h 8h Depende do SiteGround tamanho do arquivo media

Fase 2 --- Setup 3h 5h Relativamente Hostinger staging previsivel

Fase 3 --- Migracao e 20h 40h A mais variavel construcao --- depende da complexidade do WP actual

Fase 4 --- QA e validacao 4h 8h Mais lenta se forem encontrados erros

Fase 5 --- Corte DNS e 2h 4h Rapida se tudo go-live estiver preparado

TOTAL 33h 65h 2-4 sessoes intensivas Claude Code


Nota sobre o Claude Code: Cada sessao Claude Code tem um limite de contexto. Para um projecto desta dimensao, planear 4-6 sessoes de trabalho separadas, cada uma com um objectivo claro (Fase 1, Fase 2, etc.). Documentar o estado no final de cada sessao para a seguinte comecar com contexto completo.

8.2 Custo total


Item Custo Notas

SiteGround (cancelar Poupanca Subscricao actual --- cancela apos go-live) \~€20-30/mes 30 dias apos go-live

Hostinger VPS (ja pago) €0 adicional Site Gamine corre no VPS existente sem custo extra

Directus (CMS) €0 Open source, self-hosted no VPS

Listmonk (newsletters) €0 Open source, self-hosted no VPS

Astro (framework) €0 Open source, MIT

Email transaccional €0 ate 300/dia Gratis ate threshold, depois (Brevo) €9/mes se necessario

Fonte Avenir (se em uso) €0 ou €25/mes €0 se substituir por Nunito; €25/mes Adobe Fonts se manter

Claude Code (sessoes) \~€10-30 Estimativa baseada em 33-65h de uso intensivo

TOTAL de custos €10-30 Custo marginal quasi-zero --- novos one-time poupanca de €20-30/mes


Conclusao: A migracao custa pratica­mente zero em termos financeiros e poupa €20-30/mes em SiteGround. O investimento real e de tempo --- 33 a 65 horas de trabalho Claude Code distribuidas por 4-6 sessoes. O resultado e um site mais rapido, mais seguro, com melhor SEO e com controlo total sobre a infra­estrutura.

--- fim do documento ---