Terug naar hoofdinhoud
Social Media optimalisatie voor Joomla
Op deze pagina

Social Media optimalisatie voor Joomla

02 juli 2026

Als je een link op Facebook, LinkedIn, WhatsApp of X plaatst, zie je de pagina niet. Je ziet een kaartje: een titel, een korte beschrijving en een afbeelding. Dat kaartje is het product. Het bepaalt of iemand erop klikt, en je kunt bijna alles daarbinnen vanuit Joomla beheren.

Social Media Optimization (SMO) is het proces waarbij je ervoor zorgt dat je pagina’s er goed uitzien en goed worden verspreid wanneer mensen ze delen. Het bestaat deels uit metadata, deels uit afbeeldingen, deels uit de knoppen en insluitingen op de pagina, en deels uit het spoor dat je achterlaat, zodat het juiste merk en de juiste auteur de erkenning krijgen.

In dit artikel wordt uitgelegd hoe social media-optimalisatie binnen Joomla werkt. Het behandelt de basisprincipes voor eigenaren en redacteuren, de dagelijkse instellingen voor beheerders en de technische details voor ontwikkelaars. Je zult zien welke tags de deelkaart vormen, waar deze in Joomla vandaan komen en hoe je de fouten kunt vermijden die ervoor zorgen dat een gedeelde link verandert in een leeg vak.

De link die je deelt, is een kleine advertentie. Social media optimalisatie houdt in dat je die advertentie bewust opstelt.

Het doel is simpel: je zo veel inzicht geven in social media-optimalisatie van Joomla dat je zelf bepaalt hoe je pagina's eruitzien, overal waar ze gedeeld worden.

1. De basis

1.1 Wat social media-optimalisatie betekent

SMO is je site makkelijk deelbaar en mooi-bij-delen maken. Het is niet hetzelfde als advertentiecampagnes draaien of dagelijks posten. Het is het voorwerk op de site zelf dat elke deelactie harder laat werken. Voor een Joomla-site valt het uiteen in vier lagen:

  • Deel-metadata - de Open Graph- en X Card-tags die de voorbeeldkaart opbouwen. Vooral werk voor beheerders en ontwikkelaars.
  • Deelafbeeldingen - de afbeelding die de kaart vult. Werk voor redacteuren, met technische regels.
  • Delen op de pagina - deelknoppen, embeds en volglinks. Werk voor beheerders.
  • Identiteit en automatisering - consistente merk- en auteursprofielen, plus nieuwe content automatisch posten. Gemengd werk.

Joomla schrijft je posts niet voor je, maar geeft je sterke controle over elk van deze lagen, het meeste vanuit instellingen die je al hebt.

1.2 De deelkaart is het hele spel

Als een link gedeeld wordt, stuurt het social platform zijn eigen crawler om je pagina op te halen en een handvol <meta>-tags te lezen. Daaruit bouwt het de kaart. Ontbreken de tags, dan gokt het platform op basis van wat het vindt, en die gok is meestal slecht: de verkeerde afbeelding, een afgekapte titel of een leeg grijs vakje.

Je ontwerpt niet voor de bezoeker die de pagina bereikt. Je ontwerpt voor de duizend mensen die alleen de kaart ooit zien.

1.3 Waar social-instellingen in Joomla zitten

Er is een verrassing om vroeg te leren: de meeste social-tags zijn geen apart scherm in Joomla. Ze komen uit drie mogelijke bronnen, en weten welke jouw site gebruikt bespaart je uren verwarring:

BronWat het levertBereik
Je template Veel moderne templates geven Open Graph af uit het actieve artikel. Site-breed, automatisch.
Een plugin of component Een aparte extensie die de social-tags schrijft. Site-breed, instelbaar.
Een eigen plugin Een kleine system-plugin die je zelf schrijft (sectie 13). Site-breed, volledige controle.

De regel om te onthouden: Joomla core geeft zelf geen Open Graph-tags af. De core Schema.org-plugin dekt gestructureerde data (sectie 8), maar de deelkaart-tags komen uit een van de drie bronnen hierboven. De eerste taak van elke social-audit is uitzoeken welke.

Naar boven

2.1 De crawl achter elke deelactie

Zodra iemand je URL plakt, haalt het platform de pagina een keer op en leest de head. De stroom is altijd hetzelfde:

1. Ophalen   het platform vraagt je pagina op als een uitgeklede browser
2. Lezen     het scant de <head> op og:- en twitter:-metatags
3. Bouwen    het rendert een kaart uit titel, beschrijving en afbeelding
4. Cachen    het bewaart die kaart, vaak dagen, en hergebruikt hem

Twee gevolgen volgen hieruit. Ten eerste wordt de kaart gebouwd uit server-gerenderde HTML, dus de tags moeten in de paginabron staan, niet later door JavaScript worden toegevoegd. Ten tweede ververst, omdat het resultaat gecached is, het corrigeren van een tag een oude kaart niet vanzelf - je moet de platformcache leegmaken (sectie 15).

2.2 Het Open Graph-protocol

Open Graph is de gedeelde standaard, gemaakt door Facebook en nu gelezen door bijna elk platform: LinkedIn, WhatsApp, Slack, Discord, Pinterest en meer. Elke tag is een <meta> met een property-attribuut dat begint met og::

<meta property="og:title"       content="Joomla Social Media-gids">
<meta property="og:description" content="Hoe Joomla de deelkaart opbouwt.">
<meta property="og:image"       content="https://site.tld/images/social/gids.jpg">
<meta property="og:url"         content="https://site.tld/social-media-gids">
<meta property="og:type"        content="article">
<meta property="og:site_name"   content="Peter Martin">

Krijg deze zes goed en je hebt een correcte kaart op de grote meerderheid van platforms. Al het andere is verfijning.

2.3 Wat er gebeurt zonder tags

