Personalizzare gli elementi meta Description e Keywords

In genere gli articoli dei nostri blog così come le pagine statiche presentano gli elementi meta “Description” e “Keywords” uguali fra tutti i post e tutte le pagine. Con un piccolo sforzo possiamo però personalizzarli e rendere ciò che scriviamo più facilmente rintracciabile sul web.

Questo è un post tecnico di 8 anni fa. Le istruzioni potrebbero non essere più valide.

In genere gli articoli dei nostri blog così come le pagine statiche presentano gli elementi meta “Description” e “Keywords” uguali fra tutti i post e tutte le pagine. Con un piccolo sforzo possiamo però personalizzarli e rendere ciò che scriviamo più facilmente rintracciabile. Esistono plugin che fanno questo per noi e anche molto di più: a me preme invece, come di consueto, la parte teorica del ragionamento.

Questo post prende spunto da un articolo di WP Recipes, ma utilizza una soluzione differente. Vediamo come ho implementato questa caratteristica in Ubuntu block notes.

Personalizziamo l’elemento meta Description

L’elemento Description presenta in brevissima sintesi il contenuto della pagina che si sta visualizzando. Una sintesi generica va bene per la home page e altre pagine, ma non precisamente per gli articoli e per quelle pagine statiche che trattano argomenti più in profondità. Possiamo però, con semplici istruzioni PHP, sostituire la generica descrizione (e le Keywords generiche, come vedremo dopo) con una personalizzata per ogni articolo. Per far ciò useremo i Campi personalizzati di WordPress.

Aprite il file del vostro tema header.php e individuate la riga che dice più o meno così:

<meta name="description" content="bla bla bla" />

Se non c’è, la creeremo noi: inseritela dove volete, l’importante è che stia all’interno dell’elemento <head>. Un buon posto è di certo vicino agli altri elementi meta.

Al posto di tutta la riga inserite queste:

<meta name="description" content="<?php
	$standard_desc = 'Questa è la descrizione generica del mio blog';
	$single_desc = get_post_meta($post->ID, "Metadescription", true);
	if (is_single() || is_page()) {
		if ($single_desc == '') {
			echo $standard_desc;
		} else {
			echo $single_desc;
		}
	} else {
		echo $standard_desc;
	}
?>"/>

Personalizzate la variabile $standard_desc inserendo la descrizione generica del vostro blog.

In breve quelle righe non fanno altro che controllare se avete inserito una descrizione specifica per l’articolo o la pagina, secondo il metodo che vi spiegherò subito sotto, e la usano, altrimenti useranno quella generica.

Personalizziamo l’elemento meta Keywords

Stesso discorso per l’emento meta Keywords. Se avete già una riga, sostituitela con quelle seguenti, altrimenti incollate queste subito sotto le righe che avete appena inserite. Eccole:

<meta name="keywords" content="<?php
	$standard_key_list = 'questa, è, la, mia lista, di parole, chiave';
	$single_key_list = get_post_meta($post->ID, "Metakeywords", true);
	if (is_single() || is_page()) {
		if ($single_key_list == '') {
			echo $standard_key_list;
		} else {
			echo $single_key_list;
		}
	} else {
		echo $standard_key_list;
	}
?>"/>

Personalizzate con la vostra lista di parole chiave la riga 2. Il ragionamento delle istruzioni è lo stesso di prima.

Come utilizzare queste istruzioni

Prendete un articolo già scritto e modificatelo. Senza toccare il testo, scendete nella pagina fino al riquadro “Campi personalizzati” e fate clic su “Aggiungi nuovo”. Scrivete come “Nome” il testo “Metadescription” e come valore la descrizione dell’articolo che state modificando. Quindi fate clic su “Aggiungi campo personalizzato”.

Fate la stessa cosa con un altro campo nuovo, che però chiamerete “Metakeywords” e a cui darete come valore le parole chiave che contraddistinguono l’articolo in modifica. Generalmente i tag che avete usato vanno bene. Premete quindi su aggiungi.

Ora, senza premere sul pulsante solito “Modifica articolo”, andate sul blog e visualizzate il post. Dite al vostro browser di farvi vedere il codice sorgente della pagina (in genere Ctrl+U) e dovreste vedere le due righe con gli elementi Description e Keywords personalizzati.

Quando in seguito scriverete un nuovo post e volete personalizzare questi due elementi, troverete già, nel menu a tendina dei “Campi personalizzati”, i due nomi inseriti prima: vi basterà inserirne il contenuto nel campo “Valore”.

Autore: Aldo Latino

Aldo Latino usa con entusiasmo Linux nella distribuzione Ubuntu, è un appassionato di WordPress e si diletta a fare il blogger. Ha anche una lista dei desideri. Per altre informazioni visita la sua .

