W poprzedniej części serii o SEO Testerze stworzyliśmy solidną bazę, która przetwarza zadany kod HTML i zwraca interesujące nas dane, takie jak na przykład ilość zdań, słów, poszczególnych nagłówków. Dziś stworzymy kilka podstawowych testów bazujących na danych zwracanych przez parser.
Dzisiejsze SEO-Testy
Cały SEO Tester będzie wykonywał kilkanaście różnych testów. Na początek zajmiemy się siedmioma łatwiejszymi.
- Test łatwości czytania tworzonego tekstu
- Test na występowanie nagłówków różnego typu
- Test na stosunek liczby nagłówków do akapitów
- Test długości akapitów
- Test długości zdań
- Test długości tekstu
- Test na występowanie linków wewnętrznych
Krótkie przypomnienie
Zanim zaczniemy warto może przypomnieć co przechowujemy pod jakimi własnościami obiektu SEO Testera.
- this.p - akapity
- this.h1 - nagłówki stopnia pierwszego
- this.h2 - nagłówki stopnia drugiego
- this.h3 - nagłówki stopnia trzeciego
- this.h4 - nagłówki stopnia czwartego
- this.img - obrazki
- this.a - odnośniki
- this.sentences - tablica oczyszczonych zdań
- this.words - tablica wyrazów tekstu
A teraz nie przedłużając już, zabierajmy się do pracy!
Łatwość czytania tekstu
Każdemu twórcy powinno zależeć na tym, aby jego teksty były przystępne w odbiorze. Przystępne czyli jakie? Czyli niezawierające wielu trudnych i skomplikowanych wyrazów, oraz zbyt długich zdań. Stopień trudności wyrazu możemy zmierzyć na podstawie ilości jego sylab.
Odpowiedni algorytm
Istnieje wiele algorytmów na obliczanie czytelności tekstu, jednak wiele z nich stworzonych zostało z myślą o języku angielskim, przez co oceniając polskie teksty nie zwracają poprawnych wyników. Spowodowane jest to naturalnymi różnicami językowymi.
Po dłuższych poszukiwaniach zdecydowaliśmy, że dla języka polskiego najbardziej odpowiednim algorytmem będzie Indeks czytelności FOG. Co prawda on także został stworzony z myślą o języku angielskim, jednak można go odrobinę zmodyfikować i dostosować do naszego języka. Wzór tego indeksu wygląda następująco:
FOG = 0.4 * [ liczba słów / liczba zdań + 100 * ( liczba słów długich / liczba słów ) ]
Natomiast wyniki interpretuje się według poniższej skali:
- 1-6 - język bardzo prosty, zrozumiały już dla uczniów szkoły podstawowej
- 7-9 - język prosty, zrozumiały już dla uczniów gimnazjum
- 10-12 - język dość prosty, zrozumiały już dla uczniów liceum
- 13-15 - język dość trudny, zrozumiały dla studentów studiów licencjackich
- 16-17 - język trudny, zrozumiały dla studentów studiów magisterskich
- 18 i więcej - język bardzo trudny, zrozumiały dla magistrów i osób z wyższym wykształceniem
We wzorze występuje 'liczba długich słów' - są to słowa długie czyli trudne. Według wzoru dla języka angielskiego słowa posiadające 3 lub więcej sylab są zaliczane jako długie. Jednak dla języka polskiego powinniśmy podnieść tą granicę na 4 lub więcej sylab, z czym zgadzają się różne autorytety językowe.
3.. 2.. 1.. Do kodu!
Przełóżmy więc nasze założenia na kod tworząc funkcję w klasie SEOTester o nazwiereadabilityTest().
W zasadzie wszystko co potrzebne do wzoru już mamy, trzeba tylko policzyć ilość słów trudnych. Aby to zrobić, należy utworzyć pętlę, która przesuwając się po tablicy wyrazów (którą dzięki parserowi mamy!) będzie analizować każdy po kolei. Za pomocą funkcjimatch() wyraz jest rozbijany na sylaby (sylabę traktujemy jako część wyrazu zawierającą jedną lub dwie następujące po sobie samogłoski), które następnie są liczone.
Mając policzone długie wyrazy wystarczy podstawić dane przygotowane przez parser do wzoru i zapisać otrzymany wynik.
Mówiliśmy poprzednio, że każda funkcja musi zwrócić jeden ze statusów (OK,AVG lubNOK). Dlatego na końcu należy rozpisać instrukcję warunkową, która na podstawie otrzymanego wyniku zwróci odpowiedni status wraz z wiadomością. Progi oraz wiadomości oczywiście są sprawą indywidualną, my proponujemy podział jak powyżej.
Występowanie nagłówków różnego typu
Kolejnym ważnym testem będzie sprawdzenie, czy nasz tekst zawiera nagłówki różnego typu. Po co? Przecież komputerowi wszystko jedno czy nagłówki to<h1> czy<h3>. Owszem, wyszukiwarce nie robi to różnicy. Ale pamiętajmy, że SEO to nie tylko przypodobanie się wyszukiwarce, ale również użytkownikom, tak aby chętnie odwiedzali nasze strony i jak najdłużej na nich zostawali.
Dlatego musimy zadbać, aby nasz tekst był atrakcyjny i przystępny w odbiorze już na pierwszy rzut oka. Sami powiedzcie, czyż tekst z prawej nie zachęca Was bardziej do przeczytania niż ten z lewej? A treść jest dokładnie taka sama!
Test na nagłówki ma więc wymusić na nas pilnowanie się, aby dobrze strukturyzować treść naszej strony/wpisu. Zakładamy, że na stronie powinien być tylko jeden nagłówek pierwszego stopnia i że jest on tytułem naszej strony. Dlatego sprawdzamy tekst pod względem występowania nagłówków 2-, 3- i 4-stopnia. Wymagamy, aby był przynajmniej jeden nagłówek 2-stopnia oraz jeden nagłówek 3- lub 4-stopnia.
Stosunek nagłówków do akapitów
Przed chwilą rozpisaliśmy sobie test, który zadba, aby stosować różne typy nagłówków. Jednak nie sprawdza on czy używamy wystarczającej ich liczby. Według standardów na każdy nagłówek nie powinno przypadać więcej niż 4 akapity. Nie powinno się też przesadzać oczywiście w drugą stronę. Ten zabieg poprawi zarówno czytelność, jak i jakość treści.
Test jest bardzo prosty, wystarczy podzielić liczbę nagłówków przez liczbę akapitów i sprawdzić wynik.
Długość akapitów
Kiedy nasze akapity są zbyt długie pogarsza to ich odbiór, utrudnia czytanie. O wiele lepiej jest dzielić treść w taki sposób, aby uzyskać więcej, ale krótszych akapitów. Zgodnie z tą zasadą tworzymy test, który sprawdzi czy nie mamy czasem akapitów dłuższych niż 150 słów - nie powinniśmy mieć ani jednego przekraczającego tą długość.
Zauważcie, że korzystamy tutaj na powrót z właściwości innerText elementu. Nie korzystamy z funkcji, która czyści nam zdania, liczymy absolutnie wszystko co znajduje się w danym akapicie.
Długość zdań
Analogicznie do akapitów i z dokładnie tych samych powodów powinniśmy uważać na długość zdań które piszemy. Powinniśmy w miarę możliwości unikać zdań wielokrotnie złożonych, które zawierają sporą ilość wyrazów. Nie chodzi tu oczywiście o pisanie samych prostych zdań jak w szkole podstawowej. Należy jednak mieć na uwadze, żeby w miarę możliwości dla wygody czytelnika dzielić zdania złożone na nieco prostsze.
Ustalamy zasadę, że zdania dłuższe niż 25 słów nie powinny stanowić powyżej 25% objętości tekstu
Długość tekstu
Poza długością akapitów i zdań ważna jest też ogólna długość pisanego tekstu. Według zaleceń SEO każda tworzona zawartość powinna mieć co najmniej 300 słów. Zapewnia to lepsze pozycjonowanie przez wyszukiwarki.
Ten test nie wymaga od nas praktycznie żadnego nakładu pracy, tablicę z wszystkimi wyrazami mamy przecież dostępną pod this.words, wystarczy więc odczytać jej długość!
Linki wewnętrzne
Ostatnim testem w tej części będzie test na obecność linków wewnętrznych. Ale moment! Czyli czego?
Podthis.a mamy dostępne wszystkie odnośniki obecne w naszym tekście. Jednak nie na wszystkich z nich nam zależy. Możemy utworzyć dwa rodzaje linków -wewnętrzne i zewnętrzne. Zewnętrzne to takie, które odnoszą się do innej strony w internecie. Czyli np. odnośnik do Wikipedii odsyłający do wyjaśnienia konkretnego pojęcia. Wewnętrzne z kolei to odnośniki prowadzące do innego miejsca w obrębie naszej strony internetowej. Przykładem są odnośniki do innych wpisów na tym blogu w obrębie tego wpisu.
Co nam to daje? Pozwala dłużej utrzymać użytkownika na naszej stronie! Podsuwając link do treści, która może go zainteresować zwiększamy szansę na to że odwiedzi inne nasze strony, których sam by nie wyszukał. Korzyści SEO są oczywiste!
Rozpoznawanie rodzaju odnośnika
Ale zaraz zaraz! Skąd skrypt ma wiedzieć czy link jest wewnętrzny czy zewnętrzny? Musimy sprawdzić go na dwa sposoby. Link wewnętrzny może:
- prowadzić do adresu w obrębie naszej domeny,
- być ścieżką bez protokołu i adresu domenowego - czyli po prostu ścieżką w obrębie naszego serwera.
Zakładamy, że posiadając 1 link wewnętrzny zwracamy status AVG, a 2 lub więcej OK.
Jak mogliście zauważyć, test na linki nie jest doskonały. Jeżeli w treści umieścimy link mailto: lub tel:, czy inny, zostanie on policzony jako wewnętrzny. Można to odpowiednio obłożyć dodatkowymi warunkami w teście jeżeli będzie to konieczne.
Co dalej?
Mamy za sobą już pierwsze 7 testów. W następnej części omówimy te nieco bardziej skomplikowane, które będą wymagały dodania dodatkowych danych wejściowych.
Standardowo, aktualny kod SEO Testera dostępny jest naGithubie.
Komentarze