Terug naar hoofdinhoud
SEO in Joomla
Op deze pagina
# Topics

SEO in Joomla

07 juni 2026

Zoekmachineoptimalisatie (SEO) klinkt als zwarte magie, maar het meeste ervan is gewoon huishoudelijk werk: schone URL's, eerlijke paginatitels, een duidelijke beschrijving en pagina's die snel laden. Joomla geeft je dit allemaal kant-en-klaar, ruim voordat je ook maar een enkele extensie installeert.

Veel site-eigenaren betalen voor een "SEO-plugin" zonder te beseffen dat de Joomla-core de paginatitel, de metabeschrijving, de canonieke link, de URL-vorm en de robotsregels al regelt. Goed gebruikt dekken de ingebouwde instellingen het grootste deel van de on-page SEO.

Dit artikel legt uit hoe SEO binnen Joomla werkt. Het behandelt de basis voor eigenaren en redacteurs, de dagelijkse inrichting voor beheerders en de technische details voor ontwikkelaars. Je ziet waar elke instelling staat, welke HTML die oplevert en hoe je de fouten voorkomt die stilletjes zoekverkeer kosten.

Hoe Joomla overzichtelijke instellingen omzet in overzichtelijke zoekresultaten

Het doel is eenvoudig: je genoeg laten begrijpen van Joomla-SEO om te scoren op je eigen werk, niet op holle beloften.

1. De basis

1.1 Wat SEO betekent in een CMS

SEO is het werk om je pagina's makkelijk vindbaar, leesbaar en rangschikbaar te maken voor zoekmachines. In een Joomla-context valt dit uiteen in drie lagen:

  • Technische SEO - URL's, redirects, sitemaps, snelheid, crawlbaarheid. Vooral beheerderswerk.
  • On-page SEO - titels, koppen, beschrijvingen, interne links, afbeeldingen. Vooral redacteurswerk.
  • Content-SEO - pagina's schrijven die een echte vraag beter beantwoorden dan de concurrentie. Werk voor iedereen.

Joomla kan je content niet schrijven, maar geeft je sterke controle over de eerste twee lagen zonder code aan te raken.

1.2 Wat Joomla kant-en-klaar regelt

