POMOC TECHNICZNA: +48 606 85 73 04

Dane strukturalne i błędy w Narzędziach dla webmasterów Googla – HOWTO

Dane strukturalne i błędy w Narzędziach dla webmasterów Googla – HOWTO
Dane strukturalne

Dane strukturalne – o co chodzi?

Ostatnio zwróciło moją uwagę coś, co w narzędziach dla Webmasterów Google nazywane jest “dane strukturalne”. Jest to standaryzowany opis stron i ich elementów z którego korzystają m.in. wyszukiwarki. (np. Google Authorship jest takim zapisem).

edu_pl

Po modyfikacjach strony, zintegrowałem ją z moim profilem G+ i teraz w artykułach Google widzie mnie jako autora, wrzuca fotkę i w ogóle jest super 🙂 ale… niespodziewanie pojawiły się dodatkowe błędy właśnie w danych strukturalnych a dokładnie hentry: microformats.com.

Na niektórych podstronach brakuje elementów:

  • author,
  • entry-title,
  • updated…

czyli jednak „nie ma róży bez kolców”.

Co można w takim razie z tym fantem zrobić?

Są dwie możliwości:

  • poprawić błędy czyli dodać brakujące znaczniki
  • usunąć miejsca w których znaczniki powinny się pojawiać, a dokładnie usunąć klasę CSS hentry

Każde z rozwiązań ma niestety swoje plusy… dodatnie i ujemne…

Problem pojawiania się tych błędów związany jest z tym, że dane strukturalne wymagają specyficznej składni, która przez twórców motywów często jest pomijana albo błędnie stosowana (szczególnie chodzi tu o klasę css : hentry) Zatem możemy taką klasę usunąć, przez co zniknie nam problem błędu, ale też możemy mieć na stronie problem z danymi strukturalnymi.

Możemy też, wiedząc jak dane strukturalne wyglądają, poprawić nasz motyw. Tutaj warto posiłkować się Narzędziami dla webmasterów Googla a dokładniej narzędziem do testowania danych strukturalnych.

Oba rozwiązania wymagać będą edycji kodu php, zatem jest dedykowane osobom które mają już jakieś doświadczenie w edycji kodu motywu.

dane strukturalne

Usuwamy klasę hentry – “leczenie skutków”

Zacznijmy od prostszego rozwiązania, jakim jest usunięcie klasy hentry. W zależności od sytuacji w której się błąd pojawia, najczęściej będzie to w przypadku wyświetlania pojedynczego wpisu. Za wyświetlanie pojedynczych wpisów odpowiada plik single.php. W tym pliku bardzo często używamy funkcji post_class();  

Funkcja ta generuje różne klasy CSS np.:

class="post-1195 post type-post status-publish format-standard hentry category-sample category-main"

Na klasach tych opierają się definicje CSS poszczególnych elementów strony. Wśród nich występuję właśnie klasa hentry, która sprawia nam tyle kłopotu…  Niestety jeśli na stronie mamy Google Rich Snippets w różnych formatach klasa hentry będzie generowała nam błędy.  Mówiąc krótko w specyficznych sytuacjach występuje konflikt pomiędzy tym, co zwraca WordPress a tym, czego wymagają dane strukturalne według różnych standardów.

Co do standardów to Google Rich Snippets możemy na stronie zaimplementować na kilka sposobów:

  • microformats – skkładnia tego formatu zaczyna się od class=„…”
  • microdata – tutaj składnia itemscope itemtype=„…”
  • RDF – składnia property=„v:…”

Google rekomenduje format microdata z opisem schamatów  z schema.org a niestety twórcy WordPressa umieścili domyślnie w kodzie element z microformats.  Zatem przy walidacji uzyskamy błąd.

Możemy „naprawić” to w sposób prosty… usuwając klasę hentry.  Stwórzmy zatem w pliku motywu  functions.php funkcję którą podepniemy pod zdarzenie post_class”.

