Bygning under konstrukltion - Photo by David McBee from Pexels

Ting du skal huske, når WordPress installationen er færdig

Det er utrolig nemt at installere en WordPress – det tager kun 5 sek, og vi har ingen interesse i at det tager længere tid…

Og så alligevel. Der er faktisk en del ting, du bør tage dig af, så snart installationen er færdiggjort. Det vil forbedre sikkerheden i din installation, og med den fokus der er på WordPress-installationer fra crackere og malware-producenter er det en rigtig god investering af din tid.

Andre af rådene optimerer ydelse og hastighed, og det hjælper også på din søgemaskineoptimering. Samtidig med, at det er til stor fordele for dine kommende brugere!

Noget af det er rimeligt langhåret, så hvis du føler dig på usikker grund er det måske en god ide at alliere dig med en professionel WordPress. Især, hvis det drejer sig om en professionel side f.eks. for din virksomhed.

Under alle omstændigheder skal huske en ting inden du går i gang: TAG EN BACKUP!

Det er ikke en komplet eller statisk liste – og den er heller ikke i prioriteret rækkefølge. ‘Best practises’ kan ændre sig løbende, så tag kun rådene som råd. Ikke perfekt visdom, der gælder for alle websteder.

Denne vejledning gælder kun egne installationer af WordPress, ikke blogs på WordPress.com. Og så har jeg sat som forudsætning, at din installation kører på en Apache. Det gør de fleste – og mange af rådene gælder også for andre webservere.

1. Skift standardmapper for medie upload

En standardinstallation af WordPress vil gemme alle dine billeder, dokumenter og andre uploaded filer i mappen wp-content/uploads.

Det er altid en god ide at have billederne liggende udenfor din WordPress mappe, helst i et subdomæne. Det giver flere fordele. Adressen (URL’en) til dine billeder bliver væsentligt kortere, din daglige backup bliver lettere at håndtere sidst, men ikke mindst vigtigt: når dine billeder kommer fra et andet domæne vil det tillade parallel download og derved forbedre tiden brugt på indlæsning af siden (page loading time).

WordPress giver ikke mulighed for at ændre stadardfolderen for medier, men der findes et Skift standardfolder for medie upload plugin, der kan løse den opgave.

Og husk så at fjerne krydset i “Organiser mine uploads i måneds- og årsbaserede mapper” –  se Indstillinger -> Medier.

2. Fjern unødvendig meta-data fra din WordPress

Hvis du kigger på kildekoden fra din WordPressside, så vil du finde en del metatags, der strengt taget ikke er nødvendige. For eksempel kan man se hvilken version af WordPress du bruger ved at kigge på sidens header.

<meta name="generator" content="WordPress 3.5.1" />

Den oplysning gør det betydeligt lettere for en hacker, der leder efter lidt ældre versioner af WordPress med kendte sikkerhuller. Og med den information er det meget hurtigere at skaffe sig adgang.

For at fjerne denne information, kan du tilføje disse tre linjer til den functions.php, der findes i mappen med dit tema  – eller du kan lave dit eget funktionsplugin, så ændringen ikke påvirkes af et tema-skifte:

remove_action( 'wp_head', 'wp_generator' ) ; 
remove_action( 'wp_head', 'wlwmanifest_link' ) ; 
remove_action( 'wp_head', 'rsd_link' ) ;

Du kan også installere WordPress SEO by Yoast, og under Avanceret -> Permanente Links markere de linjer du vil have fjernet.

3. Spær adgangen til at kigge i din WordPress mappestruktur.

Du har ingen interesse i at en udefrakommende kan kigge i dine WordPress mapper og filer, derfor bør du tilføje denne linje til den .htaccess fil, der ligger i roden af din installation.

Options All -Indexes

Og sørg for at der er en tom fil navngivet index.php i mapperne wp-content/themes og wp-content/plugins.

4. Deaktiver muligheden for HTML i WordPress kommentarer

Kommentarboksen i WordPress er en lille HTMLeditor og kommentarerne kan indeholde almindelige HTML koder som <b>, <a> og <i>. Det betyder mulighed for at lave links i kommentarerne. Hvis du ønsker at fjerne den mulighed kan du tilføje denne linje til filen functions.php i dit tema.

add_filter( 'pre_comment_content', 'wp_specialchars' );

5. Slå versionering af indlæg fra i WordPress

Versionsstyring i WordPress gemmer mange versioner af dine ændringer
WordPress har indbygget versionsstyring

