Vai al contenuto
Domenico Addotta

3.4 Problemi indicizzazione Google dopo obbligo di login per leggere i contenuti

Recommended Posts

Domenico Addotta

Buongiorno a tutti. Ho un serio problema di indicizzazione di Google. In pratica se obbligo gli utenti a loggarsi per leggere i contenuti del forum, google man mano che scansiona le pagine mi toglie le stesse dall'indice del motore, in quando le identifica come sempre la stessa pagina che chiede il login.

 

io ho la versione 3.4 del forum e ricordo che le precedenti versione riuscivano cmq a dare la possibilità a google di scandire le pagine anche se con login obbligatorio, consentendo loro di bypassare questa rischiesta...

 

Come fare per la versione 3.4? C'è qualche parametro, impostazione, plugin da installare.... ?

 

Ho dovuto togliere il login obbligatorio e dopo circa una settimana è tornato tutto come prima, google è tornato a indicizzare correttamente le pagine e a ripristinare le pagine tolte dall'indice.

 

Aiutatemi!!!

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti
BomAle

Puoi controllare se hai l'user agent di google in questa lista...

mXh9MFR.jpg

verifica tu stesso se ti reindirizza al modulo del login o se rimane nella pagina usando lo strumento "visualizza come google"

https://www.google.com/webmasters/tools/googlebot-fetch

se è presente allora bisogna controllare altrove.

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti
Domenico Addotta

Google è presente nella pagina indicata, se attivo il login vede tutte le pagine così:

 

post-2596-0-76789700-1440520910_thumb.jp

 

e vedendole tutte uguali me li toglie dall'indice del motore stesso. Come fare per bypassare il problema?

 

Nelle vecchie versione era possibile far vedere a google il forum come un utente iscritto e quindi il problema non c'era, indicizzava normalmente tutto, e ciò si vedeva anche dalla sua cache.... una volta che le persone ci cliccavano tu veniva chiesto il login.... adesso con questa versione non più..... anche lui vede la pagina di login.....

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti
BomAle

purtroppo nel file \admin\sources\base\ipsRegistry.php linea 892

				//--------------------------------				//  Is log in enforced?				//--------------------------------				if ( ! ( defined( 'IPS_IS_SHELL' ) && IPS_IS_SHELL === TRUE ) && ( ( ! IPS_IS_MOBILE_APP ) && ( self::$handles['member']->getProperty('member_group_id') == ipsRegistry::$settings['guest_group'] ) and (ipsRegistry::$settings['force_login'] == 1) && !in_array( ipsRegistry::$request['section'], array( 'register', 'privacy', 'unsubscribe' ) ) ) )				{					if( ipsRegistry::$settings['logins_over_https'] AND ( !$_SERVER['HTTPS'] OR $_SERVER['HTTPS'] != 'on' ) )					{						//-----------------------------------------						// Set referrer						//-----------------------------------------												if ( !my_getenv('HTTP_REFERER') OR stripos( my_getenv('HTTP_REFERER'), ipsRegistry::$settings['board_url'] ) === false )						{							$http_referrer = ( strtolower($_SERVER['HTTPS']) == 'on' ? "https://" : "http://" ) . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];						}						else						{							$http_referrer = my_getenv('HTTP_REFERER');						}									self::instance()->getClass('output')->silentRedirect( str_replace( 'http://', 'https://', ipsRegistry::$settings['base_url'] ) . 'app=core&module=global&section=login&referer=' . urlencode($http_referrer) );					}										ipsRegistry::$request['app']		= 'core';					ipsRegistry::$request['module'] 	= 'login';					ipsRegistry::$request['core']   	= 'login';					ipsRegistry::$request['referer']	= ipsRegistry::$request['referer'] ? ipsRegistry::$request['referer'] : ( strtolower($_SERVER['HTTPS']) == 'on' ? "https://" : "http://" ) . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];					if( is_file( DOC_IPS_ROOT_PATH . '/' . PUBLIC_DIRECTORY . '/style_css/' . ipsRegistry::getClass('output')->skin['_csscacheid'] . '/ipb_login_register.css' ) )					{						ipsRegistry::getClass('output')->addToDocumentHead( 'importcss', ipsRegistry::$settings['css_base_url'] . 'style_css/' . ipsRegistry::getClass('output')->skin['_csscacheid'] . '/ipb_login_register.css' );					}										$classToLoad = IPSLib::loadActionOverloader( IPSLib::getAppDir( 'core' ) . "/modules_public/global/login.php", 'public_core_global_login' );					$runme       = new $classToLoad( self::instance() );					$runme->doExecute( self::instance() );					exit;				}			}

non vengono esclusi gli user agent,

basterebbe mettere tra le condizioni

ipsRegistry::member()->is_not_human !== TRUE