Nog voordat je enige extensie nodig hebt, stelt de Joomla-core al in:

  • De browser-paginatitel (de <title>-tag).
  • De metabeschrijving voor elke pagina.
  • De robots-instructie (wel of niet indexeren, wel of niet volgen).
  • De URL-vorm (zoekmachinevriendelijke URL's, met of zonder index.php).
  • De canonieke link wanneer meerdere menu-items dezelfde content bereiken.
  • hreflang-tags op meertalige sites.

Dit artikel laat je elk van deze zaken zien en hoe ze samenhangen.

1.3 De drie plekken waar SEO-instellingen staan

Bijna elke SEO-optie in de core staat op een van drie plekken. Ken deze drie en je weet waar je moet kijken:

NiveauWaarBereik
Sitebreed Systeem → Globale configuratie → Site Standaardwaarden voor de hele site.
Per menu-item Menu's → [item] → Paginaweergave + Metadata Een pagina of een weergave.
Per artikel Inhoud → Artikelen → [artikel] → Publiceren Een specifiek artikel.

De volgorde van voorrang is "het meest specifieke wint". Een metabeschrijving op artikelniveau overschrijft het menu-item, dat weer de sitestandaard overschrijft.

Naar boven

2. Zoekmachinevriendelijke URL's

2.1 Drie schakelaars, een resultaat

Joomla bouwt de URL-vorm uit drie opties in Systeem → Globale configuratie → Site → SEO-instellingen:

OptieUitAan
Zoekmachinevriendelijke URL's index.php?option=com_content&view=article&id=42 index.php/het-artikel
URL-herschrijven gebruiken houdt index.php/ in het pad verwijdert index.php//het-artikel
Achtervoegsel aan URL toevoegen /het-artikel /het-artikel.html

De combinatie die bijna elke site wil, is SEF-URL's = Ja, URL-herschrijven = Ja, Achtervoegsel = Nee. Dat geeft korte, schone paden zoals /over-ons.

2.2 Het ene bestand dat je moet hernoemen

URL-herschrijven gebruiken vereist dat de webserver onbekende paden naar Joomla stuurt. Op Apache betekent dit dat je het meegeleverde bestand hernoemt:

htaccess.txt   →   .htaccess

Schakel je URL-herschrijven in zonder die hernoeming, dan geeft elke schone URL een 404. Op NGINX voeg je in plaats daarvan een try_files-regel toe. Dit is veruit de meest voorkomende reden dat "mooie URL's" kapotgaan direct na de lancering.

2.3 Unicode-aliassen

De optie Unicode-aliassen bepaalt hoe Joomla een titel omzet in een URL-alias:

  • Nee (standaard): transliteren naar gewone ASCII. "Cafe Munchen" wordt cafe-munchen.
  • Ja: de oorspronkelijke tekens behouden. De alias wordt cafe-münchen in de URL.

ASCII-aliassen zijn veiliger om te delen, te kopieren en met oude systemen te gebruiken. Houd de standaard aan, tenzij je een duidelijke reden hebt en een publiek dat URL's in eigen schrift verwacht.

2.4 Sitenaam in paginatitels opnemen

De laatste SEO-instelling bepaalt het globale patroon van de paginatitel:

Nee           →  Over ons
Voor titel    →  Mijn Bedrijf - Over ons
Na titel      →  Over ons - Mijn Bedrijf

"Na titel" is de gebruikelijke keuze: het unieke deel van de pagina komt eerst, waar het het meeste gewicht draagt, en de merknaam volgt.

Naar boven

3. Metadata en het Document

3.1 De sitestandaarden

In Joomla's configuratie Globale configuratie → Site → Metadata-instellingen stel je de terugvalwaarden in die worden gebruikt wanneer een pagina niets specifiekers heeft:

InstellingWat die doet
Site-metabeschrijving Standaard <meta name="description"> wanneer een pagina er geen heeft.
Robots Standaard crawlregel: index, follow en de drie tegenovergestelde.
Contentrechten Een rechtenverklaring die als metadata wordt getoond.
Auteur-metatag Een <meta name="author">-tag tonen of verbergen.

Het oude veld Site-metasleutelwoorden bestaat nog, maar zoekmachines negeren de keywords-tag al vele jaren. Laat het leeg en steek de moeite liever in de beschrijving.

3.2 De metabeschrijving die echt wordt getoond

De metabeschrijving verandert je ranking zelden direct, maar wordt vaak wel het fragment onder je titel in de resultaten. Een goede beschrijving verdient de klik. Stel die per artikel in bij Inhoud → Artikelen → [artikel] → Publiceren → Metabeschrijving.

Praktische regels:

  • Houd het rond de 150 tot 160 tekens. Langere tekst wordt afgekapt.
  • Schrijf een zin die de pagina verkoopt, geen lijst met trefwoorden.
  • Maak elke belangrijke pagina uniek. Dubbele beschrijvingen verspillen het fragment.

3.3 De robots-instructie

De keuzelijst Robots schrijft een <meta name="robots">-tag en accepteert vier waarden:

WaardeBetekenis
index, follow Indexeer deze pagina en volg de links (het normale geval).
noindex, follow Buiten de index houden, maar de links wel crawlen. Goed voor dunne tag- of zoekpagina's.
index, nofollow Pagina indexeren, links negeren. Zelden nuttig.
noindex, nofollow De pagina volledig verbergen voor zoekmachines.

Robots cascadeert net als al het andere: een artikelwaarde overschrijft het menu-item, dat weer de sitestandaard overschrijft. Een artikel op noindex zetten terwijl het menu-item index zegt, is prima - het artikel wint op zijn eigen pagina.

Naar boven

4. Paginatitels en koppen

4.1 Titel versus kop: twee verschillende dingen

Nieuwe redacteurs verwarren deze vaak. Het zijn aparte zaken:

  • De browserpaginatitel is de <title> in de paginakop. Die staat in het browsertabblad en in de zoekresultaten.
  • De paginakop is de zichtbare <h1> bovenaan de content.

Ze mogen met opzet verschillen. De titel kan luiden "Joomla SEO-gids - Mijn Bedrijf" terwijl de kop op de pagina simpelweg "SEO" is.

4.2 Ze instellen op een menu-item

Open een menu-item en kijk bij Paginaweergave:

VeldBepaalt
Browserpaginatitel De <title>-tag. Leeg valt terug op de titel van het menu-item.
Paginakop tonen Of de <h1> uberhaupt verschijnt.
Paginakop Vervangende tekst voor de <h1>.

Voor SEO hoort elke belangrijke pagina precies een duidelijke <h1> en een beschrijvende titel te hebben.

4.3 De koppenhierarchie

Zoekmachines lezen je koppenstructuur om de pagina te begrijpen. Houd die geordend:

h1   Een per pagina - het hoofdonderwerp
h2   Hoofdsecties
h3   Subsecties onder een h2

Gebruik in de artikeltekst de alineaopmaak van de editor om Kop 2 en Kop 3 te kiezen, in plaats van tekst alleen groot en vet te maken. Visuele grootte is geen structuur; de tag is dat. Een pagina met vijf <h1>-tags, of met koppen die van h2 naar h4 springen, leest als rommelig voor een crawler.

Naar boven

5.1 De alias is je URL

Elk artikel, elke categorie en elk menu-item heeft een Alias. Die wordt de slug in de URL. Joomla vult hem automatisch vanuit de titel, in kleine letters en met koppeltekens, maar je hoort hem te controleren:

  • Houd hem kort en leesbaar: joomla-seo-gids, niet joomla-seo-gids-2026-definitief-v2.
  • Stel hem een keer in en laat hem staan. Een alias wijzigen verandert de URL en breekt inkomende links (zie sectie 10).
  • Hergebruik nooit dezelfde alias binnen een categorie - Joomla plakt er een nummer achter en je verliest de schone slug.

5.2 Hoe de volledige URL wordt opgebouwd

Een schone Joomla-URL is niet een veld. De router stikt hem samen uit de aliassen langs het pad:

/diensten/seo/joomla-seo-gids
   │        │       │
   │        │       └─ artikelalias
   │        └─ categoriealias (of submenu-alias)
   └─ menu-itemalias

Dit betekent dat een nette menu- en categorieboom vanzelf nette URL's oplevert, terwijl een rommelige boom diepe, verwarrende paden geeft. Plan de structuur voordat je honderden artikelen publiceert.

5.3 Waarom dubbele content ontstaat in Joomla

Joomla kan hetzelfde artikel legitiem via meerdere routes bereiken:

/seo-gids                          (eigen menu-item)
/blog/seo-gids                     (via een blogcategorie-menu)
/component/content/article/42      (de routeloze terugval)

Drie URL's, een artikel. Onaangeroerd kunnen zoekmachines alle drie indexeren en het rankingsignaal eroverheen verdelen.

Wanneer meerdere menu-items naar dezelfde content wijzen, geeft Joomla een canonieke tag die de URL noemt die het als primair beschouwt:

<link rel="canonical" href="https://site.tld/seo-gids">

Dit vertelt de crawler "indexeer deze, behandel de rest als kopieen". De adder onder het gras: Joomla kiest zelf de primaire, en na een menu-herinrichting kan die keuze omslaan. Controleer de canonieke link altijd op belangrijke pagina's nadat je de navigatie reorganiseert. Om een schoon pad te forceren met meerdere navigatie-ingangen, gebruik je een menu-item van het type Systeemlink → Menu-itemalias in plaats van twee echte items die naar dezelfde content wijzen.

Naar boven

6. Afbeeldingen, media en toegankelijkheid

6.1 Alt-tekst is SEO en toegankelijkheid tegelijk

Het alt-attribuut beschrijft een afbeelding voor schermlezers en voor afbeeldingenzoeken. Zowel de editor van Joomla als het tabblad Afbeeldingen van een artikel hebben een veld Alt-tekst. Vul het met een korte, eerlijke beschrijving:

<img src="/joomla-dashboard.jpg"
     alt="Het Joomla 6-beheerdersdashboard">

Laat het alleen leeg bij puur decoratieve afbeeldingen, waar Joomla een optie "alt leeg" biedt zodat schermlezers ze correct overslaan.

6.2 Bestandsnamen en grootte

  • Geef bestanden namen in woorden: rode-hardloopschoenen.jpg, niet IMG_4821.jpg.
  • Schaal voor het uploaden. Een foto van 4000px op een plek van 600px verspilt bandbreedte en schaadt de snelheid.
  • Geef de voorkeur aan moderne formaten. De mediatools van Joomla en veel templates ondersteunen WebP en AVIF, die veel kleiner zijn dan JPEG bij dezelfde kwaliteit.

6.3 Lazy loading

Joomla kan loading="lazy" toevoegen aan afbeeldingen onder de vouw, zodat de browser ze uitstelt tot ze nodig zijn. Dit verbetert de Largest Contentful Paint-score die Google meet. Veel templates en de core-editor voegen het automatisch toe; controleer je uitvoer en laad de allerbelangrijkste afbeelding bovenaan de pagina niet lui.

Naar boven

Interne links zijn het stille werkpaard van SEO. Ze doen drie dingen tegelijk:

  • Ontdekking - crawlers volgen links om nieuwe pagina's te vinden. Een artikel waar niemand naar linkt, is een weespagina die misschien nooit geindexeerd wordt.
  • Linkwaarde - rankingkracht stroomt langs links. Sterke pagina's naar belangrijke laten wijzen tilt de doelen op.
  • Context - de woorden in een link (de ankertekst) vertellen zoekmachines waar de doelpagina over gaat.

Je hebt geen extensie nodig voor degelijke interne links. De Joomla-core geeft je verschillende routes:

HulpmiddelWat het linkt
Categorie-bloglayout Toont artikelen in een categorie, elk gelinkt - een natuurlijke hubpagina.
Tags Groepeert verwante artikelen over categorieen heen; elke tagpagina linkt ze samen.
Module Artikelen - Gerelateerd Toont artikelen die tags delen met het huidige.
Linkknop in de editor Link woorden in de tekst naar andere artikelen via zoeken, niet via een kale URL.

Link altijd vanuit de tekst met beschrijvende woorden ("lees onze Joomla redirects-gids"), niet met een kaal "klik hier". De ankertekst is een gratis SEO-signaal.

7.3 Onderwerpclusters

Het sterkste patroon voor interne links is het onderwerpcluster: een brede "pijler"-pagina linkt omlaag naar meerdere detailpagina's, en elke detailpagina linkt terug omhoog naar de pijler en zijwaarts naar zijn broers en zussen.

Pijler:  /joomla-seo            (breed overzicht)
  ├─ /joomla-seo/sef-urls       (detail)
  ├─ /joomla-seo/redirects      (detail)
  └─ /joomla-seo/meertalig      (detail)

In Joomla bouw je dit met een categorie (de pijler) plus een gedeelde tag, zodat de module Gerelateerd de broers en zussen automatisch aan elkaar knoopt.

7.4 Kruimelpad

Een kruimelpad is het kleine spoor "Home → Diensten → SEO" bovenaan een pagina. Joomla genereert het uit het menu- en categoriepad via de module Kruimelpad (publiceer die op een moduleplek in je template):

Extensies → Sitemodules → Nieuw → Kruimelpad

Het helpt twee doelgroepen. Bezoekers zien waar ze zijn en kunnen weer omhoog klimmen. Zoekmachines lezen het spoor als sitestructuur, en met BreadcrumbList-structuurdata (sectie 8) kunnen ze het spoor rechtstreeks in de resultaten tonen in plaats van een kale URL.

Naar boven

8. Structuurdata en sociaal delen

8.1 Wat structuurdata doet

Structuurdata (meestal JSON-LD) beschrijft je pagina in een machineleesbare vorm: dit is een Artikel, hier is de auteur, de datum, de afbeelding. Zoekmachines gebruiken dit om verrijkte resultaten te bouwen - sterbeoordelingen, FAQ-uitklappers, kruimelpaden, artikelkaarten.

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Article",
  "headline": "Joomla SEO-gids",
  "datePublished": "2026-06-06",
  "author": { "@type": "Person", "name": "Peter Martin" }
}
</script>

