• User

    SEO su due siti

    Salve a tutti, vi espongo la mia situazione. Ho due siti web di due bed and breakfast che chiamerò Bianco e Nero, il primo sono 12 anni che è online ed il secondo 6, quando è nato il secondo è stato fatto un restyling grafico sicuramente molto bello ma mi sto rendendo conto che in ottica SEO non ci siamo proprio, tutte le pagine hanno il title uguale (Bed & breakfast Bianco - Paese - Italy), niente meta keywords, niente meta description. Visto che Bianco era già conosciuto i due siti sono stati strutturati così (per "--->" intendo link):

    bianco.com (la index.htm divisa a metà da una parte una foto di bianco e dall'altra una foto di nero)
    ---> Entra su bianco (bianco.com/bianco.htm)
    ---> Entra su nero (nero.com)

    bianco.com/bianco.htm
    ---> English version (bianco.com/bed-breakfast-en.htm)
    ---> Versione italiana (bianco.com/bed-breakfast-it.htm)

    bianco.com/bed-breakfast-it.htm
    ---> La struttura (bianco.com/la-struttura-it.htm)
    ---> Galleria fotografica (bianco.com/photogallery-it.htm)
    ---> Dove siamo (bianco.com/dove-siamo-it.htm)
    ---> ...
    ---> ...

    bianco.com/bed-breakfast-en.htm
    ---> ... (bianco.com/la-struttura-en.htm)
    ---> ... (bianco.com/photogallery-en.htm)
    ---> ... (bianco.com/dove-siamo-en.htm)
    ---> ...
    ---> ...

    nero.com
    ---> English version (nero.com/bed-breakfast-en.htm)
    ---> Versione italiana (nero.com/bed-breakfast-it.htm)


    Spero di aver fatto uno schema che spieghi al meglio la struttura 🙂 Mi rendo conto che sia già penalizzante mettere come index la scelta della lingua, nel caso di Bianco ci sono addirittura due pagine prima di arrivare ai contenuti. Vorrei mantenere questa struttura però renderla un po' più SEO.

    - Domanda 1-A

    I due siti come ho detto sono stati fatti 6 anni fa in tabelle + photoshop + gallerie in flash. Ho riscritto tutto con i div + css e gallerie con jquery. Dovendo cambiare tutti i link con estensione da .htm a .php non so se mettere le lingue in cartelle, o mi consigliate di continuare così mettendo alla fine -it.php -en.php? Le pagine non sono tante, 6-7 per sito.

    **- **Domanda 1-B

    Qual'è l'htaccess corretto fra questi due? ho trovato pareri discordanti cercando

    RewriteEngine On
    Redirect 301 /bed-breakfast-en.htm ht tp://w ww.bianco.com/bed-breakfast-en.php
    
    
    Redirect 301 /bed-breakfast-en.htm ht tp://w ww.bianco.com/bed-breakfast-en.php
    

    **- ****Domanda 1-C

    **Domanda forse banale, devo fare il redirect anche dell'index.htm a index.php? O visto che è l'index se non trova un'estensione prende l'altra?

    **- **Domanda 2

    Il title, solitamente io metto "miosito.com - breve descrizione bla bla", e nelle altre "Nome pagina - miosito", qui però è diverso, non è un blog, come potrei sistemarli?

    index.php -> Bed & breakfast Bianco - Paese - Italy
    bianco.php -> Bed & breakfast Bianco - Paese - Italy
    bed-breakfast-it.php -> Bed & breakfast Bianco - Paese - Italy
    ...

    • Domanda 3

    Il meta tag description è un breve riassunto del contenuto della pagina, nel caso di Bianco le prime due pagine hanno solo immagini e link, nella index è d'obbligo metterlo, ma in quella per scegliere la lingua? Come vi comportate in questi casi? Lo copio pari pari dalla index?

    - Domanda 4

    La sitemap, ho cercato molto e dicono che si possono fare più danni che altro quindi sono un po' titubante, penso la cosa più giusta sia farne due, una per le pagine it, una en, in modo da dividere i contenuti, nel WMT sotto impostazioni non ho trovato però voci a riguardo, forse è meglio farla tramite robots.txt?


    Perdonate la lunghezza, un grazie a chi mi aiuterà 😉


  • Moderatore

    Ciao Rey46 e Benvenuto nel Forum GT

    Domanda interessante, proverò a rispondere come meglio posso. La lunghezza mi impone di sorvolare un po' sui dettagli.

    @Rey46 said:

    Domanda 1-A ...
    non so se mettere le lingue in cartelle, o mi consigliate di continuare così mettendo alla fine -it.php -en.php?
    Ti consiglio di strutturare le lingue in cartelle, perché così facendo avrai modo da Google Webmaster Tool di impostare (puoi farlo visto che è un dominio .com) per ognuna una geo-localizzazione diversa.
    Per esempio puoi dirgli che la cartella /it/ sarà associata all'Italia.

    Se decidi di usare se usare una lingua come "predefinita", per esempio l'inglese, puoi anche evitare di mettere le pagine in inglese in una cartella /en/ (ma nulla te lo impedisce); la geo-localizzazione sarà non impostata a livello generale e solo i contenuti nella sotto-cartella /it/ saranno geo-localizzati.

    Già che sei in fase di riscrittura degli URL, ti consiglio di approffittarne per localizzarli, per esempio[INDENT]bianco.com/it/dove-siamo.php
    bianco.com/where-we-are.php[/INDENT]

    Importante: Tieni a mente che ogni riscrittura di URL è un'operazione delicata: devi mettere in piedi i corretti redirect 301 dalla vecchia alla nuova versione di ogni URL.

    Fossi in te, sfrutterei anche gli attributi e tag che i motori di ricerca mettono a disposizione per servire al meglio i contenuti nella lingua corretta agli utenti.
    Negli html/head:
    [HTML]<link rel="alternate" hreflang="en" href="http://bianco.com/en/where-we-are.php">
    <link rel="alternate" hreflang="it" href="http://bianco.com/it/dove-siamo.php">[/HTML]
    così facendo esprimi una relazione tra le due pagine, dicendo a Google "queste due pagine sono gli stessi contenuti in lingua diversa"

    Per le pagine di scelta, che non sono dedicate a una lingua in particolare, puoi usare il valore hreflang="x-default"
    Maggiori particolari: http://support.google.com/webmasters/bin/answer.py?hl=it&answer=189077

    @Rey46 said:

    Domanda 1-B
    Qual'è l'htaccess corretto fra questi due? ho trovato pareri discordanti cercando
    Mi spiace, non parlo Apache, lascio la risposta ad altri più esperti in tale campo

    @Rey46 said:

    Domanda 1-C
    Domanda forse banale, devo fare il redirect anche dell'index.htm a index.php? O visto che è l'index se non trova un'estensione prende l'altra?
    Il redirect fallo, ma verso "/", sia dal vecchio "/index.html" che dal nuovo "/index.php"

    @Rey46 said:

    • Domanda 2
      Il title, solitamente io metto "miosito.com - breve descrizione bla bla", e nelle altre "Nome pagina - miosito", qui però è diverso, non è un blog, come potrei sistemarli?
      Come struttura vanno abbastanza bene, ma abbi cura che tutti i titoli siano univoci, anche index.php e bianco.php

    @Rey46 said:

    • Domanda 3
      Il meta tag description è un breve riassunto del contenuto della pagina, nel caso di Bianco le prime due pagine hanno solo immagini e link, nella index è d'obbligo metterlo, ma in quella per scegliere la lingua? Come vi comportate in questi casi? Lo copio pari pari dalla index?
      Anche le meta descrizioni ti consiglio siano uniche per ogni URL

    @Rey46 said:

    • Domanda 4
      La sitemap, ho cercato molto e dicono che si possono fare più danni che altro quindi sono un po' titubante, penso la cosa più giusta sia farne due, una per le pagine it, una en, in modo da dividere i contenuti, nel WMT sotto impostazioni non ho trovato però voci a riguardo, forse è meglio farla tramite robots.txt?
      Sinceramente non vedo che grandi danni potresti fare.
      Ti consiglio di dividera in due, una per i contenuti in Italiano, e una per i contenuti in Inglese, così da meglio poterne controllare l'indicizzazione, specie visto che ti ho consigliato di configurare un profilo GWT per lingua.
      Puoi anche nelle sitemap sfruttare gli alternate link, riferimenti qui: http://support.google.com/webmasters/bin/answer.py?hl=it&answer=2620865

    Era una domandona bella lunga, spero non aver trascurato nulla!


  • User

    Ciao Federico, ti ringrazio per aver risposto punto per punto 🙂 ho solo un'ulteriore dubbio

    @Federico Sasso said:

    Ti consiglio di strutturare le lingue in cartelle, perché così facendo avrai modo da Google Webmaster Tool di impostare (puoi farlo visto che è un dominio .com) per ognuna una geo-localizzazione diversa.
    Per esempio puoi dirgli che la cartella /it/ sarà associata all'Italia.

    Se decidi di usare se usare una lingua come "predefinita", per esempio l'inglese, puoi anche evitare di mettere le pagine in inglese in una cartella /en/ (ma nulla te lo impedisce); la geo-localizzazione sarà non impostata a livello generale e solo i contenuti nella sotto-cartella /it/ saranno geo-localizzati.

    Già che sei in fase di riscrittura degli URL, ti consiglio di approffittarne per localizzarli, per esempio[INDENT]bianco.com/it/dove-siamo.php
    bianco.com/where-we-are.php[/INDENT]

    Importante: Tieni a mente che ogni riscrittura di URL è un'operazione delicata: devi mettere in piedi i corretti redirect 301 dalla vecchia alla nuova versione di ogni URL.

    Fossi in te, sfrutterei anche gli attributi e tag che i motori di ricerca mettono a disposizione per servire al meglio i contenuti nella lingua corretta agli utenti.
    Negli html/head:
    [HTML]<link rel="alternate" hreflang="en" href="ht tp://bianco.com/en/where-we-are.php">
    <link rel="alternate" hreflang="it" href="ht tp://bianco.com/it/dove-siamo.php">[/HTML]
    così facendo esprimi una relazione tra le due pagine, dicendo a Google "queste due pagine sono gli stessi contenuti in lingua diversa"

    per quanto riguarda la geolocalizzazione di /it/ ok, per quanto riguarda /en/ mettendo hreflang="en" oppure hreflang="en-us", non rischio di penalizzare troppo visitatori da google.co.uk, .fr, .au, .es, .de etc..? ho si traffico da inglesi ma anche tanti francesi, tedeschi, canadesi, austriaci, australiani, brasiliani, spagnoli e anche qualche giapponese. Tradurre il sito in altre lingue è una cosa che voglio evitare perchè altrimenti quando poi il cliente viene ad alloggiare si aspetta di trovare persone che parlando la sua lingua in maniera corretta e non è così.


  • Moderatore

    @Rey46 said:

    per quanto riguarda la geolocalizzazione di /it/ ok, per quanto riguarda /en/ mettendo hreflang="en" oppure hreflang="en-us", non rischio di penalizzare troppo visitatori da google.co.uk, .fr, .au, .es, .de etc..? ho si traffico da inglesi ma anche tanti francesi, tedeschi, canadesi, austriaci, australiani, brasiliani, spagnoli e anche qualche giapponese. Tradurre il sito in altre lingue è una cosa che voglio evitare perchè altrimenti quando poi il cliente viene ad alloggiare si aspetta di trovare persone che parlando la sua lingua in maniera corretta e non è così.
    Geo-localizzazione e traduzione sono due concetti distinti, anche se è vero in parte si intrecciano.

    Impostare la geo-localizzazione sulla cartella /it/ vuole dire dare un piccolo boost -una spintarella - per le SERP Italiane, prevalentemente google.it, e utenti da IP Italiani.
    L'uso di hreflang è solo una indicazione linguistica. Utenti che hanno il browser impostato con preferenza per la lingua Inglese - in cui cioè il browser nel comporre le chiamate HTTP decorerà l'header accept-language con valore ad esempio "en", saranno preferibilmente dirottati verso il contenuto Inglese segnalato da hreflang.
    In pratica hreflang è un aiuto al motore di ricerca per indirizzare l'utente verso il contenuto nella lingua più consona.
    Non vedo possibilità di penalizzazione degli utenti nell'utilizzarlo, è solo un qualcosa in più che fornisci.

    Ti consiglio di impostere hreflang="en" e non hreflang="en-US", anche se in mancanza d'una lingua specifica gli utenti google.co.uk non sarebbero affatto penalizzati.

    E' vero che è probabile - ad esempio - che gli utenti con header HTTP accept-language "fr-FR" using google.fr, ma usare hreflang="fr-FR" non dovrebbe essere direttamente una indicazione di preferenza per la SERP per google.fr, bensì un per gli utenti con lingua fr-FR, ovunque essi siano.
    Questo è almeno la mia comprensione della direttiva.

    Spero di non aver confuso troppo le acque


  • User

    Ok avevo fatto un'attimo di confusione 🙂 In questa discussione ( ht tp://w ww.giorgiotave.it/forum/indicizzazione/203524-indicizzare-velocemente-pagine-multilingua.html ) suggerisci di aggiungere il tag anche nella bandierina del cambio lingua, ma perchè il nofollow? non capisco.

    se le pagine nelle altre lingue le link-i anche, permettendo il cambio  di lingua in ogni pagina, ti consiglio anche di decorare con l'attributo  hreflang anche il tag A:
     
      Codice HTML:
    
     
    <a href="...url a pagina in inglese..." hreflang="en" rel="nofollow">English</a> 
    
    

    Appreso l'hreflang, non mi è chiaro come effettuare la geolocalizzazione, supponendo di scrivere un sitemap del genere:

    <?xml version="1.0" encoding="utf-8"?>
    <urlset xmlns="ht tp://w ww.sitemaps.org/schemas/sitemap/0.9">
      <url>
        <loc>ht tp://w ww.bianco.com/</loc>
                <xhtml:link                 
    rel="alternate"                
     hreflang="x-default"                
     href="ht tp://w ww.bianco.com/"               
      />
    </url>
      <url>
        <loc>ht tp://w ww.bianco.com/bianco.php</loc>
                <xhtml:link                
     rel="alternate"             
       hreflang="x-default"         
            href="ht tp://w ww.bianco.com/bianco.php"        
             />
    </url>
      <url>
        <loc>ht tp://w ww.bianco.com/it/bed-breakfast.php</loc>
                <xhtml:link              
       rel="alternate"             
       hreflang="it"              
       href="ht tp://w ww.bianco.com/it/bed-breakfast.php"              
       />
                <xhtml:link          
           rel="alternate"              
      hreflang="en"              
       href="ht tp://w ww.bianco.com/en/bed-breakfast.php"                 />
    </url>
    <url>
    ...
    </url>
    </urlset>
    

    Non ho trovato nessun tag per il linguaggio, cercando tutti parlano di creare un profilo per le cartelle, io trovo solo il modo di creare nuovi utenti nelle impostazioni del Web master tools.
    Mi sai dire dove guardare?

    La struttura della sitemap è corretta? alcuni mettono hreflang="x-default" altri solo la x.. altri errori credo di non averne fatti 🙂

    Quando invierò la sitemap prenderà i link come nuove pagine e quindi contenuti duplicati finchè non rivisiterà le vecchie pagine beccandosi i vari 301.. In salute -> visualizza come google, ti permette di inserire i link e inviarli all'indice, contando che non parliamo di 500 url ma di 7-8 per sito, ha un senso dopo aver inviato la sitemap scansionare i vecchi url e inviarli all'indice in modo da forzare la visitazione dei redirect 301?


  • Moderatore

    Ciao Rey46,
    @Rey46 said:

    In questa discussione ... suggerisci di aggiungere il tag anche nella bandierina del cambio lingua, ma perchè il nofollow? non capisco.
    Ah sì.. è il rimasuglio di un veloce copiaincolla da un mio sito, dove quasi ogni pagina ha un equivalente in diverse lingue. Uso mettere il nofollow perché voglio dare struttura di link indipendente per le varie lingue.
    Spiego la motivazione: Non è proprio così che funziona, ma pensa come se effettivamnte il crawler seguisse i link mano a mano che li trova e in base a esso ricostruisce la struttura di link (di nuovo, non funziona proprio così, lista degli url da visitare, fetch e parsing dei link sono processi separati e distinti nel tempo, ma il risultato finale è molto simile), cerco di evitare che i contenuti siano esplorati cross-lingua.
    Questo apparentemente ha funzionato per me, ma non dico debba essere per forza la cosa più giusta da fare.
    TL;DR: Puoi anche omettere il nofollow, non c'entra ai fini dell'argomento in oggetto 🙂

    @Rey46 said:

    Appreso l'hreflang, non mi è chiaro come effettuare la geolocalizzazione, supponendo di scrivere un sitemap del genere:
    ...
    Non ho trovato nessun tag per il linguaggio, cercando tutti parlano di creare un profilo per le cartelle, io trovo solo il modo di creare nuovi utenti nelle impostazioni del Web master tools.
    Mi sai dire dove guardare?
    Scusa, non ho capito dove mi chiedi della sitemap, e dove delle impostazioni di webmaster tools.
    Cerco di rispondere un po' a tutto sperando di non aver capito fischi per fiaschi, nel caso correggimi.

    Nella sintassi xml sitemap la lingua è espressa tramite l'attributo hreflang, che in effetti hai utilizzato.
    Nel codice delle pagine puoi dare un aiutino aggiungendo in testa all'html gli attributi lang="it" (html5) e xml:lang="it" (xhtml), però va detto che il metodo principale per google per riconoscere una lingua è inferirla dal testo.

    Il profilo per sottocartelle serve non per la lingua ma per la geo-localizzazione. Il processo da seguire è lo stesso che hai seguito nel creare il primo profilo. Dalla pagina Home di Google Webmaster Tools - quella con l'elenco dei siti con le miniature delle schermate, per intendersi - clicca su "Aggiungi un sito" e prosegui.

    @Rey46 said:

    La struttura della sitemap è corretta? alcuni mettono hreflang="x-default" altri solo la x.. altri errori credo di non averne fatti 🙂
    hreflang="x-default" indica una pagina a "lingua neutra", per esempio una pagina di scelta lingua, o una che si autoadatta alla lingua dell'utente senza variazione dell'URL (personalmente penso sia un modo per mettere una pezza a cattive pratiche)

    hreflang="x" non esiste:
    la documentazione di Google (vedi il link che ho postato tre post più in alto, ho dovuto controllare la pagina per capire da dove potesse venire quella x) può generare un po' di confusione, usa il valore "x" come segnaposto per una lingua qualunque, come "es" nell'esempio nella stessa pagina.

    @Rey46 said:

    Quando invierò la sitemap prenderà i link come nuove pagine e quindi contenuti duplicati finchè non rivisiterà le vecchie pagine beccandosi i vari 301.. In salute -> visualizza come google, ti permette di inserire i link e inviarli all'indice, contando che non parliamo di 500 url ma di 7-8 per sito, ha un senso dopo aver inviato la sitemap scansionare i vecchi url e inviarli all'indice in modo da forzare la visitazione dei redirect 301?
    Io delego tale funzione a sitemap temporanee con i vecchi URL (pratica non incoraggiata da Google); farlo da "Visualizza come Google" non so se abiliti l'opzione "Invia all'indice" per valori diversi da 200 OK.


  • User

    @Federico Sasso said:

    Scusa, non ho capito dove mi chiedi della sitemap, e dove delle impostazioni di webmaster tools.
    Cerco di rispondere un po' a tutto sperando di non aver capito fischi per fiaschi, nel caso correggimi.

    In un primo momento credevo che hreflang e geolocalizzazione fossero la stessa cosa, per questo una volta appreso l'uno, ho chiesto dell'altro 🙂

    @Federico Sasso said:

    Nella sintassi xml sitemap la lingua è espressa tramite l'attributo hreflang, che in effetti hai utilizzato.
    Nel codice delle pagine puoi dare un aiutino aggiungendo in testa all'html gli attributi lang="it" (html5) e xml:lang="it" (xhtml), però va detto che il metodo principale per google per riconoscere una lingua è inferirla dal testo.

    Il profilo per sottocartelle serve non per la lingua ma per la geo-localizzazione. Il processo da seguire è lo stesso che hai seguito nel creare il primo profilo. Dalla pagina Home di Google Webmaster Tools - quella con l'elenco dei siti con le miniature delle schermate, per intendersi - clicca su "Aggiungi un sito" e prosegui.

    Ok, ora è chiaro, va aggiunto come se fosse uno nuovo sito mettendo alla fine .com/it/

    @Federico Sasso said:

    Io delego tale funzione a sitemap temporanee con i vecchi URL (pratica non incoraggiata da Google); farlo da "Visualizza come Google" non so se abiliti l'opzione "Invia all'indice" per valori diversi da 200 OK.

    Quindi se ho capito bene, uppo il nuovo sito, invio una sitemap con i vecchi url, quando TUTTI gli url li da indicizzati (c'è un count se non sbaglio relativo a quanti url sono stati visitati della sitemap), cancello la sitemap e uppo le nuove? Hai link che spiegano questa procedura più nel dettaglio?

    Grazie Federico 😉


  • Moderatore

    @Rey46 said:

    Quindi se ho capito bene, uppo il nuovo sito, invio una sitemap con i vecchi url, quando TUTTI gli url li da indicizzati (c'è un count se non sbaglio relativo a quanti url sono stati visitati della sitemap), cancello la sitemap e uppo le nuove? Hai link che spiegano questa procedura più nel dettaglio?
    Temo di non aver link sottomano.

    Probabilmente ti è già chiaro, lo rimarco perché non si sa mai:
    La sitemap non è una unica e indissolubile; puoi avere quante sitemap vuoi (basta abbiano nomi e/o path diversi e descrivano contenuti sottostanti la propria posizione), possono intersecarsi, descrivere sottoinsiemi diversi, etc...

    La volte che ho dovuto riscrivere degli URL in blocco ho affiancato la nuova sitemap a una sitemap-old.xml con i vecchi URL e l'ho "submittata" (ripeto, non è una procedura incoraggiata da G, perché gli URL non rispondono 200 OK).

    Spero d'averti risposto


  • User

    Ti ringrazio sei stato gentilissimo 🙂


  • User

    Ho creato le nuove sitemap e per sfizio ho fatto dei check con un paio di validator, mi danno un sacco di errori, ho provato anche a cambiare le intestazioni ma non ne vengo a capo eppure la sintassi è corretta :mmm: Dove sto sbagliando?

    The prefix "xhtml" for element "xhtml:link" is not bound.
    
    Error 201: Namespace prefix xhtml on link is not defined
    
    <?xml version="1.0" encoding="UTF-8"?>
    <urlset
          xmlns="ht tp://w ww.sitemaps.org/schemas/sitemap/0.9"
          xmlns:xsi="ht tp://w ww.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="ht tp://w ww.sitemaps.org/schemas/sitemap/0.9
                ht tp://w ww.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd">
    
    <url>
    <loc>ht tp://w ww.bianco.com/</loc>
    <xhtml:link
    rel="alternate"
    hreflang="x-default"
    href="ht tp://w ww.bianco.com/"/>
    </url>
    <url>
    <loc>ht tp://w ww.bianco.com/biancobeb.php</loc>
    <xhtml:link
    rel="alternate"
    hreflang="x-default"
    href="ht tp://w ww.bianco.com/biancobeb.php"/>
    </url>
    <url>
    <loc>ht tp://w ww.bianco.com/it/bed-breakfast.php</loc>
    <xhtml:link
    rel="alternate"
    hreflang="en"
    href="ht tp://w ww.bianco.com/en/bed-breakfast.php"/>
    <xhtml:link
    rel="alternate"
    hreflang="it"
    href="ht tp://w ww.bianco.com/it/bed-breakfast.php"/>
    </url>
    <url>
    ...
    </url>
    </urlset>
    

  • Moderatore

    Spiegazione dell'errore che ottieni:
    In pratica usando tag prefissati con xhtml: stai dicendo "le regole di validazione per questo elemento sono quelle dell'xhtml, ma nel tag di testa non hai specificato dove sono definite.

    Come fare:
    Guarda l'esempio della documentazioni di Google, vedrai che lo cita nell'intestazione urset: http://support.google.com/webmasters/bin/answer.py?hl=it&answer=2620865
    Ti consiglio come validatore di usare proprio GWT, è quello che alla fine dovrà digerire la tua mappa.

    Ciao!