Perché scegliere Multisite in subdirectory
WordPress Multisite in modalità subdirectory (example.com/site1, example.com/site2) rappresenta una scelta strategica per agenzie che gestiscono portfolio di siti client su singola installazione. A differenza della configurazione subdomain, non richiede wildcard DNS e semplifica la gestione SSL con certificati singoli.
I vantaggi principali includono:
- Gestione centralizzata di core, plugin e temi da un’unica dashboard
- Condivisione risorse server ottimizzata (memoria PHP, connessioni database)
- Backup unificato dell’intera rete con un solo processo
- Nessuna configurazione DNS aggiuntiva richiesta
- SSL singolo valido per tutti i siti della rete
Secondo i dati di utilizzo di AgencyPilot, le agenzie che gestiscono 10+ siti client in Multisite risparmiano in media il 40% del tempo dedicato agli aggiornamenti rispetto a installazioni separate.
Requisiti tecnici e prerequisiti
Prima di procedere con l’attivazione, verifica che l’ambiente hosting soddisfi questi requisiti:
- WordPress 5.0 o superiore (consigliato 6.5+)
- PHP 8.1 o superiore con estensioni
mod_rewriteabilitate - MySQL 5.7+ o MariaDB 10.3+
- Accesso FTP/SSH per modificare
wp-config.phpe.htaccess - Almeno 256MB di memoria PHP (512MB consigliati per network con 5+ siti)
Importante: Multisite può essere attivato solo su installazioni WordPress fresche o esistenti ma prima di aver pubblicato contenuti significativi. La conversione post-contenuti richiede migration complessa dei permalink.
Backup preventivo obbligatorio
Prima di qualsiasi modifica, esegui backup completo di:
- Database WordPress (via phpMyAdmin o
mysqldump) - Directory
/wp-contentcompleta - File
wp-config.phpe.htaccessroot
Procedura di attivazione step-by-step
Step 1: Attivazione network nel wp-config.php
Accedi via FTP/SSH e apri wp-config.php. Aggiungi questa riga prima del commento /* That's all, stop editing! */:
define('WP_ALLOW_MULTISITE', true);
Salva e ricarica la dashboard WordPress. Comparirà una nuova voce Strumenti → Configurazione rete.
Step 2: Configurazione tipo di rete
In Strumenti → Configurazione rete:
- Seleziona Sottocartelle (subdirectory)
- Inserisci titolo network (es. “Network Clienti Agenzia”)
- Verifica email amministratore network
- Clicca Installa
WordPress genererà codice da aggiungere a wp-config.php e .htaccess. Non chiudere questa pagina.
Step 3: Modifica wp-config.php
Copia il codice generato (simile a questo) e incollalo in wp-config.php sotto la riga WP_ALLOW_MULTISITE:
define('MULTISITE', true);
define('SUBDOMAIN_INSTALL', false);
define('DOMAIN_CURRENT_SITE', 'example.com');
define('PATH_CURRENT_SITE', '/');
define('SITE_ID_CURRENT_SITE', 1);
define('BLOG_ID_CURRENT_SITE', 1);
Nota: SUBDOMAIN_INSTALL deve essere false per subdirectory.
Step 4: Modifica .htaccess
Sostituisci completamente il contenuto di .htaccess con il codice generato da WordPress. Esempio standard:
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
# add a trailing slash to /wp-admin
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
RewriteRule . index.php [L]
Step 5: Rilogin e verifica
Effettua logout e login nuovamente. Nella dashboard apparirà il menu I miei siti in alto a sinistra con voci:
- Amministratore di rete: gestione globale network
- Dashboard: singoli siti
Creazione e gestione siti del network
Per aggiungere nuovi siti client:
- Vai in I miei siti → Amministratore di rete → Siti
- Clicca Aggiungi nuovo
- Compila:
- Indirizzo sito: solo lo slug (es. “cliente-rossi” diventa
example.com/cliente-rossi) - Titolo sito: nome del progetto client
- Email amministratore: indirizzo admin specifico
- Indirizzo sito: solo lo slug (es. “cliente-rossi” diventa
- Clicca Aggiungi sito
Limitazioni URL da conoscere
WordPress riserva alcuni slug che non possono essere usati come percorsi siti:
wp-admin,wp-content,wp-includeswp-login.php,wp-signup.php- Qualsiasi slug usato da plugin nel root (es.
wc-apiper WooCommerce)
Tentare di creare un sito con questi slug causerà conflitti 404 o redirect loop.
Plugin network-activated vs site-specific
Multisite introduce distinzione cruciale nella gestione plugin:
Network Activation
In Amministratore di rete → Plugin, attivando un plugin “per la rete”:
- Si attiva automaticamente su tutti i siti esistenti e futuri
- Non può essere disattivato dai singoli amministratori sito
- Ideale per: sicurezza (Wordfence), backup, monitoring
Site-specific Activation
Entrando nel singolo sito e attivando da Plugin:
- Attivo solo su quel sito specifico
- Amministratori sito possono attivare/disattivare autonomamente
- Ideale per: builder tematici, funzionalità custom per client
Best practice AgencyPilot: network-activate solo plugin core critici (sicurezza, performance, monitoraggio). Lascia plugin funzionali come site-specific per flessibilità client.
Gestione temi nel network
Per default, i temi caricati in /wp-content/themes sono visibili a tutti i siti ma non attivabili autonomamente dagli admin sito.
Abilitazione temi per siti specifici
- Vai in Amministratore di rete → Temi
- Clicca Abilita network sui temi che vuoi rendere disponibili
- I singoli admin potranno ora sceglierli in Aspetto → Temi
Alternativa: abilita tema per singolo sito specifico andando in Amministratore di rete → Siti → Modifica → Temi e spuntando i temi consentiti.
Troubleshooting problemi comuni
404 su pagine siti secondari
Causa: regole .htaccess non correttamente applicate. Verifica:
- File
.htaccessin root (non in subdirectory) mod_rewriteabilitato in Apache (a2enmod rewrite)AllowOverride Allnella configurazione vhost
Se su Nginx, converti regole .htaccess in formato nginx e ricarica config.
Login loop infinito
Cause probabili:
- Cookie domain non corretto: verifica
DOMAIN_CURRENT_SITEin wp-config corrisponda al dominio reale - HTTPS mismatch: aggiungi
define('FORCE_SSL_ADMIN', true);se usi SSL - Cache plugin attiva durante setup: disabilita temporaneamente cache
Upload media fallisce su siti secondari
Controlla permessi directory:
chmod 755 /wp-content/uploads
chown -R www-data:www-data /wp-content/uploads
Multisite crea struttura /wp-content/uploads/sites/2/, /sites/3/ etc. Verifica che PHP possa scrivere in queste directory.
Performance e ottimizzazione network
Object caching condiviso
Implementa Redis o Memcached a livello network per cache condivisa tra tutti i siti:
define('WP_CACHE_KEY_SALT', 'mynetwork_');
Con plugin come Redis Object Cache, tutti i siti beneficiano di cache persistente unificata.
Limiti risorse per sito
Installa plugin come Limit Modified Date o custom code per limitare:
- Numero massimo post/pagine per sito
- Spazio upload disponibile (es. 500MB per sito)
- Plugin attivabili simultaneamente
Questo previene che singoli siti degradino performance dell’intero network.
Monitoraggio centralizzato
Con AgencyPilot puoi monitorare tutti i siti del Multisite da unico pannello: uptime, errori PHP, utilizzo risorse per singolo site_id. La dashboard Network Health mostra metriche aggregate e alert automatici se un sito supera soglie memoria/CPU.
FAQ
Posso convertire un Multisite da subdirectory a subdomain dopo l’installazione?
Tecnicamente sì ma è complesso e sconsigliato in produzione. Richiede modifica SUBDOMAIN_INSTALL da false a true, configurazione wildcard DNS, aggiornamento tutte le URL nel database via wp search-replace per ogni sito, e riscrittura .htaccess. Per network con dati significativi, è più sicuro ricreare network da zero o usare plugin migration professionali come NS Cloner.
Quanti siti posso gestire in un singolo Multisite subdirectory?
Non esiste limite tecnico rigido imposto da WordPress. Network di produzione gestiscono 100+ siti. Il limite pratico dipende da risorse server: con VPS 8GB RAM e ottimizzazioni cache, 50-80 siti con traffico medio sono gestibili. Oltre questa scala, considera clustering database o separazione in più network. AgencyPilot gestisce network clienti fino a 120 siti con configurazioni server dedicate.
I plugin devono essere compatibili Multisite per funzionare?
La maggior parte dei plugin WordPress funziona in Multisite senza modifiche. Problemi possono verificarsi con plugin che assumono installazione singola per: gestione licenze (alcuni verificano dominio), tabelle database custom (potrebbero non supportare prefissi multipli), o file .htaccess modifiche (conflitti con regole Multisite). Prima di network-activate plugin critici, testa sempre su sito staging del network.
Come gestisco domini custom per siti del network in modalità subdirectory?
WordPress Multisite subdirectory di base non supporta domain mapping nativo. Devi usare plugin come WordPress MU Domain Mapping (deprecato ma funzionante) o Mercator (moderno, consigliato). Questi permettono di mappare example.com/cliente1 su www.clienteuno.com via configurazione DNS CNAME + regole plugin. Nota: richiede wildcard SSL o certificati multipli.
Posso migrare sito esistente standalone in un network Multisite subdirectory?
Sì, procedura standard: 1) Esporta contenuti sito standalone via Strumenti → Esporta, 2) Crea nuovo sito nel network, 3) Importa XML via Strumenti → Importa, 4) Migra manualmente tema e plugin specifici sito. Per siti complessi con custom post types, usa plugin come All-in-One WP Migration (addon Multisite richiesto) o copia manualmente tabelle database aggiungendo prefisso corretto (es. wp_2_posts per site_id 2). Testa sempre permalink e media library post-migrazione.