• User

    Per qualche motivo le mappe non mi venivano generate, forse perchè uso Safari da Mac, ho ad ogni modo ripiegato per http://www.xml-sitemaps.com/ ed ora Google ha la sua sitemap da 500 pagine.

    La modifica che ho fatto al sito è stata questa : http://forum.html.it/forum/showthread.php?postid=11041497#post11041497

    Ho fatto in modo che ogni frase esiste in 5 lingue, la lingua viene scelta tramite il settaggio di un cookie. Anzi, ora che ci penso, i cookies vengono settati richiamando un file che setta i cookies, che sia quello che Google non riesce a caricare ?


  • User

    E' possibile che il motivo sia il redirezionamento ad una pagina di settaggio cookies che non contiene meta tag di riconoscimento alcuno ?

    La home page e tutte le altre pagine iniziano con l'inclusione dei file di configurazione, variabili e cookies. I meta tag sono contenuti nell'header delle pagine stesse.
    Quando però il crawler web vede questo :

    [PHP]<?php
    $langs = array("it", "en");
    if(!isset($_COOKIE['lang'])) {
    setcookie("lang", "en", time()+3600);
    //questa in verità dovrebbe essere con la lingua di sistema
    header("Location: cookieset.php");
    }
    else {
    if (!in_array($_COOKIE['lang'], $langs)) {
    //se la lingua di sistema non è tra quelle disponibili oppure
    //qualche buontempone ha creato un cookie "ad hoc" con dati
    //inconsistenti, mettiamo a posto le cose con una lingua di default
    setcookie("lang", "en", time()+3600);
    header("Location: cookieset.php");
    }
    //resto del codice
    }
    ?> [/PHP]

    Viene redirezionato alla pagina cookieset.php , pagina che non contiene nessun tipo di meta tag, potrebbe essere qui il punto dove Google va in crisi.
    I normali browser a differenza dei crawler ricevono i cookies e proseguono senza errori.


  • Super User

    Si, penso sia proprio questo il problema.

    Lo spider, non avendo i cookies non visualizza correttamente la pagina e dà problemi nell'indicizzazione.

    Ti consiglio di sistemare questa funzione, altrimenti rischi di perdere tutta l'indicizzazione del sito. 🙂


  • User

    Perdona se posso apparire prolisso, ma vorrei chiarire del tutto la cosa perchè mi preme ($:D) e perchè anche chi legge possa avere un riferimento valido.

    Riguardo il cookie non rilevato del crawler credo si risolva qui :

    [PHP]if ($_COOKIE[languagecookie]) {
    $languagechoice=$_COOKIE[languagecookie];
    include_once("admin/language-$languagechoice.php");
    //include_once("http://$sito/admin/language-$languagechoice.php");
    } else {
    $languagechoice="it";
    include_once("admin/language-$languagechoice.php");
    }[/PHP]

    Il problema potrebbe essere quel file di settaggio cookies che era :

    [PHP]<?php

        // Codice PHP con settaggio cookies
    

    ?>[/PHP]

    Ed oggi ho cambiato in :

    [PHP]
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML>

    <HEAD>
    <TITLE>Cookies setting</TITLE>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" ><!-- no cache headers -->
    <META http-equiv=Pragma content=no-cache>
    <link rel="Shortcut Icon" href="/favicon.ico">
    <META http-equiv=Expires content=-1>
    <META http-equiv=Cache-Control content=no-cache><!-- end no cache headers -->
    <meta name="description" content="<?php echo"$lsitedesc"; ?>">
    <meta name="keywords" content="<?php echo"$lsitekeyw"; ?>">
    <meta name="robots"content="index,follow">
    <meta name="copyright" content="Copyright 1999-2007. Farmapure srl. All Rights Reserved.">
    <meta name="author" content="Longhi Sergio">
    <meta name="generator" content="Dreamweaver">
    <meta name="language" content="<?php echo"$languagecookie"; ?>">
    <meta name="revisit-after" content="1">
    <META http-equiv=MSThemeCompatible content=Yes>
    <meta name="verify-v1" content="yM/Rh6wvcNKv1BeDR2ewkfOuo0oCtVO7Y2gNQqZ0NhA=" />
    </HEAD>
    <BODY>

    <?php

        // Codice PHP con settaggio cookies
    

    ?>
    </BODY>
    </HTML>
    [/PHP]


  • User

    Ok, gira e rigira sembra essere stato header("Location: cookieset.php"); , un balzo che fa ritornare nell'header un responso 302 invece di 200.
    Eliminato quello l'header torna a rispondere con 200, Ok.

    Ora continuerò l'ottimizzazione e vediamo se l'indicizzazione torna a posto.


  • User

    Sta tornando tutto a posto, problema risolto.
    Morale, attenzione ai salti all'interno delle pagine.


  • User Attivo

    @Bodyweb said:

    Sta tornando tutto a posto, problema risolto.
    Morale, attenzione ai salti all'interno delle pagine.

    Non ho capito che tipo di problema aveva il tuo sito. :mmm:


  • User

    @cosmoweb said:

    Non ho capito che tipo di problema aveva il tuo sito. :?L'header restituiva il codice 302, redirect, invece di 200, ok.


  • User Attivo

    @Bodyweb said:

    L'header restituiva il codice 302, redirect, invece di 200, ok.

    Non conosco il php ma potevi semplicemente far girare quella funzione senza mai abbandonare la pagina che lo richiama e fare url redirecting.
    Molto più performante e ti avrebbe evitato casini vari.


  • User

    @moroandrea said:

    Non conosco il php ma potevi semplicemente far girare quella funzione senza mai abbandonare la pagina che lo richiama e fare url redirecting.
    Molto più performante e ti avrebbe evitato casini vari.Non setta il cookies immediatamente, questo è il problema, se leggi su html.it è il motivo per il quale mi fu suggerito da un programmatore di fare in quel modo.
    Nel sito c'è un riconoscimento automatico della lingua del browser e relativo caricamento della lingua corrispondente.


  • User Attivo

    Beh non entro nel merito, ripeto, perchè non conosco il php, ma il metodo di funzionamento è sempre lo stesso (in termini di richieste/invio server/client) e una cosa del genere è fattibilissima monopagina con linguaggi MS.
    Cmq, l'importante è che abbia capito dove stava il problema e che hai spiegato a tutti.


  • User Attivo

    Non entro nel merito. Con linguaggi MS sarebbe stato possibile, ma l'importante è che tu abbia risolto e hai fatto partecipe della tua soluzione la community.