SEO in Joomla
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:
| Niveau | Waar | Bereik |
|---|---|---|
| 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 boven2. Zoekmachinevriendelijke URL's
2.1 Drie schakelaars, een resultaat
Joomla bouwt de URL-vorm uit drie opties in Systeem → Globale configuratie → Site → SEO-instellingen:
| Optie | Uit | Aan |
|---|---|---|
| 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ünchenin 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 boven3. 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:
| Instelling | Wat 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:
| Waarde | Betekenis |
|---|---|
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.
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:
| Veld | Bepaalt |
|---|---|
| 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.
5. Aliassen, canonieke links en dubbele content
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, nietjoomla-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.
5.4 Hoe de canonieke link van Joomla helpt
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 boven6. 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, nietIMG_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.
7. Interne links en kruimelpad
7.1 Waarom interne links ertoe doen
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.
7.2 Joomla's hulpmiddelen voor interne links
Je hebt geen extensie nodig voor degelijke interne links. De Joomla-core geeft je verschillende routes:
| Hulpmiddel | Wat 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.
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
onBeforeCompileHeaden 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.
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 boven10. Redirects en kapotte links
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.)
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:
| Maat | Meet | Goed |
|---|---|---|
| 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 TABLEuit op grote tabellen zoals#__contenten#__finder_links.
Meet met Google PageSpeed Insights of Lighthouse voor en na elke wijziging, zodat je weet welke hielp.
Naar boven12. 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 boven13. 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_upenmodifiedop 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 boven14. 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 boven15. 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-
aliasaan 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 boven16. 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).
16.4 Een alias wijzigen breekt links
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 boven17. 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.txtnaar.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.
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 boven19. 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.


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


