Marco Consiglio · Volta Institute

Sito statico con
GitHub Pages

Carica i tuoi file HTML/CSS/JS e vai online gratis in pochi minuti · Guida 2026

Aggiornato 2026

Livello: Principiante
Costo: Gratuito
URL: username.github.io
01 · Introduzione

Hosting gratis
con GitHub Pages

GitHub Pages è un servizio di hosting gratuito incluso in ogni account GitHub — pubblica qualsiasi file HTML, CSS e JavaScript direttamente da un repository, su una rete CDN globale con HTTPS automatico. Nessun server, nessun costo, nessuna configurazione complessa.

💡 Cosa puoi pubblicare

Siti di portfolio, landing page, documentazione di progetti, presentazioni, curriculum online, pagine di corso, dispense HTML — qualsiasi file statico (HTML, CSS, JS, immagini, PDF) funziona perfettamente. Non supporta codice lato server (PHP, Python, database) — per quello usa Cloud Run o Netlify Functions.

I due tipi di sito GitHub Pages

TipoNome repositoryURL risultante
Sito personale/organizzazioneusername.github.iohttps://username.github.io
Sito di progettoqualsiasi nomehttps://username.github.io/nome-repo
🎓 Per chi è questa guida

Chiunque abbia un file HTML pronto (generato da Claude, scritto a mano, o esportato da un tool) e voglia metterlo online gratuitamente senza toccare il terminale. Tutta la procedura avviene dall'interfaccia web di GitHub.

02 · Creare il Repository

Il repository:
la cartella online

Un repository GitHub è come una cartella online con cronologia completa di tutte le modifiche. Il tuo sito statico vivrà qui — ogni file che carichi diventa parte del sito.

1
Crea un account su github.comGratuito. Scegli un username che diventerà parte dell'URL del sito: tuousername.github.io.
2
Clicca "+" → "New repository"Il pulsante "+" è in alto a destra dopo il login. Seleziona "New repository".
3
Scegli il nome del repositoryPer un sito personale: chiama il repo esattamente tuousername.github.io. Per un sito di progetto: usa qualsiasi nome (es. mio-portfolio).
4
Imposta visibilità "Public"GitHub Pages con account gratuito funziona solo su repository pubblici. I repository privati richiedono il piano GitHub Pro.
5
Clicca "Create repository"Il repository è pronto — ora puoi caricare i file del sito.
⚠️ Il nome del repository conta

Per il sito personale il nome deve essere esattamente tuousername.github.io — con il tuo username GitHub reale, tutto minuscolo, senza spazi. Un errore nel nome significa che Pages non si attiva automaticamente.

03 · Caricare i File

Carica i tuoi file
senza terminale

GitHub permette di caricare file direttamente dal browser — nessun Git da installare, nessun terminale. Trascina i file nella finestra del repository e GitHub li aggiunge automaticamente.

1
Apri il tuo repository su GitHubNella pagina principale del repo trovi il pulsante "Add file" → "Upload files".
2
Trascina i file nella zona di uploadPuoi caricare più file contemporaneamente. Per siti con cartelle, carica prima i file nella root, poi crea sottocartelle separatamente.
3
Assicurati che index.html sia nella rootGitHub Pages cerca il file index.html nella cartella principale del repository — questo è il punto d'ingresso del sito. Senza di esso, mostra una pagina di errore 404.
4
Scrivi un messaggio di commitIn fondo alla pagina, nel campo "Commit changes", scrivi una breve descrizione (es. "Caricamento sito iniziale"). Poi clicca "Commit changes".
💡 Struttura consigliata dei file

Per un sito semplice basta un solo index.html nella root. Per siti più articolati: index.html nella root, poi cartelle /css/, /js/, /img/ per gli altri asset. I percorsi relativi funzionano normalmente — href="css/stile.css" funzionerà senza modifiche.

⚠️ File HTML generato da Claude

Se stai caricando un file HTML prodotto da Claude (come le guide di questa collezione), assicurati di rinominarlo index.html prima di caricarlo, oppure che esista già un index.html che lo collega. Un file con nome diverso (es. guida-claude.html) sarà accessibile ma non come pagina principale del sito.

04 · Abilitare Pages

