• User

    Quanto è importante un buon codice per la SEO?

    Salve a tutti.
    Apro questa discussione, sperando di non essere fuori tema. Anche se è vero che qui si parla di soluzioni di problemi PHP credo che anche lo scrivere codice efficiente è un problema che ci si deve porre.

    Il codice che scriviamo viene interpretato dal server che restituirà il risultato. Seguendo i diversi esperti che intervengono anche su questo forum, mi è sembrata opinione comune l'importanza del **tempo di **risposta del sito. D'altronde, non è solo Google che fa di queste scelte: io utente, se vedo che il sito in 3-4 secondi non mi risponde chiudo e apro un altro sito. Diventa decisivo:

    • la scelta dell'hosting
    • scrivere del buon codice

    La scelta dell'hosting (soprattutto della banda) è importante per far si che il server sia in grado di ricevere subito la nostra richiesta e di inviarci la risposta. Se la banda è ridotta, il server viene rallentato da tante richieste e ad un certo punto le rifiuterà :smile5:

    Scrivere buon codice, invece, è importante perché il server dia in tempi rapidi la risposta facendo la computazione giusta. Infatti, giusto a titolo di esempio, se abbiamo 10.000 nomi ordinati alfabeticamente e vogliamo trovare il nome "luca", c'è differenza fra questi due codici:

    Codice 1:
    [php]

    <?php
    $ricercato = "luca";
    for($i=0; $i<10000; $i++)
    {
    if($nomi*==$ricercato) return true;
    }

    ?>

    [/php]

    Codice 2:

    [php]
    <?php

    $nomeCercato="luca";
    if(cercaNome($elencoNomi, $nomeCercato, 0, count($elencoNomi)==false) echo "nome non trovato";
    else "Nome trovato";

    function cercaNome($nomi, $nomeCercato, $l, $r)
    {
    if($l>=$r) return false;
    $m = (int) (($l + $r)/2);
    if($nomi[$m]==$nomeCercato) return true;
    else {
    if(strcmp($nomi[$m], $nomeCercato)>0)
    return cercaNome($nomi, $nomeCercato, $l, $m-1);
    else
    return cercaNome($nomi, $nomeCercato, $m+1, $r);
    }
    }

    ?>
    [/php]

    Cosa cambia fra questi due codici? Vediamolo in numero di confronti (nel caso peggiore):

    [TABLE="width: 500"]

    [TD]Numero Elementi[/TD]
    [TD]Confronti Codice1[/TD]
    [TD]Confronti Codice1[/TD]
    [/TR]

    [TD]16[/TD]
    [TD]16[/TD]
    [TD]4[/TD]
    [/TR]

    [TD]100[/TD]
    [TD]100[/TD]
    [TD]8[/TD]
    [/TR]

    [TD]1024[/TD]
    [TD]1024[/TD]
    [TD]10[/TD]
    [/TR]

    [TD]10000[/TD]
    [TD]10000[/TD]
    [TD]14[/TD]
    [/TR]
    [/TABLE]

    Nell'ultimo caso abbiamo un rapporto 715 a 1 😄 che non è una sciocchezza. Ovviamente meno operazioni significa meno computazione, e meno computazione significa meno tempo sprecato. Si, perché le altre 9mila operazioni sono superflue! E il nostro server sarà molto contento di questa cosa :giggle:
    E voi cosa ne pensate? Ci avete mai pensato a questo aspetto per la Search Engine Optimization?
    Alfonso


  • User

    Ciao, ovviamente scrivere un buon codice, funzionale, è il punto di partenza. Soprattutto su hosting condivisi, dove le risorse vanno dosate.

    Per i tempi di risposta, è fondamentale avere pulizia nell'HTML e CSS, con le opportune ottimizzazioni (compattare script, riduzione al minimo delle immagini, utilizzo degli "sprites").


  • User

    Ciao,
    Il codice è un importante fattore SEO e migliora il posizionamento in due casi:

    1. il codice è valido, senza errori. Google apprezza un sito fatto bene;
    2. non appesantisce la pagina - la velocità di caricamento è alta.

    Si sa che i siti dinamici sono più lenti di quelli statici per la causa delle query, i database ecc ecc. Quindi se il php che ti genera la pagina web è molto pesante e riduce la velocità di caricamento della pagina, si rischia che:

    1. i visitatori vanno via dal tuo sito;
    2. il googlebot se ne va anche lui e di conseguenza non tutte le pagine del sito vengono indicizzate;
    3. perdi qualche posizione nella SERP.

    Fino a 4-5 anni fa era "Content is king!". Poi siamo passati al "Speed is king!". Adesso, da circa un anno, "Social proof is king. Speed is the queen. The content is the prince". Quest'ultima frase mi appartiene 🙂 Con Social Proof intendo la validazione da parte degli utenti sui social networks (facebook, twitter, G+). Questa sarebbe la nuova era del link building.


  • ModSenior

    Ciao,
    intanto bisogna dire che codice come quello postato da te, molto difficilmente vengono utilizzati nella realtà in php.
    La maggior parte dei framework come zend framework, simfony, ecc hanno tempi di generazione nettamente superiori a framework che vengono poco utilizzati, ma nonostante ciò vengono utilizzati per gli enormi vantaggi che hai rispetto a fare tutto da zero.
    Si parla sempre di tempo di risposta tra i SEO, ma tutti i SEO alla fine usano wordpress che ha dei tempi di generazione enormi.

    Un buon codice, parlando di php, deve essere in grado di poter essere facilmente ampliato in futuro se ci sono altre necessità e non solamente essere veloce come la luce.


  • User

    Anzitutto grazie per tutte le risposte 😉 provo ad andare in ordine. Anzitutto questo che ho scritto è un semplicissimo esempio 😉 Ovvio che le volte in cui dovremo preferire una ricerca binaria a una ricerca normale in php sono rare,ma era un esempio per introdurre questa discussione. Tutti i SEO usano wordpress: in effetti è un buon cms anche se non molto ottimizzato in termini di complessità. Ma quanto conta invece MySQL nei tempi di generazione? Anche conta molto, ma raramente ci si pensa 😉
    Già molte si realizzano database per nulla normalizzati (e quindi il volume e la ridondanza aumenta) poi se il motore interno contiene procedure e strutture dati poco efficienti... è finita 😄 Vorrei sapere se qualcuno usa soluzioni commerciali (anche quelle stesse di Oracle) se si trova meglio per quanto riguarda i tempi di risposta.

    Un buon codice, parlando di php, deve essere in grado di poter essere facilmente ampliato in futuro se ci sono altre necessità e non solamente essere veloce come la luce.

    Sono d'accordo 😄 Ma 2 è meglio di uno