• User Attivo

    dati strutturati Google Search Console

    non so se è la sezione più appropriata per questo post, ma il problema devo risolverlo in wordpress quindi penso ci azzecchi...

    volevo capire come vi comportate con gli errori relativi ai dati strutturati nella Google Search Console, ho letto guide, articoli, installato pugin, ma continuo ad avere su più pagine errori tipo

    Manca: author
    Manca: entry-title
    Manca: updated

    pensavo bastasse un plugin ma per quanti ne bbia provati non riesco a fargli inserire le informazioni mancanti, ho anche letto di modifiche al codice del tema ma i timidi tentativi che ho fatto non hanno sortito effetto...

    Qualcuno ha un suggerimento da darmi?

    al solito...Grazie...


  • Moderatore

    Ciao dadoge,
    ti sconsiglio caldamente l'utilizzo di plugins per svolgere queste funzioni perchè appesantiscono tutto il sistema per scrivere al volo righe di codice.
    La sola ed unica soluzione è quella di muoversi all'interno dei file del tuo Template, andando ad aggiungere e/o modificare le parti a te necessarie per i dati strutturati delle Google search, facendo molta attenzione ad utilizzare la sintassi corretta del core di wordpress. Trovi la sua guida alle funzioni a questo indirizzo: https://codex.wordpress.org/


  • User Attivo

    grazie per la risposta...anch'io sono giunto alla conclusione che è meglio lasciar peredere i plugin per cercare di risolvere il problema...

    nel mio caso alla fine ho risolto cambiando tema e la situazione è migliorata notevolmente sia per i dati strutturati con errori quasi azzerati (ma dovrebbero azzerarsi nei prox giorni) sia dal punto di vista delle pagine indicizzate da google che in pochi giorni sono triplicate, non pensavo che la scelta del tema influisse così tanto, tornando ai dati strutturati il nuovo tema installato non mi risolveva il problema nelle pagine (mentre negli articoli tutto ok) ho risolto con alcune righe di codice aggiuntivo trovato in rete, in coda all'interno di function.php...le riporto caso mai servisse a qualcuno...

    //risoluzione errori dati strutturati degli articoli in Google Search Console
    function add_mod_hatom_data($content) {
    $iso8601_date = get_the_time('c');
    $author = get_the_author();
    $title = get_the_title();
    if( is_page() ) {
    $content .= '
    <div class="hatom-extra"><span class="entry-title">'.$title.'</span>
    ultima modifica: <span class="updated"> '.$iso8601_date.'</span>
    da <span class="author vcard"><span class="fn">'.$author.'</span></span></div>';
    }
    return $content;
    }
    add_filter('the_content', 'add_mod_hatom_data');

    che risolve il problema sulle pagine, nel caso si volesse agire anche sugli articoli dovrebbe essere sufficiente modificare l'IF in

    if( is_single() || is_page() ) {


  • User

    Ne approffitto per chiedere anch'io una cosa sui dati strutturati.
    Dopo aver modificato il file function.php sono riuscito a farli recuperare a google.
    Tuttavia, quando vado nello strumento di test di google per i dati strutturati, alla voce updated mi mette la data di pubbilcazione e non l'ultimo aggiornamento.
    E' normale?

    grazie 1000


  • User Attivo

    ci vuole qualche giorno perchè google faccia la scansione di tutti i file, nel mio caso ho notato che fa la scansione ogni 4 giorni, mi sono rimasti 2 errori e venerdì dovrebbero sparire, ammesso che google scansioni quei file (non ho la certezza che ogni volta la scansione sia completa, quindi potrebbero rimanere per altri giorni ancora)...

    ...aggiungo una nota...la modifica del function.php verrà persa al primo aggiornamento del tema, per fare un bel lavoro andrebbe creato un tema child (volendo si può usare il plugin Child Theme Configurator) inserendo il codice nel function.php del tema child...io ci ho provato ma la modifica non viene vista, se qualcuno ha una dritta da darmi...


  • User

    Dadoge,
    si ho modificato il function.php del child.
    Il problema è che nello strumento di test dei dati strutturati, il valore di updated è in realtà quello della data di pubblicazione.
    Credo che questo influisca negativamente sul posizionamento del sito!

    Grazie


  • User Attivo

    scusa ho letto la domanda frettolosamente ed ho frainteso...

    a questo non ci avevo pensato, in teoria dovrebbe essere sufficiente impostare

    $iso8601_date = get_the_modified_date

    ho fatto due prove ed in effetti pare funzionare, prova e sappimi dire...

    nel mio caso il codice non agisce sugli articoli ed ho dovuto fare anche una modifica su un file del tema...ora è perfetto

    Grazie per avermelo fatto notare...


  • User

    Grazie,
    Io nel mio file function.php ho creato questa funzione per recuperare questi dati e ho già il codice:

    ultima modifica: <span class="updated"> '.$iso8601_date.'</span>

    Cosa dovrei mettere secondo te?

    Grazie 1000

    Buona giornata


  • User Attivo

    Massimodefilippo

    ti chiedo una cosa io...hai fatto la modifica nel tema child, ho provato anch'io ma non me la prende, ammetto la mia ignoranza in merito ai temi child, al punto che utilizzo un plugin per crearli, la function.php del tema child come deve essere fatta? Il plugin me la genera così (in più ho aggiunto il codice di cui sopra ed un altro script per l'author)

    <?php
    // Exit if accessed directly
    if ( !defined( 'ABSPATH' ) ) exit;

    // BEGIN ENQUEUE PARENT ACTION
    // AUTO GENERATED - Do not modify or remove comment markers above or below:

    if ( !function_exists( 'chld_thm_cfg_parent_css' ) 😞
    function chld_thm_cfg_parent_css() {
    wp_enqueue_style( 'chld_thm_cfg_parent', trailingslashit( get_template_directory_uri() ) . 'style.css', array( ) );
    }
    endif;
    add_action( 'wp_enqueue_scripts', 'chld_thm_cfg_parent_css', 10 );

    if ( !function_exists( 'child_theme_configurator_css' ) 😞
    function child_theme_configurator_css() {
    wp_enqueue_style( 'chld_thm_cfg_child', trailingslashit( get_stylesheet_directory_uri() ) . 'style.css', array( 'chld_thm_cfg_parent' ) );
    }
    endif;
    add_action( 'wp_enqueue_scripts', 'child_theme_configurator_css' );

    //risoluzione problema author_link
    add_filter( 'author_link', 'modify_author_link', 10, 1 );
    function modify_author_link( $link ) {
    $link = 'hxxps://xxx.bio-prodotti.it/';
    return $link;
    }

    //risoluzione errori dati strutturati degli articoli in Google Search Console
    function add_mod_hatom_data($content) {
    $iso8601_date = get_the_modified_date('c');
    $author = get_the_author();
    $title = get_the_title();
    if( is_single() || is_page() ) {
    $content .= '
    <div class="hatom-extra"><span class="entry-title">'.$title.'</span>
    ultima modifica: <span class="updated"> '.$iso8601_date.'</span>
    da <span class="author vcard"><span class="fn">'.$author.'</span></span></div>';
    }
    return $content;
    }
    add_filter('the_content', 'add_mod_hatom_data');

    // END ENQUEUE PARENT ACTION

    E' corretto?


  • User Attivo

    proverei a sostituire $iso8601_date con get_the_modified_date('c')

    se non funziona dovresti risalire all'assegnazione della variabile, io procedo così, mi scarico il tema in locale e con dreamweaver faccio una ricerca in tutte le sottocartelle e poi agisco di conseguenza, quindi dovresti trovare una riga del tipo $iso8601_date = get_the_time('c'); che dovrebbe diventare $iso8601_date = get_the_modified_date('c');


  • User

    Ciao,
    Ho capito l'origine del problema, ho due righe di codice, uno con l'aggiornamento e l'altro con la data di pubblicazione:

    href="... (.) fisioterapiarubiera (.) .com" title="Testa pesante" rel="bookmark"><time class="timestamp updated" datetime="2015-02-28T19:47:50+00:00">28 febbraio 2015</time></a>

    E l'altra più in basso è:

    <div style="font-size:0px;height:0px;line-height:0px;margin:0;padding:0;clear:both"></div><div class="hatom-extra" style="display:none;visibility:hidden;"><span class="entry-title">Testa pesante</span> was last modified: <span class="updated"> gennaio 4th, 2018</span>

    Ho preso queste righe dal visualizza sorgente pagina.

    Purtroppo il test dei dati strutturati di google prende il dato sbagliato.
    Come fare?

    Grazie 1000


  • User

    L'unica cosa che forse risolverebbe è questa:

    • Missing updated: which means that the item (page/post) missing the *“updated”*CSS class.

    And for this, you need to find the function that displays the time for your post/page, if it’s there, you will add this class to the time function so it will be something like:
    [TABLE="class: highlight tab-size js-file-line-container, width: 699"]

    [TD="class: blob-num js-line-number, align: right"][/TD]
    [TD="class: blob-code blob-code-inner js-file-line"] <span class="date updated published"><?php the_time(); ?></span>[/TD]
    [/TR]
    [/TABLE]

    Note: this will make the published time and updated time the same. If you want to get the updated time you need to add this function
    [TABLE="class: highlight tab-size js-file-line-container, width: 699"]

    [TD="class: blob-num js-line-number, align: right"][/TD]
    [TD="class: blob-code blob-code-inner js-file-line"]$updated_time = get_the_modified_time('F jS, Y');[/TD]
    [/TR]
    [/TABLE]

    and then add class=”updated” to it
    [TABLE="class: highlight tab-size js-file-line-container, width: 699"]

    [TD="class: blob-num js-line-number, align: right"][/TD]
    [TD="class: blob-code blob-code-inner js-file-line"]<span class="updated"> '.$updated_time.'</span>[/TD]
    [/TR]
    [/TABLE]

    Ma non so dove mettere quest'ultimo codice.


  • User Attivo

    se mi dici che tema usi se è free provo a scaricarlo e ci do un'occhiata...


  • User

    Ciao,
    Uso responsive ed è free.

    Grazie


  • User Attivo

    sono un po' di fretta, ma posso indicarti un tentativo da fare...

    nel file: responsive\core\includes\function.php

    alle righe 473 e 474 c'è

    esc_html( get_the_date('c')),
    esc_html( get_the_date() )

    prova a modificare tutte e due o una delle due sostituendo get_the_modified_date('c')

    dovrebbe risolvere perchè sono all'interno della funzione responsive_post_meta_data() è c'è anche get_the_title() tipico dei dati strutturati...se non risolve dimmelo che cerco ancora...

    Ciao


  • User

    Ciao Dadoge, quindi no nmodificherei il tema child?

    grazie


  • User Attivo

    intanto capisci se risolve il problema modificando il file nel tema poi cerchi di riportare la correzione nel child...


  • Bannato User Newbie

    @dadoge said:

    intanto capisci se risolve il problema modificando il file nel tema poi cerchi di riportare la correzione nel child... thuê ?? ch?i xúc cát h?t mu?ng 0918621929