Bättre schemaläggning i WordPress

Om man vill schemalägga uppgifter i Unix/Linux-baserade system så använder man något som heter Cron. På samma sätt har WordPress en egen lösning för schemaläggning, som heter WP-Cron.

WP-Cron ser till att WordPress letar efter uppdateringar, publicerar schemalagda inlägg och utför diverse andra uppgifter (t ex kontrollerar trasiga länkar med Broken Link Checker).

Fördelen med WP-Cron är att det funkar överallt. Det är långt från alla webbhotell och servermiljöer som tillåter schemaläggning av uppgifter hur som helst. Nackdelen är att WP-Cron kör varje gång en sida laddas i WordPress, vilket kan orsaka onödig belastning (läs: ge en långsammare hemsida).

Det är dock enkelt att rätta och förbättra schemaläggningen i WordPress.

– Inaktivera schemaläggning via WP-Cron

Börja med att inaktivera WP-Cron, genom att lägga in följande kodrad i wp-config.php.

define('DISABLE_WP_CRON', true);

– Schemalägg via riktiga cron istället

Om du kör WordPress på en Linux-baserad server (vilket du bör göra) och har åtkomst till servern via SSH, så kan du starta crontab (en redigerare för cron) via terminalen med följande kommando.

crontab -e

När du har valt en redigerare (välj t ex ”nano”), lägg in nedanstående rad längst ner i filen.

0 * * * * cd /hemkatalog-för-min-hemsida; php -q wp-cron.php

Ersätt ”/hemkatalog-för-min-hemsida” med den fullständiga sökvägen till hemkatalogen för din hemsida, t ex /var/www/minhemsida.se (från roten). Spara och stäng till sist filen.

Därefter kör WP-Cron en gång varje heltimme, via PHP direkt på servern. Det går att köra WP-Cron med anrop mot webbplatsen t ex via wget, men då påverkas webbservern/besökare i onödan.

Att schemalägga uppgifter via cron är även möjligt att få till via kontrollpanelen hos vissa webbhotell. Om du inte känner dig bekväm med SSH/terminal, använd det istället.

Ett litet, men naggande gott, fel i PHP

Sprang på ett lagom irriterande fel i ett WordPress-tillägg under helgen som gick. Med felmeddelandet ”Cannot modify header information – headers already sent” som enligt bl a WordPress Codex, FAQ Troubleshooting betyder att det finns tecken före/efter php-taggarna.

Öppnade den berörda filen med ett flertal olika textredigerare, men lyckades inte hitta dessa tecken. Körde till slut följande kommando i en terminal:

less filnamn.php

Och såg då att filen inleddes med ”<U+FEFF>”. Vilket innebar att filen teckenkodades med UTF-8 BOM istället för enbart UTF-8. Försökte lösa det genom att skapa en ny fil, med samma innehåll, men felet kvarstod. Googlade då lite och hittade denna lösning (via en terminal):

sed -i '1s/^\xEF\xBB\xBF//' filnamn.php

Laddade upp filen, laddade om WordPress och vips så var felet borta.

Bästa sättet att skicka e-post via WordPress

Bättre e-post med WordPressAtt skicka e-post via WordPress är inte alltid så enkelt.

E-post som hanteras via WordPress, såsom användarregistreringar och kontaktformulär, skickas som standard via en e-postfunktion i PHP (PHPMailer) på den webbserver som hanterar webbplatsen ifråga.

Detta är, i min mening, ett direkt felaktigt beteende.

E-post är en av de mest komplexa tjänster som finns på Internet. Inte för att det är svårt att hantera en e-postserver nuförtiden (som när jag satte upp Sendmail på Loopia en gång i tiden), utan för att det finns så många olika spamfällor.

Mer än hälften av all e-post är skräppost (spam). Därför motverkas spam med SPF, svartlistor, innehåll/beteendeanalyser, SMTP-portblockeringar och mycket mer. Att fastna i ett spamfilter, även med legitim e-post, är väldigt enkelt.

För störst chans att skicka e-post framgångsrikt bör man använda en renodlad e-postserver. En korrekt uppsatt e-postserver underhålls och hanteras oftast så att spamfilter inte biter på den. Detsamma går inte att säga om webbservrar, som ofta spamklassas och saknar rutiner för felhantering av e-post.

– Hur rättar man då denna (felaktiga) hantering av e-post i WordPress?

Jo, med ett WordPress-tillägg. Det tillägg som jag använder (och har översatt till svenska) heter WP Mail SMTP. Det är det mest populära tillägget för e-posthantering i WordPress, med över 700 000 aktiva installationer.