Als je pagina geen Open Graph-tags meelevert, valt het platform terug op zwakke gokken:

  • De titel wordt de <title>-tag, die mogelijk je merksuffix draagt en onhandig leest.
  • De beschrijving wordt de meta-beschrijving, of de eerste tekst die de crawler vindt.
  • De afbeelding wordt welke afbeelding de crawler ook eerst kiest, vaak een logo, een icoon of niets.

De terugval is zelden vreselijk, maar nooit zo goed als een kaart die je zelf ontwerpt. SMO is het verschil tussen een gegokte kaart en een gekozen kaart.

Naar boven

3. De Open Graph-tags in detail

3.1 De kerntags

Dit zijn de tags die het waard zijn om op elke belangrijke pagina te zetten:

TagWat het regeltGoede waarde
og:title De kop van de kaart. Het paginaonderwerp, zonder de merksuffix.
og:description De regel onder de titel. Een heldere zin, ongeveer 2 tot 4 regels.
og:image De afbeelding van de kaart. Een absolute URL naar een 1200x630-afbeelding.
og:url De canonieke link voor de deelactie. De schone, voorkeurs-URL van de pagina.
og:type Het soort object. article voor content, website voor de homepage.
og:site_name De merknaam. Je site- of bedrijfsnaam.
og:locale De taal van de pagina. en_GB, nl_NL, enzovoort.

3.2 Titel en beschrijving zijn niet die van SEO

Een veelgemaakte aanname is dat og:title gelijk is aan de SEO-titel en og:description aan de meta-beschrijving. Ze kunnen hetzelfde zijn, maar ze dienen een andere lezer. De SEO-beschrijving is geschreven voor een zoeksnippet; de Open Graph-beschrijving is geschreven voor iemand die door een feed scrolt. Vaak wint een pittigere, kortere regel op social. Behandel ze als aparte velden die je verschillend mag invullen.

3.3 De og:url-tag houdt deelacties bij elkaar

Joomla kan een artikel via meerdere URL's bereiken (het eigen menu-item, een blogcategorie-route, de routeloze terugval). Als verschillende mensen verschillende URL's van dezelfde pagina delen, telt het platform ze als verschillende objecten en splitst het de deelteller. Door og:url op een canoniek adres te zetten vertel je het platform "dit is allemaal dezelfde pagina", zodat likes en shares optellen in plaats van versplinteren.

3.4 og:type en artikelextra's

Zet voor contentpagina's og:type op article. Dat ontgrendelt een paar optionele artikeltags die sommige platforms tonen:

<meta property="article:published_time" content="2026-06-21T10:00:00+00:00">
<meta property="article:modified_time"  content="2026-06-21T12:00:00+00:00">
<meta property="article:author"         content="Peter Martin">
<meta property="article:section"        content="Joomla">

In Joomla mappen deze netjes op velden die je al opslaat: publish_up, modified, de auteur en de categorie. Een goede social-plugin vult ze automatisch uit het live artikel.

Naar boven

4. X (Twitter) Cards

4.1 Meestal een extra tag

X leest Open Graph voor het grootste deel van zijn kaart, dus je herhaalt niet alles. Je voegt een kleine set twitter:-tags toe, en de belangrijkste is twitter:card, die de opmaak kiest:

WaardeResultaat
summary Kleine vierkante thumbnail naast de tekst.
summary_large_image Grote bannerafbeelding boven de tekst. De gebruikelijke keuze.
player Een ingebedde video- of audiospeler.
app Een installatiekaart voor een mobiele app.

4.2 De tags die je toevoegt

<meta name="twitter:card"        content="summary_large_image">
<meta name="twitter:site"        content="@jouwmerk">
<meta name="twitter:creator"     content="@deauteur">

Let op: deze gebruiken het name-attribuut, niet property zoals Open Graph. Als je twitter:title, twitter:description of twitter:image niet zet, valt X terug op de bijbehorende og:-waarden, dus meestal voeg je alleen de drie hierboven toe.

4.3 Een keer schrijven, beide bedienen

Omdat X leent van Open Graph, onderhoud je geen twee volledige sets tags. Zet de Open Graph-tags goed, voeg twitter:card en de twee handles toe, en een goede pagina bedient Facebook, LinkedIn, WhatsApp, Slack en X tegelijk. Daarom kan een enkele social-plugin of templatefunctie bijna elk platform vanuit een bron dekken.

Naar boven

5. Waar de tags vandaan komen in Joomla

5.1 Controleer wat je site al afgeeft

Voordat je iets toevoegt, kijk je naar wat een pagina al produceert. Open een willekeurig artikel in de browser, bekijk de paginabron en zoek op og:. Je vindt een van drie situaties:

  • Tags zijn aanwezig en correct - je template of een plugin doet het werk al. Audit ze en stop.
  • Tags zijn aanwezig maar fout - dezelfde afbeelding op elke pagina, of een verouderde titel. Vind de bron en herstel het.
  • Helemaal geen tags - alleen core, zonder template- of pluginondersteuning. Je moet een bron toevoegen.

5.2 Optie A: de template

Veel moderne Joomla-templates bouwen Open Graph uit het actieve artikel: ze lezen de artikeltitel, de intro-afbeelding en de beschrijving en schrijven de tags in de head. Dit is de simpelste route - je verandert niets in code. Het risico is een template die een og:image hardcodeert voor de hele site, waardoor elke deelactie dezelfde afbeelding krijgt. Controleer de uitvoer altijd op meerdere pagina's, niet alleen de homepage.

5.3 Optie B: een aparte extensie

Verschillende bekende Joomla-extensies zijn gespecialiseerd in social- en SEO-metadata. Ze voegen een instellingenpaneel toe, vaak een tab per artikel, en schrijven de volledige Open Graph- en X Card-set. Dit is de juiste keuze voor een contentrijke site die wil dat redacteuren de kaart per artikel beheren zonder code aan te raken.

