Sådan benyttes .htaccess filen til SEO

Hvad er .Htaccess og redirects ?

I denne artikel behandles emnet .Htaccess filens mange muligheder (Hypertext access), men fokus på SEO og forbedret brugeroplevelse på et website.
Htaccss filen placeres enten i roden af et webhotel, hvor den påvirker hele websitet eller i en mappe, hvor den kun påvirker indholdet af mappen alene.

Filen giver mulighed for at tale direkte med søgemaskinerne og brugernes browser, uden synlig data på selve websitet eller i Html filerne.

.Htaccess filen virker på Apache servers med linux.

Artiklen er opdelt i følgende afsnit:

Sådan laver du en .Htacess fil
Flyt et website ved brug af .Htaccess og redirects
Flyt en undersides placering med redirect
404 fejlsider, sådan gør du
Brug 301 redirects til SEO – Vælg domænenavn version.
Test af redirects i http header
Hjælp Google med at forstå dit websites struktur
Tips til Htaccess f.eks sikkerhed
Htaccess og WordPress tips

Sådan laver du en .Htaccess fil

Når en søgemaskine eller en surfers browser lander på dit website, søges med det samme efter en .Htaccess fil. I filen kan du opsætte retningslinjer for, hvordan din webside ønskes vist og behandlet.
.Htaccess filen siger med andre ord ”Hej søgemaskine, jeg vil gerne have at du tolker -og viser mit website kode på følgende måde”.
Altså før selve websitet indlæses gives informationer om hvordan det skal tolkes og vises.

