Nyheter, Prylar, Android, Mobiler, Appnedladdningar, Android

WordPress-länkoptimering: Intern, Extern, Nofollow och mer

Länkar är ryggraden i internet; det kallas “world wide web” på grund av webben av länkar, trots allt. Länkar kan avsevärt förbättra din ranking eller skada din webbplats prestanda. Det är vettigt att hantering av länkar är nyckeln till din övergripande strategi för webbplatstillväxt.

Jag har för avsikt att dyka djupt in i länkoptimering, de olika attribut och flaggor de kan ha, och vilka bästa praxis du bör överväga för din webbplats länkar. Spänn fast; det här kan bli lite tekniskt.

30 sekunders sammanfattning

Länkar formar din webbplats prestanda oerhört. Vi kan klassificera dem i fyra typer: on-page, interna, externa och bakåtlänkar. Dessutom kan de ha attribut som förmedlar instruktioner till sökmotorer, som “nofollow” och “sponsrad”. Effektiv hantering av dessa länkar och deras attribut är viktigt för webbplatsens tillväxt. Detta innebär att man på lämpligt sätt använder olika verktyg som functions.php-fil, WordPress-plugins och kanske till och med anpassad kod för att lägga till, ändra eller ta bort attribut från dina länkar efter behov.

Snabböversikt: De fyra typerna av länkar

Du kan tänka på länkar i fyra former i stora drag. Varje typ bestäms av var länken börjar och slutar.

De är:

  1. Länkar på sidan. Det här är länkar som de i min innehållsförteckning ovan; de tar dig från en plats på sidan till en annan på samma sida, utan laddning eller andra förseningar. Länkar på sidan är också kända som hopplänkar eller ankarlänkar.
  2. Interna länkar. Dessa länkar kommer från en sida på din webbplats och går till en annan sida på din WordPress-webbplats. Till exempel tar den här länken dig till en annan sida på min sida.
  3. Externa länkar. Dessa länkar kommer från din sida och leder till en annan domän. Här är en just nuoch pekar på Moz.coms diskussion om vad externa länkar är.
  4. Bakåtlänkar kommer från en annan webbplats och pekar på din webbplats. Till exempel, min Forbes-profil har en bakåtlänk till min hemsida. Vi länkar båda externt till varandra, men vi ger också båda varandra en bakåtlänk.

Alla dessa typer av länkar är viktiga på olika sätt. Länkar på sidan är navigerande och har en viktig roll i användarupplevelsen. Interna länkar hjälper till att hålla människor på din WordPress-webbplats och cirkulera genom ditt innehåll, plus att de utgör grunden för dina uppmaningar. Externa länkar hjälper dig att säkerhetskopiera dina påståenden och ge användarna ytterligare läsning om ämnen som du fortfarande behöver ta upp. De hjälper dig också att bygga upp dig själv som en del av det större samhället. Bakåtlänkar är en viktig källa till sökmotoroptimeringsvärde och hjälper till att kantra trafik från andra webbplatser till din.

Länkens ursprung och destinationer är dock bara några av de kritiska delarna. Det finns också alla möjliga länkattribut knutna till dem, några lagts till av WordPress och några av externa källor.

Länkattribut (och hur de kan hjälpa eller skada)

I HTML är en länk en “A”-tagg, eller Anchor-tagg, med ett href-attribut som pekar på destinationen, vilket kan vara allt från lägre på sidan till en annan webbplats till andra appar (som hur mailto:-länkar öppnar ditt e-postprogram .)

Ankartaggen kan lägga till olika ytterligare kodattribut. Några av dem är vanliga, några av dem är sällsynta och några av dem är utfasade. Det finns för många för mig att gå över här, men jag ska täcka de vanligaste du kan se.

  • Mål: “_self”: Detta öppnar länken i det aktuella webbläsarfönstret och ersätter den renderade sidan.
  • Mål:”_blank”: Detta öppnar länken i en ny flik eller ett nytt fönster, beroende på hur din webbläsare är konfigurerad.

