Søg på siderne...

Klint WebDesign - Logo
Canonical og noindex med Joomla Custom Fields - For bedre SEO

Undgå duplikeret indhold i indekseringen

- helt uden ekstra udvidelser

Den ny Router i Joomla er blevet meget bedre. Men selv om vi bruger SEF - søgemaskinevenlige, URL'er og Rewrite - .htaccess, og undlader ID i URL, kan vi stadig tilgå de enkelte artikler på flere URL'ere, hvis vi ikke opretter en redirect / omdirigering. Det gælder også, selvom du i indstillingerne vælger ikke at vise artikel id i URL'en. 

canonical kode joomla

Derfor er canonical og noindex eller redirect noget af det allervigtigste i forhold til SEO. Ved at bruge canonical og noindex undgår du at søgemaskinerne straffer dig for duplikeret indhold.

Med Joomlas Custom Fields og Overrides / Tilsidesætninger kan du selv tilføje begge dele til de enkelte artikler, hvis du ikke er bange for at lege lidt med det. De bliver ikke ændret ved opdateringer, og hvis du kommer til at kludre i det, kan du bare slette filen igen og starte forfra.

Du skal naturligvis være opmærksom på, at rette Canonical URL, hvis du laver ændringer, som påvirker URL'en - eks. på kategori eller menu.

canonical kode joomla


Samme indhold som på en anden hjemmeside kan være OK

Hvis du af den ene eller den anden årsag kan få fat i noget indhold, som dine brugere gerne vil læse, så vil det stadig være med til at skabe trafik på din hjemmeside ved f.eks. at linke fra Facebook, Twitter eller andre medier. Derved giver brugernes besøg på siden stadig mulighed for en masse linkjuice - udtryk for positiv indflydelse på din sides rank på søgemaskinerne, hvis de klikker videre på din side.

Jeg bruger også Overrides / Tilsidesætninger til flere andre elementer i head - du kan se eks. på Twitter Cards og Open Graph nederst i denne artikel


Hele nedenstående Step by Step er lavet på en standard Joomla installation med demo indhold.


Step 1 - Opret feltgruppe

  • Klik på Content / Indhold
  • Vælg Field Groups / Feltgrupper

opret feltgruppe 1

  • Vælg New / Ny

opret feltgruppe

  • Navngiv Field Group / Feltgruppe "Head" - så vi ved, hvad felterne skal bruges til
  • Angiv Discription / Beskrivelse
  • Save & close / Gem & luk

opret feltgruppe beskrivelse

Step 2 - Opret et nyt felt

  • Vælg Field / Felt
  • Klik på New / Ny
  • Navngiv Canonical URL - så vi kan genkende det
  • Type / Type skal være "URL (url)"
  • Description / Beskrivelse - den vises som tooltip
  • Shemes - vælg HTTP og HTTPS
    Begge dele er vigtige, hvis du f.eks. laver en artikel med indhold, som allerede er udgivet på en anden side. Så er det URL'en til denne side, som skal være Canonical URL
  • Relativ skal være No / Nej - Canonical links skal være hele URL'en

field canonical url general

  • Vælg Options / Indstillinger
  • Angiv Placeholder / Pladsholder - hjælpetekst, som vises ved Content: Edit / Artikel: Rediger
  • Vælg Do not automaticly display / Vis ikke automatisk
  • Vælg Save & Close / Gem & luk

field canonical url optiens

  • Field / Felt er nu oprettet og klar til brug

oprettet felt

Step 3 - Opret en ny artikel

  • Klik på Content / Indhold > Articles / Artikler > Add New Article / Tilføj ny artikel
  • Navngiv Article / Artikel
  • Som du kan se, er en ny Tab / Fane med feltgruppens navn "Head"

artikel med felt fane rediger

  • Når du har gemt artiklen, skal du gå Frontend og vælge visning af artiklen via menuen
  • Når siden vises med den ønskede URL, skal du kopiere hele URL'en
  • Bemærk at vi har valgt ikke at have id i URL'en.
  • Hvis du bruger blog visning med læs mere, kan du alternativt kopiere linket derfra.

canonical url

  • Indsæt sidens URL i feltet Canonical URL
  • Hvis peger på label Canonical, vises tooltip
  • Vælg Save / Gem - du skal ikke lukke endnu