.htaccessfil hvordanDet du skal gøre er ganske enkelt at lave en .htaccess fil og indskrive kodestykker i den. Filen skal uploades til roden af dit domæne (der hvor index.html ligger også

.Htaccess filen kan laves med f.eks note+. Her opretter du et tomt dokument og gemmer det med navnet .htaccess. Benytter du notepad, skal du efterfølgende omdøbe filen til kun .htaccess – altså uden .txt endelsen.

For at ligge filen online, ska du benytte et FTP program eller via dit webhotels admin panel og filmanager overfører den.

Flyt et website med redirect på den rigtige måde

Hvis du vil flytte dit website til et nyt domainnavn eller sammenlægge 2 forskellige domæner på 1 samlet site, er det essentielt alt gammelt linkjuice overflyttes til det nye site.

Alle de links der peger ind på et website giver en lille smule værdi og den historik websitet har, indeholder en vis mængde troværdighed i søgemaskinerne, det er derfor god SEO vind i alle segl, at lave 301 redirects.

Det kan du flyte med over til et nyt eller andet domænenavn og dermed undgå, at tabe vigtige placeringer i søgeresultaterne.

Der vil altid blive mistet en smule ved manøvren, da pagerank algoritmen er opsat således, at der mistes lidt, når der linkes fra en side til en ny – dette vil du også opleve ved at redirecte til et nyt domænenavn.

Klargøring til flytning

Lav en liste over samtlige undersider på det gamle domæne. Her kan du f.eks benytte programmet Xenu.

Listen skal benyttes senere – den er meget vigtig.

Komplet overflytning

Overflyttet du alt fra det gamle domænenavn uden at ændre i hverken mappestruktur eller sidenavne (urls).
Kan du gøre det i et snuptag ved en simpel manøvre i en .htaccess fil.

I din nye .htaccess fil indskriver du nu følgende:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^olddomain.com$ [OR] RewriteCond %{HTTP_HOST} ^www.olddomain.com$ RewriteRule (.*)$ http://www.newdomain.com/$1 [R=301,L]

Flytning med ændringer i sidenavne på det nye domæne

Vil du flytte hele siden, men har u omdesignet den nye sid og dermed nye sidenavne, kan du lave en flytning fra det gamle og på det nye site fortælle, hvor de gamle sider nu er havnet.

På dit NYE domain forklarer du søgemaskinerne og brugernes browser, hvor de gamle sider er placeret på det nye domæne med 301 redirects for hvert enkelt side.

Du skal altså directe som ovenstående på dt gamle domæne og på det nye ligge en .htaccesss fil op, der fordeler alle reguests fra det gamle site rundt på dit nye site -og gerne hen til placeringer med samme indehold som før, eller beslægtet.

Her skal du bruge den liste du har lavet i Xenu.

Hvert gamle url (side) skal peges å det sted brugeren finder siden placere nu.

Koden ser således ud:

Redirect 301 /gammelurlnavn.html http://www.nytdomænenavn.dk/nysideurl.html

Eksempel:

Cykelforretningen www.gamlecykler.dk skifter navn til www.nyecykler.dk

På gamlecykler.dk ligges en .htaccess fil i roden af webhotellet, hvor index.html før lå.
Heri skrives:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^gamlecykler.dk$ [OR] RewriteCond %{HTTP_HOST} ^www.gamlecykler.dk$ RewriteRule (.*)$ http://www.nyecykler.dk/$1 [R=301,L]

Alternativ metode:

RewriteEngine on
RewriteRule ^(.*)$ http://www.nyecykler.dk/$1 [R=301,L]

Bemærk:
I visse tilfælde er den server du er hostet hos konfigureret således, at følgende streng skal indskrives over koden: Options +FollowSymLinks.

Altså således:

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^gamlecykler.dk$ [OR]
RewriteCond %{HTTP_HOST} ^www.gamlecykler.dk$
RewriteRule (.*)$ http://www.nyecykler.dk/$1 [R=301,L]

På gamlecykler.dk lå siderne ikke i kategoriopdelte mapper, hvilket de gør på nyecykrre.dk, derfor skal de redirectes til deres nye rigtige placering.

Der lå en side ved navn rustenpuch.html – den er flyttet over på det nye site og lagt i en kategori ved navn ”Rusten-cykler”.

Redirecten der skal ligges i .htacces filen på nyecykler.dk bliver således til:

Redirect 301 /rustenpuch.html http://www.nyecykler/Rusten-cykler/rustenpuch..html

Redirect internt – ved flytning og sletning af sider

Vælger du at flytte en side over i en ny kategori eller ganske enkelt at slette den, kan du også bruge ovenstående 301 redirect manøvre.

Sletter du en side uden at gøre mere, vil søgemaskinerne sende trafik til en tom side og alle links der peger på siden, vil du ikke få linkjuic fra.
Det er derfor en god ide at benytte 301 redirects, hver eneste gang du sletter eller flytter.

404 til de dovne

Er du lidt dovent anlagt kan opsætte din 404 fejlside, til at dirigere alle, der klikker på en slettet side over på en forudbestemt side. Det kunne være din forside eller dit sitemap.

Koden indskrives i din .htaccess side og ser således ud:

ErrorDocument 404 /densidedeskalindpaa.html

Det er ikke særlig brugervenlig at benytte den ovenstående metode, da det vil forvirre brugeren meget. De klikker på et link på dit website du har glemt at slette og ender på forsiden eller dit sitemap. Det vil irritere brugeren og meget ofte forlader de siden.

Derfor er det bedre at lave en specielt udformet side, der forklarer, at de desværre er endt på en slettet eller flyttet side – gerne med links til eventuelt kategorier på din hjemmeside, så de let kan surfe videre og finde det de faktisk ledte efter.

Brug 301 redirects til at få bedre pagerank

Dit website kan som udgangspunkt vises ved at skrive flere forskellige ”navne”, når der søges. Det er også muligt at linke til din forside på forskellige måder.

F.eks.:

http://www.nyecykler.dk
http://nyecykler.dk
http://nyecykler.dk/index.html

Søgemaskinerne opfatter de forskellige navne som forskellige udgaver af dit website og hvis der linkes forskelligt ind til dit website, vil den linkjuice der overføres lande forskellige steder, frem for at blive samlet ét sted.

Ved at fortælle søgemaskinerne hvilken version du foretrækker, kan du få dem til at samle alt indgående linkjuice til versionerne på én foretrukken version f.eks http://www.nyecykler.dk. Det giver teoretisk forbedret Pagerank.

Du kan løse problemet med følgende kode i din htaccess fil

# redirect non-www urls to www
RewriteEngine on
RewriteCond %{HTTP_HOST} ^nyecykler.dk [NC]
RewriteRule ^(.*)$ http://www.nyecykler.dk/$1 [L,R=301]

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9} /index.html
RewriteRule ^index.html$ http://www.nyecykler.dk/ [R=301,L]