5.4 Optie C: een kleine eigen plugin

Als je volledige controle wilt en geen code van derden, haakt een korte system-plugin in op het head-compile-event en schrijft de tags uit het live artikel (sectie 13). Dit is de schoonste, best onderhoudbare optie voor een site die door een ontwikkelaar wordt beheerd, omdat de logica in een bestand zit dat een templatewissel overleeft.

5.5 Het ene object dat ze allemaal gebruiken

Wat de bron ook is, elke route eindigt op dezelfde plek: het Document-object van Joomla. De template, de extensie en je plugin roepen er allemaal setMetaData() op aan om een tag toe te voegen. Die ene methode begrijpen (sectie 13.1) ontrafelt het hele onderwerp - social-tags zijn gewoon metadata die op het document geschreven worden voordat de head rendert.

Naar boven

6. Afbeeldingen voor social sharing

6.1 De afbeelding verkoopt de kaart

In een drukke feed is de afbeelding wat het scrollen stopt. Ze verdient evenveel zorg als de kop. De platforms zijn het eens over een doelvorm:

EigenschapAanbevolen
Formaat 1200 x 630 pixels.
Beeldverhouding Ongeveer 1.91 op 1 (de brede kaart).
Bestandstype JPG of PNG. Houd het bestand onder ongeveer 1 MB.
Minimum Minstens 600 x 315, anders krimpt de kaart tot een thumbnail.

Houd belangrijke tekst en gezichten weg van de randen; sommige platforms snijden de kaart op mobiel bij tot een vierkant.

6.2 De regel van de absolute URL

De meest voorkomende afbeeldingsfout is een relatief pad. Social-crawlers lossen relatieve URL's niet op, dus og:image moet een volledig, absoluut adres zijn:

Fout:  <meta property="og:image" content="images/social/gids.jpg">
Goed:  <meta property="og:image" content="https://site.tld/images/social/gids.jpg">

Als je kaart geen afbeelding toont terwijl de tag er wel is, controleer dit dan eerst. Een goede plugin bouwt de absolute URL met de Uri::root() van Joomla, zodat hij altijd klopt.

6.3 Waar de afbeelding in Joomla vandaan komt

Elk Joomla-artikel heeft een tab Afbeeldingen en links met twee afbeeldingsvelden: Intro-afbeelding en Volledige artikelafbeelding. Een social-plugin of template kiest meestal een van deze voor og:image, en valt terug op een standaardafbeelding van de site als beide leeg zijn. De praktische werkwijze voor redacteuren:

  • Stel een bewuste intro-afbeelding in op elk artikel waarvan je verwacht dat het gedeeld wordt.
  • Configureer een verstandige site-brede standaardafbeelding voor pagina's die er geen hebben.
  • Ontwerp voor belangrijke landingspagina's een doelgerichte 1200x630-deelafbeelding in plaats van een foto uit de tekst te hergebruiken.

6.4 Voeg de afbeeldings-alt en -afmetingen toe

Twee optionele tags maken de kaart robuuster. og:image:alt beschrijft de afbeelding voor toegankelijkheid, en de breedte- en hoogtetags laten het platform ruimte reserveren voordat de afbeelding laadt:

<meta property="og:image:alt"    content="De Joomla 6-artikeleditor">
<meta property="og:image:width"  content="1200">
<meta property="og:image:height" content="630">

6.5 Dynamische social-afbeeldingen

Een groeiende aanpak slaat opgeslagen afbeeldingen over en genereert de deelafbeelding ter plekke. In plaats van dat een redacteur voor elk artikel een kaart uploadt, rendert een kleine service een 1200x630-afbeelding uit de artikeldata - de titel, auteur, categorie, datum en je huisstijl - en cachet die daarna. De Open Graph-tag wijst simpelweg naar die gegenereerde URL:

<meta property="og:image"
      content="https://site.tld/og-image/joomla-social-gids.png">

De winst is consistente, merkgetrouwe kaarten over honderden pagina's zonder handmatig ontwerpwerk. In Joomla bouw je dit met een eigen plugin of een externe afbeeldingsservice die dezelfde artikelvelden leest als een normale og:image-plugin (sectie 13.3). Behandel het als een gevorderde optie: het voegt bewegende delen toe, dus grijp er pas naar als handgemaakte afbeeldingen niet meer schalen.

Naar boven

7. Social velden die de redacteur beheert

7.1 Geef redacteuren een social-kaart om in te vullen

De beste kaarttekst is zelden identiek aan de paginatitel en meta-beschrijving. De feed wil een pittigere regel, en de SEO-snippet wil een precieze. Om redacteuren en marketeers de kaart te laten schrijven zonder code aan te raken, voeg je toegewijde social-velden toe met de core Custom Fields van Joomla. Maak drie velden en koppel ze aan je artikeltype:

Custom FieldTypeVoedt
Social Title Text og:title, twitter:title
Social Description Textarea og:description, twitter:description
Social Image Media og:image, twitter:image

Je bouwt deze in Componenten → Velden, koppelt ze aan het artikelformulier, en de redacteur vult ze in op de tab Velden van het artikel. Een template-override of plugin leest dan de waarden en schrijft de tags. De kaart is geen ontwikkelaarsinstelling meer en wordt onderdeel van het schrijven van het artikel.

7.2 De fallback-hierarchie

Een robuuste opzet laat een tag nooit leeg. Hij loopt een prioriteitsketen af en gebruikt de eerste waarde die hij vindt, zodat elke pagina een complete kaart krijgt, zelfs als een redacteur niets invult. De beproefde volgorde:

TITEL        social veld  →  metatitel  →  artikeltitel
BESCHRIJVING social veld  →  meta-desc  →  introtekst (ingekort)
AFBEELDING   social veld  →  intro-afb  →  volledige afb  →  standaard