Nuttige schematypes voor een Joomla-site zijn onder meer Article en BlogPosting voor content, BreadcrumbList voor het spoor, FAQPage voor vragenlijsten, en Organization of Person voor de auteur en het merk.

8.2 Open Graph en Twitter Cards

Wanneer iemand je link op sociale media deelt, komt het voorbeeld uit Open Graph-tags:

<meta property="og:title"       content="Joomla SEO-gids">
<meta property="og:description" content="Hoe Joomla SEO kant-en-klaar regelt.">
<meta property="og:image"       content="https://site.tld/images/seo.jpg">

8.3 Waar dit vandaan komt in Joomla

De Joomla-core geeft geen JSON-LD of Open Graph automatisch uit. Je krijgt ze uit een van drie bronnen:

  • Je template - veel moderne Joomla-templates geven Open Graph uit op basis van het actieve artikel.
  • Een plugin of component dat speciaal voor structuurdata is gemaakt.
  • Een kleine eigen plugin die inhaakt op onBeforeCompileHead en de tags toevoegt vanuit het huidige document.

Omdat ze niet uit de core komen, controleer je ze. Een template die op elke pagina dezelfde og:image hardcodeert, is slechter dan geen.

8.4 Aangepaste velden voeden schema

De Aangepaste velden van Joomla zijn een goede bron van gestructureerde data. Voeg je velden zoals Beoordeling, Auteursbio of FAQ-vraag/antwoord toe aan een artikeltype, dan kan een template-override of plugin die waarden uitlezen en bijpassend schema uitgeven. De redacteur vult een gewoon formulierveld in; de pagina krijgt een nauwkeurig, consistent @type zonder dat iemand JSON met de hand schrijft. Zo blijft de gestructureerde data up-to-date als de content verandert.

