Visualizzazione post con etichetta magento SEO. Mostra tutti i post
Visualizzazione post con etichetta magento SEO. Mostra tutti i post

domenica 4 gennaio 2015

Magento mettere offline un sito web proteggendo la SEO

Come mettere off-line un sito realizzato con Magento?

Dovete aggiornare il Vs. sito web Magento e avete la necessità di metterlo off-line per qualche tempo finchè lo modificate?


Una prima soluzione potrebbe essere “spegnerlo” e mettere una pagina di sito in costruzione, scaricare il sito in locale e poi rimetterlo on-line quando le modifiche sono state effettuate. In questo caso però, oltre agli ordini inevitabilmente persi, potrebbero esserci degli altri effetti collaterali, primo fra tutti la SEO del sito.


Google & colleghi, infatti, non trovando più le pagine del sito (se ricevono un errore 404) potrebbero decidere di penalizzarle e perderebbero quindi qualche posizione nelle SERP.

Utilizzare un errore 503

La soluzione può essere quindi di creare una pagina con errore 503 con questo codice:


<?php
header('HTTP/1.1 503 Service Temporarily Unavailable');
header('Status: 503 Service Temporarily Unavailable');
header('Retry-After: 300);
?>


in questo modo gli header inviati agli spider dei motori riceverebbero il messaggio di errore 503 e di ritornare dopo 300 secondi (generate questo valore dinamicamente in modo da stabilire un tempo di rimessa on-line del sito accettabile).

Utilizzare la pagina errore 503 di Magento

In Magento 1.4 e successivi è stata introdotta una gestione nativa degli errori 503 in modo da poter mettere il sito in mantainance mode.


Si tratta di una funzione molto utile perchè mantiene attivi tutti gli url del sito restituendo un erorre 503.


Per attivare la pagina è sufficiente inserire un file maintainance.flag nella root del sito web, non è importante il contenuto del file, basta che esista.

Personalizzare l’aspetto della pagina 503 di Magento

La pagina di errore 503 viene impostata in base ad un file specifico che si chiama 503.phtml e si trova nella cartella /errors/default (qui troverete anche i file e gli stili della pagina).


Potete quindi mostrare la grafica più adatta al design del vostro sito web e tutte le customizzazioni utili per ottenere una adeguata personalizzazione dei contenuti della Vostra pagina di errore 503 su Magento.


Gestione avanzata della pagina 503 e accesso per l’amministratore (o altri utenti specifici)

Mentre in sito è in mantenimento alcuni utenti potrebbero avere la necessità di accedere comunque (testers e sviluppatori).


Per fare questo è possibile utilizzare questo codice:


//definisco  un array di ip autorizzati
$ip = $_SERVER['REMOTE_ADDR'];
$allowed = array('127.0.0.1','89.23.233.10'); // these are the IP's that are allowed to view the site.


poi cambiare la linea del codice


if ( file_exists($maintenanceFile) ) {


in


if (file_exists($maintenanceFile) && !in_array($ip, $allowed)) {


in questo modo se il file maintainance.flag viene trovato e l’ip dell’utente non è compreso nella lista $allowed il sito va in mainanance mode, restituisce quindi un errore 503.


SEO blackhat


Potreste rendere l’accesso libero ai motori di ricerca mentre il sito è in maintainance mode, in questo modo non esisterebbe neanche la necessità di gestire un errore 503 - agli utenti non interessa gran che se è un 404 o un 503, in genere guardano solo il contenuto della pagina :-)


Si tratta però di una tecnica rischiosa perchè se i motori di ricerca si accorgono dell’utilizzo di tecniche di Cloaking possono decidere di bannare il dominio con danni notevolmente maggiori rispetto ai vantaggi ottenibili.


Cambiare la pagina di errore 503


La formattazione della pagina 503 standard di Magento potrebbe non essere coerente con il design del Vostro sito web, quindi potrebbe servire una customizzazione più radicale.


Per ottenere questo si può modificare la seguente riga della pagina index.php di Magento:


include_once dirname(__FILE__) . '/errors/503.php';


in


include_once dirname(__FILE__) . '/503/index.php';

quindi potete inserire nel codice della pagina index.php (contenuta in una cartella 503 che si trova sulla root) il codice che preferite.

domenica 31 agosto 2014

Magento - rimozione della cartella per il negozio predefinito (pubblicazione di tutte le url sulla root)

Magento - Pubblicazione degli url sulla root per il negozio predefinito

Per varie ragioni principalmente legate alla SEO può essere necessario (o comunque preferibile) mettere tutti gli indirizzi del negozio predefinito sulla root del sito web anzichè su una sottocartella (tipicamente /it/ per i siti italiani).

Questo significa far gestire a Magento gli url senza aggiungere il codice negozio per avere gli url sulla root e poi forzarne il caricamento su sottocartelle create appositamente per i restanti codici negozio.

Disabilitiamo su Magento l'aggiunta del Codice del Negozio agli URLs

Innanzitutto disabilitiamo quindi l'aggiunta del codice negozio agli Url:



A questo punto tutti gli url saranno sulla root.

Creazione della cartella con il codice negozio per il negozio NON predefinito

Ora creiamo una cartella per ogni negozio NON PREDEFINITO, utilizzeremo il codice negozio per nominare la cartella. In ciascuna di queste cartelle copieremo i seguenti file dalla root di Magento:

* .htaccess
* index.php



In seguito vedremo quali modifiche vanno effettuate ai due file.

Impostazione dell'url per ogni negozio

Ora per ogni negozio dovremo specificare manualmente l'indirizzo del sito web.



Le differenze rispetto alle normali configurazioni è che:

* per URL di base inseriamo http://www.ilmiositoweb.it/en/ che è il percorso effettivo del sito web;
* per Skin URL di base andiamo ad inserire al posto della solita variabile {{unsecure_base_url}} l'indirizzo del sito web http://www.ilmiositoweb.it/skin. Lo stesso discorso vale per i campi Media URL di base e JavaScript URL di base;

Questo perchè ogni store deve utilizzare come root la cartella fisica corrispondente al codice negozio, ma deve prendere dalla root principale del sito  i CSS, le immagini e i JavaScript.

La stessa procedura vale per gli indirizzi sicuri, se utilizzate una sessione HTTPS.

MODIFICA DEL FILE index.php

Ora che abbiamo modificato detto a Magento di usare come root per ogni store NON PREDEFINITO le cartelle fisiche nominate come i codici negozio, dobbiamo modificare file .htaccess e index.php per far funzionare l'entry point principale del software.



a questo punto dobbiamo modificare l'entry point di Magento, il file index.php contenuto nella cartella /en/ appena creata, non quello sulla root.

Andiamo alla fine del file, qui troveremo il seguente codice:

/* Store or website code */
$mageRunCode = isset($_SERVER['MAGE_RUN_CODE']) ? $_SERVER['MAGE_RUN_CODE'] : '';
/* Run store or run website */
$mageRunType = isset($_SERVER['MAGE_RUN_TYPE']) ? $_SERVER['MAGE_RUN_TYPE'] : 'store';
Mage::run($mageRunCode, $mageRunType);

inseriremo quindi le seguenti variabili prima dell'ultima riga:
$mageRunCode="en";
$mageRunType="store";
Mage::run($mageRunCode, $mageRunType);
In questo modo le variabili $mageRunCode e $mageRunType anzichè essere impostate dinamicamente avranno sempre lo stesso valore a seconda della cartella dove si trovano.

Ora dobbiamo dire a Magento i percorsi giusti per le variabili:

* $compilerConfig
* $mageFilename

e indicare il percorso giusto per il file errors/503.php

Per fare questo, dato che sarà il file /en/index.php il nuovo entry point, avremo bisogno di modificare i percorsi dicendogli di salire di un livello e andare sulla root.

Modifica del file .htaccess



Alla riga 123 del file .htaccess (se non sono state effettuate altre modifiche al file) troveremo la riga
# RewriteBase /magento/
decommentiamola e inseriamo al posto di /magento/ il percorso della cartella su cui vogliamo inserire la root del sito web. in questo modo:
RewriteBase /en/
In questo modo varemo modificato correttamente il percorso dei negozio.

Ordine degli store

Sulle vecchie versioni di Magento (1.7 e precedenti) occorre indicare come store predefinito in SISTEMA -> GESTIONE NEGOZI-> NOME VISTA NEGOZIO l'ordine di caricamento del negozio. Nelle versioni più recenti (1.8 e successive) occorre inserire sempre in SISTEMA -> GESTIONE NEGOZI-> NOME VISTA NEGOZIO la vista negozio di default.

Localizzazione

Infine in SISTEMA -> CONFIGURAZIONE -> GENERALE non dimentichiamoci di impostare come lingua predefinita quella del negozio predefinito.