De logica leest van boven naar beneden en stopt bij de eerste niet-lege waarde. Het benoemde social-veld wint altijd als een redacteur er moeite voor doet; alles eronder is een vangnet zodat geen enkele pagina ooit als een leeg vakje gedeeld wordt. Bouw deze keten een keer in je plugin of override en elk artikel erft hem.

7.3 Waarom velden beter zijn dan vrije tekst

De kaartgegevens in de artikeltekst typen zou snel zijn, maar custom fields zijn de kleine opzet waard:

  • Redacteuren krijgen een formulier, geen verborgen afspraak, dus de kaarttekst wordt consistent ingevuld.
  • De data blijft gestructureerd in #__fields_values, dus een plugin kan het schoon lezen en zelfs hergebruiken voor schema.
  • Ontwikkelaars vermijden hardgecodeerde logica - de waarden leven bij de content, niet in de template.

Dit is hetzelfde Custom Fields-patroon dat Joomla gebruikt om gestructureerde data te voeden, toegepast op de deelkaart. Een gedisciplineerde opzet bedient zowel de social-preview als de JSON-LD (sectie 8.3).

Naar boven

8. Je social profielen aangeven

8.1 De sameAs-verbinding

Social-optimalisatie is niet alleen de deelkaart. Je wilt ook dat zoekmachines en AI-systemen je website aan je social-accounts koppelen, zodat ze die als een identiteit behandelen. Het hulpmiddel hiervoor is de sameAs-eigenschap in gestructureerde data: een lijst van je officiele profiel-URL's gekoppeld aan je Organization of Person.

"sameAs": [
  "https://www.linkedin.com/company/jouw-merk",
  "https://www.facebook.com/jouwmerk",
  "https://x.com/jouwmerk"
]

Dit zegt "deze accounts zijn van mij". Het versterkt je merk als een herkende entiteit en kan de social-links voeden die sommige zoekresultaten naast een site tonen.

8.2 De core Schema.org-plugin

Hier helpt Joomla core wel. De plugin System - Schema.org (meegeleverd en ingeschakeld in Joomla 5 en 6) geeft JSON-LD gestructureerde data af. In de opties kies je een basistype Organization of Person en stel je de site-identiteit in:

Systeem → Plugins → System - Schema.org
  Basistype:  Organization (of Person)
  Naam, URL, Logo/afbeelding, Adres, E-mail

Het Organization-type laat je de naam, URL, logo en adres instellen, en extra eigenschappen toevoegen via de generieke velden. Gebruik een generiek veld (of een eigen schemablok) om je sameAs social-profiel-URL's toe te voegen, zodat de gestructureerde data je accounts op een consistente plek benoemt.

8.3 Schema per artikel

Dezelfde plugin voegt een tab Schema.org toe aan elk artikel, waar een redacteur een type kiest zoals Article, BlogPosting, Event of Recipe en de velden invult. Dit schema per artikel en je social-tags versterken elkaar: het schema vermeldt de auteur en datums als data, en de Open Graph-tags presenteren dezelfde feiten op de kaart. Houd ze consistent zodat machines en mensen een verhaal zien.

8.4 Consistentie is het punt

Wat je ook aangeeft, geef het overal op dezelfde manier aan. De merknaam in og:site_name, de naam in je Organization-schema en de handle in twitter:site moeten een identiteit beschrijven. Gemengde namen en losse oude handles verwarren de platforms en verzwakken de band tussen je site en je accounts.

Naar boven

9. Meertalig delen op social

9.1 Vertel platforms de taal

Op een meertalige Joomla-site moet elke pagina zijn taal aangeven, zodat platforms hem correct previewen en de juiste versie kunnen aanbieden. De og:locale-tag benoemt de paginataal, en og:locale:alternate somt de andere op die je publiceert:

<meta property="og:locale"           content="nl_NL">
<meta property="og:locale:alternate" content="en_GB">

Het formaat is taal_REGIO met een underscore (nl_NL, en_GB), niet het koppelteken van de SEO-hreflang-tag. Zet og:locale op basis van de taal van de actieve pagina, niet een vaste site-standaard, anders claimt elke pagina de verkeerde.

9.2 Vertaal de kaart, niet alleen de tekst

Een vertaalde pagina heeft een vertaalde kaart nodig. Elke taalversie hoort een eigen og:title, og:description en idealiter een eigen og:image te dragen als de afbeelding tekst bevat. Als je de social custom fields uit sectie 7 gebruikt, vul ze dan per vertaling in, zodat de Nederlandse deelactie in het Nederlands leest en de Engelse in het Engels. Een half-vertaalde kaart - Engelse titel op een Nederlandse pagina - oogt onaf voor een Nederlandse lezer.

9.3 Houd og:url binnen de taal

Wijs de og:url van elke versie naar de eigen URL van die taal (/nl/... voor Nederlands, /en/... voor Engels). Dit sluit aan op de Associaties van Joomla en de plugin System - Taalfilter, die elke taal al op een eigen pad houden. Als de artikelvertalingen correct geassocieerd zijn, lijnen de taaltags en de canonieke deel-URL automatisch op. (Voor de onderliggende opzet, zie de aparte Focus On-artikelen over Associaties en Talen.)

Naar boven

10. Social deelknoppen en widgets

10.1 Core heeft geen deelknoppen

Wees duidelijk over een beperking: Joomla core levert geen social-deelknoppen of volgwidgets. Je voegt ze toe met een extensie (een module of contentplugin) of met een paar regels in een template-override. Dat is geen zwakte - het houdt core slank - maar het betekent dat deelknoppen een bewuste keuze zijn, geen standaard.

10.2 Twee soorten deelknop

Er zijn twee heel verschillende manieren om delen toe te voegen, en het verschil is belangrijk voor snelheid en privacy:

AanpakHoe het werktKosten
Simpele deellinks Gewone links naar de deel-URL van elk platform. Geen JavaScript, geen tracking, heel snel.
Officiele widgets Het script van elk platform (like-/deeltellers). Zware scripts, cookies van derden, trager.