Naar boven

9. Sitemaps en robots.txt

9.1 robots.txt wordt met Joomla meegeleverd

Joomla bevat in de root van de site een bestand genaamd robots.txt.dist. Hernoem een kopie naar robots.txt om het te gebruiken. De standaard blokkeert crawlers uit systeemmappen:

User-agent: *
Disallow: /administrator/
Disallow: /api/
Disallow: /cache/
Disallow: /cli/
Disallow: /components/
Disallow: /includes/
Disallow: /installation/
Disallow: /language/
Disallow: /libraries/
Disallow: /logs/
Disallow: /tmp/

Twee waarschuwingen. Ten eerste: blokkeer /images/ of /media/ niet als je wilt dat afbeeldingenzoeken werkt. Ten tweede: robots.txt blokkeert crawlen, niet indexeren - om een pagina echt uit de resultaten te houden, gebruik je de robots-meta tag (sectie 3.3), niet alleen Disallow.

9.2 De XML-sitemap

Een XML-sitemap is een lijst van je URL's die je indient bij Google Search Console, zodat crawlers elke pagina vinden. De Joomla-core genereert er geen. Je voegt die toe met een bekende extensie zoals OSMap of JSitemap. Verwijs er eenmaal gegenereerd naar onderaan robots.txt:

Sitemap: https://site.tld/index.php?option=com_osmap&view=xml&id=1

9.3 Google Search Console

