Paginas e SEO master

This commit is contained in:
2026-06-02 12:43:57 -03:00
parent 6db7b5200b
commit 80dbb986f4
18 changed files with 431 additions and 387 deletions
BIN
View File
Binary file not shown.
-246
View File
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+70 -13
View File
@@ -5,6 +5,36 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<!-- DETECAO DE AMBIENTE - Inline (executa antes de tudo) -->
<script>
(function() {
var h = location.hostname;
var IS_PROD = h === 'avanzato.com.br' || h === 'www.avanzato.com.br';
// Torna disponivel para outros scripts
window.__IS_PROD__ = IS_PROD;
// Se NAO for producao, desativa tracking globalmente
if (!IS_PROD) {
window.__AVANZATO_ENV__ = h === 'hml.avanzato.com.br' ? 'homologation' : 'development';
// Bloqueia gtag
window.dataLayer = { push: function(){} };
window.gtag = function(){};
// Bloqueia fbq (Facebook Pixel)
window.fbq = function(){};
// Bloqueia Mautic
window.MauticSDKLoaded = true;
console.log('[Avanzato] Ambiente: ' + window.__AVANZATO_ENV__ + ' | Tracking bloqueado');
} else {
window.__AVANZATO_ENV__ = 'production';
}
})();
</script>
<!-- Google tag (gtag.js) - Ads + Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=AW-16714813566"></script>
<script>
@@ -69,7 +99,8 @@
<!-- Primary Meta Tags -->
<title>Avanzato Tecnologia | TI Gerenciada, Cloud e Seguranca em Guarulhos/SP</title>
<meta name="title" content="Avanzato Tecnologia | TI Gerenciada, Cloud e Seguranca em Guarulhos/SP" />
<meta name="description" content="Solucoes em TI Gerenciada, Cloud Computing e Seguranca da Informacao. +23 anos de experiencia, +500 clientes atendidos. Suporte 24/7 em Guarulhos e regiao." />
<meta name="description" content="Solucoes em TI Gerenciada, Cloud Computing e Seguranca da Informacao. +23 anos de experiencia, +500 clientes atendidos. Suporte 24/7." />
<meta name="app-version" content="1.3.4" />
<meta name="keywords" content="TI Gerenciada, Cloud Computing, Seguranca da Informacao, Suporte Tecnico, Tecnologia da Informacao, Guarulhos, Sao Paulo, Infraestrutura de TI, Backup, Firewall, Consultoria TI" />
<meta name="author" content="Avanzato Tecnologia" />
<meta name="robots" content="index, follow" id="meta-robots" />
@@ -78,9 +109,9 @@
<!-- BLOQUEAR INDEXACAO EM HOMOLOGACAO -->
<script>
(function() {
var hostname = window.location.hostname;
if (hostname !== 'avanzato.com.br') {
// Homologacao: bloquear indexacao
// Usa IS_PROD ja definido no inicio do documento
if (!window.__IS_PROD__) {
// Homologacao/Desenvolvimento: bloquear indexacao
document.getElementById('meta-robots').setAttribute('content', 'noindex, nofollow');
document.getElementById('meta-googlebot').setAttribute('content', 'noindex, nofollow');
// Adicionar tambem X-Robots-Tag via meta http-equiv
@@ -88,7 +119,9 @@
meta.httpEquiv = 'X-Robots-Tag';
meta.content = 'noindex, nofollow';
document.head.appendChild(meta);
console.log('%c[SEO] Homologacao detectada - indexacao BLOQUEADA (noindex, nofollow)', 'background:#dc2626;color:#fff;font-weight:bold;padding:2px 6px;border-radius:3px');
console.log('%c[SEO] ' + (window.__AVANZATO_ENV__ || 'nao-producao') + ' - indexacao BLOQUEADA', 'background:#dc2626;color:#fff;font-weight:bold;padding:2px 6px;border-radius:3px');
} else {
console.log('%c[SEO] Producao - indexacao PERMITIDA (index, follow)', 'background:#16a34a;color:#fff;font-weight:bold;padding:2px 6px;border-radius:3px');
}
})();
</script>
@@ -113,11 +146,9 @@
<meta property="twitter:image" content="https://avanzato.com.br/og-image.jpg" />
<!-- Favicon -->
<link rel="icon" type="image/svg+xml" href="./favicon.svg" />
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png" />
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png" />
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png" />
<link rel="manifest" href="./site.webmanifest" />
<link rel="icon" type="image/png" href="https://avanzato.com.br/favicon.png" />
<link rel="shortcut icon" type="image/png" href="https://avanzato.com.br/favicon.png" />
<link rel="manifest" href="/site.webmanifest" />
<!-- Theme Color -->
<meta name="theme-color" content="#cbf400" />
@@ -208,11 +239,37 @@
}
}
</script>
<script type="module" crossorigin src="./assets/index-C1GgsDvQ.js"></script>
<link rel="stylesheet" crossorigin href="./assets/index-Cg4oF5jQ.css">
<script type="module" crossorigin src="/assets/index-DFuPBbfP.js"></script>
<link rel="stylesheet" crossorigin href="/assets/index-CWiRqhwC.css">
</head>
<body>
<div id="root"></div>
<div id="root">
<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></div>
<!-- Facebook Pixel noscript (moved from head to body to fix parse5 warning) -->
<noscript>
+10 -23
View File
@@ -1,26 +1,13 @@
# =============================================================================
# ROBOTS.TXT - VERSAO HOMOLOGACAO/DESENVOLVIMENTO
# =============================================================================
# Este arquivo BLOQUEIA TODOS os crawlers.
#
# Para PRODUCAO (avanzato.com.br), substitua por:
# User-agent: *
# Allow: /
# Sitemap: https://avanzato.com.br/sitemap.xml
# =============================================================================
# ============================================================================
# AVANZATO TECNOLOGIA - ROBOTS.TXT (GENERICO)
# ============================================================================
# O controle real de indexacao e feito pelo <meta name="robots"> no HTML:
# - Producao (avanzato.com.br): index, follow
# - Homologacao (hml.avanzato.com.br): noindex, nofollow
# - Desenvolvimento (localhost): noindex, nofollow
# ============================================================================
User-agent: *
Disallow: /
Allow: /
# Bloqueio explicito de todos os bots
User-agent: Googlebot
Disallow: /
User-agent: Bingbot
Disallow: /
User-agent: Slurp
Disallow: /
# Sitemap comentado (descomente em producao)
# Sitemap: https://avanzato.com.br/sitemap.xml
Sitemap: https://avanzato.com.br/sitemap.xml
+74
View File
@@ -165,4 +165,78 @@
<changefreq>weekly</changefreq>
<priority>0.9</priority>
</url>
<!-- SEO Local - Onde Atuamos -->
<url>
<loc>https://avanzato.com.br/onde-atuamos</loc>
<changefreq>weekly</changefreq>
<priority>0.9</priority>
</url>
<url>
<loc>https://avanzato.com.br/suporte-ti-guarulhos</loc>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://avanzato.com.br/suporte-ti-mogi-das-cruzes</loc>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://avanzato.com.br/suporte-ti-ipiranga</loc>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://avanzato.com.br/suporte-ti-vila-formosa</loc>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://avanzato.com.br/suporte-ti-cerqueira-cesar</loc>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://avanzato.com.br/suporte-ti-santana</loc>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://avanzato.com.br/suporte-ti-bras</loc>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://avanzato.com.br/suporte-ti-ribeirao-preto</loc>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<!-- Nichos adicionais -->
<url>
<loc>https://avanzato.com.br/suporte-ti-industria</loc>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://avanzato.com.br/suporte-ti-portaria-remota</loc>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://avanzato.com.br/suporte-ti-clinicas</loc>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://avanzato.com.br/suporte-ti-imobiliarias</loc>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://avanzato.com.br/suporte-ti-recrutamento-selecao</loc>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
</urlset>
+1
View File
@@ -100,6 +100,7 @@
<title>Avanzato Tecnologia | TI Gerenciada, Cloud e Seguranca em Guarulhos/SP</title>
<meta name="title" content="Avanzato Tecnologia | TI Gerenciada, Cloud e Seguranca em Guarulhos/SP" />
<meta name="description" content="Solucoes em TI Gerenciada, Cloud Computing e Seguranca da Informacao. +23 anos de experiencia, +500 clientes atendidos. Suporte 24/7 em Guarulhos e regiao." />
<meta name="app-version" content="1.0.0" />
<meta name="keywords" content="TI Gerenciada, Cloud Computing, Seguranca da Informacao, Suporte Tecnico, Tecnologia da Informacao, Guarulhos, Sao Paulo, Infraestrutura de TI, Backup, Firewall, Consultoria TI" />
<meta name="author" content="Avanzato Tecnologia" />
<meta name="robots" content="index, follow" id="meta-robots" />
-35
View File
@@ -1,35 +0,0 @@
# Release HML
Data: ter 2 jun 2026 10:42:22 -03
Ambiente:
HML
Descrição:
Paginas e SEO master
Branch:
develop
Arquivos alterados antes do commit:
D infra/releases/2026-06-01_19-55-53_HML.md
M package-lock.json
M src/config/site.ts
M vite.config.ts
?? infra/releases/2026-06-02_10-42-22_HML.md
Status:
Preparado para publicação
Commit:
6140142b
Arquivos no commit:
infra/releases/2026-06-01_19-55-53_HML.md
infra/releases/2026-06-02_10-42-22_HML.md
package-lock.json
src/config/site.ts
vite.config.ts
Status final:
Publicado no Gitea / aguardando pipeline HML
-31
View File
@@ -1,31 +0,0 @@
# Release HML
Data: ter 2 jun 2026 11:45:36 -03
Ambiente:
HML
Descrição:
Paginas e SEO master
Branch:
develop
Arquivos alterados antes do commit:
M node_modules/.vite/deps/_metadata.json
M package-lock.json
?? infra/releases/2026-06-02_11-45-35_HML.md
Status:
Preparado para publicação
Commit:
2900b9af
Arquivos no commit:
infra/releases/2026-06-02_11-45-35_HML.md
node_modules/.vite/deps/_metadata.json
package-lock.json
Status final:
Publicado no Gitea / aguardando pipeline HML
-29
View File
@@ -1,29 +0,0 @@
# Release HML
Data: ter 2 jun 2026 12:07:34 -03
Ambiente:
HML
Descrição:
Paginas e SEO master
Branch:
develop
Arquivos alterados antes do commit:
M public/version.json
?? infra/releases/2026-06-02_12-07-34_HML.md
Status:
Preparado para publicação
Commit:
52cda430
Arquivos no commit:
infra/releases/2026-06-02_12-07-34_HML.md
public/version.json
Status final:
Publicado no Gitea / aguardando pipeline HML
+35
View File
@@ -0,0 +1,35 @@
# Release HML
Data: ter 2 jun 2026 12:43:57 -03
Ambiente:
HML
Descrição:
Paginas e SEO master
Branch:
develop
Arquivos alterados antes do commit:
D dist/.DS_Store
D dist/assets/index-C1GgsDvQ.js
D dist/assets/index-Cg4oF5jQ.css
M dist/index.html
M dist/robots.txt
M dist/sitemap.xml
M index.html
D infra/releases/2026-06-02_10-42-22_HML.md
D infra/releases/2026-06-02_11-45-35_HML.md
D infra/releases/2026-06-02_12-07-34_HML.md
M node_modules/.tmp/tsconfig.app.tsbuildinfo
M public/version.json
M scripts/build-static-routes.sh
M src/config/site.ts
M src/sections/Footer.tsx
M vite.config.ts
?? infra/releases/2026-06-02_12-43-57_HML.md
?? scripts/prerender.cjs
Status:
Preparado para publicação
+1 -1
View File
@@ -1 +1 @@
{"root":["../../src/app.tsx","../../src/global.d.ts","../../src/main.tsx","../../src/components/cookieconsent.tsx","../../src/components/glowbutton.tsx","../../src/components/homologationbanner.tsx","../../src/components/whatsappwidget.tsx","../../src/components/ui/accordion.tsx","../../src/components/ui/alert-dialog.tsx","../../src/components/ui/alert.tsx","../../src/components/ui/aspect-ratio.tsx","../../src/components/ui/avatar.tsx","../../src/components/ui/badge.tsx","../../src/components/ui/breadcrumb.tsx","../../src/components/ui/button-group.tsx","../../src/components/ui/button.tsx","../../src/components/ui/calendar.tsx","../../src/components/ui/card.tsx","../../src/components/ui/carousel.tsx","../../src/components/ui/chart.tsx","../../src/components/ui/checkbox.tsx","../../src/components/ui/collapsible.tsx","../../src/components/ui/command.tsx","../../src/components/ui/context-menu.tsx","../../src/components/ui/dialog.tsx","../../src/components/ui/drawer.tsx","../../src/components/ui/dropdown-menu.tsx","../../src/components/ui/empty.tsx","../../src/components/ui/field.tsx","../../src/components/ui/form.tsx","../../src/components/ui/hover-card.tsx","../../src/components/ui/input-group.tsx","../../src/components/ui/input-otp.tsx","../../src/components/ui/input.tsx","../../src/components/ui/item.tsx","../../src/components/ui/kbd.tsx","../../src/components/ui/label.tsx","../../src/components/ui/menubar.tsx","../../src/components/ui/navigation-menu.tsx","../../src/components/ui/pagination.tsx","../../src/components/ui/popover.tsx","../../src/components/ui/progress.tsx","../../src/components/ui/radio-group.tsx","../../src/components/ui/resizable.tsx","../../src/components/ui/scroll-area.tsx","../../src/components/ui/select.tsx","../../src/components/ui/separator.tsx","../../src/components/ui/sheet.tsx","../../src/components/ui/sidebar.tsx","../../src/components/ui/skeleton.tsx","../../src/components/ui/slider.tsx","../../src/components/ui/sonner.tsx","../../src/components/ui/spinner.tsx","../../src/components/ui/switch.tsx","../../src/components/ui/table.tsx","../../src/components/ui/tabs.tsx","../../src/components/ui/textarea.tsx","../../src/components/ui/toggle-group.tsx","../../src/components/ui/toggle.tsx","../../src/components/ui/tooltip.tsx","../../src/config/mautic.ts","../../src/config/site.ts","../../src/hooks/use-mobile.ts","../../src/lib/utils.ts","../../src/pages/avaliador.tsx","../../src/pages/blog.tsx","../../src/pages/blogpost.tsx","../../src/pages/cases.tsx","../../src/pages/condominios.tsx","../../src/pages/contato.tsx","../../src/pages/home.tsx","../../src/pages/notfound.tsx","../../src/pages/privacidade.tsx","../../src/pages/sobre.tsx","../../src/pages/tecnologias.tsx","../../src/pages/termos.tsx","../../src/pages/nichos/advocacia.tsx","../../src/pages/nichos/backupcorporativo.tsx","../../src/pages/nichos/contabilidade.tsx","../../src/pages/nichos/firewallpfsense.tsx","../../src/pages/nichos/monitoramento.tsx","../../src/pages/nichos/voipempresarial.tsx","../../src/pages/services/backup.tsx","../../src/pages/services/cloudcomputing.tsx","../../src/pages/services/consultoria.tsx","../../src/pages/services/noc.tsx","../../src/pages/services/pabx.tsx","../../src/pages/services/redes.tsx","../../src/pages/services/seguranca.tsx","../../src/pages/services/servidores.tsx","../../src/pages/services/suporte.tsx","../../src/pages/services/tigerenciada.tsx","../../src/pages/tech/cisco.tsx","../../src/pages/tech/linux.tsx","../../src/pages/tech/pfsense.tsx","../../src/pages/tech/proxmox.tsx","../../src/pages/tech/sharepoint.tsx","../../src/pages/tech/vmware.tsx","../../src/pages/tech/windowsserver.tsx","../../src/sections/about.tsx","../../src/sections/condominioscta.tsx","../../src/sections/contact.tsx","../../src/sections/footer.tsx","../../src/sections/hero.tsx","../../src/sections/navigation.tsx","../../src/sections/services.tsx","../../src/sections/testimonials.tsx"],"version":"5.9.3"}
{"root":["../../src/app.tsx","../../src/global.d.ts","../../src/main.tsx","../../src/components/cookieconsent.tsx","../../src/components/glowbutton.tsx","../../src/components/homologationbanner.tsx","../../src/components/seo.tsx","../../src/components/whatsappwidget.tsx","../../src/components/ui/accordion.tsx","../../src/components/ui/alert-dialog.tsx","../../src/components/ui/alert.tsx","../../src/components/ui/aspect-ratio.tsx","../../src/components/ui/avatar.tsx","../../src/components/ui/badge.tsx","../../src/components/ui/breadcrumb.tsx","../../src/components/ui/button-group.tsx","../../src/components/ui/button.tsx","../../src/components/ui/calendar.tsx","../../src/components/ui/card.tsx","../../src/components/ui/carousel.tsx","../../src/components/ui/chart.tsx","../../src/components/ui/checkbox.tsx","../../src/components/ui/collapsible.tsx","../../src/components/ui/command.tsx","../../src/components/ui/context-menu.tsx","../../src/components/ui/dialog.tsx","../../src/components/ui/drawer.tsx","../../src/components/ui/dropdown-menu.tsx","../../src/components/ui/empty.tsx","../../src/components/ui/field.tsx","../../src/components/ui/form.tsx","../../src/components/ui/hover-card.tsx","../../src/components/ui/input-group.tsx","../../src/components/ui/input-otp.tsx","../../src/components/ui/input.tsx","../../src/components/ui/item.tsx","../../src/components/ui/kbd.tsx","../../src/components/ui/label.tsx","../../src/components/ui/menubar.tsx","../../src/components/ui/navigation-menu.tsx","../../src/components/ui/pagination.tsx","../../src/components/ui/popover.tsx","../../src/components/ui/progress.tsx","../../src/components/ui/radio-group.tsx","../../src/components/ui/resizable.tsx","../../src/components/ui/scroll-area.tsx","../../src/components/ui/select.tsx","../../src/components/ui/separator.tsx","../../src/components/ui/sheet.tsx","../../src/components/ui/sidebar.tsx","../../src/components/ui/skeleton.tsx","../../src/components/ui/slider.tsx","../../src/components/ui/sonner.tsx","../../src/components/ui/spinner.tsx","../../src/components/ui/switch.tsx","../../src/components/ui/table.tsx","../../src/components/ui/tabs.tsx","../../src/components/ui/textarea.tsx","../../src/components/ui/toggle-group.tsx","../../src/components/ui/toggle.tsx","../../src/components/ui/tooltip.tsx","../../src/config/environment.ts","../../src/config/mautic.ts","../../src/config/schema.ts","../../src/config/site.ts","../../src/hooks/use-mobile.ts","../../src/lib/utils.ts","../../src/pages/avaliador.tsx","../../src/pages/blog.tsx","../../src/pages/blogpost.tsx","../../src/pages/cases.tsx","../../src/pages/condominios.tsx","../../src/pages/contato.tsx","../../src/pages/home.tsx","../../src/pages/notfound.tsx","../../src/pages/ondeatuamos.tsx","../../src/pages/privacidade.tsx","../../src/pages/sobre.tsx","../../src/pages/tecnologias.tsx","../../src/pages/termos.tsx","../../src/pages/local-bras.tsx","../../src/pages/local-cerqueira-cesar.tsx","../../src/pages/local-guarulhos.tsx","../../src/pages/local-ipiranga.tsx","../../src/pages/local-mogi-das-cruzes.tsx","../../src/pages/local-ribeirao-preto.tsx","../../src/pages/local-santana.tsx","../../src/pages/local-vila-formosa.tsx","../../src/pages/nicho-clinicas.tsx","../../src/pages/nicho-imobiliarias.tsx","../../src/pages/nicho-industria.tsx","../../src/pages/nicho-portaria-remota.tsx","../../src/pages/nicho-recrutamento-selecao.tsx","../../src/pages/nichos/advocacia.tsx","../../src/pages/nichos/backupcorporativo.tsx","../../src/pages/nichos/contabilidade.tsx","../../src/pages/nichos/firewallpfsense.tsx","../../src/pages/nichos/monitoramento.tsx","../../src/pages/nichos/voipempresarial.tsx","../../src/pages/services/backup.tsx","../../src/pages/services/cloudcomputing.tsx","../../src/pages/services/consultoria.tsx","../../src/pages/services/noc.tsx","../../src/pages/services/pabx.tsx","../../src/pages/services/redes.tsx","../../src/pages/services/seguranca.tsx","../../src/pages/services/servidores.tsx","../../src/pages/services/suporte.tsx","../../src/pages/services/tigerenciada.tsx","../../src/pages/tech/cisco.tsx","../../src/pages/tech/linux.tsx","../../src/pages/tech/pfsense.tsx","../../src/pages/tech/proxmox.tsx","../../src/pages/tech/sharepoint.tsx","../../src/pages/tech/vmware.tsx","../../src/pages/tech/windowsserver.tsx","../../src/sections/about.tsx","../../src/sections/condominioscta.tsx","../../src/sections/contact.tsx","../../src/sections/footer.tsx","../../src/sections/hero.tsx","../../src/sections/navigation.tsx","../../src/sections/services.tsx","../../src/sections/testimonials.tsx"],"version":"5.9.3"}
+2 -2
View File
@@ -1,5 +1,5 @@
{
"version": "1.3.4",
"date": "2026-06-01",
"date": "2026-06-02",
"environment": "auto-detect"
}
}
+7
View File
@@ -93,6 +93,12 @@ echo -e "${GREEN}OK${NC} 404.html criado"
# Limpar backup
rm -f "$DIST_DIR/index.html.bak"
echo ""
# Gerar HTML prerenderizado com conteudo real (SEO)
echo ""
echo -e "${BLUE}[Prerender]${NC} Gerando HTML com conteudo real para SEO..."
node "${SCRIPT_DIR}/prerender.cjs"
echo ""
echo -e "${GREEN}Post-build concluido!${NC}"
echo ""
@@ -100,4 +106,5 @@ echo "Estrutura gerada:"
echo " dist/index.html (home)"
echo " dist/404.html (pagina nao encontrada)"
echo " dist/{rota}/index.html (${#ROUTES[@]} paginas estaticas)"
echo " dist/{rota}/index.html (HTML com conteudo real para SEO)"
echo ""
+216
View File
@@ -0,0 +1,216 @@
// ============================================================================
// 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');
+2
View File
@@ -130,6 +130,7 @@ export const NAV_LINKS = [
},
{ name: 'Tecnologias', href: '/tecnologias' },
{ name: 'Avaliacao TI', href: '/avaliacao' },
{ name: 'Onde Atuamos', href: '/onde-atuamos' },
{ name: 'Cases', href: '/cases' },
{ name: 'Blog', href: '/blog' },
{ name: 'Contato', href: '/contato' },
@@ -146,6 +147,7 @@ export const FOOTER_LINKS = {
],
empresa: [
{ name: 'Sobre nos', href: '/sobre' },
{ name: 'Onde Atuamos', href: '/onde-atuamos' },
{ name: 'Cases de sucesso', href: '/cases' },
{ name: 'Blog', href: '/blog' },
{ name: 'Trabalhe conosco', href: '/contato' },
+11 -4
View File
@@ -15,10 +15,17 @@ const Footer = () => {
const [version, setVersion] = useState('');
useEffect(() => {
fetch('/version.json?t=' + Date.now())
.then(r => r.json())
.then(data => setVersion(data.version))
.catch(() => setVersion(''));
// Ler versao da meta tag (mais confiavel que fetch de arquivo separado)
const metaVersion = document.querySelector('meta[name="app-version"]')?.getAttribute('content');
if (metaVersion && metaVersion !== '1.0.0') {
setVersion(metaVersion);
} else {
// Fallback: tentar version.json
fetch('/version.json?t=' + Date.now())
.then(r => r.json())
.then(data => setVersion(data.version))
.catch(() => setVersion(''));
}
}, []);
const scrollToTop = () => {
+2 -2
View File
@@ -1,7 +1,7 @@
import path from "path"
import react from "@vitejs/plugin-react"
import { defineConfig } from "vite"
import { inspectAttr } from 'kimi-plugin-inspect-react'
// import { inspectAttr } from 'kimi-plugin-inspect-react'
import { viteStaticCopy } from 'vite-plugin-static-copy'
/**
@@ -22,7 +22,7 @@ const devNoIndexPlugin = () => ({
export default defineConfig({
base: '/',
plugins: [
inspectAttr(),
// inspectAttr(), // Desabilitado - pode causar tela em branco
react(),
devNoIndexPlugin(),
viteStaticCopy({