Nu ender alt linkjuice på http://www.nyecykler.dk
Hvis der ved en fejl linkes til http://nyecykler.dk – så får du gavn af linkjuicen på www versionen.

Jamen er det da et problem tænker du sikkert.

JA

Ser du på et site med 3-4 år på bagen, vil der typisk være 30 til 40% links ind til versionen uden www foran. Der er dog sjældnere links ind til index.html.

Tag den et skridt videre og redirect din index.html også

Nu har du kun én version af dit website – og dog.
Denne uendelige redirect pine vil da heller ingen ende tage, men fat mod, du mangler kun en enkelt ekstra, så er din index fil også redirectet.

Indsæt denne kode FØR din www / non-www kode . Kommer du til at ligge den ind nedenunder looper redirecten rundt og sløver dit site ned i Internet Explorer – ja og forvirrer Google mere end nødvendigt.

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9} /index.html
RewriteRule ^index.html$ http://www.nyecykler.dk/ [R=301,L]

Din samlede redirect fra http://nyecykler.dk til www.nyeykler.dk inkl. index.html redirect bliver således:

RewriteEngine on
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9} /index.html
RewriteRule ^index.html$ http://www.example.com/ [R=301,L]

RewriteCond %{HTTP_HOST} ^nyecykler.dk [NC]
RewriteRule ^(.*)$ http://www.nyecykler.dk/$1 [L,R=301

Tjek om din redirect virker

For at tjekke om din rediredts virker, er det nødvendigt, at du har indstillet din browser til altid at vis en ny version af websitet, hver gang det besøges.
Som standard er en browser f.eks firefox og Internet Explorer sat op til at lagre oplysninger når du surfer, for at gøre din surfning hurtigere.
Problemet er bare, at du får vist gamle udgaver af de websites du før har besøgt.
Når du så vil tjekke om din redirects virker præsenteres du derfor for den gamle version og det ser ud som om dine redirects slet ikke virker.

Det kan du ændre på nemt.

Klik på indstillinger i din browser og vælg under internetindstillinger browserdata, hvor du klikker indstillinger. Her sætter du kryds ved ”Hver gang jeg besøger et websted”
(Se screendump fra Internet Explorer herunder)

surf annonymt

Du kan også tjekke ved at benytte en HTTP header reader, som viser dig hvad der sker, når en browser eller en søgemaskine lander på dit domæne.
Indtast f.eks. det gamle domænenavn og se om oplysningerne ser korrekte ud, du kan benytte flere forskellige online tjenester og plugins til din browser.

Her kan du tjekke:

http://web-sniffer.net/

Hjælp Google til at forstå hvad det er du laver

Når du flytter et helt website eller ændre ønsket version af dit domænenavn, kan du hjælpe Google til at forstå dine manøvre.
I Googles webmaster værktøj (gratis at oprette og benytte) kan du ændre hvilken version du ønsker vist. Du kan vælge imellem www eller uden www version. Desværre kan index.html ikke peges på en ønsket version i værktøjet.

Du gør det under indstillinger og i visse tilfælde skal du bekræfte ejerskab af både www versionen af dit site og uden www versionen, for derefter at indstille til brug af én af versionerne.

Vil du flytte et helt website, skal du først bekræfte ejerskab over sitet og efterfølgende under indstillinger og adresseændringer indtaste flytningen til dit nye domænenavn.
Manøvren fungere i praksis meget dårligt uden manuelt at benytte en htaccess fil.

Selv flere uger efter du har angivet flytningen, vil Google stadigvæk efterleve de oplysninger der står i din htaccess fil og overrule, at du har indtastet flytning i værktøjet.

Derfor anbefales det at du lader det gamle domæne være aktivt med .htaccess filen i min 180 dage efter flytningen.

Beholder du ikke domænet aktivt, kan du også risikere, at det opkøbes af en konkurrent og redirectes dertil. Eller fyldes med deres indhold, i et ondsindet forsøg på at nappe dine kunder.

Indstillingerne i Google webmaster værktøjet læses i øvrigt KUN af Google og ikke alle de andre søgemaskiner f.eks Bing og Yahoo. (brug derfor .htaccess fil)

Ekstra .Htaccess tips

Du kan øge sikkerheden på dit website ved at tilføje en kode der gør din .htaccess fil lukket for læsning af andre end søgemaskiner og browsere.