Welke extensie je ook kiest, koppel de site aan Google Search Console. Het is gratis en het vertelt je wat geen enkele instelling kan: welke pagina's geindexeerd zijn, welke zoekopdrachten bezoekers brengen, welke URL's fouten geven en waar crawlers vastlopen. SEO zonder Search Console is gokken. Dien dezelfde sitemap ook in bij Bing Webmaster Tools, zodat Bing en Copilot je pagina's ook ontdekken.

Naar boven

10.1 Waarom verplaatste URL's ertoe doen voor SEO

Wanneer je een artikel hernoemt of de site herstructureert, stopt de oude URL met werken. Elke externe link en elk stukje zoekranking dat ernaar wees, belandt nu op een 404. Die opgebouwde waarde, vaak in jaren opgebouwd, verdampt simpelweg.

10.2 De Redirects-component

Joomla lost dit op met het core component Redirects (com_redirect). Die registreert elke 404, laat je de oude URL koppelen aan een nieuwe, en verzendt de juiste statuscode:

Oude URL:  /oud-seo-artikel
Nieuwe URL: /joomla-seo-gids
Code:      301 Permanent verplaatst

Een 301 vertelt zoekmachines dat de verplaatsing permanent is en geeft de ranking van de oude pagina door aan de nieuwe URL. Schakel eerst de plugin System - Redirect in, want de component doet niets totdat die plugin aanstaat.

10.3 De valkuil van aangepaste statuscodes

Standaard forceert de component elke redirect naar 301 en negeert de code op elke regel. Om je keuze per regel te eerbiedigen, zet je Componenten → Redirects → Opties → Aangepaste redirect-statuscodes gebruiken = Ja aan voordat je een migratiebestand importeert. (Voor de volledige werkwijze, zie het aparte Focus On-artikel over Redirects.)

Naar boven

11. Prestaties en Core Web Vitals

11.1 Snelheid is een rankingfactor

Google meet de echte laadsnelheid via de Core Web Vitals en gebruikt die als rankingsignaal:

MaatMeetGoed
LCP (Largest Contentful Paint) Tijd om de hoofdcontent te tonen onder 2,5s
INP (Interaction to Next Paint) Reactiesnelheid op klikken onder 200ms
CLS (Cumulative Layout Shift) Visuele stabiliteit tijdens het laden onder 0,1

11.2 De ingebouwde knoppen

Joomla geeft je verschillende snelheidsregelaars zonder extensie, in Globale configuratie en de systeemplugins:

  • Caching (Systeem → Globale configuratie → Systeem → Cache) plus de plugin System - Page Cache voor volledige paginacaching.
  • Gzip-paginacompressie (tabblad Server) om de verzonden HTML te verkleinen. Op servers die het ondersteunen, comprimeert Brotli op webserverniveau nog beter.
  • De plugin HTTP Headers om cachingheaders voor statische bestanden in te stellen.
  • Een moderne PHP-versie. Elke grote PHP-release draait merkbaar sneller, dus de server op een actuele, ondersteunde PHP houden is gratis snelheid.

11.3 De grotere winst

De grootste winst zit meestal buiten de instellingen:

  • Afbeeldingen op de juiste maat en in een modern formaat (sectie 6).
  • Een slank template dat geen vijf icoonlettertypes en drie sliders laadt.
  • HTTP/2 of HTTP/3 en een goede host.
  • Een CDN voor afbeeldingen, CSS en JavaScript, zodat statische bestanden van een server dicht bij de bezoeker laden.
  • Minder externe scripts. Elke analytics- of chatwidget voegt blokkerend JavaScript toe.

11.4 Houd de database gezond

Een trage database sleept elke pagina mee omlaag. Wat routineonderhoud houdt Joomla snel:

  • Deinstalleer extensies die je niet meer gebruikt, in plaats van ze alleen uit te schakelen.
  • Ruim oude data op: verlopen cache, het 404-log van redirects, actielogs en oude sessies.
  • Voer af en toe een OPTIMIZE TABLE uit op grote tabellen zoals #__content en #__finder_links.

Meet met Google PageSpeed Insights of Lighthouse voor en na elke wijziging, zodat je weet welke hielp.

Naar boven

12. Meertalige SEO

12.1 hreflang automatisch geregeld

Op een meertalige Joomla-site moeten zoekmachines weten welke pagina welke taal is. De hreflang-linktag vertelt ze dat. Het goede nieuws: wanneer je vertaalde content in Joomla koppelt en de plugin System - Language Filter draait, geeft Joomla deze tags automatisch uit:

<link rel="alternate" hreflang="en-GB" href="https://site.tld/en/seo-guide">
<link rel="alternate" hreflang="nl-NL" href="https://site.tld/nl/seo-gids">

Dit werkt alleen wanneer elk artikel correct is gekoppeld aan zijn vertalingen op het tabblad Koppelingen van het artikel. Mis je de koppeling, dan ontbreekt de hreflang-tag ook.

12.2 Een taal per URL