Dessa två attribut utesluter varandra och bestämmer hur länken beter sig när den klickas. Hur ofta har du klickat på en länk, haft den öppen på en annan flik, fortsatt att läsa fliken du läste och timmar senare insett att den andra fliken fortfarande var öppen och stängde den utan en tanke? Det finns en viss debatt om vilket som är bättre, och åsikterna har förändrats under åren. Jag tror att target=”_blank” är bättre för att hålla användarna fokuserade på innehållet de bläddrar i.

Å andra sidan tror vissa människor att det är det bättre beteendet; genom att förhindra att ett klick på en länk ersätter ditt fönster, håller du folk på din webbplats i stället för att gå vidare till andra webbplatser.

På grund av detta tror vissa att externa länkar ska vara _blanka och interna länkar ska vara _jag. Det spelar inte så stor roll att göra ett väsen av det.

1. Rel=”nofollow”

Nofollow är det första av “rel” (relation)-attributen, ett av de mest välkända bland SEO-proffs. Nofollow är ett attribut som är relevant för Google och de andra sökmotorerna och talar om för sökmotorerna att du inte har för avsikt att passera länkbehörighet eller gå i god för den länken. När du länkar till en sida utan nofollow förs en del av värdet på din webbplats vidare till destinationssidan. På samma sätt, när någon annan länkar till din webbplats, överförs en liten del av länkkapitalet och auktoriteten till din webbplats. Denna praxis är en viktig del av hur Google bedömer kvaliteten och relationerna mellan webbplatser och är en betydande aktör i hur en webbplats ska växa.

Så, vad händer om du länkar till en webbplats som du vill använda som exempel eller demonstration men inte nödvändigtvis garanterar webbplatsen eller vill att webbplatsen ska dra nytta av den? Att lägga till länken som en icke-hyperlänkad vanlig text-URL kan fungera, men det är tråkigt och irriterande för användare att besöka den sidan utan en länk. Google uppfann nofollow för att lösa detta problem.

Nofollow säger åt Googles sökrobotar att inte följa länken eller skicka värdet längs kedjan. Vanligtvis använder du detta på länkar som användare kan skapa (som i bloggkommentarer eller på webbforum) och på länkar till sidor du inte vill marknadsföra, som mindre eller mindre pålitliga webbplatser, länkar som du inte vill ska vara misstolkas som alltför reklam, eller en länk som du använder som dåliga exempel.

Du kan använda nofollow frikostigt, men du vill inte använda nofollow på varje länk. Till exempel, nofollowing en länk till en framstående webbplats är inte mycket meningsfullt om det är ett stort hushållsnamn.

Jag skrev en hel guide om när och hur man använder nofollow, så kolla in den.

2. Rel=”sponsored” och Rel=”ugc”

Dessa två är varianter av nofollow. Tidigare använde webbplatsägare nofollow för alla bakåtlänkar som de inte ville räknas för SEO. Google bestämde sig för att de ville ha mer differentiering, så de lade till dessa två. Sponsrad är uppenbarligen för sponsrade länkar; saker som affiliate-länkar och länkar i sponsrat innehåll. Den har samma grundläggande beteende som nofollow (den slutar skicka länkjuice), men den ger Google mer information om varför.

På samma sätt är UGC en annan variant, användargenererat innehåll. Den här taggen är vad du använder för länkar som användare kan skapa på din webbplats, som länkar i kommentarer. De flesta kommentarssystem lägger till detta automatiskt om de ens tillåter länkar i första hand.

3. Rel=”noopener” och Rel=”noreferrer”

Dessa två attribut är något som, om du har tur, aldrig har behövt ta itu med tidigare. Om du inte har tur kan de vara jobbigt, eftersom vissa program automatiskt inkluderar dessa taggar, som Grammarly.

