SEO voor een Drupal-website

Drupal kan alles, en dat is precies het probleem: zonder strakke regie genereert het meer URL’s dan Google ooit wil zien.

SEO voor Drupal is het temmen van een CMS dat van huis uit sterk is en tegelijk moeiteloos duizenden URL’s produceert die niemand nodig heeft. De techniek is er, maar Drupal levert ‘m niet kant-en-klaar. Waar WordPress met één plugin al een eind komt, moet je bij Drupal bewust kiezen wat je installeert, wat je uitzet en wat je afschermt.

De modules waar je niet omheen komt

Een Drupal-site zonder deze vijf modules mist basisfunctionaliteit die andere systemen standaard hebben:

  • Pathauto voor leesbare URL’s op basis van een patroon. Zonder Pathauto zit je met /node/1274 en dat vertelt niemand iets, ook Google niet.
  • Redirect voor 301’s, en om automatisch een redirect aan te maken als een alias verandert. Zonder deze module breekt elke titelwijziging een URL.
  • Metatag voor title tags, meta-omschrijvingen, canonical, robots en Open Graph, per contenttype in te stellen met tokens.
  • Simple XML Sitemap om te bepalen welke contenttypes en taxonomietermen überhaupt in je sitemap horen.
  • Schema.org Metatag voor gestructureerde data per contenttype, zodat je niet per pagina met de hand JSON-LD zit te plakken.

Crawl traps: waar Drupal-sites echt in verzuipen

Dit is het probleem dat we bij vrijwel elke grote Drupal-site tegenkomen, en het is zelden een tekstprobleem. Google crawlt duizenden URL’s die er niet toe doen en komt daardoor te laat of nooit bij de pagina’s die je wél wilt laten scoren.

De vaste boosdoeners:

  • Views met exposed filters. Elke combinatie van filter en paginanummer is een unieke URL. Drie filters en tien pagina’s leveren al honderden varianten op, met dezelfde inhoud in een andere volgorde.
  • Taxonomietermen. Elke tag krijgt automatisch een overzichtspagina. Bij een site met 400 tags heb je 400 pagina’s zonder eigen tekst.
  • Dubbele paden. Een node is bereikbaar via /node/882 én via de alias. Zonder een correcte canonical zien beide er voor Google uit als een aparte pagina.
  • Interne zoekpagina’s. /search?keys=… hoort nooit geïndexeerd te worden, en staat het bij verrassend veel sites toch.

De aanpak is niet spannend, maar wel effectief: canonical altijd naar de alias, filterparameters uitsluiten in robots.txt, taxonomiepagina’s op noindex tenzij iemand er een echte inleiding op schrijft, en interne zoekresultaten volledig afschermen. Daarna zie je in Search Console het aantal gecrawlde-maar-niet-geïndexeerde URL’s dalen en komen de pagina’s die er toe doen sneller aan de beurt.

Migraties zijn het grootste risico

Drupal 7 is uit de ondersteuning, dus veel organisaties zitten midden in een overstap naar Drupal 10 of 11. Bij zo’n migratie verandert vrijwel altijd het alias-patroon, en daarmee elke URL op de site. Als niemand daar vooraf op stuurt, ga je live met duizenden 404’s en verlies je in één nacht alle posities die je in jaren hebt opgebouwd.

Wat er wél moet gebeuren: crawl de oude site volledig, exporteer alle URL’s met hun verkeer uit Search Console en Analytics, en maak een mapping van oud naar nieuw. Elke URL die iets waard is krijgt een 301 naar de dichtstbijzijnde nieuwe pagina. Wat echt verdwijnt en nooit terugkomt, geef je een 410 in plaats van een redirect naar de homepage, want een berg redirects naar de homepage leest Google als een zachte 404. Die mapping laad je vóór livegang in de Redirect-module, niet erna.

Snelheid, cache en meertaligheid

Drupal cachet stevig, maar de interne page cache werkt alleen voor anonieme bezoekers. Zit je redactie de hele dag ingelogd te kijken, dan zie je een compleet ander laadprofiel dan een bezoeker. Test je snelheid dus altijd uitgelogd, met BigPipe en CSS/JS-aggregatie aan, en zorg dat image styles WebP serveren in het formaat dat je daadwerkelijk toont.

Meertaligheid doet Drupal beter dan de meeste systemen: taalnegotiatie via een padprefix zoals /nl/ en /en/, met automatische hreflang. Het gaat pas mis als een vertaling ontbreekt en de hreflang naar een pagina wijst die er niet is. Controleer dus per contenttype of elke taal ook echt gevuld is voor je hem aankondigt.

Drupal draait vaak bij organisaties waar redactie, IT en communicatie los van elkaar werken. Wij zijn dat gewend: we werken onder andere voor MBO Rijnland en De Haagse Hogeschool. In de praktijk betekent dat we niet alleen adviseren, maar ook de tickets schrijven die de ontwikkelaar kan uitvoeren. Wil je weten waar jouw Drupal-site nu staat, vraag dan een gratis SEO-scan aan of bekijk hoe wij te werk gaan.

Vrijblijvend sparren?

Laat je gegevens achter, dan bellen we je terug.

Veelgestelde vragen

Pathauto voor nette URL’s, Redirect voor 301’s, Metatag voor titels, omschrijvingen en canonicals, Simple XML Sitemap voor je sitemap en Schema.org Metatag voor gestructureerde data. Met die vijf heb je de basis die andere systemen standaard bieden. Alles daarbovenop is maatwerk.

Bijna altijd door Views met exposed filters en door taxonomiepagina’s. Elke filtercombinatie en elk paginanummer is een aparte URL. Sluit filterparameters uit in robots.txt, zet lege taxonomiepagina’s op noindex en scherm interne zoekresultaten af. Daarna kan Google zijn crawlbudget besteden aan pagina’s die wel iets opleveren.

Door vóór livegang een volledige URL-mapping te maken van oud naar nieuw en die in de Redirect-module te laden. Crawl de oude site, haal alle URL’s met verkeer uit Search Console, geef elke waardevolle URL een 301 naar de best passende nieuwe pagina en geef verdwenen pagina’s een 410. Achteraf repareren kost maanden.

Technisch kan Drupal alles wat WordPress kan en meer, zeker bij meertaligheid en complexe contentmodellen. Het verschil zit in de discipline: WordPress geeft je veel goeds standaard, Drupal geeft je alles maar je moet het zelf inrichten. Slecht ingerichte Drupal-sites presteren daardoor slechter dan een gemiddelde WordPress-site.

Benieuwd waar jij nu staat?

Laat je website achter, dan sturen we je een gratis scan met de punten die je positie tegenhouden.