Houd elke URL binnen zijn eigen taal. Een Nederlandse pagina hoort te linken en te redirecten binnen /nl/, een Engelse pagina binnen /en/. Cross-language-redirects en gemengde pagina's verwarren zowel bezoekers als crawlers.

12.3 Vertaal ook de metadata

SEO per taal is niet alleen de bodytekst. Vertaal de metabeschrijving, de alias en de browserpaginatitel voor elke taal. Een Nederlandse pagina met een Engelse beschrijving en een Engelse slug ziet er half-af uit voor een Nederlandse zoeker.

Naar boven

13. E-E-A-T en AI-zoeken

13.1 Wat E-E-A-T is

E-E-A-T staat voor Experience, Expertise, Authoritativeness en Trustworthiness (ervaring, deskundigheid, gezag en betrouwbaarheid). Het is geen enkele rankingknop, maar het vormt hoe de kwaliteitssystemen van Google je content beoordelen, vooral bij onderwerpen waar slecht advies geld kan kosten of schade kan veroorzaken. Voor een specialistensite is het het verschil tussen "een pagina over het onderwerp" en "een pagina van iemand die dit werk duidelijk doet".

13.2 E-E-A-T opbouwen in Joomla

Joomla geeft je de bouwstenen zonder extensie:

  • Auteurspagina's - gebruik de component Contacten (com_contact) en koppel een contact aan een gebruiker. Joomla kan dan een echte auteursblok tonen met biografie, foto en links.
  • De vertrouwenspagina's - een duidelijke Over ons, Contact, Privacybeleid en Algemene voorwaarden. Eenvoudige artikelen, maar zoekmachines en bezoekers zoeken ze.
  • Versheidssignalen - de datums publish_up en modified op elk artikel. Toon "Gepubliceerd" en "Laatst bijgewerkt" zodat lezers en crawlers zien dat de content wordt onderhouden.
  • Bewijs van ervaring - praktijkvoorbeelden, schermafbeeldingen uit echte projecten en gemeten resultaten. Deze artikelstijl, die uitlegt hoe Joomla zich echt gedraagt, is zelf een E-E-A-T-signaal.

13.3 Vertrouwen en beveiliging zijn ook SEO

Vertrouwen is de basis van E-E-A-T, en een deel ervan is technisch. Een site die data lekt of oude code draait, oogt niet betrouwbaar:

  • Bedien alles over HTTPS.
  • Stel moderne beveiligingsheaders in met de core-plugin HTTP Headers (zie het aparte Focus Op-artikel over HTTP Headers).
  • Houd Joomla en elke extensie bijgewerkt, en bescherm beheerderslogins met meervoudige authenticatie.

13.4 Optimaliseren voor AI-zoeken

Zoeken omvat nu AI-antwoorden - Google's AI Overviews, ChatGPT Search, Perplexity en Bing Copilot. Ze putten uit duidelijke, goed gestructureerde pagina's en citeren de bronnen die ze vertrouwen. Om citeerbaar te zijn:

  • Beantwoord de vraag direct in de eerste alinea, breid daarna uit.
  • Gebruik gewone, beschrijvende koppen die aansluiten op hoe mensen vragen stellen.
  • Voeg een FAQ-sectie toe met FAQPage-schema (sectie 8) voor de korte, directe antwoorden waar deze systemen de voorkeur aan geven.
  • Wees consistent met namen en entiteiten - je merk, je auteur, je producten - zodat de systemen ze kunnen verbinden.

Dezelfde gewoonten die een pagina goed maken voor E-E-A-T, maken hem goed voor AI-zoeken: duidelijke structuur, eerlijke deskundigheid en machineleesbare signalen.

Naar boven

14. Onder de motorkap (ontwikkelaarsblik)

14.1 Het Document-object

Bijna elke SEO-tag komt uit het Document-object van Joomla. Een component, plugin of template-override kan ze rechtstreeks instellen:

use Joomla\CMS\Factory;

$doc = Factory::getApplication()->getDocument();

$doc->setTitle('Joomla SEO-gids');
$doc->setMetaData('description', 'Hoe Joomla SEO kant-en-klaar regelt.');
$doc->setMetaData('robots', 'index, follow');

// Canonieke link
$doc->addHeadLink(
    'https://site.tld/joomla-seo-gids',
    'canonical',
    'rel'
);

Dezelfde aanroep setMetaData() schrijft Open Graph als je een attribuutvlag meegeeft:

$doc->setMetaData('og:title', 'Joomla SEO-gids', 'property');

14.2 Waar de waarden worden opgeslagen

Voor artikelen staan de SEO-velden als kolommen op #__content:

metadesc     de metabeschrijvingstekst
metakey      de oude metasleutelwoorden (zelden gebruikt)
metadata     een JSON-blok: robots, author, rights
attribs      weergaveparameters per artikel (JSON)

