Två SEO-buggar i Thesis (och hur du fixar dem)

WordPress-temat Thesis är super. Verkligen. Men nu när jag har använt det i en vecka börjar jag upptäcka vissa brister även med Thesis. Tack och lov är det ett betaltema, och jag anser att jag har rätt att ställa krav på att felen i det åtgärdas. I synnerhet när jag har betalat dyra pengar för det.

Främst är det faktiskt SEO-funktionerna i Thesis jag retar mig på, för Thesis även om en av de stora fördelarna med Thesis är hela uppättningen inställningar för att förbättra sökmotorvänligheten mot hur WordPress beter sig i ursprungsversionen så verkar utvecklarna här och var ha gått för långt.

Alla de fel jag rapporterar här under kan man åtgärda i källkoden för Thesis. Jag hade från början bestämt mig för att denna gång inte röra källfilerna över huvud taget. Jag vill egentligen göra alla mina förändringar med hjälp av plugins och widgets. Därför tycker jag att det är lite synd att behöva göra det, och desto viktigare att dokumentera förändringarna offentligt så jag kommer ihåg dem när det är dags för uppdaterade källfiler från DIYThemes.

Här följer en lång text om varför jag anser att Thesis gör fel, och vad man gör åt dessa felaktigheter. Om du vill ha kortversionen så är det ett fel som rör hur Thesis skriver ut title-texten för kategorier och ett annat som rör att Thesis stänger ute sökmotorerna från vissa tagg- och kategorisidor och heller inte låter sökrobotarna följa länkarna på dessa sidor.

Överdrifter i Title-texten

Den första irriterande buggen är att man har valt att plocka upp beskrivningstexten från kategorierna och placera denna i Title-texten för kategorisidorna. Det gör att min kategorisida för sökmotoroptimering helt plötsligt fick den här lååååånga title-texten

Sökmotoroptimering handlar kort och gott om att optimera en sajt så att den får så stor synlighet som möjligt i sökmotorer som t.ex. Google. I min tolkning ska den också få trafik och ge besökarna det de väntade sig när de klickade i sökresultaten. Andra termer för detta är sökoptimering, sökbarhetsoptimering eller till och med sökmotorsoptimering. SEO tycker jag däremot har blivit ett skällsord.

Behöver jag säga att den är en smula lång för att funka som rubrik i Google?

Ett sätt att lösa problemet är att använda den utmärkta pluginnen All in one SEO Plugin, vilken annars är rätt mcyet overkill när man redan använder ett tema som gör det mesta. Men det var enda sättet att återställa titeltexten på kategorisidorna. Jag vill att att mina kategorisidor ska ha sitt namn som title-text. I ett bra tema ska jag kunna styra över detta per kategori tycker jag.

