Vai al contenuto

Problemi indicizzazione Google dopo obbligo di login per leggere i contenuti

Featured Replies

Inviato

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!!!

Risolta da Domenico Addotta

Vai alla soluzione
Inviato

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.

Inviato
  • Autore

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.....

Inviato

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 :(

Inviato
  • Autore

che problemi implicherebbe secondo te? e come sarebbe il codice risultante?

Inviato

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...

Inviato
  • Autore

perfetto funziona!!! grande!!!

 

post-2596-0-95870700-1440601961_thumb.jp

Inviato
  • Autore

Grazie di tutto, procedo con una nuova donazione ;)

 

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

Inviato
  • Autore

non trovo la pagina per la donazione, mi da inesistente...

Inviato

non trovo la pagina per la donazione, mi da inesistente...

Vai qui: collabora e supportaci in fondo c'è il pulsante donazione.

  • 3 mesi dopo...
Inviato

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' ) ) ) )
Inviato

Questa soluzione è applicabile anche alla versione 3.4.8?

Inviato
  • Autore

Questa soluzione è applicabile anche alla versione 3.4.8?

 

si, io ho la 3.48 ;)

Inviato
  • Autore

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

 

Inviato
  • Autore
  • Soluzione

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 ;)

Inviato
  • Autore

la donazione ci scappa lo stesso, la faccio tra due giorni ;)

Inviato

si, io ho la 3.48 ;)

 

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

Inviato
  • Autore

esatto ;)

Per favore accedi per lasciare un commento

Potrai lasciare un commento dopo aver effettuato l'accesso

Accedi Ora

Chi sta navigando 0

  • Nessun utente registrato visualizza questa pagina.

Informazioni importanti

Abbiamo inserito dei cookies nel tuo dispositivo per aiutarti a migliorare la tua esperienza su questo sito. Puoi modificare le impostazioni dei cookie, altrimenti puoi accettarli cliccando su continua. to insert a cookie message.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.