Home>Guide>Disabilitare l’indicizzazione delle pagine degli allegati in WordPress

Disabilitare l’indicizzazione delle pagine degli allegati in WordPress


Disabilitare l'indicizzazione delle pagine degli allegati in WordPress


Ogni volta che carichi un’immagine in WordPress, questa viene salvata nel database sotto forma di post type. In quanto tale, le viene assegnato un permalink raggiungibile sul web ed è dunque possibile visualizzarne il contenuto, che però è spesso privo di contenuti utili e quindi causa di abbandono del sito da parte degli utenti influendo negativamente sul pagerank.

  • Leggi l'articolo, ti bastano solo 2 minuti, 30 secondi
    Sei di fretta? Scarica il PDF e consultalo quando vuoi!

Perché nascondere le pagine degli allegati

Molti temi, infatti, non si preoccupano di creare un’apposito template per questo tipo di pagine (attachment.php), ottenendo una pagina che contiene una singola immagine, buttati li, senza informazioni utili per l’utente, spingendolo a lasciare il tuo sito e disperdendo così il pagerank.
Ma anche creando un’apposito template per questo tipo di post type, non risolveresti il problema della carenza di informazioni utili, a meno che il tuo sito non sia appositamente creato per ospitare contenuti del genere (come potrebbe essere, ad esempio, il sito di un fotografo che magari vende online i propri lavori).


Evitare l'indicizzazione

Uno dei metodi per evitare che ciò avvenga, è di non impedire la visualizzazione delle pagine degli allegati, ma di bloccarne l’indicizzazione, risultato che puoi ottenere modificando il file functions.php del tuo tema, che trovi nello spazio FTP del tuo sito, in:

wp-content/themes/{nome_del_tema}/

ed aggiungendo il seguente codice:

// Blocca l'indicizzazione delle pagine degli allegati
add_action( 'wp_head', function() {
    if ( is_singular( 'attachment' ) ) {
        echo '<meta name="robots" content="noindex,follow">' . "\n";
    }
} );

In questo modo, ogni volta che WordPress si ritroverà a renderizzare una pagina degli allegati, provvederà ad aggiungere il meta tag robots dettato su noindex.


Impedire la visualizzazione

Il metodo precedente potrebbe non bastare ad evitare che l’utente si ritrovi su una pagina degli allegati e conseguentemente a poter abbandonare il tuo sito.
È utile a questo punto, evitarne la visualizzazione, come se non esistesse. Per fare ciò, puoi creare (o modificare se già esiste) il template dedicato alle pagine degli allegati attachment.php del tuo tema inserendo prima di qualsiasi altro contenuto il codice:

&lt;?php
	header ( 'HTTP/1.1 301 Moved Permanently' );
	header ( 'Location: ' . get_permalink( $post->post_parent ) );
	exit;
?>

oppure, in alternativa, sfruttando le funzioni predefinite di WordPress:

&lt;?php
	wp_safe_redirect( get_permalink( $post->post_parent ), 301 );
	exit;
?>

che oltretutto, effettua una validazione del link di atterraggio controllando che faccia parte dello stesso dominio.

Con questi due metodi, quando WordPress si ritroverà a renderizzare una pagina degli allegati, reindirizzerà l’utente in modo permanente sulla pagina del post in cui risiede l’allegato.


Metodo alternativo

In alternativa al metodo precedente, puoi ottenere lo stesso risultato inserendo nel file functions.php del tuo tema le seguenti righe:

// Previene l'indicizzazione delle pagine degli allegati
add_action( 'template_redirect', function() {
	if ( is_attachment() ) {
		global $post;
		if ( $post && $post->post_parent ) {
			wp_safe_redirect( esc_url( get_permalink( $post->post_parent ) ), 301 );
			exit;
		} else {
			wp_safe_redirect( esc_url( home_url( '/' ) ), 301 );
			exit;
		}
	}
} );

Io preferisco questo metodo per due motivi:

  1. Reindirizzamento personalizzato. Infatti, col codice proposto, se per caso WordPress non dovesse trovare il post in cui risiede l’allegato (perché magari è stato cancellato, lasciando “orfano” l’allegato) reindirizzerà l’utente in homepage. Ovviamente, nulla ti vieta di personalizzare il comportamento del tuo sito nel caso l’utente atterri su una pagina degli allegati.
  2. Performance. Mentre il precedente metodo carica completamente la pagina dell’allegato richiesta e solo successivamente reindirizza l’utente ad un altro contenuto, quest’ultimo metodo effettua il cambio di pagina molto prima, risultando più veloce in quanto evita l’esecuzione di una buona parte di codice che alla fine non ci servirà.

Qualche precisazione

I metodi proposti, si occupano di bloccare l’indicizzazione di tutte le pagine degli allegati, indipendentemente dal tipo di allegato. Ovviamente, grazie al sistema gerarchico di WordPress, puoi particolarizzare il blocco limitandolo a determinati tipi di allegato: infatti, se anziché utilizzare il file attachment.php usassi il file image.php, bloccheresti solo le pagine relative alle immagini.
Allo stesso modo, relativamente al metodo del paragrafo 4, potresti utilizzare wp_attachment_is_image() invece di is_attachment().


Sei di fretta?

Per chi non avesse voglia o tempo di mettere in pratica quanto descritto finora, ma ha comunque l’esigenza di reindirizzare le pagine degli allegati alle pagine genitore per motivi di indicizzazione e SEO, ecco pronto all’uso il plugin per WordPress. No ti resta che scaricarlo ed installarlo!




Ti è piaciuto questo articolo? Regalami un click per ripagarmi dello sforzo



Code4Life ti è stato utile? Sostienici con una donazione!

Dona con PayPal

Hai trovato interessante l’articolo? Allora ti consiglio di leggere:

Rimuovere la barra degli strumenti di WordPress

Rimuovere la barra degli strumenti di WordPress


In questo articolo, vedremo come nascondere nel frontend la Toolbar di Wordpress, o admin bar, utile ad accedere a diverse aree del backend e che ci ritroviamo puntualmente in alto dopo aver effettuato il login.

Come effettuare un reindirizzamento permanente

Come effettuare un reindirizzamento permanente


Ecco un piccolo trucco per evitare di perdere utenti e traffico, nel caso ci sia la necessità o semplicemente la volontà di cambiare il dominio del proprio sito web, così da preservare il posizionamento fin qui acquisito.

Oppure cerca tra gli articoli correlati


Qualche dubbio? Ecco le opinioni degli altri utenti

Grazie! Mi hai risolto un problema enorme con estrema semplicità!

E tu cosa ne pensi? Condividi la tua opinione e discutiamone insieme
La tua email non sarà resa pubblico o utilizzata per inviarti spam, te lo prometto

Iscrivimi alla newsletter per ricevere news ed aggiornamenti
Utilizziamo piattaforme di terze parti per l’invio di newsletter. (Informativa sulla privacy)
Tienimi aggiornato su questo articolo
Ricevi una email di notifica quando qualcuno scriverà un commento a questo articolo. (Informativa sulla privacy)
Ricorda i miei dati per la prossima volta che scriverò un commento
Il tuo nome e la tua email verranno salvati in un cookie in questo browser. (Informativa sulla privacy)