Voor de meeste sites wint de simpele link. Hij heeft geen script van derden nodig en laadt direct:

<a href="https://www.linkedin.com/sharing/share-offsite/?url=https://site.tld/pagina"
   target="_blank" rel="noopener">Delen op LinkedIn</a>

<a href="https://www.facebook.com/sharer/sharer.php?u=https://site.tld/pagina"
   target="_blank" rel="noopener">Delen op Facebook</a>

10.3 De afweging tussen privacy en snelheid

Officiele deelwidgets en like-knoppen laden scripts die cookies van derden zetten en de pagina vertragen. In de EU brengt dat ook toestemmingsplichten met zich mee. Geef de voorkeur aan de lichte links hierboven, tenzij je echt live deeltellers nodig hebt. Bed je toch een platformwidget in, plaats die dan achter toestemming (sectie 11.3) en meet de snelheidskosten.

10.4 Plaats knoppen waar ze helpen

Een paar praktische gewoonten: zet deelknoppen boven en onder een artikel, niet zwevend over de tekst op mobiel; houd de set klein (de drie of vier platforms die je publiek echt gebruikt); en zorg dat de pagina die ze delen correcte Open Graph-tags heeft, anders levert de knop een lelijke kaart hoe mooi het icoon ook is.

Naar boven

11. Social login en embeds

11.1 Social login zit niet in core

Joomla core bevat geen "Inloggen met Facebook/Google". Core-authenticatie dekt gebruikersnaam en wachtwoord, plus moderne passkeys via de WebAuthn-plugin. Voor social login voeg je een OAuth-extensie toe. Weeg het zorgvuldig af: social login is handig, maar bindt je accounts aan een derde partij en voegt een privacydimensie toe. Voor veel sites is een schone lokale login plus passkeys de betere standaard. (Voor het volledige beeld, zie het aparte Focus On-artikel over Authenticatie.)

11.2 Social content embedden

Het omgekeerde van naar buiten delen is social content naar binnen halen: een feed met posts, een ingebedde video, een tijdlijn. Je kunt deze inbedden in een Joomla-artikel of een Custom HTML-module, maar elke embed laadt scripts van derden die snelheid en privacy net zo raken als widgets. Bed alleen in wat zijn plek verdient.

11.3 Toestemming voor embeds van derden

Als je social-widgets inbedt die cookies zetten, vereisen EU-regels eerst toestemming. Joomla helpt hier met twee core-plugins:

  • Content - Bevestig toestemming (confirmconsent) - voegt een toestemmingsvinkje toe aan core-formulieren.
  • System - Privacytoestemming (privacyconsent) - registreert en volgt toestemming van gebruikers.

Deze blokkeren een script niet vanzelf, maar ze zijn de core-bouwstenen van een toestemmingsworkflow. Het veilige patroon is een social-embed pas te laden nadat de bezoeker akkoord gaat, vaak met een "klik om te laden"-placeholder tot dan.

Naar boven

12. Publiceren naar social (automatisering)

12.1 Core post niet automatisch, maar voedt de tools die dat wel doen

Joomla core heeft geen ingebouwde "publiceer dit artikel naar mijn social-accounts". Wat het wel heeft, is een schone uitvoer die automatiseringstools lezen: een RSS-feed. Elke categorie en de aanbevolen-weergave kunnen een feed produceren door &format=feed aan de URL toe te voegen:

https://site.tld/index.php?option=com_content&view=category&id=8&format=feed&type=rss

Richt een dienst als Zapier, Make of IFTTT op die feed, en elk nieuw artikel kan zichzelf automatisch naar je social-accounts posten. Geen extensie in Joomla nodig - de feed is het integratiepunt.

12.2 De Scheduler voor eigen posting

Voor strakkere controle draait de core Scheduler (com_scheduler) van Joomla achtergrondtaken op een tijdschema. Een ontwikkelaar kan een kleine taakplugin schrijven die nieuw gepubliceerde artikelen vindt en de API van een social platform aanroept om ze te posten:

Systeem → Geplande taken → Nieuw → [jouw eigen taak]
  Draai: elke 15 minuten
  Actie: post nieuwe artikelen naar de social-API

Dit houdt de hele pijplijn binnen Joomla, zonder automatiseringsaccount van derden, ten koste van het schrijven en onderhouden van de taak. (Voor hoe taken werken, zie het aparte Focus On-artikel over de Scheduler.)

12.3 Webhooks beide kanten op

Automatisering kan ook event-gedreven zijn. Een contentplugin die op onContentAfterSave haakt, kan een webhook naar een externe dienst afvuren op het moment dat een artikel gepubliceerd wordt, in plaats van te wachten op een geplande peiling. Dit is de snelste weg van "publiceren" naar "gepost", en hergebruikt de normale plugin-events van Joomla in plaats van een speciale social-functie.

Naar boven

13. Onder de motorkap (ontwikkelaarsweergave)

13.1 Tags schrijven met het Document-object

Elke social-tag is een metadata-invoer op het Document-object van Joomla. De methode setMetaData() neemt een derde argument dat de attribuutnaam zet, en zo verschillen Open Graph (property) en X Cards (name):

use Joomla\CMS\Factory;

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

// Open Graph gebruikt het "property"-attribuut:
$doc->setMetaData('og:title', 'Joomla Social Media-gids', 'property');
$doc->setMetaData('og:type', 'article', 'property');
$doc->setMetaData('og:image', 'https://site.tld/images/social/gids.jpg', 'property');

// X Cards gebruiken het standaard "name"-attribuut:
$doc->setMetaData('twitter:card', 'summary_large_image');
$doc->setMetaData('twitter:site', '@jouwmerk');

Intern bewaart Joomla deze onder _metaTags[$attribute][$name] en de head-renderer schrijft elk als <meta property="..." content="..."> of <meta name="..." content="...">. Die ene methode is het hele mechanisme.

