Files
avz-site/scripts/prerender.cjs
T
2026-06-02 12:43:57 -03:00

217 lines
13 KiB
JavaScript

// ============================================================================
// PRERENDER - Gera HTML estatico com conteudo real para cada rota
// ============================================================================
// Executa apos npm run build
// Gera index.html com conteudo HTML real (nao vazio) para cada rota
// Isso resolve o problema de SEO: Google recebe conteudo no 1o request
// ============================================================================
const fs = require('fs');
const path = require('path');
const DIST_DIR = path.resolve(__dirname, '../dist');
const INDEX_HTML = path.join(DIST_DIR, 'index.html');
// Verificar se dist existe
if (!fs.existsSync(DIST_DIR)) {
console.error('ERRO: pasta dist/ nao encontrada. Execute npm run build primeiro.');
process.exit(1);
}
// Ler o index.html base
let baseHtml = fs.readFileSync(INDEX_HTML, 'utf-8');
// Rotas para prerenderizar
const ROUTES = [
{ path: '/', title: 'Avanzato Tecnologia | TI Gerenciada, Cloud e Seguranca em Guarulhos/SP', desc: 'Solucoes em TI Gerenciada, Cloud Computing e Seguranca da Informacao. +23 anos de experiencia, +500 clientes atendidos. Suporte 24/7.' },
{ path: '/sobre', title: 'Sobre a Avanzato Tecnologia | +23 Anos de Experiencia em TI', desc: 'Conheca a Avanzato Tecnologia. +23 anos de experiencia em TI Gerenciada, Cloud e Seguranca. +500 clientes satisfeitos em Sao Paulo.' },
{ path: '/cases', title: 'Cases de Sucesso - Avanzato Tecnologia | Projetos de TI', desc: 'Conheca nossos cases de sucesso em TI. Empresas de contabilidade, advocacia, industria, monitoramento e mais. +23 anos de experiencia.' },
{ path: '/onde-atuamos', title: 'Onde Atuamos - Suporte de TI em Sao Paulo e Regiao', desc: 'Avanzato Tecnologia atende em Guarulhos, Mogi das Cruzes, Ipiranga, Zona Leste, Zona Norte, Centro e Ribeirao Preto. Suporte presencial e remoto.' },
{ path: '/avaliacao', title: 'Avaliacao Gratuita de TI - Avanzato Tecnologia', desc: 'Avalie gratuitamente a maturidade da TI da sua empresa. Descubra o nivel e receba recomendacoes personalizadas.' },
{ path: '/contato', title: 'Contato - Avanzato Tecnologia | TI em Guarulhos/SP', desc: 'Entre em contato com a Avanzato Tecnologia. Telefone (11) 4810-1704, WhatsApp, email ou formulario. Atendimento 24/7.' },
{ path: '/servicos/ti-gerenciada', title: 'TI Gerenciada para Empresas - Avanzato Tecnologia', desc: 'TI Gerenciada completa para empresas em Guarulhos e Sao Paulo. Suporte 24/7, monitoramento em tempo real e equipe especializada.' },
{ path: '/servicos/cloud-computing', title: 'Cloud Computing e Virtualizacao - Avanzato', desc: 'Solucoes em Cloud Computing: AWS, Azure, Google Cloud. Migracao, gestao e otimizacao de infraestrutura em nuvem.' },
{ path: '/servicos/seguranca', title: 'Seguranca da Informacao - Avanzato Tecnologia', desc: 'Protecao completa para sua empresa: firewall, antivirus, backup, LGPD. Seguranca de rede e dados com suporte 24/7.' },
{ path: '/servicos/suporte', title: 'Suporte Tecnico 24/7 - Avanzato Tecnologia', desc: 'Suporte tecnico empresarial 24 horas. Help desk, atendimento remoto e presencial em Guarulhos e regiao.' },
{ path: '/ti-para-contabilidades', title: 'TI para Escritorios de Contabilidade - Avanzato', desc: 'Solucoes de TI especializadas para contabilidades: seguranca de dados fiscais, backup de obrigacoes, NF-e. SPED e ECD.' },
{ path: '/ti-para-advocacias', title: 'TI para Escritorios de Advocacia - Avanzato', desc: 'TI para advocacias: seguranca de processos, LGPD para clientes, backup de documentos juridicos. PJe e e-SAJ.' },
{ path: '/monitoramento-empresarial', title: 'Monitoramento Empresarial com CFTV - Avanzato', desc: 'Sistemas de CFTV e monitoramento por camera para empresas. IP cameras, NVR, DVR, acesso remoto via celular.' },
{ path: '/firewall-pfsense-empresarial', title: 'Firewall pfSense Empresarial - Avanzato', desc: 'Implementacao e configuracao de firewall pfSense e OPNsense. Seguranca de rede, VPN, filtro de conteudo.' },
{ path: '/backup-corporativo', title: 'Backup Corporativo e Disaster Recovery - Avanzato', desc: 'Backup automatizado em nuvem e local. Disaster Recovery, recuperacao de dados. Protecao contra ransomware.' },
{ path: '/voip-empresarial', title: 'VoIP Empresarial e PABX IP - Avanzato Tecnologia', desc: 'Telefonia VoIP para empresas: PABX IP, chamadas ilimitadas, integracao com CRM. Reducao de 70% na conta telefonica.' },
{ path: '/suporte-ti-guarulhos', title: 'Suporte de TI em Guarulhos - Matriz Avanzato', desc: 'Suporte de TI empresarial em Guarulhos. Atendemos contabilidades, advocacias, industrias e mais. Matriz da Avanzato. +23 anos.' },
{ path: '/suporte-ti-mogi-das-cruzes', title: 'Suporte de TI em Mogi das Cruzes - Avanzato', desc: 'Suporte de TI empresarial em Mogi das Cruzes. Atendimento presencial e remoto para empresas de todos os portes.' },
{ path: '/suporte-ti-ipiranga', title: 'Suporte de TI em Ipiranga - Avanzato Tecnologia', desc: 'Suporte de TI empresarial em Ipiranga, Sao Paulo. Atendimento a clinicas, escolas e comercios do bairro.' },
{ path: '/suporte-ti-industria', title: 'TI para Industria - Avanzato Tecnologia', desc: 'Solucoes de TI especializadas para industrias. Suporte tecnico, seguranca, cloud e comunicacao. +23 anos de experiencia.' },
{ path: '/suporte-ti-portaria-remota', title: 'TI para Portaria Remota - Avanzato Tecnologia', desc: 'Solucoes de TI para portaria remota: interfornia IP, controle de acesso, cameras. Condominios, empresas, industrias.' },
{ path: '/suporte-ti-clinicas', title: 'TI para Clinicas - Avanzato Tecnologia', desc: 'Solucoes de TI para clinicas: odontologia, fisioterapia, medica, veterinaria. LGPD, prontuario digital, telemedicina.' },
{ path: '/suporte-ti-imobiliarias', title: 'TI para Imobiliarias - Avanzato Tecnologia', desc: 'Solucoes de TI para imobiliarias: sistemas de gestao, CRM, site de imoveis. Residencial, comercial, industrial.' },
{ path: '/tecnologias', title: 'Tecnologias que Trabalhamos - Avanzato Tecnologia', desc: 'Conheca as tecnologias que a Avanzato domina: Cisco, VMware, Microsoft, Linux, pfSense, Proxmox e muito mais.' },
];
// Conteudo HTML prerenderizado para cada tipo de pagina
function generateContent(route) {
const isHome = route.path === '/';
const isLocal = route.path.includes('suporte-ti-');
const isService = route.path.includes('servicos/');
const isNicho = route.path.includes('ti-para-') || route.path.includes('suporte-ti-') && !isLocal;
let content = '';
if (isHome) {
content = `
<section class="hero">
<h1>Avanzato Tecnologia - TI Gerenciada, Cloud e Seguranca</h1>
<p>+23 anos de experiencia em TI para empresas. +500 clientes atendidos em Guarulhos, Sao Paulo e regiao.</p>
<p>Servicos: Suporte Tecnico 24/7, Cloud Computing, Seguranca da Informacao, Backup Corporativo, VoIP, Firewall, Monitoramento.</p>
<div><a href="/avaliacao">Avaliacao Gratuita</a> <a href="/contato">Falar com Especialista</a></div>
</section>
<section>
<h2>Por que escolher a Avanzato?</h2>
<ul>
<li>Suporte 24/7 com equipe especializada</li>
<li>+23 anos de experiencia em TI empresarial</li>
<li>+500 clientes atendidos em diversos segmentos</li>
<li>Atendimento em Guarulhos, Grande SP e interior</li>
<li>Relatorios tecnicos mensais detalhados</li>
</ul>
</section>
<section>
<h2>Segmentos que Atendemos</h2>
<p>Contabilidades, Advocacias, Industrias, BPO, Clinicas, Imobiliarias, Condominios, Logistica, Monitoramento.</p>
<p><a href="/onde-atuamos">Ver onde atuamos</a></p>
</section>
<section>
<h2>Onde Atuamos</h2>
<p>Guarulhos (matriz), Mogi das Cruzes, Ipiranga, Vila Formosa, Cerqueira Cesar, Santana, Bras, Ribeirao Preto.</p>
<p><a href="/onde-atuamos">Ver todas as localidades</a></p>
</section>`;
} else if (isLocal) {
const city = route.title.split(' em ')[1]?.split(' - ')[0] || '';
content = `
<article>
<h1>Suporte de TI em ${city}</h1>
<p>Empresa de suporte de TI em ${city} com atendimento presencial e remoto. +23 anos de experiencia.</p>
<h2>Servicos em ${city}</h2>
<ul>
<li>Suporte tecnico 24/7</li>
<li>Administracao de servidores</li>
<li>Backup corporativo</li>
<li>Firewall e seguranca</li>
<li>Microsoft 365</li>
<li>Cloud Computing</li>
<li>VoIP e PABX IP</li>
<li>Monitoramento CFTV</li>
</ul>
<h2>Segmentos Atendidos em ${city}</h2>
<p>Contabilidades, Advocacias, Industrias, Clinicas, Imobiliarias, Condominios, Logistica, Monitoramento.</p>
<div><a href="/avaliacao">Solicitar Avaliacao Gratuita</a></div>
</article>`;
} else if (route.path === '/onde-atuamos') {
content = `
<article>
<h1>Onde a Avanzato Atua</h1>
<p>Presente em toda a regiao metropolitana de Sao Paulo e interior. Atendimento presencial e remoto.</p>
<h2>Cidades Atendidas</h2>
<ul>
<li><a href="/suporte-ti-guarulhos">Guarulhos</a> - Matriz Avanzato</li>
<li><a href="/suporte-ti-mogi-das-cruzes">Mogi das Cruzes</a></li>
<li><a href="/suporte-ti-ipiranga">Ipiranga</a></li>
<li><a href="/suporte-ti-vila-formosa">Vila Formosa</a></li>
<li><a href="/suporte-ti-cerqueira-cesar">Cerqueira Cesar</a></li>
<li><a href="/suporte-ti-santana">Santana</a></li>
<li><a href="/suporte-ti-bras">Bras</a></li>
<li><a href="/suporte-ti-ribeirao-preto">Ribeirao Preto</a></li>
</ul>
<div><a href="/contato">Falar com Especialista</a></div>
</article>`;
} else if (route.path === '/cases') {
content = `
<article>
<h1>Cases de Sucesso - Avanzato Tecnologia</h1>
<p>Conheca nossos cases de sucesso em TI. Empresas de diversos segmentos que confiam na Avanzato.</p>
<h2>Cases Recentes</h2>
<ul>
<li><strong>Apoio 24 Horas</strong> - Monitoramento - Servidores, pfSense, VPN</li>
<li><strong>ONG/Terceiro Setor</strong> - Institucional - Suporte, Cloud, Seguranca</li>
<li><strong>Museu de Faculdade Publica</strong> - Acervo Digital - Tainacan, ICA-AtoM</li>
<li><strong>Thalls</strong> - Industria - Suporte, VoIP</li>
<li><strong>Dellacont</strong> - Contabilidade - Suporte, Servidor, Backup</li>
<li><strong>Mourad Naddi Advogados</strong> - Advocacia - Suporte, Servidor, Backup</li>
<li><strong>GateOne e Fox</strong> - Monitoramento - Servidores, VPN</li>
<li><strong>Lucena Textil</strong> - Textil - Colocation, VPN, Backup</li>
</ul>
<div><a href="/avaliacao">Quero um case de sucesso tambem</a></div>
</article>`;
} else if (isService || isNicho) {
const serviceName = route.title.split(' - ')[0];
content = `
<article>
<h1>${serviceName}</h1>
<p>${route.desc}</p>
<h2>O que oferecemos</h2>
<ul>
<li>Diagnostico inicial gratuito</li>
<li>Projeto personalizado</li>
<li>Implantacao completa</li>
<li>Suporte continuo</li>
<li>Relatorios periodicos</li>
</ul>
<h2>Perguntas Frequentes</h2>
<p><strong>Qual o tempo de resposta?</strong> Nosso SLA garante atendimento em ate 4 horas para chamados criticos.</p>
<p><strong>Atendem empresas de qual porte?</strong> Atendemos de pequenas a grandes empresas, com planos flexiveis.</p>
<div><a href="/avaliacao">Solicitar Avaliacao Gratuita</a> <a href="/contato">Falar com Especialista</a></div>
</article>`;
} else {
content = `
<article>
<h1>${route.title.split(' - ')[0]}</h1>
<p>${route.desc}</p>
<div><a href="/contato">Entrar em Contato</a> <a href="/avaliacao">Avaliacao Gratuita</a></div>
</article>`;
}
return content;
}
// Gerar HTML prerenderizado para cada rota
console.log('[Prerender] Gerando HTML estatico com conteudo real...\n');
let count = 0;
for (const route of ROUTES) {
// Atualizar title e meta description
let html = baseHtml
.replace(/<title>.*?<\/title>/, `<title>${route.title}</title>`)
.replace(/<meta name="title" content=".*?" \/>/, `<meta name="title" content="${route.title}" />`)
.replace(/<meta name="description" content=".*?" \/>/, `<meta name="description" content="${route.desc}" />`)
.replace(/<meta name="app-version" content=".*?" \/>/, `<meta name="app-version" content="${require('../public/version.json').version}" />`);
// Gerar conteudo HTML
const content = generateContent(route);
// Inserir conteudo no div#root (substituir <div id="root"></div>)
html = html.replace(
'<div id="root"></div>',
`<div id="root">${content}</div>`
);
// Determinar caminho de saida
let outputPath;
if (route.path === '/') {
outputPath = path.join(DIST_DIR, 'index.html');
} else {
// Criar pasta e salvar index.html
const dir = path.join(DIST_DIR, route.path.replace(/^\//, ''));
fs.mkdirSync(dir, { recursive: true });
outputPath = path.join(dir, 'index.html');
}
fs.writeFileSync(outputPath, html);
count++;
console.log(` OK: ${route.path}${outputPath.replace(DIST_DIR + '/', '')}`);
}
console.log(`\n[Prerender] ${count} paginas geradas com conteudo HTML real!`);
console.log('[Prerender] Agora o Google recebe conteudo no 1o request, sem precisar de JavaScript.\n');