Menu-items slaan hetzelfde idee op in de JSON-kolom params: menu-meta_description, robots, page_title, enzovoort. Categorieen dragen hun eigen kolommen metadesc en metadata. De router voegt deze bij het renderen samen op volgorde van voorrang.

14.3 De SEF-router en plugins

De schone URL die je ziet, wordt gebouwd door de router van elke component (bijvoorbeeld ContentRouter voor artikelen) en afgemaakt door de plugin System - SEF, die relatieve links en absolute paden in de uiteindelijke HTML herschrijft. Om tags globaal toe te voegen, kan een plugin inhaken op de head-compile-gebeurtenis:

public function onBeforeCompileHead(): void
{
    $doc = Factory::getApplication()->getDocument();
    $doc->setMetaData('og:site_name', 'Mijn Bedrijf', 'property');
}

Dit is de schone plek om sitebrede Open Graph of JSON-LD in te voegen zonder het template aan te raken.

Naar boven

15. Web Services en headless SEO

15.1 SEO-velden via de API

Wanneer je Joomla als headless backend draait voor een aparte front-end (React, Vue, een mobiele app), reist de SEO-metadata via de Web Services API. Schakel de plugin Web Services - Content in en de artikel-endpoints geven de SEO-kolommen terug:

curl -H "X-Joomla-Token: <token>" \
  https://site.tld/api/index.php/v1/content/articles/42

De JSON-respons bevat metadesc, metakey, metadata en de alias - alles wat de front-end nodig heeft om zijn eigen <title>, beschrijving en canonieke link te renderen.

15.2 SEO verhuist naar de front-end

De cruciale verschuiving bij headless: Joomla rendert de HTML-head niet meer, dus de automatische canonieke en hreflang-tags van Joomla verschijnen niet. Je front-end moet ze opnieuw opbouwen uit de API-velden. Een paar regels voor een headless-opzet:

  • Render echte server-side HTML (SSR of statische generatie) zodat crawlers de tags zien. Een lege pagina die alleen door JavaScript wordt gevuld, indexeert slecht.
  • Koppel de API-alias aan je front-end-route en geef daaruit je eigen canonieke link uit.
  • Bouw JSON-LD op de front-end uit de structuurvelden die de API teruggeeft.

Headless geeft je volledige controle over de uitvoer. De ruil is dat elke SEO-tag die Joomla vroeger gratis toevoegde, jouw verantwoordelijkheid wordt.

Naar boven

16. Veelgemaakte fouten en valkuilen

16.1 Schone URL's geven een 404 na de lancering

Symptoom: je schakelde URL-herschrijven in en nu is elke pagina een 404.

Oplossing: hernoem htaccess.txt naar .htaccess (Apache) of voeg de try_files-regel toe (NGINX). Zie sectie 2.2.

16.2 Elke pagina heeft dezelfde titel of beschrijving

Symptoom: zoekresultaten tonen hetzelfde fragment voor veel pagina's.

Oplossing: de sitestandaard lekt door omdat de afzonderlijke pagina's geen waarde hebben. Stel per belangrijke pagina een unieke metabeschrijving en browserpaginatitel in.

16.3 De verkeerde pagina scoort (dubbele content)

Symptoom: Google indexeert /component/content/article/42 in plaats van je schone URL.

Oplossing: geef de content een echt menu-item zodat die een stabiele route en canonieke link heeft. Controleer de canonieke tag na elke menuwijziging (sectie 5.4).

Symptoom: je bewerkte een alias voor de duidelijkheid en inkomende links geven nu een 404.

Oplossing: maak een 301-redirect van de oude alias naar de nieuwe in com_redirect. Beter nog: bepaal de alias een keer en stop met wijzigen.

16.5 robots.txt gebruikt om een pagina te verbergen

Symptoom: een pagina die je in robots.txt "blokkeerde" verschijnt nog in de resultaten, soms zonder fragment.

Oplossing: Disallow stopt crawlen, niet indexeren. Om een pagina uit de resultaten te halen, zet je de robots-metatag op noindex en laat je crawlers erbij.

16.6 Noindex blijft aan na de lancering

Symptoom: een gloednieuwe site krijgt geen verkeer en wordt helemaal niet geindexeerd.

Oplossing: controleer Globale configuratie → Metadata → Robots. Een ontwikkelsite staat vaak op noindex, nofollow en die schakelaar wordt bij livegang vergeten.

16.7 Weespagina's en kapot schema

Symptoom: sommige pagina's worden nooit geindexeerd, of er verschijnen nooit verrijkte resultaten.

Oplossing: link elke belangrijke pagina vanaf minstens een andere pagina (sectie 7) en valideer structuurdata met de Rich Results Test van Google voordat je erop vertrouwt.

16.8 Blind vertrouwen op een SEO-extensie

Symptoom: twee extensies en het template schrijven allemaal een og:image, dus het sociale voorbeeld is willekeurig.

Oplossing: kies een bron voor elke tag. Bekijk de paginabron en bevestig dat elke SEO-tag precies een keer voorkomt.

Naar boven

