Come individuare i problemi di visualizzazione del sito su Smartphone Android

    No Comments
    come ispezionare il codice di un sito

    Effettuare il debugging di un sito in versione mobile tramite il proprio computer desktop

    Hai realizzato un bel sito? Bene, ma hai tenuto a mente che la maggior parte della navigazione dei siti web avviene tramite cellulari smartphone e tablet? Questo significa che la versione più importante del tuo sito è quella mobile! Fortunatamente i temi WordPress oramai hanno tutti una versione viewport, che si modifica a seconda del dispositivo utilizzato, mostrando al visitatore la versione giusta per lui. Ma cosa succede se la visualizzazione per smartphone ha qualche imperfezione da sistemare? Dobbiamo fare il debugging, ovvero controllare il codice del sito e localizzare il problema. In questo caso vediamo un esempio di problema CSS. I CSS sono i fogli di stile che permettono al nostro sito la visualizzazione “graficamente elegante” della struttura (colori, indentazioni, spazi, caratteri utilizzati, ecc.). Per fare il debugging di una pagina web (visualizzata dal desktop) ci basta visitare quella pagina, andare nella zona che ci interessa controllare (ad esempio in corrispondenza di un titolo che ha una dimensione o un carattere che vorremmo cambiare), cliccare col tasto destro e scorrere su “Ispeziona” (oppure usare la combinazione di tasti CTRL + Maius + I ), e si aprirà una schermata a lato che ci mostrerà il codice relativo a quella parte di sito (vedi sezione Styles).

    come ispezionare il codice di un sito

    Questo strumento ci permette di individuare quale proprietà di foglio di stile dobbiamo andare a modificare, ovvero come si chiamano i selettori identificativi all’interno del foglio di stile. Senza addentrarci troppo nello specifico (servirebbe un corso completo di CSS a parte), nell’esempio seguente ecco cosa viene visualizzato ispezionando la parte relativa al logo di questo sito (ad esempio vogliamo capire come ridurre lo spazio dall’alto o il margine sinistro, ecc.).

    ispeziona codice sito

    Se ad esempio volessimo ridurre lo spazio tra il logo e la parte sottostante, sappiamo che dobbiamo andare a modificare il codice <em>padding-bottom:15px</em> . Possiamo fare una prova immediata, cliccandoci sopra e modificandone il valore: ad esempio mettendo 50px, e vedremo subito come cambia la visualizzazione del sito. Ma questa è solo un’anteprima, se soddisfatti, ora dovremo andare nel foglio di stile del nostro sito, cercare (con F3) ad esempio .header oppure .logo o altro che ci permetta di individuare quella parte di codice CSS che vogliamo modificare, e una volta trovato fare la modifica e salvare.

    E se dovessimo modificare la visualizzazione per cellulari? Sempre con Chrome Il procedimento è analogo, abbiamo sempre a disposizione strumenti potenti e completi, e possiamo fare così: in alto a destra clicchiamo sui 3 puntini –> scendiamo su altri strumenti –> strumenti per sviluppatori. Anche questa volta si aprirà la consolle di debug. Se guardiamo bene, in alto, c’è un’icona mobile: cliccando su questa “Toggle Device Bar” la consolle di commuterà in visione per cellulare. Se non trovate l’icona, potete usare il comando CTRL + Shift + M. Questa funzione, diventa utile anche per capire come si visualizza il vostro sito web su cellulare.

    debug sito mobile

    Questa consolle di debug per cellulari vi permetterà ora di ispezionare la versione mobile del vostro sito, e anche di cambiare tipo di visualizzazione (dimensione schermo) e tipo di dispositivo (Ios, Android, ecc.). Ora che lo sapete, sarà il compagno di ogni webmaster che realizza un sito o decide di cambiare il tema del proprio sito WordPress e non. Ricordatevi che per vedere le modifiche live dovete cancellare la cache del vostro browser oppure aprire una sessione in incognito.

     

    Categories: Tutorial & Modifiche Tags: Tag:

    bbPress: come mettere un’immagine in evidenza per ogni forum

    1 Comment

    Hai un forum basato sulla piattaforma WordPress + il plugin bbPress? Bene, un bel modo di renderlo più accattivante e meno standardizzato è quello di mettere un’immagine specifica per ogni forum. Ad esempio se si tratta di un forum di viaggi diviso in sezioni, è bello mettere un’immagine del paese o relativo alla sezione in cui l’utente navigherà. Questa funzione non è inclusa nel forum di WordPress, nè è disponibile un plugin per aggiungerla. E allora come fare? Dobbiamo modificare il codice, ma per fortuna si tratta di una semplice modifica. Il codice seguente praticamente attiva una funzione già esistente all’interno di WordPress. In sostanza non dobbiamo creare chissà che cosa ma semplicemente attivare quanto c’è già. Il codice è il seguente:

    // Original Source: http://www.kristarella.com/2013/04/bbpress-forum-icons/
    add_post_type_support('forum', array('thumbnail'));
    function ks_forum_icons() {
    	if ( 'forum' == get_post_type() ) {
    		global $post;
    	    if ( has_post_thumbnail($post->ID) )
    	    	echo get_the_post_thumbnail($post->ID,'thumbnail',array('class' => 'alignleft forum-icon'));
    	 }
    }
    add_action('bbp_theme_before_forum_title','ks_forum_icons');
    

    In sostanza, se ora andate all’interno dell’amministrazione del singolo forum, quello che mettete come “immagine in evidenza” diventerà automaticamente l’immagine che il vostro template mostrerà nel singolo forum (con posizione che può cambiare a seconda del tipo di template che usate). Questo uno screenshot dell’amministrazione:

    Questo il risultato sul singolo forum (vedi forum)
    esempio immagine in evidenza

    Dove e come inserire questo codice?
    Il codice va inserito nel file functions.php del vostro tema. Meglio se è un tema child, ovvero figlio, così in caso di aggiornamenti il codice non verrà sovrascritto. Un’alternativa migliore – rivolta sopratutto ai meno esperti – è di utilizzare un plugin che permetta l’inserimento di questo codice. Io ad esempio utilizzo Code Snippets. Disponibile su wordpress, permette di inserire pezzi di codice nel file di cui sopra, e vi fa anche un controllo generale che il codice che andate ad inserire non provochi errori fatali:

    Ora potete rendere più interessante graficamente il vostro forum.

    Categories: Tutorial & Modifiche Tags: Tag:,

    Come sbloccare wordpress che si blocca durante l’aggiornamento

    1 Comment
    unvailable for maintenance

    Chi utilizza wordpress avrà sicuramente notato che compaiono spesso notifiche di aggiornamenti disponibili, sia per il core (aggiornamenti della versione di wordpress), sia per i plugins che abbiamo installato nel nostro blog: e se ne usiamo tanti, allora gli aggiornamenti sono frequenti, ed importanti (non possiamo non aggiornare in quanto rischiamo di lasciare wordpress con delle vulnerabilità che lasciano entrare hackers).

    Il bello di WordPress è che (quasi) sempre possiamo fare l’aggiornamento in maniera facile ed intuitiva tramite il pannello di controllo, che ci porta all’indirizzo vostrosito/wp-admin/update.php . Dico quasi, perchè se abbiamo dei plugins premium (acquistati tramite marketplace come Codecanyon o comunque da terze parti) a volte non permettono l’aggiornamento diretto bensì bisogna scaricare la nuova versione dal loro sito. Sono comunque una piccola minoranza. In generale, come già avrai sperimentato, alla notifica è disponibile un aggiornamento per questo plugin ti basta cliccare e confermare l’update.

    Nel 99% l’aggiornamento funziona bene, il sistema segue questi passaggi:
    – mette temporaneamente offline il sito
    – disinstalla / sovrascrive il plugin (o la versione wordpress)
    – sovrascrive / reinstalla il plugin (o la versione wordrpress)
    – riattiva il plugin e rimette online il sito

    Ma a volte l’aggiornamento si blocca, non si completa, e se proviamo a fare il refresh della pagina o a navigare nell’amministrazione (o nel sito) compare la seguente schermata di blocco:

    unvailable for maintenance

    Da questo momento il sito è inutilizzabile, sia per i visitatori, sia per gli amministratori. Ma l’avviso “briefly unavailable for scheduled maintenance. Check back in a minute” diventa un’eternità se non risolviamo manualmente. Come sbloccare la situazione e tornare online? L’unico modo è utilizzare il vostro programma FTP (oppure il sistema di gestione files che vi fornisce il vostro hosting) e andare nella root (cartella principale) del vostro sito, dove vengono elencati i file principali (index.php, wp-config.php, ecc.). Una volta aperta/visualizzata la cartella principale, troverete un nuovo file, che viene creato da WordPress nel momento in cui effettua l’aggiornamento: .maintenance . E’ un file “nascosto”, come il file .htaccess : potreste non vederlo in quanto il vostro gestore di files potrebbe avere settato di default di non mostrare questo file. Se così fosse, ad esempio se utilizzate cpanel, in alto a destra cliccare su Impostazioni e selezionare l’opzione “Mostra files nascosti” (o “Show hidden files”). In sostanza, dovrete vedere come in figura:

    file .maintenance

    Ora semplicemente rimuovetelo / cancellatelo, e il vostro sito tornerà funzionante come prima. Una volta rimosso potrete tornare nell’amministrazione, nella sezione aggiornamenti/updates e riprovare a fare l’aggiornamento online. Se il problema torna nuovamente, ripetete la procedura di rimozione, e attendete a rifare l’aggiornamento, potrebbe esserci un temporaneo blocco di importazione files dalla piattaforma wordpress (o terza parte) e il vostro server. Riprovate più tardi, se continua allora contattate il vostro gestore di hosting per controllare il log degli errori e vedere cosa impedisce l’aggiornamento.

     

    Come sistemare Upload “HTTP Error” su WordPress

    1 Comment

    Può capitare che caricando un file immagine mentre stai creando un post o una pagina compaia l’errore http error nella finestra di caricamento immagini. Come risolvere?

    L’errore non è di origine certa, nel senso che le cause possono essere diverse, e allora bisogna provare varie soluzioni. Ecco le cause più comuni e le possibili soluzioni, partendo dalle più semplici alle più tecniche:

    1) E’ finito lo spazio web a disposizione. Se il tuo account ha esaurito lo spazio fisico allocato (limite imposto dall’hosting) allora non può caricare nuovi files.
    Soluzione: liberare spazio fisico oppure chiedere un upgrade del proprio hosting

    2) Riducete la dimensione dell’immagine. Non caricate ad esempio un’immagine da 2000px di larghezza. Riducetela ad esempio 1024px, o meglio ancora – se la dovete inserire all’interno di un post – a 600px. Esistono sia siti internet per ottimizzarle online, sia plugin per ottimizzare le immagini già caricate all’interno del vostro sito.

    3) Il formato del file o dell’immagine non è compatibile. A volte può capitare per alcune immagini.
    Soluzione: provare con un’immagine diversa. Se funziona, allora convertire l’immagine che vogliamo caricare e salvarla in un altro formato. Se ad esempio è una .jpg potete convertirla in .png, e viceversa.

    4) Conflitto con plugin di ottimizzazione immagini.
    Soluzione: disattivate (anche solo temporaneamente) il plugin e riprovate.

    5) La memoria allocata per Apache/PHP nella configurazione di wordpress è troppo bassa/limitata. Si può facilmente verificare ed aumentare.
    Soluzione: aumentare la memoria php. Aprire il file wp-config.php (presente nella root / directory principale del vostro hosting). In questo file vengono elencati tutti i set up della configurazione wordpress. Importante: editatelo solo con un normale programma Notepad o direttamente con il file editor del vostro hosting, NON utilizzate Word e simili. Cercate la riga con questa istruzione:

    define('WP_MEMORY_LIMIT', ' ');

    (avrà un valore in MB all’interno.).
    Cambiatela nel modo seguente (se non presente, semplicemente aggiungetela)

    define('WP_MEMORY_LIMIT', '64MB');

    o meglio

    define('WP_MEMORY_LIMIT', '128MB');

    Salvate il file e riprovate.

    6) Potete provare a risolvere aggiungendo queste righe al file .htaccess, che si trova anch’esso nella directory root del vostro spazio web. Nota importante: editare con il file manager del vostro hosting, oppure con programma apposito, oppure con un semplice Notepad. Non usare word e simili. Codice da aggiungere all’inizio del file .htaccess :

    <IfModule mod_security.c>
    SecFilterEngine Off
    SecFilterScanPOST Off
    </IfModule>

    oppure

    <FilesMatch "(async-upload\.php|wp-cron\.php|xmlrpc\.php)$">
    Satisfy Any
    Order allow,deny
    Allow from all
    Deny from none
    </FilesMatch>

    oppure

    AddType x-mapp-php5 .php

    8) Se questi non funzionano, allora è bene contattare l’assistenza del vostro fornitore di spazio web.

    Categories: Tutorial & Modifiche Tags: Tag:

    Come sapere quali bots/spider rallentano il server (e come bloccarli)

    2 Comments

    Un crawler, detto anche bot oppure spider, è un software che analizza i contenuti di un sito, per raccogliere informazioni (collect data). In sostanza visitano i siti presenti sul server, raccolgono dati, pagine, informazioni e li inviano ai loro server di provenienza, per essere elaborati e archiviati. Parlando in maniera semplicistica, sono come degli ambasciatori che vengono a vedere casa vostra o il vostro negozio. Sono indispensabili al funzionamento dei motori di ricerca, in quanto raccolgono (collect) tutti i dati del vostro sito per poterli poi restituire agli utenti che fanno ricerche (se i loro algoritmi decidono che i vostri dati possono essere utili all’utente che ha effettuato la ricerca). Ma dietro questa nobile attività vi sono due tipi di problemi:

    1. gli spider dei motori di ricerca possono consumare molte risorse del vostro sito, sia per quanto riguarda la bandwith (traffico dati), sia per quanto riguarda il carico del server
    2. non sempre si tratta di bot dei motori di ricerca, ma spesso di altre tipologie di siti che vogliono utilizzare i dati del vostro sito per altri scopi (copiatura, analisi da parte della concorrenza)

    Spider e consumo risorse del sito

    Ogni volta che lo spider visita il vostro sito, generalmente lo visita tutto o almeno tenta di collezionare le informazioni del maggior numero di pagine possibile. Questa procedura consuma bandwith: questa rappresenta il traffico dati (in entrata e in uscita) concesso al vostro sito. Ogni piano hosting lo prevede (anche quando trovate in certe offerte bandwith illimitata c’è in realtà un limite). Anche se oggigiorno questo limite mensile di banda dati è aumentato rispetto al passato, esiste e va considerato, sopratutto se avete un hosting economico. Gli spider sono ingordi, gli piace leggere e rileggere tutti i siti. Tutti insieme consumano. Gli stessi motori di ricerca ammettono questa cosa: Google, ad esempio, attraverso il Google Webmaster Tool (o Search Console) permette di ridurre la frequenza di queste scansioni da parte del loro bot. E’ un’opzione semplice da utilizzare e comunque da considerare a seconda del tipo di sito che abbiamo. Un sito di notizie, aggiornato più volte al giorno, va scansionato spesso, per indicizzare subito le novità. Stesso discorso per un forum. Un sito più statico, nel senso che posta news con minor frequenza, può benissimo impostare una scansione meno frequente. E risparmiare bandwith. E non solo: a volte l’insieme dei bot concorre ad aumentare il carico del server, provocando rallentamenti al sito. Se è vero che i rallentamenti di un server (e dei siti che ospita) dipendono sopratutto dalla configurazione (errata) o dagli script (malscritti o non aggiornati), la coincidenza di più bot contemporaneamente è un fattore che in alcuni casi provoca high cpu usage , cosa che manda in crash/black out tutto quando si tratta di attacchi ddos.

    Come dicevamo, i bot che visitano il sito sono inviati anche da altri siti che non sono motori di ricerca, ma che hanno scopi totalmente differenti dal collezioare dati per restituirli nei risultati di ricerca. Tra questi siti che “copiano” le vostre pagine: dal quasi legittimo Google News che legge le vostre notizie e le riporta sul suo aggregatore (o come Trivago o Momondo che analizzano ed estraggono dati relativi alle tariffe hotels o alle offerte di viaggi), ai veri e propri siti scraper (che ri-copiano nei loro siti), fino ai siti per analisi seo (search engine oriented) che leggono il vostro sito simulando il motore di ricerca, ma per capire quali parole chiave avete, che densità hanno, come sono linkate le pagine, chi vi linka, ecc. in modo da aggregare ai dati e far capire alla concorrenza quali sono i vostri punti di forza. Alcuni esempi trai i più famosi: Ahrefs, SiteExplorer, Moz.

    Conoscere quali spiders/bot contattano i siti ospitati sul server

    Se avete accesso alla console SSH del server, allora ecco uno script già pronto per conoscere: nome dello spider, indirizzo ip (da quale server è stato lanciato), numero di volte ha contattato il sito. Copiatelo, aprite la console SSH, incollatelo e premete invio. Dal momento che lancia un processo (di calcolo) intensivo, ci impiegherà qualche minuto per restituire i dati che ci interessano (presi dal domainlogs, dalla mezzanotte precedente). Ecco lo script:

    echo -e "\n\e[1;31m=== Bots (robots or crawlers) ===\e[0m\n"; find /usr/local/apache/domlogs/*/ -type f|grep -v -E $'(_|-)log|.gz'|xargs grep -H "" | perl -ne 'if (/$DATE/ && /\/usr\/local\/apache\/domlogs\/.*\/(.*):(\d{1,3}(?:\.\d{1,3}){3}).*\((?:.*?;)*([^;]*(?:b(?:ot|ing)|crawl|yahoo|google|spider)[^;]*);/i) { print ("$1\t$2\t$3\n")}'|sort|uniq -c|sort -rn|awk '{print $1" "$3" "$4" "$2}'|column -t|head

    Il risultato sarà come il seguente:

    2735  162.158.78.71    SemrushBot/1.2~bl                  ###ar.it
    62    141.101.105.133  AhrefsBot/5.2                      ##zar.it
    124   88.198.66.230    MJ12bot/v1.4.7                     tuttoblog.com
    82    5.9.63.162       MJ12bot/v1.4.7                     tuttoblog.com
    56    198.204.243.138  MJ12bot/v1.4.7                     tuttoblog.com
    76    162.158.74.178   bingbot/2.0                        ##log.com
    72    172.68.58.42     bingbot/2.0                        ##log.com

    Notare ad esempio quanto sia vorace Semrush (noto tool di analisi siti), e come ad esempio il bot del motore di ricerca Bing arrivi da diversi IP (i motori di ricerca ne utilizzano centinaia). E’ normale vedere più ip (in quanto se il server ne blocca uno, ne hanno altri da cui far partire l’analisi al nostro sito)

    Bloccare gli spider indesiderati

    Abbiamo diverse possibilità per bloccare i bot che non ci interessano, e che anzi possono solo danneggiarci (provocando rallentamenti al sito, consumando risorse, copiando i nostri dati per la concorrenza), ovvero inserire delle istruzioni apposite. Possiamo scoraggiarli inserendo l’istruzione nel file robots.txt del sito (maniera soft) oppure bloccando tali bot direttamente tramite il server (istruzioni nel file .htaccess)

    Di seguito una lista di spider da bloccare già pronta all’uso, solo da copiare ed incollare nel vostro file robots.txt Due note importanti: è una lista molto ampia, che ovviamente esclude i motori di ricerca, ma è bene controllare che non vi siano servizi che invece vi interessano al suo interno, perchè finireste per bloccarli. E secondo, ognuno la usa sotto la propria responsabilità, proprio perchè state decidendo di scoraggiare la raccolta dei dati del vostro sito a questi spider. Se non avete un file robots, andate nel file manager del vostro sito web, create un file robots.txt e copiate questa lista. Se esiste già, dopo le istruzioni già presenti, potete aggiungere questa lista:

    User-agent: 1 2 3 Submit PRO
     disallow: /
    
    User-agent: 200PleaseBot
     disallow: /
    
    User-agent: 2ADAMbot
     disallow: /
    
    User-agent: 2ADAMbot/1.0
     disallow: /
    
    User-agent: 360Spider
     disallow: /
    
    user-agent: Abonti
     disallow: /
    
    user-agent: Abonti/0.92
     disallow: /
    
    user-agent: abot v1.0
     disallow: /
    
    user-agent: aboutthedomain
     disallow: /
    
    user-agent: Add Catalog
     disallow: /
    
    user-agent: Add Catalog/2.1
     disallow: /
    
    user-agent: AdvBot
     disallow: /
    
    user-agent: AdvBot/2.0
     disallow: /
    
    user-agent: AhrefsBot
     disallow: /
    
    user-agent: Ahrefs-Bot
     disallow: /
    
    user-agent: AhrefsBot/1.0
     disallow: /
    
    user-agent: Ahrefs-Bot/1.0
     disallow: /
    
    user-agent: Ahrefs-Bot/2.0
     disallow: /
    
    user-agent: Ahrefs-Bot/3.0
     disallow: /
    
    user-agent: Ahrefs-Bot/4.0
     disallow: /
    
    user-agent: Ahrefs-Bot/5.0
     disallow: /
    
    user-agent: aiHitBot
     disallow: /
    
    user-agent: aiHitBot/2.9
     disallow: /
    
    user-agent: Anonymous/0.0
     disallow: /
    
    user-agent: Arachnida
     disallow: /
    
    user-agent: Associative Spider
     disallow: /
    
    User-agent: Baiduspider
     disallow: /
    
    User-agent: Baidu Spider
     disallow: /
    
    User-agent: Battleztar Bazinga
     disallow: /
    
    User-agent: Battleztar Bazinga/0.01
     disallow: /
    
    User-agent: BDFetch
     disallow: /
    
    User-agent: betaBot
     disallow: /
    
    User-agent: bieshu
     disallow: /
    
    User-agent: Bigli SEO
     disallow: /
    
    User-agent: Blackboard Safeassign
     disallow: /
    
    User-agent: Blazer 1.0
     disallow: /
    
    User-agent: BLEXBot
     disallow: /
    
    User-agent: BLEXBot/1.0
     disallow: /
    
    User-agent: BLP_bbot
     disallow: /
    
    User-agent: BLP_bbot/0.1
     disallow: /
    
    User-agent: BOIA-Accessibility-Agent/PR 1.0
     disallow: /
    
    User-agent: BOT for JCE
     disallow: /
    
    User-agent: BOT/0.1 (BOT for JCE)
     disallow: /
    
    User-agent: BPImageWalker
     disallow: /
    
    User-agent: BPImageWalker/2.0
     disallow: /
    
    User-agent: BUbiNG
     disallow: /
    
    User-agent: BuiBui-Bot
     disallow: /
    
    User-agent: BuiBui-Bot/1.0
     disallow: /
    
    User-agent: ca-crawler
     disallow: /
    
    User-agent: ca-crawler/1.0
     disallow: /
    
    User-agent: CakePHP
     disallow: /
    
    User-agent: Calypso v/0.01
     disallow: /
    
    User-agent: Calypso
     disallow: /
    
    User-agent: CB/Nutch-1.7
     disallow: /
    
    User-agent: CCBot
     disallow: /
    
    User-agent: CCBot/2.0
     disallow: /
    
    User-agent: Checkbot
     disallow: /
    
    User-agent: checkgzipcompression.com
     disallow: /
    
    User-agent: chushou
     disallow: /
    
    User-agent: CloudServerMarketSpider
     disallow: /
    
    User-agent: CloudServerMarketSpider/1.0
     disallow: /
     
    User-agent: Clushbot/3.x-BinaryFury
     disallow: /
    
    User-agent: CMS Crawler
     disallow: /
    
    User-agent: CMS Crawler: http://www.cmscrawler.com
     disallow: /
    
    User-agent: coccoc
     disallow: /
    
    User-agent: CoinCornerBot
     disallow: /
    
    User-agent: CoinCornerBot/1.1
     disallow: /
    
    User-agent: Copyscape
     disallow: /
    
    User-agent: crawler4j
     disallow: /
    
    User-agent: CRAZYWEBCRAWLER 0.9.0
     disallow: /
    
    User-agent: CRAZYWEBCRAWLER 0.9.1
     disallow: /
    
    User-agent: CRAZYWEBCRAWLER 0.9.7
     disallow: /
    
    User-agent: CrazyWebCrawler
     disallow: /
    
    User-agent: CrazyWebCrawler-Spider
     disallow: /
    
    User-agent: Crowsnest
     disallow: /
    
    User-agent: Crowsnest/0.5
     disallow: /
    
    User-agent: Curious George - www.analyticsseo.com/crawler
     disallow: /
    
    User-agent: Curious George
     disallow: /
    
    User-agent: cuwhois
     disallow: /
    
    User-agent: cuwhois/1.0
     disallow: /
    
    User-agent: dahoms
     disallow: /
    
    User-agent: datagnionbot
     disallow: /
    
    User-agent: DeuSu/5.0.2
     disallow: /
    
    User-agent: Digincore
     disallow: /
    
    User-agent: Digincore bot
     disallow: /
    
    User-agent: Dispatch/0.11.0
     disallow: /
    
    User-agent: Domain Re-Animator Bot
     disallow: /
    
    User-agent: DomainAppender /1.0
     disallow: /
    
    User-agent: DomainAppender
     disallow: /
     
     User-agent: DomainCrawler/3.0
     disallow: /
    
    User-agent: DomainSigmaCrawler
     disallow: /
    
    User-agent: DomainSigmaCrawler/0.1
     disallow: /
    
    User-agent: Domnutch
     disallow: /
    
    User-agent: Domnutch-Bot
     disallow: /
    
    User-agent: Domnutch-Bot/Nutch
     disallow: /
    
    User-agent: Domnutch-Bot/Nutch-1.0
     disallow: /
    
    User-agent: dotbot
     disallow: /
    
    User-agent: ECCP/1.2.1
     disallow: /
    
    User-agent: eCommerceBot
     disallow: /
    
    User-agent: enlle punto com/Nutch-1.9
     disallow: /
    
    User-agent: EPiServer Link Checker
     disallow: /
    
    User-agent: EuripBot
     disallow: /
    
    User-agent: EuripBot/2.0
     disallow: /
    
    User-agent: evc/2.0
     disallow: /
    
    User-agent: evc-batch
     disallow: /
    
    User-agent: evc-batch/2.0
     disallow: /
    
    User-agent: Express WebPictures
     disallow: /
    
    User-agent: Faraday v0.8.8
     disallow: /
    
    User-agent: Faraday
     disallow: /
    
    User-agent: Findxbot
     disallow: /
    
    User-agent: Findxbot/1.0
     disallow: /
    
    User-agent: Flamingo_SearchEngine
     disallow: /
    
    User-agent: Flipboard Robot
     disallow: /
    
    User-agent: GetProxi.es-bot
     disallow: /
    
    User-agent: GetProxi.es-bot/1.1
     disallow: /
    
    User-agent: GigablastOpenSource
     disallow: /
    
    User-agent: GigablastOpenSource/1.0
     disallow: /
    
    User-agent: Girafabot
     disallow: /
    
    User-agent: Gluten Free Crawler
     disallow: /
    
    User-agent: Gluten Free Crawler/1.0
     disallow: /
    
    User-agent: GriffinBot
     disallow: /
    
    User-agent: GrifinBot/0.01
     disallow: /
    
    User-agent: GWPImages
     disallow: /
    
    User-agent: GWPImages/1.0
     disallow: /
    
    User-agent: Haiula
     disallow: /
    
    User-agent: Haiula/1.4
     disallow: /
    
    User-agent: HaosouSpider
     disallow: /
    
    User-agent: Hivemind
     disallow: /
    
    User-agent: HostHarvest
     disallow: /
    
    User-agent: HostHarvest/0.4.28
     disallow: /
    
    User-agent: HRCrawler
     disallow: /
    
    User-agent: HRCrawler/2.0
     disallow: /
    
    User-agent: http://git.io/tl_S2w
     disallow: /
    
    User-agent: http://www.checkprivacy.or.kr:6600/RS/PRIVACY_ENFAQ.jsp
     disallow: /
    
    User-agent: HubSpot Links Crawler 1.0
     disallow: /
    
    User-agent: HubSpot Webcrawler
     disallow: /
    
    User-agent: HubSpot
     disallow: /
    
    User-agent: hunchan
     disallow: /
    
    User-agent: HyperCrawl
     disallow: /
    
    User-agent: HyperCrawl/0.2
     disallow: /
    
    User-agent: ICAP-IOD
     disallow: /
    
    User-agent: ICC-Crawler
     disallow: /
    
    User-agent: ICC-Crawler/2.0
     disallow: /
    
    User-agent: Ichiro Robot
     disallow: /
    
    User-agent: image.coccoc/1.0
     disallow: /
    
    User-agent: Image2play
     disallow: /
    
    User-agent: Image2play/0.1
     disallow: /
    
    User-agent: Indy Library
     disallow: /
    
    User-agent: InsightsCollector
     disallow: /
    
    User-agent: InsightsCollector/0.1
     disallow: /
    
    User-agent: InsightsCollector/0.1beta
     disallow: /
    
    User-agent: integrity/5
     disallow: /
    
    User-agent: InterNaetBoten
     disallow: /
    
    User-agent: InterNaetBoten/0.99
     disallow: /
    
    User-agent: IRL Crawler
     disallow: /
    
    User-agent: James BOT - WebCrawler
     disallow: /
    
    User-agent: James BOT
     disallow: /
    
    User-agent: JamesBOT
     disallow: /
    
    User-agent: JetBrains 5.0
     disallow: /
    
    User-agent: JetBrains
     disallow: /
    
    User-agent: Kraken
     disallow: /
    
    User-agent: Kraken/0.1
     disallow: /
    
    User-agent: Kyoto-Tohoku-Crawler/v1
     disallow: /
    
    User-agent: larbin
     disallow: /
    
    User-agent: lechenie
     disallow: /
    
    User-agent: libwww-perl
     disallow: /
    
    User-agent: link checker
     disallow: /
    
    User-agent: Link/1.0
     disallow: /
    
    User-agent: linkCheck
     disallow: /
    
    User-agent: linkCheckV3.0
     disallow: /
    
    User-agent: Linkdex
     disallow: /
    
    User-agent: linkdex.com/v2.0
     disallow: /
    
    User-agent: linkdex.com/v2.1
     disallow: /
    
    User-agent: LinkdexBot
     disallow: /
    
    User-agent: linkdexbot/2.0
     disallow: /
    
    User-agent: linkdexbot/2.1
     disallow: /
    
    User-agent: linkdexbot-mobile/2.1
     disallow: /
    
    User-agent: LinkpadBot
     disallow: /
    
    User-agent: LinkpadBot/1.06
     disallow: /
    
    User-agent: LinqiaScrapeBot
     disallow: /
    
    User-agent: LinqiaScrapeBot/1.0
     disallow: /
    
    User-agent: Lipperhey SEO Service
     disallow: /
    
    User-agent: Lipperhey
     disallow: /
    
    User-agent: Lipperhey-Kaus-Australis
     disallow: /
    
    User-agent: Lipperhey-Kaus-Australis/5.0
     disallow: /
    
    User-agent: listicka
     disallow: /
    
    User-agent: LSSRocketCrawler
     disallow: /
    
    User-agent: LSSRocketCrawler/1.0 LightspeedSystems
     disallow: /
    
    User-agent: LSSRocketCrawler/1.0
     disallow: /
    
    User-agent: ltx71
     disallow: /
    
    User-agent: LWNutch/Nutch-1.4
     disallow: /
    
    User-agent: Mail.RU
     disallow: /
    
    User-agent: Mail.RU_Bot
     disallow: /
    
    User-agent: Mail.RU_Bot/2.0
     disallow: /
    
    User-agent: Mail.RU_Bot/Fast/2.0
     disallow: /
    
    User-agent: md5sum
     disallow: /
    
    User-agent: md5sum\x22
     disallow: /
    
    User-agent: meanpathbot
     disallow: /
    
    User-agent: MegaIndex.ru
     disallow: /
    
    User-agent: MegaIndex.ru/2.0
     disallow: /
    
    User-agent: mezhpozvonochnoi
     disallow: /
    
    User-agent: Mike-Crawler
     disallow: /
    
    User-agent: MixBot
     disallow: /
    
    User-agent: MixrankBot
     disallow: /
    
    User-agent: MJ12bot
     disallow: /
    
    User-agent: Monkeybot/0.1
     disallow: /
    
    User-agent: my crawler
     disallow: /
    
    User-agent: My Nutch Spider/Nutch-1.9
     disallow: /
    
    User-agent: mycrowl/Nutch-1.9
     disallow: /
    
    User-agent: MyGreatUA/2.0
     disallow: /
    
    User-agent: MyIPTest
     disallow: /
    
    User-agent: NameProtect Robot
     disallow: /
    
    User-agent: NerdyBot
     disallow: /
    
    User-agent: Netcraft Spider
     disallow: /
    
    User-agent: netEstate NE Crawler
     disallow: /
    
    User-agent: NetLyzer FastProbe
     disallow: /
    
    User-agent: NetResearchServer
     disallow: /
    
    User-agent: NetResearchServer/4.0
     disallow: /
    
    User-agent: Nmap Scripting Engine
     disallow: /
    
    User-agent: node.io
     disallow: /
    
    User-agent: node.js
     disallow: /
    
    User-agent: Node/simplecrawler 0.5.2
     disallow: /
    
    User-agent: Node/simplecrawler
     disallow: /
    
    User-agent: oBot/2.3.1
     disallow: /
    
    User-agent: omgilibot
     disallow: /
    
    User-agent: omgilibot/0.4
     disallow: /
    
    User-agent: Online Domain Tools - Online Website Link Checker
     disallow: /
    
    User-agent: Online Domain Tools - Online Website Link Checker/1.2
     disallow: /
    
    User-agent: Openfind Robot
     disallow: /
    
    User-agent: OpenHoseBot
     disallow: /
    
    User-agent: OpenHoseBot/2.1
     disallow: /
    
    User-agent: Openstat
     disallow: /
    
    User-agent: Openstat/0.1
     disallow: /
    
    User-agent: OptimizationCrawler
     disallow: /
    
    User-agent: OptimizationCrawler/0.2
     disallow: /
    
    User-agent: Page Analyzer v4.0
     disallow: /
    
    User-agent: Page Analyzer
     disallow: /
    
    User-agent: PageAnalyzer
     disallow: /
    
    User-agent: PageAnalyzer/1.1
     disallow: /
    
    User-agent: PageAnalyzer/1.5
     disallow: /
    
    User-agent: PagesInventory
     disallow: /
    
    User-agent: Pagespeed/1.1 Fetcher
     disallow: /
    
    User-agent: Pagespeed/1.1
     disallow: /
    
    User-agent: Pagespeedbot
     disallow: /
    
    User-agent: Perl LWP
     disallow: /
    
    User-agent: PHPCrawl
     disallow: /
    
    User-agent: phpSiteCheck 1.0
     disallow: /
    
    User-agent: phpSiteCheck
     disallow: /
    
    User-agent: Plukkie
     disallow: /
    
    User-agent: POGS/2.0
     disallow: /
    
    User-agent: Powermarks
     disallow: /
    
    User-agent: PowerPivot
     disallow: /
    
    User-agent: PRIVACY_ENFAQ.jsp
     disallow: /
    
    User-agent: Prlog
     disallow: /
    
    User-agent: Prlog/1.0
     disallow: /
    
    User-agent: publiclibraryarchive.org
     disallow: /
    
    User-agent: publiclibraryarchive.org/1.0
     disallow: /
    
    User-agent: Pu_iN Crawler
     disallow: /
    
    User-agent: Putin
     disallow: /
    
    User-agent: Putin spider
     disallow: /
    
    User-agent: qingdao
     disallow: /
    
    User-agent: QlikView
     disallow: /
    
    User-agent: quipu
     disallow: /
    
    User-agent: quipu/1.0
     disallow: /
    
    User-agent: quipu/2.0
     disallow: /
    
    User-agent: R6_CommentReader
     disallow: /
    
    User-agent: R6_FeedFetcher
     disallow: /
    
    User-agent: Riddler
     disallow: /
    
    User-agent: RivalSeek.com-Bot
     disallow: /
    
    User-agent: rogerbot
     disallow: /
    
    User-agent: rogerbot/1.0
     disallow: /
    
    User-agent: rootlink
     disallow: /
    
    User-agent: RU_Bot/2.0
     disallow: /
    
    User-agent: Scopia
     disallow: /
    
    User-agent: Scopia crawler
     disallow: /
    
    User-agent: Scopia crawler 1.0
     disallow: /
    
    User-agent: Scopia crawler 1.1
     disallow: /
    
    User-agent: Scopia crawler 1.2
     disallow: /
    
    User-agent: Scrapy
     disallow: /
    
    User-agent: Scrapy/0.16.5
     disallow: /
    
    User-agent: Scrapy/0.24.4
     disallow: /
    
    User-agent: Scrapy/0.24.5
     disallow: /
    
    User-agent: Scrapy/0.24.6
     disallow: /
    
    User-agent: Scrapy/1.0.1
     disallow: /
    
    User-agent: Screaming Frog SEO Spider
     disallow: /
    
    User-agent: Screaming Frog SEO Spider/2,55
     disallow: /
    
    User-agent: Screaming Frog SEO Spider/2.55
     disallow: /
    
    User-agent: Screaming Frog SEO Spider/3.1
     disallow: /
    
    User-agent: Screaming Frog SEO Spider/3.3
     disallow: /
    
    User-agent: Screaming Frog SEO Spider/4.1
     disallow: /
    
    User-agent: Screaming Frog SEO Spider/5.0
     disallow: /
    
    User-agent: Screaming Frog SEO Spider/5.1
     disallow: /
    
    User-agent: Screaming Frog SEO Spider/5.1 Beta 2
     disallow: /
    
    User-agent: scrutiny/4
     disallow: /
    
    User-agent: SemrushBot
     disallow: /
    
    User-agent: SemrushBot-SA
     disallow: /
     
    User-agent: SEOdiver/1.0
     disallow: /
    
    User-agent: SEOkicks
     disallow: /
    
    User-agent: SEOkicks-Robot
     disallow: /
    
    User-agent: SEOlyticsCrawler
     disallow: /
    
    User-agent: SEOlyticsCrawler/3.0
     disallow: /
    
    User-agent: seoscanners
     disallow: /
    
    User-agent: seoscanners.net/1
     disallow: /
    
    User-agent: SEOstats 2.1.0
     disallow: /
    
    User-agent: Seosys/Nutch-2.3
     disallow: /
    
    User-agent: SetCronJob/1.0
     disallow: /
    
    User-agent: SeznamBot
     disallow: /
    
    User-agent: SheerBoredom.Experimental.Robot
     disallow: /
    
    User-agent: SheerBoredom.Experimental.Robot/0.2
     disallow: /
    
    User-agent: ShowyouBot
     disallow: /
    
    User-agent: Simplecrawler
     disallow: /
    
    User-agent: SISTRIX Crawler
     disallow: /
    
    User-agent: sistrix
     disallow: /
    
    User-agent: SiteBot
     disallow: /
    
    User-agent: SiteBot/0.1
     disallow: /
    
    User-agent: SiteExplorer
     disallow: /
    
    User-agent: SiteExplorer/1.0
     disallow: /
    
    User-agent: SiteExplorer/1.0b
     disallow: /
    
    User-agent: Siteluxbot
     disallow: /
    
    User-agent: Siteluxbot/1.0
     disallow: /
    
    User-agent: SkimBot
     disallow: /
    
    User-agent: SkimBot/1.0
     disallow: /
    
    User-agent: sky nutch crawler/Nutch-1.9
     disallow: /
    
    User-agent: SMTBot
     disallow: /
    
    User-agent: SMTBot/1.0
     disallow: /
    
    User-agent: SNK Screenshot Bot
     disallow: /
    
    User-agent: SNK Screenshot Bot/0.20
     disallow: /
    
    User-agent: Sogou Spider
     disallow: /
    
    User-agent: Sogou web spider
     disallow: /
    
    User-agent: SpamBayes
     disallow: /
    
    User-agent: SpamBayes/1.1a3+
     disallow: /
    
    User-agent: spbot
     disallow: /
    
    User-agent: spbot/4.4.2
     disallow: /
    
    User-agent: spiderbot
     disallow: /
    
    User-agent: SpiderLing
     disallow: /
    
    User-agent: Spiderbot/Nutch-1.7
     disallow: /
    
    User-agent: spray-can
     disallow: /
    
    User-agent: spray-can/1.2.1
     disallow: /
    
    User-agent: SSG/3.0
     disallow: /
    
    User-agent: Statastico
     disallow: /
    
    User-agent: Statastico/4.0
     disallow: /
    
    User-agent: Steeler
     disallow: /
    
    User-agent: Steeler/3.5
     disallow: /
    
    User-agent: Stratagems Kumo
     disallow: /
    
    User-agent: Stratagems
     disallow: /
    
    User-agent: StudioFACA Search
     disallow: /
    
    User-agent: StudioFACA
     disallow: /
    
    User-agent: sukibot
     disallow: /
    
    User-agent: sukibot_heritrix
     disallow: /
    
    User-agent: sukibot_heritrix/3.1.1
     disallow: /
    
    User-agent: SurveyBot
     disallow: /
    
    User-agent: Synapse
     disallow: /
    
    User-agent: Synthesio Crawler release MonaLisa
     disallow: /
    
    User-Agent: tbot-nutch/Nutch-1.10
     disallow: /
    
    User-Agent: Traackr.com bot
     disallow: /
    
    User-Agent: trendictionbot
     disallow: /
    
    User-Agent: Trendiction-Bot
     disallow: /
    
    User-Agent: TrueBot
     disallow: /
    
    User-Agent: TrueBot/1.0
     disallow: /
    
    User-Agent: TulipChain/5.xx
     disallow: /
    
    User-Agent: TWMBot/0.1
     disallow: /
    
    User-Agent: Typhoeus
     disallow: /
    
    User-Agent: UCMore Crawler App
     disallow: /
    
    User-Agent: uMBot-LN
     disallow: /
    
    User-Agent: uMBot-LN/1.0
     disallow: /
    
    User-Agent: updown_tester
     disallow: /
    
    User-Agent: URLChecker
     disallow: /
    
    User-agent: V1.0/1.2
     disallow: /
    
    User-agent: w3af.org
     disallow: /
    
    User-agent: WASALive
     disallow: /
    
    User-agent: WASALive-Bot
     disallow: /
    
    User-agent: vBSEO
     disallow: /
    
    User-agent: WBSearchBot
     disallow: /
    
    User-agent: WBSearchBot/1.1
     disallow: /
    
    User-agent: WeAreNotEvil
     disallow: /
    
    User-agent: WebAlta
     disallow: /
    
    User-agent: WebAlta Crawler
     disallow: /
    
    User-agent: Web corpus crawler
     disallow: /
    
    User-agent: WebCookies
     disallow: /
    
    User-agent: WebCookies/1.0
     disallow: /
    
    User-agent: WebCopier vx.xa
     disallow: /
    
    User-agent: Webnest 0.9
     disallow: /
    
    User-agent: WebQL
     disallow: /
    
    User-agent: Webscout
     disallow: /
    
    User-agent: Webscout/1.0
     disallow: /
    
    User-agent: Web-sniffer
     disallow: /
    
    User-agent: Web-sniffer/1.1.0
     disallow: /
    
    User-agent: Webster Pro V3.4
     disallow: /
    
    User-agent: WebTarantula.com Crawler
     disallow: /
    
    User-agent: WeCrawlForThePeace
     disallow: /
    
    User-agent: VegeBot
     disallow: /
     
     User-agent: Vegi bot
     disallow: /
    
    User-agent: WeLikeLinks
     disallow: /
    
    User-agent: VeriCiteCrawler
     disallow: /
    
    User-agent: VeriCiteCrawler/Nutch-1.9
     disallow: /
    
    User-agent: WhatWeb
     disallow: /
    
    User-agent: WhatWeb/0.4.8-dev
     disallow: /
    
    User-agent: Visited by http://tools.geek-tools.org
     disallow: /
    
    User-agent: Voila Robot
     disallow: /
    
    User-agent: voltron
     disallow: /
    
    User-agent: woobot
     disallow: /
    
    User-agent: woobot/1.1
     disallow: /
    
    User-agent: woobot/2.0
     disallow: /
    
    User-agent: Vorboss Web Crawler
     disallow: /
    
    User-agent: Vorboss Web Crawler/Nutch-2.3
     disallow: /
    
    User-agent: WorldBrewBot
     disallow: /
    
    User-agent: WorldBrewBot/2.1
     disallow: /
    
    User-agent: worldwebheritage.org
     disallow: /
    
    User-agent: worldwebheritage.org/1.0
     disallow: /
    
    User-agent: wscheck.com
     disallow: /
    
    User-agent: wscheck.com/1.0.0
     disallow: /
    
    User-agent: www.deadlinkchecker.com
     disallow: /
    
    User-agent: www.petitsage.fr site detector 0.4
     disallow: /
    
    User-agent: WWW-Mechanize
     disallow: /
    
    User-agent: WWW-Mechanize/1.74
     disallow: /
    
    User-agent: Xenu Link Sleuth
     disallow: /
    
    User-agent: Xenu's Link Sleuth
     disallow: /
    
    User-agent: XoviBot
     disallow: /
    
    User-agent: XoviBot/2.0
     disallow: /
    
    User-agent: XSpider
     disallow: /
    
    User-agent: Yandex Robot
     disallow: /
    
    User-agent: Yandex
     disallow: /
    
    User-agent: Yetibot
     disallow: /
    
    User-agent: YisouSpider
     disallow: /
    
    User-agent: yoozBot
     disallow: /
    
    User-agent: yoozBot-2.2
     disallow: /
    
    User-agent: zgrab/0.x
     disallow: /
    
    User-agent: zzabmbot
     disallow: /
    
    User-agent: zzabmbot/1.0
     disallow: /

    Nota: è stato bloccato anche Yandex. Se al vostro sito interessa essere presente sul motore di ricerca russo, allora rimuovetelo. Suggerimenti e aggiunte sono ben accetti.

    Sostituire termini e stringhe nel sito con Search And Replace Db Master

    1 Comment

    Programma gratuito che permette di lavorare facilmente nel database mysql del vostro sito, con interfaccia semplice. Perchè utilizzarlo? Devi correggere delle stringhe, degli indirizzi url, delle parole accentate o altri termini in tutto il sito? Se hai spostato il tuo sito wordpress, o hai trovato degli errori che sono presenti in tutto il sito (esempio parole accentate), o devi cambiare degli url (ad esempio per passare da http ad https) uno strumento molto utile e di facile utilizzo è Search Replace DB Master, che ti permette di trovare la stringa che cerchi, localizzarla, modificarla senza dover scrivere codici in php o query in sql. Il programma, gratuito, ha un’interfaccia chiara e il suo funzionamento è molto semplice. Vediamo come si installa, come si utilizza e qualche esempio pratico.

    Download ed Installazione

    dove installare search replace db masterIl programma, creato da Interconnectit.com, è disponibile per il download tramite Github qui. Una volta scaricato il file zippato e decompresso, estrarre tutti i files in una cartella che chiamerete come volete (esempio Search-Replace-Db-Master) ma che suggerisco vivamente di rinominare in un nome conosciuto solo a voi o con una nota che vi ricordi di cancellare tale directory una volta finito il lavoro. Potete ad esempio creare la cartella “CANCELLAMI-QUANDO-FINITO”, per evitare di lasciare questo potente programma accessibile a tutti una volta completate le sostitutizioni che ci interessano. Create quindi la cartella nella root del vostro spazio web, e caricateci tutti i files decompressi. In breve, la root del vostro spazio web dovrebbe essere qualcosa come nello screenshot seguente.

    Utilizzo

    Una volta caricati tutti i files in questa cartella (ad esempio “search-replace-db-master”), digitate la url vostrosito/nomecartella, e vi troverete già nel pannello di controllo dello script. Noterete subito due aspetti: il primo, è che ci siete arrivati senza dover digitare nessun username o password. La seconda, è che mostra già i dati di accesso del vostro database! Ha già “capito” qual è l’username, quale sia la password, la porta di accesso. Per questo motivo la cartella deve avere un nome conosciuto solo a voi, e sempre per questo motivo va cancellata una volta finito.

    schermata search replace db master

    Testiamo lo script effettuando una semplice ricerca di quello che vorremmo modificare, inserendo il termine o la stringa all’interno della casella Search. Lanciamo il comando Dry Run (che ci permette di fare una sorta di simulazione, ovvero non fare sostituzioni). Ad esempio, dal momento che nel sito di prova stiamo passando da http ad https , vorremmo controllare quanto è ancora presente il vecchio url classico http:// (in modo da poter mettere ovunque il nuovo https:// ). Lanciamo la query e il programma, oltre a ricordarci di aver selezionato l’opzione Dry Run “The dry-run option was selected. No replacements will be made.” ovvero nessuna sostituzione verrà eseguita, ci mostrerà quante volte occorre il termine cercato e in quali tabelle si trova:

    comando dry run

    E’ banale ricordare che, essendo uno strumento potente ed irreversibile, bisogna fare un backup prima di lanciare qualsiasi operazione di sostituzione.

    Opzioni e utilità principali del programma

    Search Replace DB Master permette di:

    • limitare o estendere le tabelle sulle quali cercare e/o operare sostituzioni. E’ un’opzione molto importante e molto comoda, perchè potremmo essere interessati solo a correggere, ad esempio, le parole accentate contenuti nei posts, oppure nei commenti, lasciando stare le opzioni principali del sito stesso, su cui operare in modo diverso
    • specificare le colonne (delle tabelle) su cui andare a cercare e/o operare sostituzioni

    Di default il programma opererà su tutto il sito, possiamo andare a limitare il campo andando a selezionare le tabelle e/o indicando i nomi delle colonne:

    tabelle e colonne

    Sostituzione stringhe, parole ed esempi pratici

    Prima di fare qualsiasi sostituzione è bene quindi, dopo aver fatto un backup, lanciare questa sostituzione tramite il comando Dry Run, per simularla.

    Esempio 1: vogliamo cambiare i percorsi delle immagini da assoluti a relativi (in modo da non avere errori se passiamo all’https), ovvero sostituire

    <img src="http://www.nostrosito.it/immagine1.jpg" />

    con

    <img src="//www.nostrosito.it/immagine1.jpg" />

    Nel campo “Search” inseriamo src=”http://www. e nel campo “replace with” inseriamo src=”//www. . Opzionale: ci interessa fare questa sostituzione solo all’interno dei post? Scriviamo “post_content” nel campo columns to include only (optional, comma separated). Lanciamo il dry run per simulare la sostituzione. Una volta terminata, il programma ci mostrerà dove andrebbe ad operare la sostituzione richiesta. Verifichiamo che sia come avevamo pensato, e se tutto ok, ora possiamo lanciare il comando Live Run, che effettuerà veramente le sostituzioni richieste.

    Esempio 2: vogliamo sistemare le parole accentate. Copiamo la stringa mal accentata nel campo Search. Ad esempio, vorrei cambiare tutte le parole che terminano con è con é, come ad esempio la parola perchè in perché (o anche solo questa). Inserisco il termine sbagliato e quello giusto nei due campi ad inizio schermata, clicco su Dry Run per vedere quali sostituzioni farebbe, lancio il comando Live Run per rendere effettive le sostituzioni
    sostituzioni effettuate

    Esempio 3: vogliamo cambiare gli iframe che richiamano siti esterni (esempio: mappe di google, widget di Facebook) che avevamo inserito con codice normale http e che ora devono essere in https. Nel campo Search inseriamo

    <iframe src="http://

    mentre nel campo Replace with inseriamo

    <iframe src="https://

    Lanciamo il comando Dry Run e poi Live Run, e la sostituzione verrà effettuata in tutto il sito (non solo nelle descrizioni dei post)

    Raccomandazioni

    Come avrete intuito, questo è uno strumento molto potente, i cui effetti sono spesso irreversibili, ma abbiamo gli strumenti per lanciare i comandi di sostituzione con sicurezza: fare prima un backup del database, e per ogni sostituzione lanciare prima la simulazione Dry Run che ci permette di capire in anteprima se stiamo lanciando una query sbagliata. E, molto importante per la sicurezza, al termine cancellare la directory contenente il programma. La stessa schermata mette ben in evidenza il bottone Delete me per rendere il sito sicuro una volta terminato il nostro lavoro.
    delete me
    Se avete domande sulle stringhe da sostituire e in generale sugli errori presenti nel vostro sito i commenti sono a disposizione.

    Categories: Hosting, Tutorial & Modifiche Tags: Tag:,

    WordPress, come passare da http a https (e aumentare le visite al sito)

    7 Comments

    Le operazioni necessarie per gestire correttamente il cambio di indirizzo del sito dal vecchio formato http al nuovo protocollo sicuro https

    Nell’articolo precedente abbiamo parlato delle tipologie di certificati SSL, quale scegliere per il nostro sito e come acquistarlo. Noi, grazie al nostro fornitore di hosting, l’abbiamo acquistato tramite il pannello di controllo hosting cPanel. Questa operazione ha due grossi vantaggi: il certificato di cui ha bisogno il nostro sito ha un prezzo molto accessibile, e inoltre il certificato – una volta rilasciato dall’authority competente – viene direttamente installato sul nostro server. Non dobbiamo preoccuparci di nulla, se non della parte post installazione, ovvero fare le opportune modifiche al nostro wordpress per gestire correttamente il cambio da http ad https senza avere errori nel sito e senza perdere posizionamenti sui motori di ricerca. Anzi, il cambio a protocollo sicuro in teoria ci porterà più visite.

    Dopo aver installato il certificato sul server dobbiamo mettere mano alla nostra installazione wordpress per cambiare le impostazioni (url, media) da http a https. In sostanza si tratta di trasformare le pagine vecchie in pagine nuove, e pertanto non dobbiamo lasciare errori nei link interni, nel caricamento delle immagini, oltre che reindirizzare le pagine linkate da siti esterni verso le la nuova struttura url. Può sembrare un lavoraccio, ma in realtà seguendo pochi semplici passaggi possiamo già sistemare il 95% di tutta la struttura (il restante 5% lo scopriremo in seguito grazie a qualche verifica post migrazione).

    1) Cambio della struttura dei permalink

    Semplice ma fondamentale. Fare il login nel pannello di amministrazione wordpress, andare nel menu Impostazioni e poi su Permalink. Si tratta di quella impostazione che si setta una volta nella vita quando installi wordpress e poi ci si mette mano in occasioni straordinarie. Ecco questa è una di quelle. Nella schermata seguente dei aggiungere la s all’http, ovvero cambiare il percorso del sito da http ad https, come nella figura:

    ssl cambio url wordpress

    Salvate. Il sistema ora vi farà fare il logout, e vi reindirizzerà alla nuova pagina di login https://www.vostrosito.com/wp-login.php . Potete rientrare con stessi username e password di sempre.

    2) Reindirizzare da http ad https tutte le url del sito

    Ora dobbiamo impostare il redirect di tutti gli indirizzi da http ad https, in modo che ogni link/richiesta ad una vecchia pagina tipo http://www.miosito.net/articolo-numero-1/ venga automaticamente indirizzata alla nuova https://www.miosito.net/articolo-numero-1/ . Per fare questo, dobbiamo inserire queste poche righe di codice nel file .htaccess . Quindi, tramite un programma FTP oppure tramite il gestore file del nostro pannello hosting, andiamo ad editare il file .htaccess che si trova nella directory principale dell’installazione wordpress (in genere in /home/vostroaccount/public_html/ ). Ecco le righe da inserire all’inizio:

    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{SERVER_PORT} 80 
    RewriteRule ^(.*)$ https://www.tuttoblog.com/$1 [R,L]
    </IfModule>

    Dove ovviamente al posto di tuttoblog.com metterete l’indirizzo del vostro sito. Dopo aver inserito il codice e aver salvato il file, ogni vostro indirizzo url verrà automaticamente reindirizzato, in maniera permanente, alla nuova versione https. Come ad esempio la vecchia pagina in esempio

    indirizzo http non sicuro

    ricaricando la pagina (tasto F5), verrà automaticamente reindirizzata alla versione https, e comparirà il lucchetto che sancisce la sicurezza del sito

    indirizzo https sicuro, con lucchetto

    Cliccando sul lucchetto, è possibile avere informazioni aggiuntive, ovvero la dicitura “sito sicuro” e ulteriori informazioni sul certificato e da chi è stata emessa la certificazione:

    info sul certificato del sito

    Finito? Diciamo che oltre il 75% del lavoro è già fatto. Se il sito è recente, o comunque è stato realizzato in maniera corretta, allora siamo vicini al 100%. Cosa può essere sfuggito? Immagini e iframe possono causare errore di sicurezza ed impedire al sito di essere sicuro al 100%. Ad esempio il caricamento di immagini interne che abbiamo inserito utilizzando un percorso assoluto. Se la nostra pagina di esempio è ora con indirizzo https://www.nostrosito.it/pagina1/ , e al suo interno un’immagine è stata inserita con percorso tipo

    <img src="http://www.nostrosito.it/immagine1.jpg" />

    allora dovremmo modificare anche questa aggiungendo la s all’http. Ma come facciamo se abbiamo molte immagini da sistemare? Un aiuto ci viene utilizzando in modo corretto il phpmyadmin che gestisce il database: con queste poche istruzioni possiamo cambiare tutti i percorsi di tutte le immagini incluse nei nostri post e nelle nostre pagine. In sostanza, dobbiamo dire alla macchina che ogni volta che (nel database) trova il tag immagine
    src=”http:// lo deve sostituire con il codice src=”// , ovvero il percorso relativo. L’ideale, è avere le immagini richiamate in questo modo:

    <img src="//example.com/image.jpg" alt="nome immagine">

    In questo modo, le immagini che nel nostro wordpress sono inserite con il percorso relativo, sarà il nostro wordpress ad attribuirgli il giusto https davanti. Attenzione: questa istruzione, inserita nello spazio istruzioni sql del nostro phpmyadmin, è irreversibile. Pertanto è opportuno fare un backup del database. Per passare anche le immagini in https andare nel pannello hosting fornito dal vostro provider, aprire il phpmyadmin. Una volta aperto, selezionate il database del vostro wordpress (generalmente trovate solo un database). Nella schermata che si apre, cliccare sul tab “SQL” in alto:

    phpmyadmin tab sql

    Qui possiamo inserire questa istruzione che sostituisce il percorso immagine all’interno del contenuto di post e pagine.

    UPDATE wp_posts 
    SET    post_content = ( Replace (post_content, 'src="http://', 'src="//') )
    WHERE  Instr(post_content, 'jpeg') > 0 
            OR Instr(post_content, 'jpg') > 0 
            OR Instr(post_content, 'gif') > 0 
            OR Instr(post_content, 'png') > 0;

    La ripetiamo nel caso siano state inserite con l’apostrofo ‘ anzichè con le doppie virgolette ” (thanks to css-tricks.com)

    UPDATE wp_posts 
    SET   post_content = ( Replace (post_content, "src='http://", "src='//") )
    WHERE  Instr(post_content, 'jpeg') > 0 
            OR Instr(post_content, 'jpg') > 0 
            OR Instr(post_content, 'gif') > 0 
            OR Instr(post_content, 'png') > 0;

    Secondo lo stesso criterio, aggiusteremo non solo il percorso delle immagini, ma anche quello degli iframes (come ad esempio un video di youtube o un widget con una mappa). Anche questi tag non devono più comparire nella forma

    <iframe src="http://

    bensì nella forma

    <iframe src="https://

    Con il codice seguente, lo sistemiamo all’interno dei postmeta:

    UPDATE wp_postmeta 
    SET meta_value=(REPLACE (meta_value, 'iframe src="http://','iframe src="//'));

    Dopo aver lanciato le query sql appena menzionate, il vostro phpmyadmin vi indicherà l’esito e quante sostituzioni ha effettuato:
    sql query completata

    3) Operazioni aggiuntive e opzionali

    Per rendere più sicuro il pannello di amministrazione, possiamo forzare l’utilizzo del protocollo https anche per tutte le pagine di gestione del sito. E’ sufficiente andare ad editare il file wp-config.php che si trova sempre nella directory principale, andando ad aggiungere il seguente codice:

    define('FORCE_SSL_ADMIN', true);

    Devi informare Google del cambio di dominio da http ad https? Se utilizzi Google Webmaster Tools la risposta è sì. Attenzione: con il redirect 301 che abbiamo inserito (vedi sopra), ogni volta che un motore di ricerca visita il nostro sito viene automaticamente informato che gli url sono cambiati e quali sono quelli nuovi. Un po’ di tempo e il cambio viene digerito. Ma se usi il GWT, allora come indicato da Google qui, è bene inserire la nuova proprietà (dominio con https) e segnalare il cambio nella vecchia proprietà.

    Ora non ti resta che navigare nel tuo sito (se hai un sistema di cache svuota tutto), e verificare che le immagini si carichino correttamente (non dovrebbero esserci problemi) e che sopratutto l’icona del certificato sia ok (se il sito ancora carica immagini non https allora ti comparirà errore). Come è andato il passaggio verso il sito più sicuro?

    Categories: Tutorial & Modifiche Tags: Tag:, ,

    Come scegliere un certificato SSL e rendere sicuro il sito passando al protocollo HTTPS

    1 Comment

    Ovvero come rendere il sito attendibile e mostrare agli utenti l’icona verde nella barra del browser che attesti la sicurezza del sito anzichè il messaggio “sito non sicuro” che li allontanerebbe. Una guida semplice e veloce per capire cosa sia un certificato SSL, perché server per il tuo sito e come sceglierlo.

    I certificati SSL portano il sito internet e le transazioni online ad un livello di sicurezza avanzato in quanto permettono di criptare e quindi proteggere tutti i dati sensibili raccolti. L’utilizzo di certificati SSL e del protocollo HTTPS è de facto diventato uno standard per tutti i siti web autorevoli e che hanno necessità di garantire la sicurezza dei loro utenti. Questo standard non è più solo un requisito degli e-commerce e dei siti in generale in cui l’utente lascia una carta di credito o altri dati sensibili (come servizi di posta elettronica, ecc.), ma anche per i siti wordpress che hanno un sistema di commenti e di registrazione utente. Da giugno 2016 infatti Google ha avvisato che marcherà come “non sicuri” tutti i siti che non adottano il protocollo HTTPS. Anche questo sito, che “semplicemente” permette agli utenti di chiedere aiuto per il proprio sito e di ricevere notifica quando un esperto risponde alla domanda. No carte di credito, no particolari dati sensibili (non viene chiesta data di nascita, codice fiscale, ecc. ma solo email per essere avvisati della risposta), ma anche solo la password è considerata un dato sensibile. E infatti dal Google Webmaster Tool è arrivato l’avviso:

    avviso Google siti non sicuri Ecco la trascrizione, dove in sostanza ci spiega il problema e come risolverlo:

    A partire da gennaio 2017, Chrome (versione 56 e versioni successive) contrassegnerà come “Non sicure” le pagine che raccolgono password o dati di carte di credito, a meno che le pagine vengano pubblicate tramite HTTPS. Gli URL che seguono includono campi per l’inserimento di password e dati di carte di credito che attiveranno il nuovo avviso di Chrome. Esamina questi esempi per sapere dove verranno visualizzati questi avvisi e poter così adottare misure per proteggere i dati degli utenti. L’elenco non è completo.

    Il nuovo avviso rappresenta solo la prima fase di un piano a lungo termine per contrassegnare come “Non sicure” tutte le pagine pubblicate tramite il protocollo HTTP non criptato.
    Ecco come risolvere il problema:
    Usa le pagine HTTPS per raccogliere dati sensibili
    Per evitare che venga visualizzata la notifica “Non sicura” quando gli utenti di Chrome visitano il tuo sito, sposta i campi per l’inserimento di password e carte di credito in pagine pubblicate usando il protocollo HTTPS.

    Se hai quindi un sito web dove vengono raccolti dati sensibili, dal pagamento con carta di credito al “semplice” account per commentare dotato di password, allora devi pianificare il passaggio al protocollo https. Ecco i passaggi da seguire

    Scelta del tipo di certificato SSL adatto al nostro sito

    Esistono varie possibilità (e range di costo). La scelta va fatta in base all’utilizzo del sito. Esistono anche certificati gratuiti, che possono andare benissimo per siti semplici, ma che si rivelano insufficienti per altre tipologie di siti (con e-commerce, oppure booking online, ecc.). Di seguito una tabella riepilogativa semplificata dei tipi di certificati disponibili:

    Tipo di Certificato Descrizione Esempio
    Standard SSL Rende sicuro un Fully Qualified Domain Name (FQDN)
    • www.tuttoblog.com
    Wildcard SSL Estensione del precedente che permette di rendere sicuri tutti i sottodomini del dominio: *.yourdomain.com
    • www.tuttoblog.com
    • blog.yourdomain.com
    • qualsiasicosa.tuosito.net
    Organization SSL Rende sciuro un Fully Qualified Domain Name (FQDN), ma contiene i dettagli della tua azienda/organizzazione (indirizzo, ecc.), anch’essi autenticati. Certifica dominio + organizzazione. Può essere combinata con Wildcard ssl e il seguente Unified Communication (SAN) SSL.
    • www.tuttoblog.com
    • blog.yourdomain.com
    • qualsiasicosa.tuosito.net
    • sub.sub.sito.it
    • 212.100.100.1
    • 10.10.10.1
    Unified Communication SSL oppure Multi-Domain SSL Certificates (SANs – Subject Alternative Names) Rende sicuro fino a 11 domini/sottodomini/server names o indirizzi IP interni con un unico certificato SSL. Si tratta di addon (aggiunte) per le tipologie descritte sopra.
    • www.tuttoblog.com
    • blog.yourdomain.com
    • qualsiasicosa.tuosito.net
    • sub.sub.sito.it
    • 212.100.100.1
    • 10.10.10.1
    • server1

    Come si può intuire, per le aziende è necessaria la consulenza di un professionista.

    Quale certificato SSL ha bisogno il mio sito?

    In generale, valgono i criteri seguenti:

    • DV – Domain Validation: ogni sito wordpress che utilizza un form (commenti, login) che trasmette dati
    • EV – Extended Validation: E-Commerce e aziende che devono mostrare di essere trustworthy, ovvero fidate
    • UC – Unified Communications: email servers (esempi: gmail, libero), nonchè aziende che utilizzano Microsoft Exchange
    • SUN – Subject Alternative Name:  più domini, anche non collegati tra di loro, e non necessariamente sottodomini
    • Wildcard: wordpress multisite networks, con sottodomini
    • OV – Organization Validation : organizzazioni che devono apparire fidate

    In questa guida ci concentriamo sul certificato DV (Domain Validation), che viene emesso velocemente una volta che viene verificato/legittimato il dominio. Si differenzia dal certicato EV (Extended Validation), che offre un livello maggiore di sicurezza (non viene solo verificato il dominio ma anche l’organizzazione che vi sta dietro) e mostra ai visitatori la barra verde nel browser durante la navigazione.

    Come acquistare un certificato

    Molti siti di hosting, anche per rendere appetibile la propria offerta, hanno iniziato ad includere gratuitamente certificati SSL nei lori piani hosting. E’ certo una comodità, anche dovuta al fatto che offrono guide dedicate interne. Ma è doveroso fare una premessa: ha senso risparmiare qualche euro per il certificato scegliendo l’hosting in base solo a questa offerta, dimenticando tutte le altre prerogative che l’hosting deve avere (velocità, stabilità, assistenza)?. Tanto più, che alcuni di questi certificati offerti dall’hoster sono sì inclusi, ma gratuiti se ve li andate ad acquisire da soli (o magari tramite il vostro servizio di hosting attuale). Mi spiego: ci sono hosting (anche validi, per carità) che al momento offrono Let’s Encrypt. Si tratta di una Certificate Authority no profit, che fa parte di un progetto Open Source rivolto alla diffusione del protocollo https, e che per questo rilascia certificati web gratuiti, riconosciuti da gran parte dei browser. Utilizzare il certificato ssl gratuito offerto da Let’s Encrypt può essere la soluzione ideale per il nostro sito web. Cambiare hosting per avere questa cosa inclusa nell’hosting, che è già gratuita di per sè, non è proprio una mossa ben ragionata. I vantaggi di Lets’ Encrypt sono che si possono attivare quanti certificati gratuiti si vuole, i rinnovi sono automatici e gratuiti, l’emissione è praticamente istantanea, e funzionano con la maggior parte dei browsers e dei dispositivi. Viceversa, sono disponibili solo certificati di tipo DV, SAN e UC. Inoltre non esiste garanzia e non vi sono servizi aggiuntivi.

    A parte i certificati gratuiti, che possono andare bene per alcune tipologie di sito, ma sono insufficienti per altre (vedi ecommerce), esistono moltissime organizzazioni abilitate al rilascio di certificati, ed ognuna con prezzi diversi e servizi aggiuntivi diversi. Vi invito a dare un’occhiata ad alcuni dei più famosi per rendervi conto della varietà di servizi offerta, come ad esempio SSL.com, oppure i più costosi Comodo, Symantec, Digicert (con cifre a partire da due zeri a salire…). Noi, attraverso il pannello di cPanel offerto dal nostro fornitore di hosting, abbiamo optato per la seguente soluzione, con ottimo rapporto qualità/prezzo in base alle esigenze del sito specifico. Ecco i vari passaggi dell’acquisto del certificato tramite il pannello hosting

    Acquisto ed installazione certificato (tramite cPanel)

    Una volta che il nostro fornitore di hosting ha abilitato questa funzione nel pannello cPanel (ripeto, solo alcuni la forniscono, è bene chiedere tramite l’assistenza), ci troveremo nella seguente schermata, che ci riepiloga cosa stiamo facendo:

    Che cos’è un certificato SSL e perché è consigliabile averne uno?
    Un certificato SSL consente ai visitatori di comunicare con i siti Web dell’utente su connessioni protette, ad esempio per inviare informazioni sui pagamenti con carta di credito.
    Scopo di questa interfaccia
    Utilizzare questa interfaccia per acquistare e installare i certificati SSL per l’account. Più nomi di dominio possono fare riferimento allo steso sito Web. Ad esempio, i domini configurati nell’interfaccia cPanel’s “Alias” faranno riferimento al sito Web principale dell’account. Si consiglia di assegnare a ciascun sito Web con protezione SSL un certificato che protegga tutti i domini del sito Web.

    acquisto certificato SSL cPanel

    Ora dobbiamo selezionare cosa vogliamo includere nel protocollo https: il dominio? qualche sottodominio? tutti i sottodomini? il server di posta? Nel nostro caso – un sito wordpress con form commenti/login – ci basta il dominio, con certificato DV. Selezioniamo e proseguiamo, e nella schermata successiva troviamo anche i prezzi. Come vedete sono più che interessanti: notare che esiste la possibilità di farsi autenticare dall’organizzazione Comodo citata qualche riga sopra come tra le più costose (provate a visitare il sito), mentre qui i prezzi (in partnership con cPanel e grazie al fornitore di hosting) sono molto più bassi e convenienti. In sostanza, possiamo avere il certificato DV per il dominio a prezzi dai 9 ai 12 dollari; wildcard (tutti i sottodomini) a prezzi dai 75 ai 99 dollari. Anche il certificato EV (adatto per e-commerce) è acquistabile per prezzi che vanno dai 60usd ai 108usd (Comodo).

    prezzi certificati SSL cPanel

    Una volta completato l’acquisto, bisogna attendere che l’organizzazione effettui le opportune verifichi e ci rilasci/invii il certificato digitale. Il seguito su come installare il certificato e migrare correttamente wordpress ta http ad https lo trovate qui

    Categories: Hosting, Tutorial & Modifiche Tags: Tag:, ,

    Come rendere anonime le statistiche di Google Analytics

    No Comments

    Come mettersi in regola con la legge sui cookie trasformando i cookies di Analytics da cookie di profilazione a cookie tecnici

    Google Analytics permette di monitorare il traffico del tuo sito in maniera gratuita ed offrendoti molteplici parametri e filtri per comprendere come arrivano i visitatori del tuo sito, quali pagine visitano maggiormente, da quali paesi arrivano, con quali parole chiave hanno trovato il tuo sito, ecc. Per attivare le statistiche, basta inserire il codice che ci fornisce Google Analytics una volta registrato l’account ed attivato un account relativo al sito web che vogliamo monitorare. Ma questa raccolta di dati cade nella sfera della protezione della privacy, e dobbiamo pertanto avvisare l’utente che il sito che sta visitando raccoglie dati attraverso Google Analytics. E’ fondamentale, senza avvisare l’utente si rischiano multe salate da parte del garante della privacy. La versione “completa” del codice di raccolta dati implica la previa accettazione da parte dell’utente: in sostanza, dovreste mettere un avviso che -solo se accettato – permette al sito di caricare il codice. Una semplice soluzione può essere quella di anonimizzare le statistiche, oltre che deselezionare l’opzione per il remarketing (ovvero consentire a Google di utilizzare tali statistiche ai fini di ri-elaborazione per proporre pubblicità più in linea con i “gusti” dell’utente). Le statistiche implicano utilizzo di cookies, e il garante considera tali cookies come di profilazione, e pertanto serve accettazione preventiva dall’utente. Ma se rendiamo “anonime” queste statistiche, pare che non siano più di profilazione (in quanto anonime), e pertanto vanno sì “dichiarate” ma non necessariamente in maniera preventiva. In pratica, un IP dell’utente del tipo 12.34.567.890 diventerà 12.34.567.XXX. Quindi, la soluzione ideale minima è anonimizzare.
    Come fare?
    La soluzione pratica è aggiungere una riga di codice che le rende anonime, oppure installare un plugin che permette di selezionare l’opzione per “anonimizzare”.

    Modificare il codice Google Analytics

    Quando attivate il vostro contatore attraverso il pannello di Google Analytics, il codice che vi viene fornito è come il seguente:

    <script>
      (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
      (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
      m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
      })(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
     
      ga('create', 'UA-12345678-1', 'auto');
      ga('send', 'pageview');
     
    </script>

    Dove il codice UA-…. è quanto identifica il vostro sito. Ora, prima di inserirlo in tutte le pagine del vostro sito (ad esempio mettendolo nel footer o nell’header) per anonimizzare dovete aggiungere il codice seguente:

    ga('set', 'anonymizeIp', true);

    e il codice finale sarà come il seguente:

    <script>
      (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
      (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
      m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
      })(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
     
      ga('create', 'UA-12345678-1', 'auto');
      ga('set', 'anonymizeIp', true);
      ga('send', 'pageview');
     
    </script>

    Questa è una regola generale, che vale per tutti i siti (non solo quelli basati su WordPress). Un’alternativa è utilizzare un plugin apposito.

    Plugin per statistiche Google Analytics con opzione per anonimizzarle

    Tutti permetteno di inserire automaticamente il codice in tutte le pagine del sito, e di monitorarle attraverso il pannello di controllo fornito da http://analytics.google.com . Alcune hanno caratteristiche aggiuntive o semplicemente di più immediata visione:

    Google Analyticator: supporta anche il tracciamento dei link in uscita, dei download, monitoraggi avanzati, supporta il monitoraggio asincrono (maggior velocità di caricamento del tuo sito), e di aggiungere nella dashboard un widget per visualizzare il grafico degli ultimi 30 giorni, con le statistiche più importanti. Ha ovviamente la possibilità di renderle anonime.
    Google Analyticator

    Google Analytics by Yoast. Dato che molti siti utilizzano il plugin di Yoast per l’ottimizzazione SEO del sito (titoli, struttura link, ecc.), allora questa è la soluzione ideale per non aggiungere plugin aggiuntivi, in quanto basterà semplicemente selezionare l’opzione che permette di rendere anonime le statistiche. Ora è diventato Google Analytics by MonsterInsights, anche se le recensioni non sono proprio tutte positive.

    E tu, quale soluzione hai adottato?

    Categories: Tutorial & Modifiche Tags: Tag:,

    Come reindirizzare le pagine inesistenti (errore 404) verso la home o verso pagina specifica

    2 Comments

    Premessa: cos’è il codice di errore 404? E’ il classico errore che compare quando l’url che digitiamo/clicchiamo restituisce una pagina inesistente. E’ raro trovare un sito che non ne abbia, come dichiarato dallo stesso supporto di Google. Quali sono le cause? Principalmente, l’errore 404 interno al sito è dovuto a fattori interni, come un cambio di struttura dei permalink, oppure all’aver linkato in modo erroneo una pagina interna, oppure aver utilizzato un plugin che poi abbiamo disabilitato e non abbiamo avuto modo di “ripristinare lo scenario precedente”, oppure abbiamo linkato un’immagine che poi abbiamo cancellato. Nella vita e nell’evoluzione di un sito wordpress tutto cambia, e non sempre ci ricordiamo che cambiare qualcosa oggi si può ripercuotere su un post di mesi o anni fa. Oppure a causa di fattori esterni: un altro sito/blog ha linkato la nostra pagina scrivendola in modo errato o impreciso. Qual è la soluzione ideale? Ovviamente quella di mettere a posto tutti gli errori di permalink, ma può essere un lavoraccio. Ci può aiutare un plugin specifico in questo senso, che ci permetta di trovare e segnalarci gli errori 404 del sito, in modo da andare a controllarli a mano a mano che li riceviamo e correggere il link. Un plugin che ci aiuta in questo è Useful 404, che ci segnala via email ogni volta che l’utente arriva su un link sbagliato, indicandoci qual è l’url errato.

    E se non abbiamo tempo (o voglia, o necessità) di andare a sistemare ogni singolo errore 404? Esiste una soluzione pratica e veloce: reindirizzare i link errati alla home page. In sostanza, se l’utente arriva su una pagina non più esistente, viene immediatamente reindirizzato alla home page del sito, da cui potrà ripartire. E’ una possibilità per non perdere il visitatore e offrirgli quanto stava cercando. Da qui l’importanza di avere una barra di ricerca che lo aiuti in questo senso. Per reindirizzare le pagine inesistenti verso la home page possiamo aggiungere poche semplici righe di codice alla pagina 404.php del tema che utilizzate; in alternativa si può installare un plugin apposito.

    Soluzione A – Modificando il file 404.php del vostro tema

    1. entrate nel vostro pannello hosting e andate nella sezione Gestione File  oppure File Manager. Andate nella directory wp-content –> themes
    2. localizzate il file 404.php. Selezionatelo e cliccate su Modifica File o Editor (ogni pannello hosting ha la sua voce diversa).
    3. Nel file che si apre, aggiungete il seguente codice:
      <?php 
      header("HTTP/1.1 301 Moved Permanently"); 
      header("Location: ".get_bloginfo('url')); 
      exit(); 
      ?>

    Soluzione B – Installando un plugin gratuito che gestisca il redirect

    (soluzione che offre più possibilità)

    Esistono diversi plugin che possono gestire le pagine di errore del vostro sito wordpress, alcuni di base, alcuni molto completi. La scelta dipende dalle vostre esigenze, in primis se il vostro sito ha poche pagine o molte pagine. Ecco una veloce panoramica:

    • All 404 Redirect to Homepage: è una soluzione veloce e semplice per ridurre il numero di errori 404 dal Google Webmaster Tools. Considerando che il numero di questi errori inficia il tuo ranking su Google, installare questo plugin può essere una facile soluzione per “pulire” il sito dagli errori. Ogni pagina 404 viene reindirizzata in modo permanente (codice 301) alla home page, dando ai motori di ricerca l’istruzione che questo reindirizzamento è permanente, definitivo. Una volta installato, basta impostare verso quale pagina reindirizzare tutti gli errori 404, come si evince dalla figura. Possiamo quindi anche scegliere una pagina diversa dalla home page (suggerisco in questo caso di creare una pagina ad hoc, con un messaggio di benvenuto ed una evidente casella di ricerca per aiutare il navigatore)
    • 404 to 301 redirect404 to 301 redirect. Questo è un plugin più completo del precedente. Oltre a fare il suo lavoro di reindirizzare le pagine con errore 404 verso la pagina specificata, ci permette qualcosa in più, come ad esempio: selezionare il tipo di redirect: non solo 301 (permanente) ma anche 302 (reindirizzamento temporaneo) o 307; monitorare tutti gli errori (log) in modo da farci capire quali siano le pagine errate e le richieste verso pagine errate; avere notifica via email di questi errori; configurare quante notifiche ricevere; specificare pagine di reindirizzamento diverse a seconda del percorso 404. Ad esempio possiamo impostare che tutti gli errori del tipo tuosito/asdfasdfas vengano reindirizzati alla home page, e gli errori del tipo tuosito.it/contatti/asdfasdfasdf vengano reindirizzati alla pagina tuosito.it/conatti/ (ottimo!)
    • 404 redirected404 Redirected: altro utile plugin, come i precedenti, con queste caratteristiche specifiche: lista nel pannello di controllo di tutti gli url 404 trovati ; redirect di tutti questi errori verso pagina specificata; tentativo di reindirizzamento automatico in base alle pagine più visitate e lista di suggerimenti per l’utente; suggerimenti di tags, categorie; elenco dei logs di errore; rimozione dei redirect una volta che non vengono più utilizzati; statistiche.

    Se utilizzerai una di queste soluzioni, nell’arco di qualche settimana dovresti vedere un miglioramento sia nel numero di errori mostrato dal Google Webmaster Tool, sia nel rank e nella qualità delle visite del tuo sito.

    Categories: Tutorial & Modifiche Tags: Tag:, ,