artikel canonical url


Step 4 - Opret tilsidesætning

  • Åben et ekstra Amin vindue på en ny fane
  • Vælg Extensions > Templates > Templates / Udvidelser > Skabeloner > Skabeloner

udvidelser udvidelser skabeloner menu

  • Her vises Templates: Edit / Skabeloner: Brugerdefiner (Din template)

skabeloner brugerdefiner

  • Vælg Create Overrides / Opret tilsidesætning
  • Klik på com_content og derefter article. Så oprettes mappe og filen

opret tilsidesaetning artikel

  • Klik på html, article
  • Vælg default
  • Når filen er åbnet i editor'en, skal du vælge Rename / Omdøb
  • Navngiv canonical
  • Vælg Rename / Omdøb

artikel brugerdefiner omdoeb default


Step 5 - Indsæt kode i kodeeditor

  • Koden som sørger for, at meta link canonical blive indsat i , skal indsættes lige efter JHtml::_('behavior.caption'); og før ?>

artikel brugerdefiner canonical ny kode placer

  • Indsæt nedenstående kode
  • HUSK at erstatte "Custom Field ID" med ID nr. for feltet Canonical URL på Din side

  • PS - Enkelte browsere gengiver ikke nedenstående kode korrekt. Tjek om den stemmer overens med det efterfølgende billede, som er et screen shot.

//Tjek Custom Fields for Canonical URL
foreach ($this->item->jcfields as $field) {
   if ($field->id === 'Custom Field ID') { // ID skal være Custom Field ID nr. for feltet Canonical URL på Din side
      //Tjek at Custom field ikke er tomt
      if ($field->rawvalue !== '') {
          $canonicalLink = '<link rel="canonical" href="' . $field->rawvalue . '" />'; $canonicalURL = $field->rawvalue;
          $document = JFactory::getDocument();
          $document->addCustomTag($canonicalLink);
      }
      continue;
   }
};

  • Vælg Save / Gem - du skal ikke lukke. Vi skal tilbage igen.

artikel brugerdefiner canonical ny kode kode


Step 6 - Tilpas indstillinger i artiklen

  • Gå tilbage til artiklen og opdater siden
  • Vælg Options / Indstillinger
  • Nu kan du vælge canonical - filen, som du lige har lavet.
    Når den er valgt, er det den, som styrer, hvad der bliver vist.
  • Hvis uheldet er ude, så du får en blank side frontend, kan du bare vælge Default / Standard
    Hvis siden frontend nu vises rigtigt, har du lavet en fejl i tilsidesætningsfilen. Så sletter du bare filen igen og starter forfra.

artikel rediger indstillinger canonical

PS: Hvis du har aktiveret plugin'et SEF, skal du ikke indsætte hjemmesidens URL. Brug .htaccess til at omdirigere til med eller uden www
plugin sef


Nu kan du gå til Frontend og vælge at se kildekoden.
Højre klik et vilkårligt sted og vælg "View Page Souce" / "Vis kildekode". Så skulle der være et meta tag med canonical

Til lykke!

 

artikel kildekode med canonical


Som jeg skriv øverst i opslaget her, har jeg brugt en helt standard Joomla installation uden udvidelse af nogen art. Hvis du bruger en anden template eller har installeret udvidelser, kan kildekoden se meget forskellig ud i forhold til den, som du ser på billedet her. Men tag'et med canonical skal se ud som det markerede på billedet ovenfor.


Tilføj noindex, hvis URL ikke er det samme som canonical eller...

  • Gå tilbage til Templates: Edit / Skabeloner: Brugerdefiner.
  • Og selvom canonical burde være tilstrækkeligt for at undgå, at søgemaskinerne indekserer sider med samme indhold på forskellige URL'ere, sker det alligevel en gang imellem. Derfor er det godt med begge dele.
  • Indsæt nedenstående kode lige efter den kode til canonical

// Kontrollerer faktisk URL
$objJURI = JFactory::getURI();
$strQuery = '';
if (!empty($objJURI->getQuery()))
   $strQuery = '?'.$objJURI->getQuery();
   $strFragment = '';
if ((!empty($objJURI->getFragment())) && ($objJURI->getFragment() != '#'))
   $strFragment = $objJURI->getFragment();
   $pageURL = $objJURI->current().$strQuery.$strFragment;