17. Best Practices

Als je maar een paar dingen uit dit artikel onthoudt, onthoud dan deze:

  • Zet SEF-URL's met URL-herschrijven aan en hernoem htaccess.txt naar .htaccess.
  • Schrijf een unieke browsertitel en metabeschrijving voor elke belangrijke pagina.
  • Gebruik een duidelijke <h1> per pagina en een geordende koppenstructuur eronder.
  • Stel de alias een keer in; hernoem hem nooit zonder een 301-redirect.
  • Verbind je pagina's met beschrijvende ankertekst en publiceer een kruimelpad.
  • Gebruik de robots-metatag, niet robots.txt, om een pagina uit de index te houden.
  • Vul alt-tekst van afbeeldingen in en lever afbeeldingen op de juiste maat in een modern formaat.
  • Voeg een XML-sitemap-extensie toe en koppel Google Search Console.
  • Meet de snelheid met PageSpeed Insights en jaag op de Core Web Vitals.
  • Koppel op meertalige sites de vertalingen zodat hreflang werkt.
  • Toon echt auteurschap, houd de site bijgewerkt en veilig, en voeg FAQ-schema toe voor AI-zoeken.
  • Controleer de uiteindelijke HTML: elke SEO-tag hoort precies een keer voor te komen.
Naar boven

18. In het kort

SEF-URL'S      Globale configuratie → Site → SEO-instellingen
URL-HERSCHR.   hernoem htaccess.txt → .htaccess  (Apache)
TITELPATROON   Sitenaam in paginatitels opnemen: Na titel
SITE-META      Globale configuratie → Site → Metadata-instellingen
PER ARTIKEL    Artikelen → [item] → Publiceren → Metabeschrijving
PER MENU       Menu's → [item] → Paginaweergave + Metadata
ROBOTS-META    index,follow / noindex,follow / ...
H1 / TITEL     een h1 per pagina; titel mag afwijken van kop
ALIAS          kort, een keer instellen, 301 bij wijziging
URL-PAD        menualias / categoriealias / artikelalias
CANONIEK       Joomla kiest primair menu-item; controleer na wijziging
INTERNE LINK   beschrijvende ankers + tags + module Gerelateerd
KRUIMELPAD     Sitemodules → Kruimelpad + BreadcrumbList-schema
AFBEELDINGEN   alt-tekst + juiste maat + WebP/AVIF + lui laden onder vouw
SCHEMA / OG    niet core: template, plugin of Aangepaste velden
ROBOTS.TXT     kopieer robots.txt.dist; blokkeert crawl, niet index
SITEMAP        extensie (OSMap / JSitemap) + Search Console
REDIRECTS      com_redirect, 301, plugin System - Redirect inschakelen
SNELHEID       Page Cache + Gzip/Brotli + CDN + slank template + HTTP/2
MEERTALIG      vertalingen koppelen → automatische hreflang
E-E-A-T        auteurspagina's + vertrouwenspagina's + bijgewerkte datums
AI-ZOEKEN      directe antwoorden + FAQ-schema + consistente entiteiten
ONTWIKKELAAR   $doc->setMetaData() / setTitle() / addHeadLink()
DB-VELDEN      #__content: metadesc, metakey, metadata
HEADLESS       API geeft metadesc terug; front-end geeft de tags uit
Naar boven

19. Samenvatting

Joomla-SEO gaat minder over geheime trucs en meer over het gebruiken van de knoppen die al in de core meekomen. Zonder 3rd party extensies te installeren, kun je al:

  • Schone URL's vormen met de drie SEO-instellingen en een hernoemde .htaccess.
  • Het fragment sturen via titels en metabeschrijvingen per pagina.
  • Crawlers sturen met de robots-metatag en een schone koppenstructuur.
  • Dubbele content vermijden met verstandige menu's, stabiele aliassen en canonieke links.
  • Je pagina's verbinden met interne links, tags en een kruimelpad.
  • Ranking beschermen via 301-redirects wanneer URL's verhuizen.
  • Elke taal correct bedienen met automatische hreflang uit koppelingen.
  • Vertrouwen opbouwen met echt auteurschap, beveiliging en content die ervaring toont.

Extensies voegen de stukken toe die de core weglaat - een XML-sitemap, structuurdata en Open Graph - maar die rusten op een fundament dat Joomla je al gratis geeft. Begin met de core-instellingen, controleer de HTML die ze opleveren en koppel Google Search Console zodat je het resultaat kunt zien.

Is je zoekverkeer vlak, of heeft een siteverhuizing je rankings verspreid, dan loont het deze core-instellingen te controleren voordat je nog een plugin koopt. De oplossing is vaak een vergeten noindex, een ontbrekende .htaccess of een dubbele canonieke link - kleine dingen in Joomla die een groot verschil maken in zoekmachines.

Naar boven
SEO in Joomla
Peter Martin
Peter Martin

Joomla specialist en Linux admin voor snelle, veilige en schaalbare websites.