Noreferrer är en tagg som tar bort hänvisningsinformation från en länk. Så när någon länkar till dig från en annan webbplats och en användare klickar på den länken, visas den i din Google Analytics som en hänvisning. Denna information kan vara användbar så att du vet var din trafik kommer ifrån och hur effektiva olika typer av länkar är. Om länken har “noreferrer” bifogad, tar den trafiken bort hänvisningsdata. Det visas i din analys som direkt trafik – som om användaren skrev in din URL direkt i adressfältet.

Som sökmotoroptimerare är en stor del av vår kamp med analyser att tillskriva trafik. Det är därför vi använder UTM-parametrar så mycket, bland andra tekniker. Så ett attribut som tar bort allt detta är irriterande.

Ännu värre, den här taggen kan ruin dina analyser om de lämnas på dina interna länkar. När någon klickar på en intern länk, men Google Analytics tror att den kommer från direkt trafik, kommer du att snedvrida din trafikstatistik.

Noopener är lite annorlunda. Allt det gör är att förhindra målsidan från att göra konstiga saker för att kapa sidan som länkar till den. Du kan läs mer om det här. Det är en tyst säkerhetsfunktion. Den typen av attacker är sällsynta nuförtiden, men det skadar inte att ha dem i närheten.

Så här är de dåliga nyheterna. När du kopierar en artikel till WordPress (oavsett om den är från Word, Google Drive eller Grammarly) kan den dra in HTML och länka taggar som du inte nödvändigtvis ville ha i ditt innehåll. Så om du vill att dina länkar ska vara rena måste du berätta för WordPress att inte göra det.

Grammarly gör detta om du använder deras webbgränssnitt. Säg att du kopierar ett blogginlägg till Grammarly för att kolla upp det, redigerar det och kopierar det sedan tillbaka. De resulterande länkarna kommer att lägga till dessa attribut eftersom Grammarly inte vill ses som någon exploaterande källa till bakåtlänkar när någon klickar på en under redigering. Grammatik är inte den enda; andra verktyg som används på liknande sätt gör detta också. Du bör alltid dubbelkolla.

Jag postade en lösning på detta lite senare i den här artikeln.

4. Rel=”next” och Rel=”prev”

Dessa två är enkla och dyker upp mindre ofta än de brukade. Nuförtiden finns de oftast i bloggarkiv, sökresultat och produktlistor. De är taggar på länkarna “nästa sida” och “föregående sida”.

I praktiken säger de till Google att indexsida 2 inte är en nästan dubblett av indexsida 1; det är ett paginerat system, och det bör inte straffas för duplicerat innehåll. I WordPress läggs dessa vanligtvis till automatiskt av SEO-plugins som Yoast.

Google lanserade denna uppmärkning 2011 men slutade stödja det 2019. Dessa taggar skadar ingen, men Google tittar inte på dem längre.

Hur man hanterar länkar på lämpligt sätt

Att hantera dina länkar, interna och externa, är förvånansvärt avgörande för SEO. Det går inte att göra fel förstöra din webbplats, men det kan göra det svårare att växa.

Mina rekommendationer är att ta bort eventuella ytterligare flaggor från interna länkar. De kan öppnas i samma fönster; det är okej. Det skulle vara bäst om du inte gjorde interna länkar nofollowed eller gjorde någon konstig attributhantering på dem.

Under tiden vore det bäst om du taggade externa länkar på lämpligt sätt. Genom att använda target=”_blank” kan människor öppna användbara länkar på en ny flik utan att lämna din webbplats för alltid, och att använda lämplig nofollow/sponsrad/ugc-tagg är avgörande för Googles syn på din webbplats. De andra olika taggar är situationsbetingade.

Du kan använda några olika verktyg och alternativ för att hantera dina länkar. Här är några jag gillar.

Denna anpassade kod

