Verwijder database-ID's uit je Joomla URL's

Iets waar veel mensen mee worstelen is het feit dat er database-ID's in de vorm van cijfers is sommige Joomla URL's staan, zoals bijvoorbeeldwww.example.com/blog/33-article-with-id. Recent kwam ik er via een tip van een lezer achter dat er mogelijk een vrij simpele oplossing voor dit probleem voorhanden is.

NB: Deze methode kan issues opleveren, dus gebruik hem op eigen risico

Op deze manier worden de URL's veel schoner, wat vooral uit een SEO oogpunt wenselijk is, maar het ziet er ook gewoon netter uit voor je gebruikers. Het blijkt eigenlijk dat de code voor de oplossing al jaren in Joomla zit verborgen, het wordt alleen niet ontsloten. Het mechanisme wordt Advanced SEF genoemd. Het mechanisme lijkt prima te werken, maar test het wel goed. Intussen is Hannes Papenberg bezig om het hele Joomla mechanisme rondom URL's te verbeteren, dus in Joomla 3.6 of verder zullen deze beschikbaar komen.

De oplossing behelst een kleine aanpassing aan de Joomla core, maar in tegenstelling tot andere core hacks blijft de hack werken na een Joomla update! Tijd voor uitleg: Ga eerst naar een site waar je het probleem van ID's in de URL nog hebt. Stel je hebt een artikel op www.example.com/blog/33-article-with-id. Onthoud deze URL, dan kun je het resultaat straks vergelijken.

Zoek het volgende bestand op in je Joomla bestanden: administrator\components\com_content\config.xml. Dit bestand beheerd de opties die tot je beschikking staan in de Opties knop in het Artikelbeheer. We gaan er nu simpelweg een nieuwe optie aan toevoegen, niets meer (dus geen programmeer code): Voeg simpelweg de volgende code toe:

<field name="sef_advanced_link"
    type="radio"
    default="0"
    label="Sef Advanced Mode"
    description="Remove ItemID from Content URL?">
        <option    value="0">JNO</option>
        <option    value="1">JYES</option>
</field>

logo 500

Het is niet echt belangrijk waar je het plaatst, zolang het maar netjes binnen een fieldset staat. Ik heb het zelf helemaal vooraan gezet, net voor het eerste field-veld. Als je nu naar de opties van het Artikelbeheer gaat zie je je eigen optie er tussen verschijnen:

sef advanced link

Je ziet dat je nu de optie SEF Advanced link aan kunt zetten. Bedenk dat als we dat doen, we niets meer doen dan code activeren die al in Joomla zit! Onze hack is niets meer dan het knopje om het aan te zetten. Dus zelfs als met een Joomla update onze aanpassingen in het config.xml bestandje worden overschreven en de optie om SEF Advanced link aan te passen weg is, blijft het mechanisme aan staan...

Als je nu de voorbeeld URL uit het begint neemt (via de site navigeren, niet gewoon de URL intikken) zul je zien dat de URL nu geen nummers meer heeft: Als je de URL gewoon intikt bestaat hij nog wel, maar de canonical URL refereert aan de URL zonder the ID, geen probleem dus.

Kortom, dit zou wel eens een mooie en simpele oplossing kunnen zijn om van dit soort gekke URL's af te komen. Bedenk dus wel dat er in Joomla 3.6 of later sowieso wijzigingen in de URL structuur komen, maar of hiermee deze oplossing overbodig wordt is de vraag. Test de fix altijd wel goed. Het beste kun je hem toepassen bij nieuwe sites. Ondanks dat bij bestaande sites de canonical URL's van de bestaande URL's naar de goede verwijzen, is het waarschijnlijk toch nodig om ook 31-redirects te maken.

Hier vindt je trouwens nog een aantal oudere blogposts die meer informatie verschaffen over deze fix:

Over deze site

Joomlaseo.com is volledig gebouwd en geschreven door Simon Kloostra, SEO Specialist en Webdesigner uit Utrecht. Ik heb ook een boek geschreven en blogs voor bedrijven als OStraining, TemplateMonster, SEMrush en dergelijke.