13.2 De juiste plek: een system-plugin

De schone, template-onafhankelijke plek hiervoor is een kleine system-plugin die op het head-compile-event haakt en alleen aan de voorkant draait:

use Joomla\CMS\Factory;

public function onBeforeCompileHead(): void
{
    $app = Factory::getApplication();

    if (!$app->isClient('site')) {
        return;
    }

    $doc = $app->getDocument();

    $doc->setMetaData('og:site_name', 'Peter Martin', 'property');
    $doc->setMetaData('og:url', $doc->getBase(), 'property');
    $doc->setMetaData('twitter:card', 'summary_large_image');
}

Haken op onBeforeCompileHead houdt de markup uit de template, zodat het een templatewissel overleeft en vanuit een plek over de hele site geldt.

13.3 Lees het live artikel voor accurate tags

Site-brede standaarden zijn niet genoeg; de kaart hoort de echte pagina te weerspiegelen. Haal in een contentweergave het actieve artikel op via de moderne MVC-factory en bouw de tags uit de echte velden:

$app   = Factory::getApplication();
$input = $app->getInput();

if ($input->get('option') === 'com_content'
    && $input->get('view') === 'article') {

    $id = (int) $input->getInt('id');

    $article = $app->bootComponent('com_content')
                   ->getMVCFactory()
                   ->createModel('Article', 'Site', ['ignore_request' => true])
                   ->getItem($id);

    $doc = $app->getDocument();
    $doc->setMetaData('og:title', $article->title, 'property');
    $doc->setMetaData('og:description', $article->metadesc, 'property');
}

Uit $article krijg je ook introtext, images (de JSON met de intro- en volledige afbeeldingen), publish_up en modified - alles wat nodig is voor de afbeelding en de artikeltijd-tags. Om de social custom fields uit sectie 7 te respecteren, laad je ook de velden van het artikel en geef je hun waarden voorrang:

$fields = \Joomla\Component\Fields\Administrator\Helper\FieldsHelper::getFields(
    'com_content.article', $article, true
);
// Loop door $fields voor "social-title", "social-image", enz. en pas
// de fallback-hierarchie toe voordat je elke tag schrijft.

13.4 Bouw absolute afbeeldings-URL's

Omdat og:image absoluut moet zijn, geef je nooit het ruwe opgeslagen pad af. Plaats de site-root ervoor:

use Joomla\CMS\Uri\Uri;

$images = json_decode($article->images);
$intro  = $images->image_intro ?? 'images/social/standaard.jpg';

$doc->setMetaData('og:image', Uri::root() . $intro, 'property');

13.5 De events van de Schema.org-plugin

Als je het core Schema.org-systeem uitbreidt in plaats van je eigen te schrijven, biedt het events waarop je je kunt abonneren: onSchemaPrepareForm om velden toe te voegen, onSchemaPrepareData om de data vorm te geven, onSchemaPrepareSave om die op te slaan, en onSchemaBeforeCompileHead om de uiteindelijke JSON-LD aan te passen. Een child-schemaplugin (de core-set bevat article, organization, person, event en meer) is de ondersteunde manier om een nieuw type gestructureerde data toe te voegen, inclusief de sameAs social-links uit sectie 8.

Naar boven

14. Headless en de Web Services API

14.1 De tags worden de taak van de front-end

Als je Joomla headless draait - een aparte React-, Vue- of statische front-end die content via de Web Services API ophaalt - rendert Joomla de HTML-head niet meer, dus geeft het geen Open Graph- of X Card-tags af. Joomla levert nog wel het ruwe materiaal:

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

De JSON bevat title, introtext, metadesc, images, publish_up en modified - alles wat de front-end nodig heeft om de social-tags zelf te herbouwen.

14.2 Render echte HTML voor de crawlers

Social-crawlers halen HTML op en draaien bijna geen JavaScript. Een headless front-end moet daarom server-side renderen (SSR) of statische pagina's genereren, zodat de crawler voltooide <meta>-tags in de bron ziet. Een lege schil die zich pas vult nadat de browser JavaScript draait, levert een lege kaart. De regel: elke og:- en twitter:-tag moet in de server-gerenderde HTML bestaan, gemapt uit de API-velden, voordat de pagina een crawler bereikt.

Naar boven

15. Meten en debuggen van social

15.1 De platform-debuggers

Elk groot platform biedt een gratis tool die je URL ophaalt, de kaart toont die het bouwt en de tags opsomt die het las. Gebruik ze telkens als je een tag verandert - ze forceren ook een verse crawl, wat de gecachte kaart van het platform leegmaakt:

PlatformTool
Facebook / WhatsApp Sharing Debugger (developers.facebook.com).
LinkedIn Post Inspector.
X De Card-validator (waar beschikbaar).

Als je een tag herstelt maar de oude kaart blijft tonen, haal de pagina dan door de debugger om een her-scrape te forceren. De kaart is gecached, dus alleen bewerken ververst hem niet.

15.2 Volg social-verkeer met UTM-tags

Om te zien welke deelacties bezoekers brengen, voeg je UTM-parameters toe aan de links die je post, zodat analytics social-verkeer van de rest kan scheiden:

https://site.tld/social-media-gids?utm_source=linkedin&utm_medium=social&utm_campaign=focus-on

Dan kun je in Google Analytics 4 via de bron en het medium sessies en conversies per platform vergelijken. Dit verandert "we posten op social" in "LinkedIn stuurde 40 bezoekers die elk drie pagina's lazen".

15.3 Houd verwijzingen van de platforms in de gaten

Zelfs zonder UTM-tags registreert analytics de verwijzende host. Filter Rapporten → Acquisitie → Verkeersacquisitie op de social-domeinen om echte verwezen bezoeken te zien:

facebook.com / m.facebook.com
linkedin.com
t.co        (X-linkomhulsel)
instagram.com