Indsæt:
order allow,deny
deny from all

På samme vis kan du lukke af for dine kategorier, så der ikke kan snages, via en browser:

Options All -Indexes

Har du mange urls med mindre kønne navne, kan du ændre dem med rewrite regler.

Eksempel:

http://nyecykler.dk/index.php?product=productname&price=30

Ønskes lidt pænere og ændret til

http://nyecykler.dk/products/productname/30/

Det kan du gøre i et snuptag med følgende kodestykke:

[box style=”1 or 2″]RewriteEngine On
RewriteRule ^products/([a-zA-Z]+)/([0-9]+)/$ index.php?product=$1&price=$2[/box]

Begræns adgang med IP

Tillad kun forud definerede IP adresser adgang til specifikke mapper, kan f.eks bruges til at ligge nydesignede versioner online til præsentation overfor kunder.

order deny, allow
deny from all
allow from xx.xx.xx.xx

Slå Gzip til, så billedfiler kan komprimeres under load

AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml application/xhtml+xml text/javascript text/css application/x-javascript
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4.0[678] no-gzip
BrowserMatch bMSIE !no-gzip !gzip-only-text/html

Undgå andre hotlinker til dine billeder

RewriteEngine on
OnRewriteCond %{HTTP_REFERER} !^http://www.yoursite.com [NC]
RewriteCond %{HTTP_REFERER} !^http://yoursite.com [NC]
RewriteRule [^/]+.(gif|jpg)$ – [F]

koden sørger for, at billeder ikke vises korrekt, hvis de hotlinkes fra andre sites.

Hjælp søgemaskinerne over til dit .xml sitemap

Har du et dynamisk opdateret sitemap f.eks i WordPress, kan du vise alle søgemaskiner der kiger forbi, hvor det ligger.

< IfModule mod_alias.c >
RedirectMatch 301 /sitemap.xml$ http://nyecykler.dk/sitemap.xml
RedirectMatch 301 /sitemap.xml.gz$ http://nyecykler.dk/sitemap.xml.gz
< /IfModule >

Gør dit site hurtigere ved at ændre cache tiden

Har du et site, hvor du f.eks ikke skifter billederne med samme navne ud, eller meget sjældent ænder i teksterne på de gamle sider, ja så kan du udnytte brugerens egen browsercache og slippe for at de i øvrigt skal vente længe på load af tunge billeder.
(Mod_Expires modulet skal ligge på serveren)

Indstil koderne så de passer til netop dit site

### EXPIRES CACHING ###
02.
03.ExpiresActive On
04.
05.ExpiresByType image/jpg “access 1 year”
06.ExpiresByType image/jpeg “access 1 year”
07.ExpiresByType image/gif “access 1 year”
08.ExpiresByType image/png “access 1 year”
09.ExpiresByType text/css “access 1 month”
10.ExpiresByType application/pdf “access 1 month”
11.ExpiresByType application/javascript “access 1 month”
12.ExpiresByType application/x-javascript “access 1 month”
13.ExpiresByType text/x-javascript “access 1 month”
14.ExpiresByType application/x-shockwave-flash “access 1 month”
15.ExpiresByType image/x-icon “access 1 year”
16.ExpiresDefault “access 2 days”
17.
18.### EO EXPIRES CACHING ###

WordPress .htaccess tips

Gør det lettere at logge ind. Skriv bare login og ikke wp-admin.php
Måske knap så interessant, men virker godt for knap så rutinerede  brugere.

RewriteRule ^login$ http://nyecykler.dk/wp-login.php [NC,L]

Redirect de 4 typer katorier, der pr default returnere en 404 på en standard wordpress opsætning.:
RedirectMatch 301 ^/tag/$ http://nyecykler.dk/
RedirectMatch 301 ^/search/$ http://nyecykler.dk/ RedirectMatch 301 ^/category/$ http://nyecykler.dk/

Benytter du flere RSS FEED`så kan du vælge et af dem til at være canonical:
RedirectMatch 301 /feed/(atom|rdf|rss|rss2)/?$ http://nyecykler.dk/feed/
RedirectMatch 301 /comments/feed/(atom|rdf|rss|rss2)/?$ http://nyefykler.dk/comments/feed/