Istruzioni passo-passo per sostituire il vecchio sito WordPress con il nuovo sito, usando il cPanel Netsons o FTP. Tempo stimato: 30–45 minuti.
sito-nuovo.index.html dentro questa cartella (es. con Blocco note → "Salva come" → nome file index.html, tipo "Tutti i file", codifica UTF-8).servizi.html, lavori.html, formazione.html, contatti.html.<section class="page active" id="home"> e togli la parola active; poi nella sezione della pagina corrispondente al file (es. id="servizi") aggiungi active. Aggiorna anche <title>, la meta description e il <link rel="canonical"> con l'URL della pagina.robots.txt, sitemap.xml, .htaccess e invia.php con i contenuti riportati al passo 6 di questa guida.index.html: il sito funziona comunque (il menu a schede è gestito da JavaScript interno). Perderesti però parte del vantaggio SEO delle 5 pagine separate.sito-nuovo.zip (tasto destro → "Comprimi" su Mac / "Invia a → Cartella compressa" su Windows): renderà il caricamento molto più veloce.studiosmeraldo.it → pulsante "Accedi a cPanel" (in alternativa: https://studiosmeraldo.it/cpanel oppure :2083 dopo il dominio).public_html → Seleziona tutto → tasto Comprimi (Zip) → scarica lo zip sul PC. Questo è il backup dei file..sql. Questo è il backup del database.public_html, elimina: wp-admin/, wp-content/, wp-includes/, index.php, wp-config.php, xmlrpc.php, .htaccess vecchio e ogni altro file/cartella di WordPress.public_html deve rimanere vuota (o quasi).public_html.sito-nuovo.zip → attendi il 100%.public_html, tasto destro sullo zip → Estrai (Extract)./public_html: index.html deve trovarsi direttamente in public_html, non dentro una sottocartella.ftp.studiosmeraldo.it o il nome del server Netsons indicato nell'email di attivazione.21, utente e password → Modalità di trasferimento: Passiva → Connetti.public_html.sito-nuovo (già estratta, non lo zip), seleziona tutti i file e trascinali a destra: parte il caricamento.https://www.studiosmeraldo.it in una finestra di navigazione anonima (per evitare la cache del vecchio sito). Devi vedere il nuovo sito.studiosmeraldo.it e www.studiosmeraldo.it → clicca "Run AutoSSL" e attendi qualche minuto: il lucchetto verde si attiva da solo. Sui piani Netsons il certificato Let's Encrypt è gratuito e incluso..htaccess del passo successivo forza automaticamente tutto il traffico su https://www.Questi quattro file vanno creati sul PC (Blocco note o VS Code, salvataggio in UTF-8) e caricati in public_html. Contenuto esatto:
📄 .htaccess — forza HTTPS/www, redirect 301 dalle vecchie pagine WordPress, compressione e cache (velocità = SEO):
RewriteEngine On # Forza HTTPS RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L] # Forza www RewriteCond %{HTTP_HOST} ^studiosmeraldo\.it [NC] RewriteRule ^(.*)$ https://www.studiosmeraldo.it/$1 [R=301,L] # Redirect 301 dalle vecchie pagine WordPress (adatta gli URL ai tuoi reali) Redirect 301 /contatti/ https://www.studiosmeraldo.it/contatti.html Redirect 301 /servizi/ https://www.studiosmeraldo.it/servizi.html Redirect 301 /chi-siamo/ https://www.studiosmeraldo.it/index.html # Tutto il resto → home (da lasciare PER ULTIMO) RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ https://www.studiosmeraldo.it/index.html [R=301,L] # Compressione e cache browser <IfModule mod_deflate.c> AddOutputFilterByType DEFLATE text/html text/css application/javascript image/svg+xml </IfModule> <IfModule mod_expires.c> ExpiresActive On ExpiresByType text/html "access plus 1 hour" ExpiresByType text/css "access plus 1 month" ExpiresByType image/svg+xml "access plus 1 month" </IfModule>
.htaccess dal File Manager Netsons: clicca + File dentro public_html e scrivi esattamente .htaccess (col punto iniziale). Se non vedi i file che iniziano per punto, attiva "Show Hidden Files" nelle impostazioni in alto a destra del File Manager.📄 robots.txt:
User-agent: * Allow: / Sitemap: https://www.studiosmeraldo.it/sitemap.xml
📄 sitemap.xml:
<?xml version="1.0" encoding="UTF-8"?> <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> <url><loc>https://www.studiosmeraldo.it/</loc><priority>1.0</priority><changefreq>weekly</changefreq></url> <url><loc>https://www.studiosmeraldo.it/servizi.html</loc><priority>0.9</priority><changefreq>monthly</changefreq></url> <url><loc>https://www.studiosmeraldo.it/lavori.html</loc><priority>0.9</priority><changefreq>monthly</changefreq></url> <url><loc>https://www.studiosmeraldo.it/formazione.html</loc><priority>0.8</priority><changefreq>monthly</changefreq></url> <url><loc>https://www.studiosmeraldo.it/contatti.html</loc><priority>0.8</priority><changefreq>yearly</changefreq></url> </urlset>
📄 invia.php — riceve il modulo contatti e ti manda l'email (Netsons supporta PHP con funzione mail() già attiva; sostituisci l'email di destinazione):
<?php
header('Content-Type: application/json; charset=utf-8');
if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
http_response_code(405);
exit(json_encode(['ok' => false, 'msg' => 'Metodo non consentito']));
}
$nome = trim($_POST['nome'] ?? '');
$email = filter_var(trim($_POST['email'] ?? ''), FILTER_VALIDATE_EMAIL);
$tel = trim($_POST['telefono'] ?? '-');
$comune = trim($_POST['comune'] ?? '');
$tipo = trim($_POST['tipo'] ?? '');
$msg = trim($_POST['messaggio'] ?? '');
if ($nome === '' || !$email || $msg === '') {
http_response_code(400);
exit(json_encode(['ok' => false, 'msg' => 'Campi obbligatori mancanti']));
}
$destinatario = 'info@studiosmeraldo.it'; // ← LA TUA EMAIL
$oggetto = "[Sito] Richiesta: $tipo — $nome ($comune)";
$corpo = "Nome: $nome\nEmail: $email\nTelefono: $tel\nComune: $comune\nTipo: $tipo\n\nMessaggio:\n$msg";
$headers = "From: sito@studiosmeraldo.it\r\nReply-To: $email\r\nContent-Type: text/plain; charset=UTF-8";
if (mail($destinatario, $oggetto, $corpo, $headers)) {
echo json_encode(['ok' => true]);
} else {
http_response_code(500);
echo json_encode(['ok' => false, 'msg' => 'Errore invio']);
}
invia.php; se il file non c'è o l'hosting non lo esegue, apre automaticamente il tuo client email con la richiesta precompilata. Quindi funziona in ogni caso.studiosmeraldo.it → copia il record TXT di verifica → in cPanel Netsons apri Zone Editor → accanto al dominio clicca Manage → Add TXT Record → incolla il valore → salva. Torna su Search Console e clicca "Verifica". Poi menu Sitemap → invia sitemap.xml..htaccess; se la pagina è bianca → verifica che index.html sia in public_html e non in una sottocartella. In ogni caso l'assistenza Netsons risponde dai contatti dell'Area Clienti (ticket/chat).