Si tratta di una questione molto tecnica e non posso esaurirla qua nel forum. Ti suggerisco di cercare qualche tutorial in merito.
Vorrei comunque darti un'indicazione pratica.
Visitando una pagina in italiano:
Codice:
<html lang="it">
<head>
<link rel="alternate" href="http://example.com/article-fr" hreflang="fr-fr" />
<link rel="alternate" href="http://example.com/article-it" hreflang="it-it" />
<link href="http://example.com/article-it" rel="canonical">
Mentre visitando la versione francese:
Codice:
<html lang=fr">
<head>
<link rel="alternate" href="http://example.com/article-fr" hreflang="fr-fr" />
<link rel="alternate" href="http://example.com/article-it" hreflang="it-it" />
<link href="http://example.com/article-fr" rel="canonical">
In bocca al lupo per il tuo progetto.
Anche io ho realizzato due siti multilingua, nel primo in una versione per la rilevazione del sito mi ero aiutato con il server apache, che permette di gestire la lingua di provenienza ( tramite browser ) e di reindirizzare ad una pagina specifica, lingua per lingua.
Poi ho utilizzato altri metodi derivati dal PHP e mi sono trovato con gli stessi prolemi, ovvero il reindirizzamento visto da Google.
Ho risolto come hai proposto tu, cioè due directory nel mio caso, it/ e en/ e lasciando sia in homepage che nelle altre pagine interne la possibilità all'utente di gestirsi la lingua.
In ogni pagina poi avevo inserito la sequenza dei vari link rel="alternate" e ovviamente messo il lang all'inizio della pagina.
Avevo omesso il canonical ed in effetti Google mi penalizzava nelle ricerche in inglese, mentre in italiano andava abbastanza bene.
Dato che il sito veniva principalmente utilizzato in Italia non mi ero creato troppi problemi, credendo che dopo tutto all'estero non era molto cercato.
In realtà rivedendo le statistiche dalla Google console dopo aver messo il giusto canonical ho notato l'incremento nelle ricerche, sia in Italia che dall'estero.
Ora dovendo riscrivere completamente il sito, mi chiedo come posso rimodulare la prima parte, ovvero quella del targeting della lingua, mi chiedo se usare un metodo automatico ( geolocalizzazione e/o scraping del browser ) piuttosto che inserire semplicemente un link alla lingua e lasciare che sia l'utente a decidere, sia migliore anche in ottica SEO.