function usuwanie_hentry( $classes ) {
        if ( is_page() ) {
                           $classes = array_diff( $classes, array( 'hentry' ) );
                          }
           return $classes;
         }
   add_filter( 'post_class','usuwanie_hentry' );

Za pomocą tej funkcji możemy usunąć dowolną klasę spośród klas generowanych automagicznie prze WP.  … można to porównać do leczenia objawowego… leczenia skutków.
Teraz czas na “leczenie przyczyn”.

Poprawiamy kod strony -” leczenie przyczyn”

Teraz może przyjrzyjmy się leczeniu przyczyn, czyli wprowadźmy poprawki w kodzie naszego motywu.  Najprościej przyjrzeć się znów plikowi single.php

Bardzo często mamy w nim konstrukcję zbliżoną do :

<h2><?php the_title(); ?></h2>

By pozbyć się błędnego wyświetlania należało by ją zmienić na :

<h2 class=”entry-title”><?php the_title(); ?></h2>

w ten sposób mamy „załatwione” błąd z „entry-title”.

Podaję tu ogólny przykład. Generalnie by nie stracić formatowania CSS które mamy już przydzielone do znacznika w tym przypadku h2 zapis “entry-title” może występować jako kolejna klasa, jedna z wielu dla tego znacznika.

Teraz szukamy wiersza informacją o autorze:

<?php the_author(); ?>

i zmieniamy na dość rozbudowaną składnię:

<span class=”vcard author post-author”><span class=”fn”><?php the_author(); ?></span></span>

I w końcu:

<?php the_date(); ?>

zmieniamy na

<span class=”post-date updated”><?php the_date(); ?></span>

A co zrobić, gdy Google informuje nas o błędzie a treść, wokół której mają znaleźć się dane klasy, nie występuje? Rozwiązałem to, może nie elegancko ale skutecznie – dodałem znaczniki ale bez treści 🙂
np.

<span class="post-date updated"> </span>

Efekty naszych zmian powinniśmy przetestować w 2 miejscach. Pierwsze to przeglądarka, czyli sprawdzamy, czy dopisane klasy przypadkiem nie wpłynęły na poprawne wyświetlanie naszej strony w przeglądarce.

Drugim miejscem to Narzędzia dla Webmasterów Googla http://www.google.com/webmasters/tools/richsnippets.

Należy też pamiętać, że w Narzędziach dla Webmasterów efekty nie będą od razu widoczne, ponieważ Google bazuje na informacjach przesłanych jakiś czas temu zatem trzeba zgłosić mapę strony do ponownej indeksacji wtedy też odświeżą się informacje o danych strukturalnych. Natomiast można w Narzędziach dla Webmasterów “na żywo” modyfikować kod i zobaczyć czy faktycznie osiągnęliśmy oczekiwany efekt.

U mnie, w praktyce wygląda to tak, że otwieram sobie zmodyfikowaną stronę i klikam w przeglądarce “wyświetl źródło”, znajduję kod odpowiedzialny za daną klasę danych strukturalnych. Następnie w Narzędziach dla Webmasterów => Dane strukturalne, uruchamiam tester i podmieniam fragment kodu na fragment ze strony ze zmianami. Klikam podgląd i już widzę czy zmiany które wprowadziłem odniosą poprawny efekt po aktualizacji indeksu przez Googla.
W ten sposób znów podnieśliśmy trochę swoją widoczność w wynikach wyszukiwania…

Jeśli masz problem  z tym o czym piszę lub   masz obawy przed samodzielnym modyfikowaniem motywu… napisz do mnie, coś na to poradzimy 😉

0 0 votes
Article Rating
Subscribe
Powiadom o
guest
2 komentarzy
najstarszy
najnowszy oceniany
Inline Feedbacks
View all comments
Kamil
30 grudnia 2015 11:31

Mam problem gdyż mam kilka plików z functions.php, nie ważne w jakim miejscu dodam ten skrypt ? czy w jakimś określonym miejscu ?

 
Dyskusja
 
2
0
Would love your thoughts, please comment.x