Du lägger till en regel för omformatering av webbadresser med bred slag i din functions.php-fil.

En av mina kunder skrev den här koden för att lösa det här problemet (tack, Brett!). Den tar bort attribut från interna länkar och lägger till _blank till externa länkar utan att krångla med andra attribut.

Den här koden lägger också till CSS-klassen NO_MODIFY, som du kan lägga till i specifika länkar för att tala om för skriptet att ignorera dem. Det är ett praktiskt sätt att hantera dina länkar i bulk, speciellt om du har en äldre webbplats med tusentals länkar som du behöver granska manuellt. Anta att du någon gång har kopierat innehåll från programvara som Grammarly till WordPress. I så fall är chansen stor att du har dessa irriterande noopener- och noreferrer-taggar på dina interna länkar, vilket kommer att påverka din Analytics och din rapportering negativt. Det här lilla kodavsnittet fixar det på hela din webbplats!

/**
 * Modifies internal/external links. Strips target and rel from internal links 
 * so that they are not opened in a new window. Adds target="_blank" to external
 * links so that they are opened in a new window.
 * 
 * If this behavior is not desired on a link add the CSS class NO_MODIFY to the 
 * link.
 */
function modifyLinks(string $htmlString, array $internalDomains) {
	$html = new DOMDocument();
	@$html->loadHTML($htmlString, LIBXML_HTML_NOIMPLIED | LIBXML_HTML_NODEFDTD);
	foreach($html->getElementsByTagName('a') as $a) {
		// skip links that have a CSS class of NO_MODIFY
		if (strpos($a->getAttribute('class'),'NO_MODIFY') !== false) {
			continue;
		}

		$url = parse_url($a->getAttribute('href'));
		if (empty($url['host']) || in_array($url['host'], $internalDomains)) {
			// Internal Link
			$a->removeAttribute('target');
			$a->removeAttribute('rel');
		} else {
			// External Link
			$a->setAttribute('target','_blank');
		}
	}
	return $html->saveHTML($html->documentElement);
}
add_filter('the_content', static function($content) {
	return modifyLinks($content, array('domain.com','subdomain.domain.com'));
},99);

Uppdatera: Om du inte vill använda loadHTML kan du använda den här nya versionen (tack igen, Brett!). Problemet är att loadHTML gör mer än att ladda din HTML; den analyserar den, och om den är felaktig så försöker den fixa den, vilket kan orsaka fel. Här är regexversionen:

function modifyLinks(string $htmlString, array $internalDomains) {
    $pattern = '#<a(.+?)href[\n\r\s]*=[\n\r\s]*(\'|")(.*?)(\'|")([^>]*)>#i';
    preg_match_all($pattern, $htmlString, $matches, PREG_OFFSET_CAPTURE);

    for($i=count($matches[0])-1; $i>0; $i--) {
        $originalTag = $matches[0][$i];
        $beforeLink = $matches[1][$i];
        $href = $matches[3][$i];
        $afterLink = $matches[5][$i];
        $urlComponents = parse_url($href[0]);

        // Skip if the tag has a class of NO_MODIFY
        if(strpos($originalTag,'NO_MODIFY') !== false) {
            continue;
        }

        // Remove target="" from the tag
        $beforeLink[0] = preg_replace('#target=(\'|").*?(\'|")#i','', $beforeLink[0]);
        $afterLink[0] = preg_replace('#target=(\'|").*?(\'|")#i','', $afterLink[0]);

        if (empty($urlComponents['host']) || in_array($urlComponents['host'], $internalDomains)) {
            // Internal Link
            // Remove rel="" from internal links
            $beforeLink[0] = preg_replace('#rel=(\'|").*?(\'|")#i','', $beforeLink[0]);
            $afterLink[0] = preg_replace('#rel=(\'|").*?(\'|")#i','', $afterLink[0]);
        } else {
            // External Link
            $afterLink[0] .= ' target="_blank"';
        }

        // Replace the <a> tag with the modified one.
        $htmlString = substr_replace($htmlString, '<a'.$beforeLink[0].'href="'.$href[0].'"'.$afterLink[0].'>', $originalTag[1], mb_strlen($originalTag[0]));
    }

    return $htmlString;
}
add_filter('the_content', static function($content) {
    return modifyLinks($content, array('yourdomain.com','sub.yourdomain.com'));
},99);