Vergelijk betrokkenheid en conversies met organisch zoeken. Dat vertelt je niet alleen dat mensen je links delen, maar dat de deelacties bezoekers sturen die handelen.

Naar boven

16. Veelgemaakte fouten en valkuilen

16.1 Geen afbeelding in de kaart

Symptoom: een gedeelde link toont tekst maar een lege of ontbrekende afbeelding.

Oplossing: maak og:image een absolute URL (sectie 6.2), zorg dat het bestand minstens 600x315 is en controleer of het platform het kan bereiken (niet achter een login of een geblokkeerde map).

16.2 De kaart wil niet bijwerken

Symptoom: je hebt een titel of afbeelding gecorrigeerd, maar de oude kaart blijft verschijnen.

Oplossing: het platform cachete de oude scrape. Haal de URL door de platform-debugger (sectie 15.1) om een verse ophaling te forceren.

16.3 Dezelfde afbeelding op elke pagina

Symptoom: elk gedeeld artikel toont je logo of een vaste stockfoto.

Oplossing: je template of plugin hardcodeert een og:image. Stap over naar een bron die het social-veld of de intro-afbeelding van elk artikel leest, met een site-standaard alleen als laatste terugval (secties 6.3 en 7.2).

16.4 Tags toegevoegd door JavaScript

Symptoom: de kaart is leeg, ook al verschijnen de tags in de element-inspector van de browser.

Oplossing: crawlers lezen de ruwe HTML, niet de door JavaScript gebouwde DOM. Geef de tags server-side af. In Joomla betekent dat een plugin of template, geen clientscript.

16.5 Vertrouwen op de title-tag voor de kaart

Symptoom: de kaartkop leest "Over ons - Mijn bedrijf - Joomla" met de merksuffix.

Oplossing: zet een expliciete og:title zonder de site-naamsuffix, los van de SEO-<title> (sectie 3.2).

16.6 Zware deelwidgets vertragen de pagina

Symptoom: officiele like- en deelknoppen voegen seconden laadtijd toe en zetten cookies van derden.

Oplossing: vervang ze door simpele deellinks (sectie 10.2) en plaats elke echte widget achter toestemming.

16.7 Inconsistente merknaam en handles

Symptoom: og:site_name, de schemanaam en twitter:site verschillen, en platforms schrijven deelacties aan de verkeerde identiteit toe.

Oplossing: vermeld overal een merknaam en een handle, en som je profielen een keer op met sameAs (sectie 8).

16.8 Een kaart voor elke taal

Symptoom: de Nederlandse pagina deelt met een Engelse titel en een Engelse afbeelding.

Oplossing: vertaal de social-velden per taal en zet og:locale op basis van de actieve pagina, en associeer dan de vertalingen zodat elke versie zijn eigen kaart afgeeft (sectie 9).

Naar boven

17. Best practices

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

  • Zet de zes Open Graph-kerntags op elke belangrijke pagina: title, description, image, url, type, site_name.
  • Voeg twitter:card = summary_large_image toe en laat X de rest van Open Graph lenen.
  • Maak og:image een absolute URL en ontwerp hem op 1200x630.
  • Geef elk artikel een eigen intro-afbeelding zodat de kaart niet altijd dezelfde is.
  • Voeg Social Title-, Description- en Image-custom-fields toe zodat redacteuren de kaart per artikel beheren.
  • Bouw een fallback-hierarchie achter die velden zodat geen pagina ooit als een leeg vakje deelt.
  • Schrijf og:title en og:description voor de feed, niet alleen voor de zoeksnippet.
  • Zoek uit welke bron je tags afgeeft (template, plugin of eigen) en houd er maar een.
  • Som je social-profielen een keer op met sameAs in de core Schema.org Organization-data.
  • Zet op meertalige sites og:locale en og:locale:alternate en vertaal de kaart per taal.
  • Geef de voorkeur aan simpele deellinks boven zware platformwidgets, en plaats embeds achter toestemming.
  • Automatiseer posten vanuit een core RSS-feed of een Scheduler-taak, niet met de hand.
  • Verifieer elke wijziging met de platform-debuggers, die ook de gecachte kaart verversen.
  • Volg social-bezoeken met UTM-tags en het verwijzingsrapport.
  • Houd een merknaam en een handle aan over tags, schema en profielen.
Naar boven

18. In het kort

OG-KERNTAGS    og:title og:description og:image og:url og:type og:site_name
OG TYPE        article voor content, website voor de homepage
ARTIKEL EXTRA  article:published_time / modified_time / author / section
X CARD         twitter:card=summary_large_image + twitter:site + creator
ATTRIBUUT      og: gebruikt property=, twitter: gebruikt name=
AFBEELDING     1200x630, ratio 1.91:1, absolute URL, onder ~1 MB
AFB. BRON      social veld → intro-afb → volledige afb → standaard
DYN. AFB.      genereer 1200x630-kaart uit artikeldata, dan cachen
SOCIAL VELDEN  Custom Fields: Social Title / Description / Image per artikel
FALLBACK       eerste niet-lege waarde wint; laat geen tag leeg
TAG-BRON       niet core: template, plugin of eigen system-plugin
DOCUMENT API   $doc->setMetaData('og:title', $val, 'property')
PLUGIN-HOOK    onBeforeCompileHead, alleen client site
ABSOLUTE URL   Uri::root() . $imagePath
PROFIELEN      sameAs-lijst in core Schema.org Organization/Person
SCHEMA-PLUGIN  System - Schema.org (core, Joomla 5/6)
SCHEMA-EVENTS  onSchemaPrepareForm / PrepareData / PrepareSave /
               BeforeCompileHead