15 pensieri riguardo “Personalizzare gli elementi meta Description e Keywords”

  1. Da poco ho scoperto il tuo sito e ti confesso che lo trovo molto interessante sia per gli argomenti sia per la chiara esposizione con ala quale li proponi. Io però sono un neofita di wordpress e molte cose non le conosco,quindi ti faccio una domanda per la quale ti chiedo scusa fin da ora per la probabile banalità della stessa (ma ho imparato che si impara facendo anche domande “stupide”): una volta che ho apportato le modifiche che suggerisci andranno perdute quando eseguirò l’aggiornamento automatico di WP? Se si, c’è un modo per non dover ripetere le stesse operazioni ad ogni aggiornamento? Grazie. Nicola

    1. Le modifiche come quelle proposte in questo articolo vanno eseguite sui file del proprio tema in uso. Il che significa che, quando aggiornerai il motore di WordPress, questi file del tema non vengono toccati, perché risiedono in una directory a parte.

      1. Salve e complimenti per lo script che ritengo molto utile.
        Come hai spiegato tu, le righe controllano eventuali descrizioni specifiche oppure useranno quella generica.

        Questo potrebbe però influire negativamente in ambito SEO.

        Non si potrebbe fare in modo che al posto della descrizione generica, se lascio i campi vuoti lo script non stampi nulla?

        Io ho provato a fare così: ho lasciato vuoto i parametri $standard_key_list e $standard_desc.

        In questo modo però se non inserisco keyword e description specifiche
        lo script stampa e .

        Non si potrebbe fare in modo che se i campi sono vuoti nell’output non appaia nulla?

        1. Ciao, non mi è chiaro cosa influirebbe in modo negativo in ambito SEO. Il tag metadescription?

          Per la tua domanda: sì certo che si può fare, ma avresti un “content” vuoto per metadescription. Il che non mi pare positivo.

        2. Provo a spiegarmi meglio.

          Ho provato lo script su un blog e funziona a dovere.

          Essendoci però centinaia di post in cui inserirò per ognuno descrizione e keyword specifici, non vorrei nel frattempo ritrovarmi con tutte le pagine del blog che riportano keyword e description duplicati (influenza negativa lato SEO).

          Allo stesso tempo sarebbe negativo avere i content keyword e description vuoti, come hai detto tu.

          A parer mio una soluzione che renderebbe perfetto lo script ( da far invidia anche a molti plugin SEO specifici per wordpress), sarebbe quella di modificare il codice in maniera che se i meta sono vuoti non appaia nulla nell’output del codice.

          Apparirebbero i meta solo man mano che vengono inseriti descrizione e parole chiave in ogni post.

        3. Claudio, se nel post o nella pagina che stai scrivendo non inserisci alcun campo personalizzato con nome “Metadescription”, lo script userà il meta description standard. In questo modo avrai sempre una descrizione, che fa bene.

          Non capisco, sinceramente, perché lasciare pagine senza meta description (o meta keywords).

          Potrei anche non aver capito l’esigenza e mi scuso anticipatamente. In ogni caso, ecco come andrebbe modificato lo script:

          <?php
           if(is_single() || is_page()) {
            $meta_desc = get_post_meta($post->ID, "Metadescription", true);
            if($meta_desc) {
             echo '<meta name="description" content="'.$meta_desc.'" />';
            }
           }
          ?>

          Questo script, solo nei post e nelle pagine, verifica che ci sia un campo personalizzato “Metadescription”; se c’è, stampa la riga del meta, altrimenti non stampa nulla e la pagina manca di elemento meta.

        4. Mi scuso io a non essermi espresso al meglio.
          Comunque piuttosto che avere descrizione e keyword duplicate, ti garantisco che è meglio non averne affatto.
          Grazie per la tempestività della risposta.
          Un’altra cosa Aldo, la modifica apportata per lo script relativo al meta description si può applicare similmente anche a quello del meta keyword?

        5. Sì, certo. Eccolo:

          <?php
           if(is_single() || is_page()) {
            $meta_keys = get_post_meta($post->ID, "Metakeywords", true);
            if($meta_keys) {
             echo '<meta name="keywords" content="'.$meta_keys.'" />';
            }
           }
          ?>

          Non l’ho provato per errori di battitura (sia questo che quello di poco fa) ma credo che dovrebbe andare bene. Nel caso fammi sapere. :smile:

        6. Grande Aldo.
          Come immaginavo ne è venuto fuori un capolavoro con la semplice aggiunta di un tag condizionale.

          Il tutto fa risparmiare banda al server ed evita l’uso di plugin e il rallentamento delle pagine.

          Ho provato a inserirlo nel post ma non mi autorizza.

          Se vuoi te lo passo su skype oppure dimmi tu, vorrei che gli dessi un occhiata e mi dici cosa ne pensi.

I commenti sono chiusi