ma questo andrebbe evitato :(

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti
BomAle

per la modifica...

cerca:

				if ( ! ( defined( 'IPS_IS_SHELL' ) && IPS_IS_SHELL === TRUE ) && ( ( ! IPS_IS_MOBILE_APP ) && ( self::$handles['member']->getProperty('member_group_id') == ipsRegistry::$settings['guest_group'] ) and (ipsRegistry::$settings['force_login'] == 1) && !in_array( ipsRegistry::$request['section'], array( 'register', 'privacy', 'unsubscribe' ) ) ) )

e sostituisci con:

				if ( ! ( defined( 'IPS_IS_SHELL' ) && IPS_IS_SHELL === TRUE ) && ( ( ! IPS_IS_MOBILE_APP ) && ( self::$handles['member']->getProperty('member_group_id') == ipsRegistry::$settings['guest_group'] ) and (ipsRegistry::$settings['force_login'] == 1) && ipsRegistry::member()->is_not_human !== TRUE && !in_array( ipsRegistry::$request['section'], array( 'register', 'privacy', 'unsubscribe' ) ) ) )

se forzi il login è per tutti, se ai crawler/googlebot... lasci l'autorizzazione a scansionare le pagine e non vorresti in alcun modo fornire una copia cache delle pagine dovresti impostare un meta tag noarchive come segue:

0dt1Ih7.png

questo sempre per "forzare" l'iscrizione senza lasciare pagine cache accessibili ai visitatori...

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti
Domenico Addotta

Grazie di tutto, procedo con una nuova donazione ;)

 

p.s. ho un altro problema, apro la discussione apposita ;)

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti
BomAle

per essere più corretto cambiate:

if ( ! ( defined( 'IPS_IS_SHELL' ) && IPS_IS_SHELL === TRUE ) && ( ( ! IPS_IS_MOBILE_APP ) && ( self::$handles['member']->getProperty('member_group_id') == ipsRegistry::$settings['guest_group'] ) and (ipsRegistry::$settings['force_login'] == 1) && !in_array( ipsRegistry::$request['section'], array( 'register', 'privacy', 'unsubscribe' ) ) ) )
in

if ( ! ( defined( 'IPS_IS_SHELL' ) && IPS_IS_SHELL === TRUE ) && ( ( ! IPS_IS_MOBILE_APP ) && ( self::$handles['member']->getProperty('member_group_id') == ipsRegistry::$settings['guest_group'] ) and (ipsRegistry::$settings['force_login'] == 1) && (self::$handles['member']->getProperty('is_not_human') !== TRUE) && !in_array( ipsRegistry::$request['section'], array( 'register', 'privacy', 'unsubscribe' ) ) ) )

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti
Domenico Addotta

Questa soluzione è applicabile anche alla versione 3.4.8?

 

si, io ho la 3.48 ;)

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti
Domenico Addotta

ora la newsletter normale funziona, ci si può disiscrivere anche senza essere connessi... il problema ora è che io ho anche [HSC] Newsletter installato, che genera link come questo per disiscriversi:

 

http://www.canonclubitalia.com/public/forum/index.php?app=newsletter&unsubscribe=51f95a69f7490b687eb529209046493b&member=110150&newsletter=1

 

questo link funziona solo se si è connessi, vi è un modo di consentire la corretta esecuzione di questa funzione?

 

 

da connesso:

 

post-2596-0-82666800-1450188104_thumb.jp

 

da sconnesso:

 

post-2596-0-89951000-1450188135_thumb.jp

 

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti
Domenico Addotta

risolto, in pratica nello stesso file c'è il seguente codice:

/* Other public check */			if ( IPB_THIS_SCRIPT == 'public' and				IPS_ENFORCE_ACCESS				   === FALSE AND (							ipsRegistry::$request['section']   != 'login'  and				ipsRegistry::$request['section']   != 'lostpass'  and				IPS_IS_AJAX === FALSE and				ipsRegistry::$request['section']   != 'rss' and				ipsRegistry::$request['section']   != 'attach' and				ipsRegistry::$request['module']    != 'task'   and				ipsRegistry::$request['section']   != 'captcha' ) )			{

che ho modificato come segue:

/* Other public check */			if ( IPB_THIS_SCRIPT == 'public' and				IPS_ENFORCE_ACCESS				   === FALSE AND (				ipsRegistry::$request['app'] != 'newsletter' and				ipsRegistry::$request['module'] != 'unsubscribe' and								ipsRegistry::$request['section']   != 'login'  and				ipsRegistry::$request['section']   != 'lostpass'  and				IPS_IS_AJAX === FALSE and				ipsRegistry::$request['section']   != 'rss' and				ipsRegistry::$request['section']   != 'attach' and				ipsRegistry::$request['module']    != 'task'   and				ipsRegistry::$request['section']   != 'captcha' ) )			{

e ora mi fa disiscrivere anche da sloggato ;)

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti
SardiniaNET Staff

si, io ho la 3.48 ;)

 

Devo modificare il file \admin\sources\base\ipsRegistry.php e caricarlo via FTP, giusto?

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Crea un account o accedi per lasciare un commento

You need to be a member in order to leave a comment

Crea un account

Iscriviti per un nuovo account nella nostra comunità. È facile!

Registra un nuovo account

Accedi

Sei già registrato? Accedi qui.

Accedi Ora


×