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.
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.
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
- Vælg New / Ny
- Navngiv Field Group / Feltgruppe "Head" - så vi ved, hvad felterne skal bruges til
- Angiv Discription / Beskrivelse
- Save & close / Gem & luk
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
- 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 / Felt er nu oprettet og klar til brug
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"
- 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.
- Indsæt sidens URL i feltet Canonical URL
- Hvis peger på label Canonical, vises tooltip
- Vælg Save / Gem - du skal ikke lukke endnu
Step 4 - Opret tilsidesætning
- Åben et ekstra Amin vindue på en ny fane
- Vælg Extensions > Templates > Templates / Udvidelser > Skabeloner > Skabeloner
- Her vises Templates: Edit / Skabeloner: Brugerdefiner (Din template)
- Vælg Create Overrides / Opret tilsidesætning
- Klik på com_content og derefter article. Så oprettes mappe og filen
- 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
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 ?>
- 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.
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.

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!
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. '');
}
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!
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">