O WordPress, que hoje domina 43% de todos os sites da internet, tem uma história marcada por inovação, controvérsias e desafios técnicos que moldaram o cenário atual do desenvolvimento web. Desde sua criação em 2003 por Matt Mullenweg e Mike Little, a plataforma revolucionou a publicação online, mas também enfrentou críticas relacionadas à segurança, performance e fragmentação do ecossistema.
Esta jornada de mais de duas décadas revela não apenas o sucesso comercial do WordPress, mas também as decisões arquiteturais que ainda geram debates na comunidade de desenvolvedores. Compreender essa evolução é fundamental para quem trabalha com a plataforma hoje, especialmente considerando os desafios que surgiram com o crescimento exponencial de usuários e a complexidade crescente dos sites modernos.
O Que e Historia Do WordPress O Bom O Ruim E O Feio e Como Funciona
A história do WordPress representa uma evolução de 20 anos que transformou um simples fork do b2/cafelog em uma plataforma que gerencia 835 milhões de sites globalmente, com receita anual superior a R$849,90 por usuário empresarial médio. O sistema funciona através de uma arquitetura modular baseada em PHP e MySQL, permitindo extensibilidade via plugins e temas.
Os Primórdios: O Bom (2003-2008)
O WordPress nasceu da necessidade de Matt Mullenweg ter uma plataforma de blogging mais robusta. O projeto b2/cafelog havia sido abandonado, criando uma oportunidade para inovação. As primeiras versões trouxeram recursos revolucionários:
Facilidade de Uso Sem Precedentes: Diferentemente de soluções como Movable Type, o WordPress oferecia uma interface intuitiva que permitia a qualquer pessoa criar conteúdo online sem conhecimento técnico avançado.
Arquitetura de Plugins: A decisão de implementar um sistema de hooks e actions desde as primeiras versões permitiu que desenvolvedores estendessem a funcionalidade sem modificar o código core.
Comunidade Open Source: A licença GPL garantiu que o WordPress permanecesse gratuito, fomentando uma comunidade global de colaboradores.
SEO Nativo: Estrutura de URLs amigáveis e código semântico fizeram do WordPress uma escolha natural para marketing digital.
A Expansão: Sucessos e Primeiros Problemas (2009-2015)
O Bom Continuou: A introdução do repositório oficial de plugins e temas democratizou o desenvolvimento. Recursos como Custom Post Types (WordPress 3.0) e a API REST expandiram as possibilidades além de blogs simples.
O Ruim Começou a Aparecer: Com o crescimento exponencial, surgiram os primeiros problemas sérios:
- Vulnerabilidades de Segurança: Plugins mal desenvolvidos criaram vetores de ataque. Sites WordPress se tornaram alvos frequentes de hackers.
- Performance Issues: A arquitetura monolítica mostrou limitações em sites de alto tráfego.
- Fragmentação do Mercado: Diferentes interpretações da GPL criaram tensões entre desenvolvedores comerciais e a comunidade.
A Era Moderna: Gutenberg e Novas Controvérsias (2016-Presente)
O Feio da História: O lançamento do Gutenberg (WordPress 5.0) em 2018 dividiu a comunidade como nunca antes:
Resistência da Comunidade: Muitos desenvolvedores e usuários rejeitaram o novo editor, considerando-o prematuro e problemático. O plugin Classic Editor teve mais de 5 milhões de instalações ativas.
Problemas de Compatibilidade: Temas e plugins existentes quebraram, gerando custos significativos para proprietários de sites.
Centralização de Poder: Decisões unilaterais da Automattic sobre a direção do WordPress geraram críticas sobre governança democrática.
A gente vê no suporte da FULL que muitos clientes ainda enfrentam conflitos entre Gutenberg e builders como Elementor PRO, que está incluído no nosso plano PRO por R$85/site/ano junto com Rank Math PRO e WP Rocket.
Por Que Historia Do WordPress O Bom O Ruim E O Feio e Importante para o WordPress
Compreender os 20 anos de evolução do WordPress é crucial porque 94% dos sites brasileiros que usam CMS optam por esta plataforma, e as decisões históricas impactam diretamente na performance, segurança e desenvolvimento atual. Conhecer os padrões de problemas recorrentes pode economizar até 40 horas de debugging por projeto.
Impactos Técnicos das Decisões Históricas
Arquitetura de Database: A decisão inicial de usar wp_options para metadados criou gargalos de performance que persistem hoje. Sites com muitos plugins podem ter tabelas wp_options com mais de 100MB, impactando significativamente o tempo de carregamento.
Sistema de Hooks: Embora revolucionário, o sistema de actions e filters permite que plugins mal desenvolvidos consumam recursos excessivos. No mercado brasileiro, onde hospedagens compartilhadas são comuns (Hostinger, KingHost), isso se torna crítico.
Retrocompatibilidade: A promessa de never break backwards compatibility criou um código legacy extenso. Funções obsoletas como mysql_* (removidas do PHP 7) forçaram migrações custosas.
Lições para Desenvolvedores Atuais
Segurança por Design: Os ataques históricos ao WordPress (como o famoso TimThumb exploit de 2011) ensinaram a importância de validação rigorosa de inputs e sanitização de dados.
Performance desde o Início: Sites WordPress podem facilmente atingir tempos de carregamento superiores a 10 segundos sem otimização adequada. Hospedar em servidores nacionais (como UOL Host ou Locaweb) adiciona latência para recursos externos.
Escolha Consciente de Plugins: O mercado brasileiro viu casos como o plugin Revolution Slider, que foi vetor de milhares de invasões. A curadoria de plugins se tornou essencial.
Impacto no Mercado Brasileiro
O WordPress Brasil cresceu 340% entre 2018-2023, mas manteve problemas históricos:
- Localização Incompleta: Muitos plugins premium não oferecem tradução PT-BR adequada
- Integração com Pagamentos Locais: A necessidade de integrar PagSeguro, Mercado Pago e PIX criou um nicho específico
- Compliance com LGPD: A arquitetura de dados do WordPress exige plugins adicionais para conformidade legal
Como Configurar Passo a Passo
Implementar as melhores práticas históricas do WordPress requer configuração em 7 etapas críticas, baseadas em lições aprendidas ao longo de 20 anos de evolução da plataforma. Sites configurados adequadamente têm 89% menos vulnerabilidades e carregam 60% mais rápido que instalações padrão.
Passo 1: Base Segura de Instalação
1.1 Download e Verificação
# Baixar WordPress oficial
wget https://br.wordpress.org/latest-pt_BR.zip
# Verificar integridade (lição dos ataques de 2009-2012)
sha256sum latest-pt_BR.zip
1.2 Configuração de Banco Segura
Crie usuário MySQL com permissões mínimas (lição do hack em massa de 2013):
CREATE DATABASE wp_seublog;
CREATE USER 'wp_user_random'@'localhost' IDENTIFIED BY 'senha_complexa_32chars';
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER ON wp_seublog.* TO 'wp_user_random'@'localhost';
1.3 wp-config.php Hardened
// Security keys (renovar a cada 6 meses)
define('AUTH_KEY', 'string-unica-64-caracteres');
// Prefixo personalizado (evita SQL injection massivo)
$table_prefix = 'xyz_random_';
// Disable file editing (lição de 2011)
define('DISALLOW_FILE_EDIT', true);
Passo 2: Otimização de Performance Histórica
2.1 Object Cache
Implemente cache de objetos (ausente até WordPress 3.5):
// wp-config.php
define('WP_CACHE', true);
define('ENABLE_CACHE', true);
2.2 Otimização de Database
Configure constantes baseadas nas lições de sites lentos:
define('WP_POST_REVISIONS', 5);
define('AUTOSAVE_INTERVAL', 300);
define('WP_CRON_LOCK_TIMEOUT', 120);
Passo 3: Plugin Curation Strategy
3.1 Plugins Essenciais Históricos
Base mínima para sites brasileiros:
– Wordfence Security: Proteção contra ataques recorrentes
– WP Rocket: Cache inteligente (incluído no PRO da FULL)
– Rank Math: SEO moderno (versão PRO no plano FULL por R$85/site/ano)
3.2 Audit de Plugins Existentes
# Verificar plugins vulneráveis
wp plugin list --fields=name,version,update_available
# Remover plugins inativos (vetor de ataque comum)
wp plugin delete plugin-inativo
Passo 4: Tema Child e Customizações
4.1 Criar Tema Child
Proteja customizações (lição das atualizações que quebravam sites):
// functions.php do tema child
function child_theme_enqueue_styles() {
wp_enqueue_style('parent-style', get_template_directory_uri() . '/style.css');
}
add_action('wp_enqueue_scripts', 'child_theme_enqueue_styles');
4.2 Customizações Responsivas
Baseado nos padrões mobile-first pós-2015:
/* Responsive design historical lessons */
@media (max-width: 768px) {
.container { width: 100%; padding: 0 15px; }
}
Passo 5: SEO Foundation
5.1 URLs Amigáveis
Configure permalinks otimizadas (vantagem histórica do WordPress):
Estrutura recomendada: /%category%/%postname%/
5.2 Meta Tags Essenciais
// Título SEO otimizado
add_theme_support('title-tag');
// Meta description automática
add_action('wp_head', 'custom_meta_description');
Passo 6: Backup e Monitoramento
6.1 Sistema de Backup Automático
# Backup via WP-CLI (lição dos crashes de 2008-2010)
wp db export backup-$(date +%Y%m%d).sql
tar -czf files-backup-$(date +%Y%m%d).tar.gz wp-content/
6.2 Monitoramento de Uptime
Configure alertas baseados nos downtimes históricos da plataforma.
Passo 7: Testes e Validação
7.1 Teste de Performance
# GTmetrix API test
curl -X POST https://gtmetrix.com/api/0.1/test
7.2 Scan de Segurança
Utilize ferramentas baseadas nas vulnerabilidades históricas:
– WPScan para vulnerabilidades conhecidas
– Sucuri SiteCheck para malware
A implementação completa desses passos, baseada em duas décadas de evolução WordPress, garante uma base sólida para qualquer projeto web brasileiro.
Dicas Avancadas e Boas Praticas
Aplicar técnicas avançadas baseadas em 20 anos de evolução WordPress pode melhorar a performance em até 78% e reduzir vulnerabilidades em 92%, segundo dados de sites que implementaram essas práticas históricas. A experiência acumulada da comunidade revela padrões específicos para o mercado brasileiro.
Performance Otimization: Lições Históricas
Cache Strategy Multicamadas
A evolução do caching no WordPress mostra que uma abordagem em camadas é essencial:
// wp-config.php - Cache configuration evolution
define('WP_CACHE_KEY_SALT', 'seu_dominio_' . DB_NAME);
define('WP_CACHE', true);
// Advanced object cache (lição pós WordPress 2.5)
if (function_exists('wp_cache_add_global_groups')) {
wp_cache_add_global_groups(array(
'blog-details', 'blog-id-cache', 'blog-lookup',
'global-posts', 'networks', 'rss', 'sites',
'site-details', 'site-lookup', 'themes',
'timeinfo', 'user_meta'
));
}
Database Query Optimization
Baseado nos gargalos históricos da wp_options:
// Otimização de autoload (problema desde WordPress 2.7)
function optimize_autoload_options() {
global $wpdb;
$wpdb->query("UPDATE {$wpdb->options} SET autoload = 'no'
WHERE option_name LIKE '%transient%'");
}
add_action('admin_init', 'optimize_autoload_options');
// Custom queries para evitar WP_Query overhead
function get_popular_posts_optimized($limit = 5) {
global $wpdb;
return $wpdb->get_results($wpdb->prepare("
SELECT ID, post_title, comment_count
FROM {$wpdb->posts}
WHERE post_status = 'publish'
AND post_type = 'post'
ORDER BY comment_count DESC
LIMIT %d", $limit));
}
Segurança Avançada: Histórico de Vulnerabilidades
Hardening Baseado em Ataques Históricos
// .htaccess - Proteções baseadas em ataques 2009-2023
RewriteEngine On
# Bloquear wp-config.php (vulnerabilidade exposta em 2010)
<Files wp-config.php>
Order deny,allow
Deny from all
</Files>
# Proteger uploads PHP (TimThumb exploit 2011)
<Directory "/wp-content/uploads/">
<Files "*.php">
Order Deny,Allow
Deny from All
</Files>
</Directory>
# Rate limiting para wp-login.php (brute force histórico)
RewriteCond %{REQUEST_URI} ^(.*)?wp-login.php(.*)$ [OR]
RewriteCond %{REQUEST_URI} ^(.*)?wp-admin$
RewriteRule ^(.*)$ - [R=503,L]
Custom Security Headers
// functions.php - Headers baseados em vulnerabilidades XSS históricas
function add_security_headers() {
header('X-Frame-Options: SAMEORIGIN');
header('X-Content-Type-Options: nosniff');
header('X-XSS-Protection: 1; mode=block');
header('Referrer-Policy: strict-origin-when-cross-origin');
header("Content-Security-Policy: default-src 'self'; script-src 'self' 'unsafe-inline' cdnjs.cloudflare.com;");
}
add_action('init', 'add_security_headers');
Otimização para Hospedagem Brasileira
Configuração para Servidores Nacionais
A gente vê no suporte da FULL que clientes hospedados em servidores brasileiros (KingHost, Hostinger BR, UOL Host) enfrentam desafios específicos:
// Otimização para latência nacional
function optimize_for_brazilian_hosting() {
// Reduzir timeout para APIs externas
add_filter('http_request_timeout', function() { return 15; });
// Priorizar CDN nacional
add_filter('wp_resource_hints', function($urls, $relation_type) {
if ($relation_type === 'dns-prefetch') {
$urls[] = '//cdn.jsdelivr.net';
$urls[] = '//fonts.googleapis.com';
}
return $urls;
}, 10, 2);
}
add_action('init', 'optimize_for_brazilian_hosting');
Integração com Pagamentos Locais
// Suporte a gateways brasileiros (evolução pós-2018)
function brazilian_payment_gateways($gateways) {
$gateways[] = 'WC_PagSeguro_Gateway';
$gateways[] = 'WC_MercadoPago_Gateway';
$gateways[] = 'WC_PIX_Gateway';
return $gateways;
}
add_filter('woocommerce_payment_gateways', 'brazilian_payment_gateways');
Advanced Custom Fields: Evolução Histórica
Meta Fields Performance
// Otimização de ACF baseada em lições de performance
function optimize_acf_queries() {
// Evitar get_field() em loops (problema desde ACF 3.0)
add_filter('acf/settings/remove_wp_meta_box', '__return_true');
// Cache de repeat fields
add_filter('acf/format_value', function($value, $post_id, $field) {
if ($field['type'] === 'repeater') {
wp_cache_set("acf_repeater_{$post_id}_{$field['name']}", $value, 'acf', 3600);
}
return $value;
}, 10, 3);
}
Elementor PRO Integration
O Elementor PRO, incluído no plano PRO da FULL por R$85/site/ano junto com WP Rocket e Rank Math PRO, requer otimizações específicas baseadas em sua evolução:
// Elementor performance optimization
function optimize_elementor_pro() {
// Disable Google Fonts (usar fontes locais)
add_filter('elementor/frontend/print_google_fonts', '__return_false');
// Minify CSS inline
add_filter('elementor/css-file/meta_box/min_css', '__return_true');
// Lazy load background images
add_filter('elementor/element/section/section_background/after_section_end',
'add_lazy_background');
}
add_action('init', 'optimize_elementor_pro');
Monitoramento Avançado
Custom Logging System
// Sistema de log baseado em problemas históricos recorrentes
class WordPress_Historical_Logger {
public static function log_performance($query_time, $query) {
if ($query_time > 1.0) { // Queries lentas (problema histórico)
error_log("Slow Query: {$query_time}s - " . $query);
}
}
public static function log_security($event, $details) {
$log_entry = date('[Y-m-d H:i:s] ') . "SECURITY: {$event} - " . json_encode($details);
error_log($log_entry, 3, WP_CONTENT_DIR . '/security.log');
}
}
// Integrar com WordPress hooks
add_action('wp_login_failed', function($username) {
WordPress_Historical_Logger::log_security('login_failed', ['username' => $username, 'ip' => $_SERVER['REMOTE_ADDR']]);
});
Essas práticas avançadas, desenvolvidas ao longo de duas décadas de evolução WordPress, oferecem uma base sólida para sites de alta performance e segurança no mercado brasileiro.
Erros Comuns e Como Evitar
Os 20 anos de WordPress revelaram padrões de erros que afetam 67% dos sites da plataforma, causando perdas médias de R$2.400 por downtime em e-commerces brasileiros. Identificar e prevenir esses problemas históricos pode economizar 120 horas de debugging por ano.
Erros Históricos de Segurança
Erro #1: Credenciais Fracas (Problema desde 2003)
O erro mais antigo e persistente no WordPress:
❌ ERRO COMUM:
Usuário: admin
Senha: 123456 ou nome-do-site
✅ CORREÇÃO:
Usuário: nome_aleatorio_2023
Senha: G8$mK9#pL2vN6!qR (mínimo 16 caracteres)
Como implementar:
// Force strong passwords (wp-config.php)
function force_strong_passwords($errors, $user_data) {
$password = $user_data['user_pass'];
if (strlen($password) < 12 ||
!preg_match('/[A-Z]/', $password) ||
!preg_match('/[0-9]/', $password) ||
!preg_match('/[!@#$%^&*()]/', $password)) {
$errors->add('weak_password', 'Senha deve ter 12+ caracteres, maiúscula, número e símbolo');
}
return $errors;
}
add_filter('user_profile_update_errors', 'force_strong_passwords', 10, 2);
Erro #2: wp-config.php Exposto (Vulnerabilidade de 2009-presente)
Sites brasileiros frequentemente hospedam wp-config.php no diretório público:
# .htaccess - Proteção essencial
<Files wp-config.php>
Order allow,deny
Deny from all
</Files>
<Files .htaccess>
Order allow,deny
Deny from all
</Files>
Erros de Performance Críticos
Erro #3: Plugin Hoarding (Acúmulo desde 2005)
A gente vê no suporte da FULL sites com 40+ plugins ativos, causando conflitos:
❌ PROBLEMA COMUM:
- 15 plugins de SEO diferentes
- 8 plugins de cache simultâneos
- Plugins inativos não removidos
✅ SOLUÇÃO CURADA:
- Rank Math PRO (incluso no plano FULL)
- WP Rocket (incluso no plano FULL)
- Elementor PRO (incluso por R$85/site/ano)
Audit Script:
# Identificar plugins conflitantes
wp plugin list --status=inactive --format=csv | wc -l
wp plugin list --fields=name,version,update_available
# Remover plugins inativos
wp plugin delete $(wp plugin list --status=inactive --field=name)
Erro #4: Imagens Não Otimizadas (Problema desde Web 2.0)
Sites brasileiros frequentemente carregam imagens de 5MB+ diretamente de câmeras:
// Auto-resize on upload (functions.php)
function resize_uploaded_images($file) {
if (strpos($file['type'], 'image') !== false) {
$image = wp_get_image_editor($file['tmp_name']);
if (!is_wp_error($image)) {
$image->resize(1920, 1080, false);
$image->save($file['tmp_name']);
}
}
return $file;
}
add_filter('wp_handle_upload_prefilter', 'resize_uploaded_images');
Erros de Configuração de Hospedagem
Erro #5: Limites PHP Inadequados
Configuração típica de hospedagem brasileira compartilhada:
❌ CONFIGURAÇÃO PROBLEMÁTICA:
memory_limit = 128M
max_execution_time = 30
upload_max_filesize = 2M
✅ CONFIGURAÇÃO RECOMENDADA:
memory_limit = 512M
max_execution_time = 300
upload_max_filesize = 64M
post_max_size = 64M
Como verificar via WordPress:
// Diagnóstico PHP (admin dashboard)
function display_php_limits() {
echo "Memory: " . ini_get('memory_limit') . "<br>";
echo "Upload: " . ini_get('upload_max_filesize') . "<br>";
echo "Execution: " . ini_get('max_execution_time') . "<br>";
}
add_action('wp_dashboard_setup', 'display_php_limits');
Erro #6: Database Collation Incorreta
Problema frequente em migrações entre hospedagens brasileiras:
-- Verificar collation atual
SHOW TABLE STATUS LIKE 'wp_%';
-- Corrigir para UTF-8 (suporte a acentos)
ALTER TABLE wp_posts CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE wp_postmeta CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
Erros de Desenvolvimento Theme/Plugin
Erro #7: Hardcoding URLs (Problema de Portabilidade)
❌ CÓDIGO PROBLEMÁTICO:
<img src="https://meusite.com.br/wp-content/uploads/logo.png">
wp_enqueue_script('custom', 'https://meusite.com.br/assets/script.js');
✅ CÓDIGO CORRETO:
<img src="<?php echo wp_upload_dir()['baseurl']; ?>/logo.png">
wp_enqueue_script('custom', get_template_directory_uri() . '/assets/script.js');
Erro #8: Direct Database Access
❌ PERIGOSO:
$results = $wpdb->get_results("SELECT * FROM wp_posts WHERE post_status = 'publish'");
✅ SEGURO:
$results = get_posts([
'post_status' => 'publish',
'numberposts' => -1,
'post_type' => 'post'
]);
Erros Específicos do Mercado Brasileiro
Erro #9: Integração de Pagamento Insegura
// ❌ Vulnerável a MITM attacks
$pagamento_url = "http://pagseguro.uol.com.br/checkout/";
// ✅ Sempre HTTPS + validação
function process_brazilian_payment($gateway) {
if (!is_ssl()) {
wp_die('Pagamentos requerem conexão segura');
}
$allowed_gateways = ['pagseguro', 'mercadopago', 'paypal'];
if (!in_array($gateway, $allowed_gateways)) {
wp_die('Gateway não autorizado');
}
}
Erro #10: LGPD Non-Compliance
// Cookie consent baseado na LGPD
function lgpd_cookie_notice() {
if (!isset($_COOKIE['lgpd_consent'])) {
echo '<div id="lgpd-notice">
Este site usa cookies para melhorar sua experiência.
<button onclick="acceptLGPD()">Aceitar</button>
</div>';
}
}
add_action('wp_footer', 'lgpd_cookie_notice');
Sistema de Prevenção Automatizada
Monitoring Script:
// wp-content/mu-plugins/error-prevention.php
class WordPress_Error_Prevention {
public function __construct() {
add_action('wp_loaded', [$this, 'check_common_issues']);
add_action('admin_notices', [$this, 'display_warnings']);
}
public function check_common_issues() {
// Verificar plugins inativos
if (count(get_option('inactive_plugins', [])) > 5) {
set_transient('wp_warning_inactive_plugins', true, 86400);
}
// Verificar uploads grandes
$upload_dir = wp_upload_dir();
$large_files = glob($upload_dir['basedir'] . '/*.{jpg,png}', GLOB_BRACE);
foreach ($large_files as $file) {
if (filesize($file) > 2 * 1024 * 1024) { // 2MB+
set_transient('wp_warning_large_images', true, 86400);
break;
}
}
}
}
new WordPress_Error_Prevention();
Evitar esses erros históricos, baseados em duas décadas de evolução WordPress, é fundamental para manter sites seguros, rápidos e funcionais no mercado brasileiro.
FAQ
O que é história do WordPress o bom o ruim e o feio?
A história do WordPress o bom o ruim e o feio refere-se à evolução completa da plataforma desde 2003, abrangendo sucessos como a democratização da publicação online (43% dos sites globais), problemas estruturais como vulnerabilidades de segurança recorrentes, e controvérsias como a divisão da comunidade com o lançamento do Gutenberg em 2018.
O “bom” inclui a inovação em usabilidade, sistema de plugins revolucionário e comunidade open source vibrante. O “ruim” engloba problemas de performance em sites de alto tráfego, vulnerabilidades exploradas por hackers, e fragmentação do ecossistema. O “feio” representa decisões controversas como o Gutenberg forçado, tensões GPL vs comercial, e centralização de poder na Automattic.
Como usar história do WordPress o bom o ruim e o feio no WordPress?
Para aplicar as lições históricas do WordPress em projetos atuais, implemente práticas baseadas em 20 anos de evolução: use senhas complexas (lição dos ataques de 2009-2012), configure cache multicamadas (necessário desde WordPress 2.5), mantenha plugins atualizados (TimThumb exploit 2011), e implemente security headers contra XSS.
Configure wp-config.php com constantes de segurança, use prefixo customizado para tabelas MySQL, desabilite edição de arquivos via admin, e implemente rate limiting no wp-login.php. Para performance, otimize a tabela wp_options, use object cache, e configure CDN nacional para reduzir latência em hospedagens brasileiras como KingHost e Hostinger BR.
A gente vê no suporte da FULL que sites seguindo essas práticas históricas têm 89% menos vulnerabilidades e carregam 60% mais rápido.
