WordPress indeholder en automatisk versionskontrol. Det giver dig mulighed for at gå tilbage til en tidligere version af et indlæg, hvis du senere fortryder en ændring – en ganske smart funktion, som jeg har gjort brug af flere gange.

Men hver enkelt version tilføjer en ny post i databasens wp_posts tabel og nedsætter dermed hastigheden ved opslag. Og da der kan være rigtig mange gamle versioner af et indlæg kan det ende med at være et problem.

For helt at slå versionskontrollen fra kan tilføje følgende linje til filen wp-config.php i roden af din installation:

define( 'WP_POST_REVISIONS', false);

Der er dog en gylden middelvej, som jeg vil anbefale du tager. Du har mulighed for blot at begrænse antallet af gemte versioner til f.eks. 5. så kan du vende tilbage til de seneste 5 udgaver og de vil ikke give nogen mærkbar ændring af hastigheden.

define( 'WP_POST_REVISIONS', 5);

det og meget mere kan du læse om i WordPres Codex: Rette i wp-config.php

6. Ændre intervallet mellem autogem

Mens du skriver dit indlæg i WordPress editoren, så gemmer den automatiske en kladdeversion af det. Så hvis din browser går ned eller du mister forbindelsen, så er ikke alt arbejdet spildt.

Som standard gemmes der en version hvert minut, men du kan forlænge den tid går mellem hver autogem til f.eks. 2 minutter. Dette angiver du ved at skrive det ønskede interval i wp-config.php i roden af din installation. Bemærk, at tiden angives i sekunder, altså her 120 for de 2 minutter.

define( 'AUTOSAVE_INTERVAL', 120 );

7. Skjul fejl på WordPress Login

Skjul brugerinfo ved forkert login

Hvis du taster et ikke-eksisterende brugernavn eller et forkert password under indlogning, så får du en meget detaljeret beskrivelse af, hvad der er årsagen til at du afvises; om det er brugernavnet eller koden, der er forkert. Det er noget skidt, for det gør det væsenligt nemmere at hacke sig ind.

Tilføj denne linje til dit temas functions.php for at skjule alle login-relaterede fejlmeddelelser.

function no_errors_please(){
  return "These are not the droids you're looking for. Move on!";
}
add_filter( 'login_errors', 'no_errors_please' );
Tilpas permalinks for bedre SEO

Lad være med at bruges den permalinkstruktur som WP kommer med som standard – det er ikke godt for dit websteds søgemaskineoptimering (SEO).

Gå ind under Indstillinger -> Permanente links i WordPress kontrolpanel og ret den til Indlægseksempel eller

/%postname%/

Har du meget – rigtig meget! – trafik på din hjemmeside og er bange for performance, er det en god ide at lade linket starte med post-id

/%post_id%/%postname%/

Desuden bør du lige læse lidt om permalinks hos Yoast, han har nemlig også lavet et lille værktøj til at generere den redirect, du bør lave i .htaccess, hvis du ændre permalinks på en eksisterende website.

9. Skift tidszone til by

For at være sikker på, at dit websted skifter mellem normal- og sommertid på de rigtige tidspunkter, så bør du vælge en by (København for de fleste danske installationer) frem for den specifikke tidszone.

Skift det under Indstillinger -> Generelt -> Tidszone

10. Skift dato- og klokkeslætsformat

For at sikre, at datoer og tidsangivelser vises i korrekt dansk format skal du ind under Indstillinger -> Generelt -> Datoformat.

Dansk standard skal hedder j. F Y ( 2. august 2019 ) for dato og G:i (8:22) for klokkeslæt.

Hvis ikke det står som mulighed – det bør hvis du har installeret dansk version – så kan vælge tilpasset og selv udfylde.

Du kan læse mere om formatering af dato og klokkeslæt i WordPress dokumentationen

11. Tilføj manglede favicon.ico og touch ikoner

Favicon er det ikon, der benyttes når man for bogmærker et websted; det vises på fanebladet, i adresselinjen og på linjen/menuen med bogmærker.

Dit tema indeholder måske ikke noget favicon – og hvis det gør, er det sikkert mere passende for temaet end for indholdet på dit websted.  Derfor bør du udskifte det med et mere passende ikon.

Her er den hurtige løsning: Placer et 16×16 favicon.ico og et 144×144 apple-touch-icon.png i roden på din WordPress. Tilføj så denne linje i din .htaccess for at videresende alle forespørgsler på et apple touch ikon til denne fil.

RedirectMatch 301 /apple-touch-icon(.*)?.png http://example.com/apple-touch.png

12. Forbyd indeksering af WordPress scripts