Kom ihåg att ersätta domain.com och subdomain.domain.com med ditt/dina domännamn. Du kan lägga till så många underdomäner som du vill, om du använder dem, eller så kan du ta bort underdomändelen från arrayen.

När du har gjort det, ploppa den i botten av din functions.php-fil, och den kommer automatiskt att rensa upp dina länkar! Det bästa är att du kan ångra detta när som helst, så det gör inte permanenta ändringar i ditt innehåll eller din databas.

Externa länkar i nytt fönster / ny flik

Detta plugin ställer in en URL-omskrivningsregel på din webbplats så att WordPress kommer att ställa in alla externa länkar till mål _blank istället för att öppna i sig själv. Den använder jQuery och är strikt XHTML-kompatibel (även om det bara är ett fåtal som bryr sig om XHTML-efterlevnad nuförtiden).

Det är ett enkelt plugin som fungerar på hela din webbplats, så även de sociala länkarna i sidfoten öppnas i en ny flik.

Notera: Om du använder den anpassade koden ovan behöver du inte detta plugin; det gör detta åt dig.

Broken Link Checker

Denna aktiva övervakning av WordPress-plugin indexerar och kontrollerar alla länkar på din webbplats rutinmässigt för att se om de löser sig. Om de går sönder av någon anledning får du en varning och du kan kontrollera om webbplatsen bara tillfälligt är offline, om den är en falsk positiv eller om webbsidan du länkade till faktiskt har tagits bort.

Trasiga länkar (länkar som inte fungerar) är ganska irriterande för användare, och de dyker upp mycket ofta på webbplatser äldre än några år eller med omfattande listartiklar som länkar till olika plugins och appar. Denna plugin kan vara en välsignelse för att identifiera och fixa trasiga länkar.

Notera: Den enda nackdelen är att detta plugin är lite resurskrävande för vissa webbvärdar. Jag upptäckte att vissa delade värdleverantörer som Kinsta och WP Engine förbjuder detta plugin eftersom de inte vill att det ska sakta ner deras andra kunders webbplatser, och vissa av våra kunder kan inte använda det av den anledningen.

Link Whisperer

Interna länkar är oerhört viktiga för användarupplevelsen och din försäljningsprocess. Ändå är det ibland svårt att dra nytta av alla möjliga interna länkningsmöjligheter du har. Du kanske har glömt när du har tagit upp specifika ämnen eller äldre inlägg som kan vara relevanta, så du länkar inte till dem.

Detta plugin gör ett grovt index över din webbplats och dess innehåll. Sedan, när du skriver och redigerar inlägg i WordPress, identifierar den när du använder relevanta sökord och kanske kan länka till ett inlägg någon annanstans på din webbplats. Det är instrumentellt, och jag rekommenderar det starkt till alla som är seriöst om innehållsmarknadsföring och med en webbplats med många bra blogginlägg redan på den.

Notera: Link Whisperer är inte perfekt, och några av dess rekommendationer kan vara läckra. Vänligen läs var och en av dem noggrant och inkludera endast länkar som är relevanta för meningen som den markerade. Du bör inte ta alla dess rekommendationer, och detta bör bara förstärka dina befintliga interna länkningsmetoder, inte ersätta dem.

Med dessa verktyg har du mycket lättare att hantera dina länkar. Därifrån måste du lära dig när du ska använda vilka attribut och upprätta en process för att på lämpligt sätt flagga dem när du producerar nytt innehåll.