// Tilføj noindex hvis URL er forskellig fra canonical
if     (!empty($canonicalURL) and ($pageURL != $canonicalURL))
       {
       $MyNoindex = '<meta name="robots" content="noindex" />';
       $document = JFactory::getDocument();
       $document->addCustomTag( '' .$MyNoindex. '');
       }
// Vi kan også tjekke, om URL indeholder specifikke ord - godt hvis canonical ikke er tilføjet på den enkelte artikel.
elseif ((strpos($pageURL, 'index.php') != false) || (strpos($pageURL, 'component') != false) || (strpos($pageURL, 'hitcount') != false) || (strpos($pageURL, 'start') != false))
       {
       $MyNoindex = '<meta name="robots" content="noindex" />';
       $document = JFactory::getDocument();
       $document->addCustomTag( '' .$MyNoindex. '');
       }

artikel brugerdefiner noindex ny kode kode


Nu går du både med livrem og seler, og din risiko for at blive straffet for DC - duplicate content, er meget mindre.

God fornøjelse!

artikel kildekode med article id noindex


Twitter Cards og Open Graph

Ved at bruge en kombination af Custom Fields og overrides / tilsidesætninger, kan vi tilføje meta tags, som giver os mulighed for at styre, hvordan delinger vises - eks. hvilket billede, der vises.

Jeg har lave det, så det er canonical linket, der bruges, selvom en artikel er tilgået på en anden URL.

<link href="https://klintwebdesign.dk/min-blog/tips-tricks/407-canonical-med-joomla-custom-fields" rel="canonical">

<meta name="twitter:title" content="Canonical og noindex med Joomla Custom Fields - For bedste SEO">
<meta name="twitter:card" content="summary">
<meta name="twitter:site" content="@Niels_Klint">
<meta name="twitter:creator" content="@Niels_Klint">
<meta name="twitter:id" content="1725592183">
<meta name="twitter:url" content="https://klintwebdesign.dk/min-blog/tips-tricks/407-canonical-med-joomla-custom-fields">
<meta name="twitter:description" content="Med Joomlas Custom Fields er det let at tilføje canonical og noindex på alle dine artikler. Her er en trin for trin vejledning, så du selv kan udnytte denne store fordel...">
<meta name="twitter:image" content="https://klintwebdesign.dk/images/facebook/cnonical-share.jpg">
<meta property="og:url" content="https://klintwebdesign.dk/min-blog/tips-tricks/407-canonical-med-joomla-custom-fields">
<meta property="og:type" content="website">
<meta property="og:title" content="Canonical og noindex med Joomla Custom Fields - For bedste SEO">
<meta property="og:image" content="https://klintwebdesign.dk/images/facebook/cnonical-share.jpg">
<meta property="og:site_name" content="Klint WebDesign">
<meta property="fb:admins" content="1347704553">
<meta property="fb:admins" content="1627725140">
<meta property="fb:app_id" content="1583944511914134">
<meta property="og:description" content="Med Joomlas Custom Fields er det let at tilføje canonical og noindex på alle dine artikler. Her er en trin for trin vejledning, så du selv kan udnytte denne store fordel...">
<meta property="og:image:alt" content="Canonical og noindex med Joomla Custom Fields - For bedste SEO">
<meta property="og:image:width" content="800px">
<meta property="og:image:height" content="420px">

Bedste resultat på Pingdom, GTMetrix og PageSpeed Insight

Vi har lavet en ny hjemmeside, som er optimeret bedst muligt for hurtig visning, som er med til at få en bedre placering på Google. De fleste hjemmesider kan optimeres, så de vises meget hurtigere. Derfor har Google besluttet, at PageSpeed fremover skal vægte meget mere i forhold til at opnå en bedre placering på Google. Vi tester primært hastighed på GTMetrix - Performance Test, og på Pindom - website speed test.


GTMetrix PageSpeed 100 / 100 
Pingdom test A100 98 Klint WebDesign


Det bedste framework - Vertex, fra Shape5

Vi bruger det professionelle framework Vertex fra Shape5, fordi det lever op til såvel Joomlas som Googles "Best Practice" - og så er det let at arbejde med. Hvis du selv vil bestille en Template - Joomla eller WordPress, er du velkommen til at kontakte til os her...