MEERTALIG      og:locale + og:locale:alternate; kaart per taal vertalen
DEELKNOPPEN    niet core; simpele links beter dan zware widgets
TOESTEMMING    confirmconsent + privacyconsent voor embeds
SOCIAL LOGIN   niet core; OAuth-extensie of WebAuthn-passkeys
AUTOMATISERING RSS-feed (&format=feed) + Zapier/Make/IFTTT
SCHEDULER      com_scheduler-taak post nieuwe artikelen via API
WEBHOOK        onContentAfterSave vuurt een externe post af
HEADLESS       API geeft velden; front-end rendert de tags (SSR)
DEBUG          Facebook Sharing Debugger / LinkedIn Post Inspector
METEN          UTM-tags + GA4-verwijzingsrapport (facebook/linkedin/t.co)
DB-VELDEN      #__content: title, introtext, images, metadesc, publish_up
               #__fields_values: de social custom field-waarden
Naar boven

19. Samenvatting

Social media-optimalisatie in Joomla gaat minder over meer posten en meer over het beheersen van de kleine kaart die verschijnt telkens als je link gedeeld wordt. Met Joomla en een beetje discipline kun je:

  • De deelkaart ontwerpen met de core Open Graph-tags en een X Card-regel.
  • De afbeelding beheersen met een bewuste, absolute, correct gemaakte og:image per artikel.
  • Redacteuren eigenaar maken met social custom fields en een betrouwbare fallback-hierarchie erachter.
  • Je tag-bron bewust kiezen - template, extensie of een kleine eigen plugin - en er maar een houden.
  • Je identiteit aangeven met consistente merkfeiten en een sameAs-lijst in de core Schema.org-data.
  • Elke taal bedienen met locales, kaarten en geassocieerde vertalingen per taal.
  • Delen zorgvuldig toevoegen met lichte links in plaats van zware widgets, en toestemming voor embeds.
  • Publiceren automatiseren vanuit een core RSS-feed, een Scheduler-taak of een content-webhook.
  • Het resultaat meten met de platform-debuggers, UTM-tags en het verwijzingsrapport.

De rode draad is dat Joomla alles al bevat wat een goede deelkaart nodig heeft - de titel, de afbeelding, de datums, de auteur. Social-optimalisatie is het werk om die feiten schoon aan de platforms te presenteren, in tags die ze kunnen lezen, zodat de link zijn werk doet nog voordat iemand klikt.

Als je links als lege vakjes gedeeld worden, of de verkeerde afbeelding blijft verschijnen wat je ook uploadt, komt het meestal neer op een van de kleine dingen uit dit artikel: een relatief afbeeldingspad, een gecachte kaart of een template die stilletjes je tags overschrijft. Herstel de bron een keer en elke toekomstige deelactie ziet eruit zoals je bedoelt.

Naar boven
Social Media optimalisatie voor Joomla
Peter Martin
Peter Martin
Joomla Specialist

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

Veelgestelde vragen

Wat is social media-optimalisatie (SMO)?

Social media-optimalisatie (SMO) is het proces waarbij je website er op zijn best uitziet wanneer deze op sociale media wordt gedeeld. Hierbij wordt gebruikgemaakt van metadata zoals Open Graph- en X (Twitter)-cards om de titel, beschrijving en afbeelding te bepalen die in linkvoorbeelden worden weergegeven. Goede SMO verbetert de zichtbaarheid, stimuleert het aantal klikken en zorgt voor een consistente merkbeleving op alle sociale platforms.

Ondersteunt Joomla Open Graph en X (Twitter) Cards?

Joomla bevat de metadata die nodig is voor zoekmachines, maar genereert standaard geen Open Graph- of X Card-tags. Deze tags worden doorgaans toegevoegd door je sjabloon, een speciale plug-in of een aangepaste extensie. Als dit eenmaal correct is geconfigureerd, kan elke gedeelde pagina aantrekkelijke voorbeelden weergeven met de juiste titel, beschrijving en afbeelding.

Waarom wordt op mijn Joomla-pagina de verkeerde afbeelding of beschrijving weergegeven op Facebook of LinkedIn?

Sociale platforms slaan pagina-informatie op in de cache na de eerste keer delen. Zelfs nadat je jouw website hebt bijgewerkt, kan het oude voorbeeld blijven staan totdat het platform zijn cache vernieuwt. Je kunt meestal een vernieuwing forceren met de foutopsporingshulpmiddelen van het platform. Controleer ook of je pagina de juiste Open Graph-tags bevat en of de afbeelding voldoet aan de aanbevolen afmetingen.

Welk afbeeldingsformaat moet ik gebruiken voor het delen op sociale media?

Gebruik voor het beste resultaat een afbeelding van 1200 × 630 pixels met een beeldverhouding van 1,91:1. Dit formaat werkt goed op Facebook, LinkedIn, X en veel berichtenapps. De afbeelding moet scherp zijn, relevant voor de pagina en weinig of geen tekst bevatten om bijsnijden te voorkomen en de leesbaarheid te verbeteren.

Helpen Open Graph-tags bij SEO?

Open Graph-tags verbeteren je Google-rangschikking niet direct. Ze vergroten echter wel de kans dat mensen op je content klikken en deze delen op sociale media. Meer betrokkenheid en een bredere verspreiding kunnen indirect de zichtbaarheid van je website verbeteren en meer bezoekers aantrekken. Ook zoekmachines en AI-systemen profiteren van consistente metadata bij het interpreteren van je content.

Hoe kan ik het delen via sociale media in Joomla verbeteren zonder veel extensies te installeren?

Je kunt uitstekende resultaten bij het delen via sociale media bereiken door unieke paginatitels en metabeschrijvingen te schrijven, hoogwaardige uitgelichte afbeeldingen te gebruiken, Open Graph- en X Card-metadata toe te voegen via je template of een kleine plugin, en je pagina’s te testen met validatietools voor sociale media voordat je ze publiceert. In de meeste gevallen is slechts een minimale hoeveelheid extra functionaliteit nodig, in plaats van een zware sociale media extensie.