WP Mail SMTP installeras/aktiveras enkelt via wp-admin. Inställningarna för tillägget hanteras därefter under ”Inställningar” och ”WP Mail SMTP”. Så här ser mina inställningar för WP Mail SMTP ut:

Inställningar för WP Mail SMTP

Alternativet ”Övrig SMTP” är det som de flesta bör välja, med undantag för Google-användare. SSL/TLS är ett måste, annars skickar man sitt lösenord i klartext över nätet. Övriga uppgifter är nog rätt så självförklarande (och något man får från sin e-postleverantör).

Det som främst är värt att notera här är hur lösenordet hanteras. Istället för att ange/spara det i wp-admin så är det inlagt i wp-config.php (WordPress’ konfigurationsfil) med följande två rader:

define( 'WPMS_ON', true );
define( 'WPMS_SMTP_PASS', 'mitthemligalösenord' );

När man har lagt in sina uppgifter under inställningarna så bör man även testa e-postfunktionen under fliken ”Test av e-post”. Om man senare upplever problem med e-posten så kan man här enkelt testa om det beror på e-postservern eller WordPress.

Håller du med eller är du av annan åsikt än mig? Lämna gärna en kommentar nedan!

Snabb, snabbare, Servebolt

Jag är som Google. Jag älskar snabba hemsidor.

Det finns många olika områden att fördjupa sig inom vad gäller servrar, hemsidor, WordPress osv. Det jag brinner för, det som främst har intresserat och engagerat mig de senaste 7-8 åren, är optimering av servrar och hemsidor. Med fokus på WordPress.

En snabbare hemsida är bra på så många olika sätt.

Man får bättre placeringar i sökmotorer med en snabbare hemsida. En snabbare hemsida ger fler (och mer nöjda) besökare. Samt fler affärer, konverteringar och avslut. Allt med en snabbare hemsida.

En snabbare hemsida går hand i hand med mycket annat.

Med HTTP/2 (som används vid optimering) är SSL ett måste, vilket ger högre säkerhet och SEO-fördelar. Tillgänglighet/accessibility handlar mycket om korrekt datahantering, vilket likaså ger en snabbare hemsida (du har väl hört om webbtillgänglighetsdirektivet?).

Jag har spenderat hundratals, om inte tusentals, timmar på att optimera hemsidor och servrar. Det har blivit många långa och sena kvällar/nätter framför en skärm, ibland enbart för att hyvla av några extra kB eller få upp PageSpeed-score någon enskild poäng.

Det var även orsaken till att jag skrev 50-60 inlägg/guider om optimering, hos webbhotellet med en sköldpadda som maskot. Förutom mina föreläsningar på WordCamps, WordPress-meetups, mässor, partnerträffar osv. Samt svensk översättning av tillägg som Autoptimize.

En snabb hemsida är en bra hemsida helt enkelt.

ServeboltDet är nu därför med stor glädje som jag kan berätta om min nya tjänst, hos Servebolt.

Servebolt erbjuder världens snabbaste hantering av WordPress, WooCommerce, Magento, Drupal m.m. De har en unik tjänst, med en teknisk plattform som är specifikt anpassad för detta. Servebolt är fullt av optimerings- och WordPress-älskande människor, precis som jag.

Min uppgift är att etablera Servebolt i Sverige.

Om du har en hemsida eller e-handelssida som förtjänar det bästa så ska du spana in Servebolt. Jag har jobbat med många olika leverantörer av servrar och webbhotell, men ingen – absolut ingen – är lika snabb som Servebolt. Och det utan cache (!) dessutom.

Sedan är det en sak till.

Jag arbetar med Servebolt till 80 %. Resterande tid lägger jag på ett eget projekt, även det avseende snabbare hemsidor. Där Servebolt är för de företag som är seriösa med sina hemsidor/e-handelssidor så är mitt andra projekt avsett för entusiaster.

Snabbare hemsida för alla, oavsett leverantör.

Jag har arbetat med mitt andra projekt ”i tystnad” ett bra tag och har en riktigt bra plan för detta likväl. Det är dock inte riktigt redo för lansering än. Men så snart det sker, då får ni höra om det här.

2018 lär svenska hemsidor bli avsevärt snabbare. 😉

Kanske borde tänka om.

Under Kristi flygare körde jag Värmdö – Tjörn, ca 50 mil enkel väg, med vår pickis. Det var högljutt, eländigt, långsamt, skakigt, varmt och rakt igenom obekvämt.

Saab 9-3X i Norrland

Denna vecka körde jag Värmdö – Norrland-någonstans, ca 100 mil enkel väg, med vår 9-3X. Det var svalt, skönt, tyst, snabbt och otroligt bekvämt.

Och jag som tänkte sälja Saaben. Hmm.