Idag, på WordPress Meetup i Norrköping, pratar jag om WordPress ur ett SEO-perspektiv. WordPress har, nästan en smula oförtjänt, fått rykte om sig att vara ”bra för sökmotoroptimering”.
Ursprungligen var WordPress-bloggar helt fantastiska i Google-resultaten, helt enkelt av det enkla faktum att de innehöll mycket text och hade en bra struktur, som gjorde det lätt för Google att spindla dem och fånga upp enskilda webbplatser.
Men allteftersom andra CMS sakta har blivit lite bättre, Googles krav har förändrats, och vi som älskar WordPress har börjat bygga allt mer komplexa sajter, så har det blivit pinsamt tydligt att WordPress default (eller WordPress Core vilket är mer korrekt att säga) egentligen inte alls svarar upp på kraven för vad ett CMS ska klara av när det kommer till sökmotoroptimering.
Jag har därför, en smula provokativt, döpt mitt föredrag till WordPress sucks at SEO, med underrubriken 10 saker som jag önskar att alla WordPress-utvecklare kunde bygga in i sina teman.
Min presentation ligger på Slideshare, och du kan följa #wpmeetup via Bambuser. (Tyvärr i en enda lång film. Jag hoppas att den spelas in och styckas upp i enskilda delar senare.)
De tio punkterna ser, i korthet ut så här:
Kan vi inte alla sluta använda <h1> för bloggnamnet i våra teman? Det kan vara OK på förstasidan, men i många fall kan det vara bättre att lägga h1:an på bloggbeskrivningen. På objektssidor, dvs sidor och poster ska h1 vara på sidans huvudrubrik och ingenting annat. I det fallet ska ingen emfas läggas på sajtnamnet. Där kan du använda vilken <span> som helst. Samma sak på resultatsidor (kategorisidor, taggsidor och författarsidor). Användaren bör kunna ange om resultatsidan ska ges emfas i form av en h1-rubrik eller inte. På den här bloggen används h1 på kategorier och taggar som jag vill ge emfas, som t.ex. kategorierna Sökmotoroptimering och SEO, och taggarna Johan Ripås och Rykteshantering, men taggar och kategorier som kan tänkas konkurrera med en post eller sida har inte detta element.
Det här är helt basic. Även om vi vandrar mot en html5-värld så är det så att alla h-rubriker på en sida, fortfarande, bör vara relaterade till det som sidan handlar om. Jag gråter varje gång jag ser <h3> eller ännu värre <h1> och <h2> använt enbart som ett formelement, och som rubrik på helt orelaterade texter, som ofta finns på varenda sida på sajten. Det är en dödssynd SEO-mässigt. Sluta med det. Gå gärna tillbaka och gör om i alla era gamla teman. Nu!
Att inte WordPress Core har någon sorts inbyggd hantering av meta description-text är mig helt obegripligt. Men det är så lätt att hantera, och många av er gör det redan i era teman. Men väldigt få har lagt till ett custom field för denna unika 155 tecken långa text, som bör vara unik och relevant för varje enskild sida på sajten (ja, inklusive kategori-sidor och tagg-sidor och kanske framför allt sajtens förstasida). Bygg sedan ett fallback-system som först försöker använda en anpassad, handskriven text för sidan. Om den inte finns, försök plocka fram de första 155 tecknen ur excerpt-fältet. Om även denna (otroligt viktiga text) saknas, plocka istället de första 155 tecknen från texten. Svårare än så är det inte. Samma typ av fält bör användas även för kategori-, tagg-, och författarsidor.
<title>-texten är den enskilt viktigaste texten sett ur ett sökmotoroptimeringsperspektiv. Det är också den som visas som rubrik i sökresultaten. WordPress hanterar Title-texten på ett bra sätt men lämnar ingen plats för anpassning. Title-texten bör kunna anpassas för alla sidtyper, inklusive alla typer av resultatsidor. Den är alldeles för viktig för att lämnas åt slumpen!
De allra flesta sajter skulle tjäna på att ha en sekundär navigationsrubrik. Särskilt som svenska redaktörer har en faibless för att skriva alldeles för långa rubriker. Denna sekundära navigationsrubrik kan med fördel användas för relaterade poster/sidor, senaste poster, i automatiska menyer och liknande.
Alla olika sidtyper på en sajt kan, i olyckliga fall, bli en form av duplikat av någon annan sida på sajten. Det är illa varje gång vi förvirrar Google och inte är tydliga i vilken sida som är den bästa för en sökfras. Därför bör vi ha möjlighet att kunna lägga rel=”canonical” på varje typ av sida på en sajt. Och det är inte jobbigare än att bygga in ett custom field och sedan hantera den i samma loop som drar fram canonical-urlen i headern.
Att använda taggar för att visa relaterade poster är helt oslagbart för bloggare, och lika självklart borde det vara för sajter som använder WordPress som CMS. Vi bör hantera taggar på sidor lika väl som bloggposter och alltid ha en möjlighet att automatiskt länka till relaterade sidor från alla objektssidor på sajten.
Kan vi inte se till att få en noindex-varning för varje sidtyp på sajten i administrationsraden? Gäller framför allt om sajten har släppts med fel integritetsinställningar och inte släpper in Google.
Ett cms som är bra för sökmotoroptimering levereras med bra default-inställningar. Jag blir lika förbannad varje gång jag ser ett framework eller ett tema som har noindex ifyllt som default för taggsidor, kategorisidor eller till och med för index-sidan.