Attivare GitHub Pages
nelle impostazioni

Caricare i file non basta — bisogna dire a GitHub di pubblicarli come sito web. Questo si fa nelle impostazioni del repository, sezione Pages.

1
Vai in "Settings" del repositoryTab in alto nel repository, accanto a Code, Issues, Pull Requests. Se non la vedi, clicca il menu "···" per espandere.
2
Clicca "Pages" nel menu laterale sinistroSi trova nella sezione "Code and automation" del pannello laterale.
3
Sotto "Source", seleziona "Deploy from a branch"Questo è il metodo più semplice per siti statici puri senza build step.
4
Seleziona il branch "main" e la cartella "/ (root)"Branch: main (o master se il tuo repository usa il vecchio nome). Cartella: / (root) — la radice del repository.
5
Clicca "Save"GitHub avvia la build e il deploy automaticamente. Il processo richiede da 30 secondi a qualche minuto.
💡 Monitorare il deploy

Dopo aver salvato, torna nella pagina Settings → Pages. Vedrai un banner con lo stato del deploy: "Your site is ready to be published at..." diventa "Your site is live at..." quando il deploy è completato. Puoi anche monitorare il progresso nel tab "Actions" del repository.

05 · URL Live

Il tuo sito
è online

Pochi minuti dopo aver salvato le impostazioni Pages, il tuo sito è accessibile pubblicamente. L'URL segue un formato prevedibile basato sul tuo username e nome del repository.

Tipo sitoURL automaticoEsempio
Sito personaleusername.github.iomarco.github.io
Sito di progettousername.github.io/nome-repomarco.github.io/portfolio

Come aggiornare il sito

Ogni volta che carichi nuovi file o modifichi file esistenti nel repository (tramite upload dal browser o commit Git), GitHub Pages aggiorna automaticamente il sito entro 1-3 minuti. Non serve fare nessuna altra azione — il deploy è continuo e automatico.

🎓 Verificare che il sito sia aggiornato

Se vedi ancora la vecchia versione dopo un aggiornamento, prova a fare un hard refresh nel browser (Ctrl+Shift+R su Windows/Linux, Cmd+Shift+R su Mac). GitHub Pages usa una CDN globale — la cache può impiegare qualche minuto a invalidarsi.

06 · Dominio Personalizzato

Usare il tuo
dominio

L'URL username.github.io funziona subito, ma puoi usare un dominio personalizzato (es. miosito.it) senza costi aggiuntivi da parte di GitHub — paghi solo la registrazione del dominio.

1
Vai in Settings → Pages → Custom domainInserisci il tuo dominio (es. www.miosito.it) e clicca Save.
2
Crea il file CNAME nel repositoryGitHub crea automaticamente un file CNAME nella root del repo con il tuo dominio — non eliminarlo.
3
Aggiungi i record DNS al tuo registrarPer il dominio apex (miosito.it): 4 record A puntanti agli IP di GitHub Pages. Per www: un record CNAME che punta a username.github.io.
4
Attendi la propagazione DNSDa 30 minuti a 48 ore. GitHub verifica automaticamente i DNS e attiva il dominio personalizzato.
Record DNS per GitHub Pages (dominio apex)
Tipo A — host: @ — valore: 185.199.108.153
Tipo A — host: @ — valore: 185.199.109.153
Tipo A — host: @ — valore: 185.199.110.153
Tipo A — host: @ — valore: 185.199.111.153
Tipo CNAME — host: www — valore: tuousername.github.io.
07 · HTTPS Automatico

Certificato SSL
gratuito e automatico

GitHub Pages emette automaticamente un certificato HTTPS per tutti i siti — sia per gli URL github.io sia per i domini personalizzati. Non devi fare nulla di manuale.

  • 🔒
    SSL automatico per github.ioAttivo immediatamente — non richiede configurazione.
  • ⏱️
    SSL per dominio personalizzatoEmesso entro 24 ore dalla verifica DNS. Puoi forzarlo in Settings → Pages → "Enforce HTTPS" dopo che il certificato è stato emesso.
  • 🔄
    Rinnovo automaticoGitHub gestisce il rinnovo — non scade mai senza preavviso.
