Der findes en stor mængde gennemgange af søgemaskineoptimering af WordPress blogs, men der findes rigtigt mange andre spændende Open Source CMS derude, et af dem er Joomla CMS og det fortjener også en gennemgang.
Joomla CMS er OpenSource og endda et meget populært af slagsen. Joomla bliver primært benyttet til større portaler og til dette formål er det et utroligt godt system. Men ligesom så mange andre CMS systemer, er de ikke optimeret til søgemaskinerne fra barnsben af, derfor har jeg valgt at lave en slavisk gennemgang af de punkter du helt sikkert bør få rettet.
Indholdsfortegnelse
URL struktur –SEF URLs
Joomla benytter per default nogle meget grimme URLs, med en masse parametre i. Da vi er interesseret i at få så høj CTR som muligt er det derfor vigtigt at ændre URL strukturen, så søgeord i URL bliver highlightet og dermed mere synlige.
Lad mig først understrege at SEF URLs som det populært kaldes ikke giver dig nogen nævneværdig fordel i placeringerne på søgeresultaterne.
Lad os komme i gang med SEF URLS
Joomla kommer som default med to forskellige SEF URLs. Der er default metoden som du aktiverer ved at gå til Site -> Global Configuration -> SEO Settings. Klik på Yes i feltet ”Search Engine Friendly URLs”.
Du har nu aktiveret standard SEF URLs i Joomla. Problemet med denne løsning er at ”index.php” nu indgår i alle dine URLs, det gør for det første URL længere, hvilket flere gange er bevist sænker CTR.
For det andet får du en ekstra mappe i din mappestrukturen på alle dine URLs og dermed smider du indholdet længere ned i hierarkiet. Nu tættere dit indhold er på roden, nu vigtigere er det naturligvis.
Eksempel på standard SEF URL
https://www.eksempel.dk/index.php/guides/1632-ps3-theme-creator
I dette eksempel ser vi først index.php, sektionsnavnet, og så artiklens navn.
Brug af mod_rewrite
Vi vil naturligvis gerne fjerne index.php, og derfor skal vi benytte mod_rewrite. Det kræver selvfølgelig at du kører på en Apache server. Vi skal nu ind og kigge i htaccess filen som ligger i roden af dit Joomla bibliotek. Filen hedder som standard htaccess.txt, den skal du blot omdøbe til .htaccess så den bliver aktiveret. Inden du gør dette, bør du først tjekke om dit webhotel understøtter denne funktion.
Når du har omdøbt din .htaccess fil, går du igen til Site -> Global Configuration -> SEO Settings i administrationspanelet og aktiverer nu ”Use Apache mod_rewrite”.
Tryk gem og du kører nu med de mest rene SEF URLs Joomla kan præstere out of the box.
Med Joomlas core SEF URLs vil du stadig have nogle Ids i dine URLS. Der findes flere komponenter og plugins der kan ændre dette. Jeg vil dog aldrig anbefale at bruge en af disse tredjeparts programmer, jeg har flere gange oplevet af en sådan komponent er gået i stykker og dermed ødelagt alle URLs.
Det er et enormt arbejde at 301 alle dine tidligere SEF URLs til nye, og du mister omkring 20% af værdien når du laver 301. Det er derfor i mine øjne ikke risikoen værd, du opnår ikke bedre placeringer i søgeresultaterne og løber altså den risiko at hele korthuset kan falde sammen.
Fjern index.php fra dine eksisterende URLs
Kører du allerede med index.php i dine URLs og vil du gerne fjerne denne ligegyldige ekstra attribut, kan du bruge følgende regel i din .htaccess fil.
RedirectMatch permanent index.php/(.*) https://www.domaene.dk/$1
Duplikat indhold
Joomla har som så mange andre CMS en masse duplicate content problemer, og dem skal vi have lukket ned for.
Med og uden WWW
Den første store barriere er at Joomla lader de besøgende tilgå dit site både med WWW og uden. Du vil selvfølgelig gerne have at dit site kun optræder enten med WWW eller uden, for ikke at skabe to ens sites. De to betragtes nemlig som to separate domæner, og dermed har du i søgemaskinernes øjne to sites, med identisk indhold.
For at løse problemet skal vi igen have fat i .htaccess filen, åben den i din favorit editor og indsæt følgende regel, hvis du ønsker at dit domæne skal vises med www prefix.
RewriteEngine On RewriteCond %{HTTP_HOST} ^domaene.dk [NC] RewriteRule ^(.*) https://www.domaene.dk/$1 [L,R=301]
Vil du køre uden www. Foran domænenavnet, skal du bruge følgende regel:
RewriteEngine On RewriteCond %{HTTP_HOST} ^www.domaene.dk$ RewriteRule ^(.*) https://domaene.dk/$1 [L,R=301]
Print og PDF skaber problemer
Print og PDF knapperne som er standard i Joomla, skaber også duplicate content. Man kan vælge helt at fjerne dem, men hvis man gerne vil benytte dem bør du sørge for at de ikke bliver indekseret.
Til det skal vi bruge robots.txt, åben filen og indsæt følgende:
Disallow: /index.php?view=article*&format=pdf Disallow: /index.php?view=article*&print=1* Disallow: /index.php?option=com_mailto*
Hvis søgemaskinerne allerede viser dine print sider i søgeresultaterne, kan du bruge følgende wildcard i .htaccess til at 301 PDF siderne til den “rigtige” artikel.
RewriteCond %{query_string} ^format=pdf RewriteRule (.*) https://www.domaene.dk/$1? [R=301,L]
Du kan også bruge denne funktion på indekserede printsider.
Linker du internt til din forside med to URLs?
I mange skabeloner er der et præ defineret forside URL. Det kan være dit logo i toppen linker til det, men kan også være direkte fra hovedmenuens ”Forside” link.
Stien hedder ofte /forside, og da vi ikke er interesseret i at have vores forside både på domaene.dk og også på /forside, skal dette redigeres ud af din skabelon. Desværre er det vidt forskelligt hvor dette gøres i din skabelon, så der er du på egne ben.
Har søgemaskinerne allerede indekseret din ekstra forside, bør du lave en 301 på denne URL til roden.
Dette gøres med følgende regel:
Redirect 301 /forside https://www.domaene.dk/
Har du mange artikler på din forside, og derfor fået pagination (sidenummereringslinks), skal disse også omskrives til roden, det kan du gøre med følgende regel
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9} /forside?start=(.*) HTTP/ RewriteRule ^index.php$ https://www.domaene.dk/? [R=301]
Du kan bruge den samme regel hvis din forside hedder /index.php som også tit er tilfældet. Skift bare forside ud med /index.php
Håber denne guide kunne bruges, og du nu er godt i gang med din Joomla søgemaskineoptimering.
Fint indlæg. Kunne du tænke dig at lave et gæsteindlæg på min side (joomlatutorials.dk), så fang mig endelig.
Godt og let forståeligt indlæg.
Tak for et godt og letforståeligt indlæg:
Jeg har flere spørgsmål, som jeg håber du vil svare på. Har forsøgt at google.
1. Du skriver:
“Fjern index.php fra dine eksisterende URLs
Kører du allerede med index.php i dine URLs og vil du gerne fjerne denne ligegyldige ekstra attribut, kan du bruge følgende regel i din .htaccess fil.
RedirectMatch permanent index.php/(.*) http://www.domaene.dk/$1”
———————-
Kan det omskrives direkte til htm, så jeg bruger koden:
RedirectMatch permanent index.htm/(.*) http://www.domaene.dk/$1
———————-
2. Med eller uden www
Jeg har i forvejen dette stående i min .htaccess fil:
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^domaene.dk [NC]
RewriteRule ^(.*) http://www.domaene.dk/$1 [L,R=301]
skriver jeg så bare
RedirectMatch permanent index.htm/(.*) http://www.domaene.dk/$1
direkte ind eller skal der noget # eller lignende ind i .htaccessfilen?
Har også noget 404 kode, jeg skal have ind.
Kan nemlig ikke rigtigt få hverken 303 eller 404 til at virke.
mvh
My Charlot
Hej Henrik
Tak fordi du vil kigge på mit problem. Jeg har skrevet
#RedirectMatch permanent index.php/(.*) https://www.funedesign.dk/$1
#RewriteEngine On
#RewriteCond %{HTTP_HOST} ^www.funedesign.dk$RewriteRule ^(.*) https://funedesign.dk/$1 [L,R=301]
i .htaccess. Jeg bruge one.com har det noget at sige?
Hej igen
Fandt ud af at problemet lå hos one.com og at det ikke skal stå i bunden hos one.com men efter:
# Joomla! is Free Software
##
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www.funedesign.dk$ [NC]
RewriteRule ^(.*)$ https://www.funedesign.dk/$1 [R=301,QSA,L]
Lækkert med en gennemgang der gør det let forståeligt for de fleste!
Kort og præcist gennemgang.
Super fint. Men det plejer det jo også være her på din blog ;o)
Mange tak Thomas!
Hej Henrik.
Rigtig fedt indlæg om søgeoptimering af Joomla. Arbejder selv med Joomla.
SEO er dog et område hvor jeg ikke er særlig stærk. Så den kode hvor man ændre ens domæne kun til at køre på www, er det lige meget hvor i .htaccess filen man placerer denne?
Hej Henrik.
Fandt det selv. Det stod faktisk hvor jeg skulle paste din kode :-)
Hej Henrik, Tak for en super god artikel.. Jeg har på egen hånd (meget stolt) været igennem de første punkter og træder lidt vande på “Linker du internt til din forside med to URLs?” delen.. Hvordan, uden jeg de store it kundskaber, kan jeg se hvordan det ændres? Sker der noget ved at sætte koden ind anyway? Har nemlig både forside i menuen og link til forsiden i logoet, som det så fint omtaler.. Kan du hjælpe mig på vej ?
Tak for et godt indlæg. Ledte på google og fandt dit indlæg, lige hvad jeg manglede.. Har netop kørt de fleste punkter igennem på min nye online casino spil hjemmeside og herefter signet mig op på moz – så er der gode muligheder for at holde lidt øje :) Tak for et godt indlæg.