Du vil gerne have Google og andre søgemaskiner til at gennemtrawle og indekserer dit websteds sider – men ikke de forskellige PHP scripts, der bliver brugt af WordPress eller de forskellige plug-ins og temaer.

Find og åbn filen robots.txt i roden af din WordPress installation, og tilføj disse linjer for at blokere for søgemaskinernes robotters gennemgang af disse systemfiler. De har ingen værdi for søgemaskinerne og kan i værste tilfælde være en indgang for hackere.

User-agent: *
Disallow: /wp-admin/
Disallow: /wp-includes/
Disallow: /wp-content/plugins/
Disallow: /wp-content/themes/
Disallow: /feed/
Disallow: */feed/

13. Slet alle ubrugte temaer og plugins

Deaktiverede plugins og temaer koster ikke noget i forhold din side visningshastighed; det er der en del der tror, men det betyder faktisk ikke ret meget.

Men det er bør være et mål at have så lidt eksekverbar kode på websted som muligt. Det nedsætter risikoen for at have sikkerhedshuller eller inkompatibel kode.

Husk også at tjekke aktive plugins. Aktive plugins koster lidt i ressourcer og de er en meget større sikkerhedsrisiko, så dem skal du holde øje med. Hvis du skifter en funktion fra et plugin til et andet, så sørg som minimum for at deaktivere det gamle plugin – og sæt en aftale i kalender om sletning af det om en måneds tid!

Har du plugins, der kun bruges yderst sjældent – og kun af dig selv – så deaktiver dem. De bliver stadig opdaterede, men koster ikke noget i ressourcer. Det kan for eksempel være et plugin gendannelse af thumbnails i forbindelse med skift af tema. Det sker forhåbentligt ikke så tit, så det plugin kan sagtens være deaktiveret indtil du skal bruge det igen.

14. Opsæt Expiry Headers for statisk indhold

De statiske filer på dit WordPress websted – billeder, CSS, JavaScript osv – ændrer sig kun sjældent, og derfor bør du opsætte Expiry Headers for dem, så filerne bliver gemt i cachen (mellemlager) på den lokale enhed i længere tid en mere dynamisk indhold.

Det betyder, at næste gang den samme bruger kommer på dit websted (eller bare bladre til en anden side), så vil siden bliver læst hurtigere, da der ikke skal bruges tid på at hente de elementer, der allerede ligger gemt lokalt fra det sidste besøg. Er du interesseret i mere viden, så check denne HTML5 boilerplate skabelon med masser af eksempler.

Kan du klare dig med en skabelon til indsættelse i din egen .htaccess, så er her det jeg normalt tilføjer til en WordPress installation. Den indeholder mere end bare Expire Headers, så brug den med varsomhed – og kun hvis du har mulighed for at fjerne det igen, hvis det er årsag til en serverfejl.

https://gist.github.com/ellegaarddk/0014858ff05768aff145ecc701de705a#file-optimized-htaccess

15. Bedre sikkerhed for din WordPress Blog

Jeg plejer som minimum at installere Wordfence og Sucuri i gratis versionerne for at forbedre sikkerheden. Gå deres standardindstillinger igennem og tilpas om nødvendigt efter dit eget behov. Så er du langt bedre stillet end du var før!

Wordfence har et meget højt informationsniveau, så du skal nok lige justere mængden af notifikationer. Dit websted bliver højst sandsynligt forsøgt hacket rigtig tit og du behøver faktisk ikke at få besked, hver gang nogen forsøger. Det er nok at vide, når det er lykkedes. Eller når der sker en pludselig stigning i antallet af forsøg.

16. Deaktiver filredigering fra WordPress

Når du er logget ind som administrator, har du nem adgang til at redigere i de system og PHP-filer, der er tilknyttet dit websteds temaer og plugins.

Det er bare en meget farlig måde at gøre det på. Hvis nu du fx vælger at redigere din .htaccess med Expire Headers som nævnt ovenover, gør det inde fra WordPress og der så er en fejl – din server er måske ikke sat op på samme måde som min – så er du virkelig på den. For når WordPress går ned, så mister du også adgang til at redigere og kan altså ikke rette fejlen igen.

Hvis en hacker får adgang til din WordPress er det et problem. Men har hackeren så samtidig mulighed for at redigere i filer, så kan det gå rigtig galt!

Derfor bør al filredigering ske via FTP. Det er lidt mere besværligt, men så uendeligt meget mere sikkert.

For at fjerne denne mulighed skal blot tilføje denne linje til din wp-config.php – via FTP, selvfølgelig…

/* disable file editing from within WP */
define( 'DISALLOW_FILE_EDIT', true );