⚠️ "Enforce HTTPS" non disponibile subito

Il checkbox "Enforce HTTPS" in Settings → Pages rimane grigio finché il certificato non è stato emesso. Se il checkbox è grigio dopo 24 ore dalla configurazione DNS, verifica che i record DNS siano corretti usando whatsmydns.net.

08 · Risolvere gli Errori

Problemi comuni
e come risolverli

ProblemaCausa più comuneSoluzione
Pagina 404 dopo il deployManca il file index.html nella rootCarica o rinomina il file principale in index.html
Sito non aggiornatoCache browser o CDNHard refresh (Ctrl+Shift+R) · attendi 5 min
Pages non si attivaRepository privato con account FreeRendi il repository Public in Settings → General
CSS/JS non caricatiPercorsi assoluti invece di relativiUsa percorsi relativi: ./css/stile.css non /css/stile.css
Dominio custom non funzionaRecord DNS errati o file CNAME mancanteVerifica record su whatsmydns.net · controlla file CNAME nel repo
Build fallita (Actions)Conflitto con JekyllAggiungi file vuoto .nojekyll nella root del repository
🎓 Il file .nojekyll

GitHub Pages usa Jekyll per processare i file di default. Se il tuo sito usa cartelle che iniziano con underscore (_assets, _includes) o ha conflitti con Jekyll, crea un file vuoto chiamato .nojekyll nella root del repository — questo disabilita Jekyll e GitHub serve i file così come sono.

09 · Esercizi

Metti online
il tuo primo sito

01
Sito personale live in 10 minuti
Account GitHub gratuito · Nessun terminale
Obiettivo: Pubblicare una pagina HTML su GitHub Pages e ottenere l'URL pubblico funzionante.
  1. Crea un account su github.com se non ce l'hai. Nota il tuo username (es. marcoconsiglio).
  2. Crea un nuovo repository pubblico chiamato esattamente tuousername.github.io.
  3. Clicca "Add file" → "Create new file". Chiama il file index.html e incolla questo contenuto: <h1>Ciao, sono [Il tuo nome]</h1><p>Il mio primo sito su GitHub Pages.</p>
  4. Clicca "Commit changes". Vai in Settings → Pages → seleziona branch main, root → Save.
  5. Aspetta 2-3 minuti, poi apri https://tuousername.github.io — il sito è live.
02
Caricare una guida HTML di Claude
Con upload dal browser
Obiettivo: Pubblicare su GitHub Pages una delle guide HTML generate da Claude, rendendola accessibile pubblicamente con un URL.
  1. Crea un nuovo repository pubblico con un nome descrittivo (es. guida-claude-ai).
  2. Prendi il file HTML della guida e rinominalo index.html.
  3. Nel repository, clicca "Add file" → "Upload files" → trascina il file index.html.
  4. Scrivi un messaggio di commit e clicca "Commit changes".
  5. Vai in Settings → Pages → Deploy from a branch → main → / (root) → Save.
  6. Aspetta il deploy e visita https://tuousername.github.io/guida-claude-ai.
10 · Glossario

Tutti i termini spiegati

GitHub Pages
base
Servizio di hosting gratuito di GitHub per siti statici — pubblica file HTML/CSS/JS direttamente da un repository su CDN globale con HTTPS incluso.
Repository
base
La cartella online su GitHub che contiene tutti i file del progetto con cronologia completa delle modifiche.
Branch main
base
Il ramo principale del repository — GitHub Pages pubblica i file da questo branch per default.
index.html
importante
Il file d'ingresso del sito — il browser carica questo file automaticamente quando visita l'URL root. Deve stare nella root del repository.
Commit
base
Un "salvataggio" con messaggio nella cronologia del repository — ogni caricamento o modifica di file genera un commit.
Deploy
base
Il processo che porta i file dal repository al server di hosting rendendoli accessibili pubblicamente via URL.
CNAME
tecnico
Record DNS che mappa un alias (www) a un altro dominio. GitHub Pages usa un file CNAME nel repository per ricordare quale dominio personalizzato è associato al sito.
.nojekyll
tecnico
File vuoto nella root del repository che disabilita il processamento Jekyll — utile quando il sito usa cartelle con underscore o strutture non standard.