Den som vill hacka i källkoderna hittar felet i funktionen function_thesis_output_title(), och här berättar jag hur du kan rätta till felet (tills en uppdatering kommer från DIYThemes.

Feltänk i funktionen function thesis_output_title()

Felet ligger någonstans i funktionen function thesis_output_title(). Som jag ser det är det felteänkt eller en ren bugg. Så här ser rad 37 ut i thesis_15/lib/functions/document.php:

$category_title = (strlen($category_description)) ? $category_description : single_cat_title();

Koden kontrollerar om det finns en beskrivning av kategorin och använder den istället för kategorinamnet om det gör det. I mitt fall en ren katastrof, eftersom jag har mycket deskriptiva, men föga title-vänliga beskrivningar på många av mina kategorier.

Jag har helt sonika ändrat kommenterat bort rad 37 och lagt till följande lilla rad:

$category_title = single_cat_title();

Överdrivet användande av noindex, nofollow

Många WP-kodare med SEO-ambitioner ägnar stor kraft åt att styra länkkraften på sina bloggar genom att stänga ut Google från ”onödiga” sidor på sajten. Det kan man antingen göra genom att lägga till relationen ”nofollow” på länkarna, eller genom att lägga till ett meta-märke som förhindrar Google att indexera sidan ifråga. Thesis har en mängd möjligheter att styra detta från inställningspanelen Thesis Options. Man använder sig då av ett meta-märke som i princip ser ut så här:

<meta name="robots" content="noindex, nofollow" />

Jag blev glad över att Thesis har så många inställingar för vilka sidor man ska använda detta på. Eftersom jag är ensam författare på Nikke Index och inte bloggar flera gånger om dagen har jag inga länkar till författar-arkiv eller några som helst datum-arkiv. Därför tycker jag gott att jag kan hålla Google borta även från dessa sidor.

Däremot håller jag inte med Thesis-kodarna om att Google inte ska få följa några av länkarna på dessa sidor (om de skulle hittas).

Det finns egentligen tre varianter av meta-märket robots:

  1. ”noindex, nofollow” där sökmotorerna varken ska indexera eller följa länkarna på sidan
  2. ”index, nofollow” där sökmotorerna ska indexera sidan men inte följa länkarna på den
  3. ”noindex, follow” där sökmotorer inte ska indexera sidan men däremot följa länkarna på sidan

Ja i princip finns väl också ”index, follow”, men den är liksom implicit. Google kommer glatt att tugga i sig alla sidor på din sajt utan att du ska behöva slösa bitar på att tala om att de får göra det.

Buggen – Theses lägger noindex, nofollow på kategorisida 2

Nu till buggen (och stor tack till Marcus Westberg för att du hittade den). Det visade sig att Thesis lade till ”noindex, nofollow” på alla kategori- och tagg-sidor utom den första, oavsett vilka inställningar man valt i Thesis Options. Alltså till exempel på den här sidan. För en gammal blogg som min är detta rejält dåligt, då många gamla blogginlägg bara är nåbara från denna typ av sidor.

Samtidigt finns det en finess med att inte låta Google indexera sidorna. Jag vill ju inte spä ut länkkraften från min kategori Sökmotoroptimering. För mig känns det bara naturligt att använda alternativ tre ovan istället. Alltså ”noindex, follow” där Google inte ska indexera själva sidan, men fortfarande följa länkarna på den.

Återigen blev jag tvungen att göra en liten ändring i källfilerna. Den här gången på raderna 37 och 38 i filen thesis_15/lib/classes/head.php

elseif (is_search() || (is_category() && $thesis['head']['noindex']['category']) || (is_tag() && $thesis['head']['noindex']['tag']) || (is_author() && $thesis['head']['noindex']['author']) || (is_day() && $thesis['head']['noindex']['day']) || (is_month() && $thesis['head']['noindex']['month']) || (is_year() && $thesis['head']['noindex']['year']) || $current_page > 1)
$meta['robots'] = '<meta name="robots" content="noindex, nofollow" />';

Den första raden gör en massa kontroller för vilka inställningar man har gjort i Thesis Options, och avslutar med att kontrollera om det är en andra-sida eller högre ($current_page > 1) och om något av villkoren är uppfyllda skriver den dit ”noindex, nofollow” i meta-märket robots. Min ändring består helt enkelt i att jag tillåter Google och andra sökmotorer att följa länkarna på sidan genom att ändra rad 38 till

$meta['robots'] = '<meta name="robots" content="noindex, follow" />';

Det här blev en lång text för två små kodändringar. Men jag tyckte det var värt det. För Thesis är ett riktigt, riktigt bra tema. Jag gillar Thesis och kommer definitivt fortsätta att använda det nu när jag har kommit över de första små problemen.  Dessutom är jag övertygad om att utvecklarna kommer att lyssna och genomföra förbättringar kring dessa små problem i nästa version.

Kolla gärna in introduktionsvideon och läs mer på dyithemes.com/thesis (japp, det är en affiliate-länk där, så köper du temat efter att ha besökt länken så tjänar jag en hacka jag på det). Men det är det värt. Kolla in hur snygg iPhone-sajten iPhone24.se blev med Thesis! Eller sajten om Fårö.