Skip to main content
M Mika Leonard

WordPress-plugin · versie 0.10.1

SEO Health Check

Een plugin die elke pagina van een WordPress-site controleert op de SEO-fouten die je makkelijk mist: ontbrekende meta descriptions, afbeeldingen zonder alt-tekst, verkeerde koppen, dunne teksten en kapotte links. Alles staat in één overzicht in het dashboard, met een score per pagina en een directe link naar de pagina die je moet aanpassen. Alt-teksten, titels en descriptions los je zelfs meteen in het overzicht op, en op vaste momenten scant hij zelf en mailt hij je het rapport.

129 KB · WordPress 6.0+ (getest tot 7.1) · PHP 7.4+ · Werkt met Yoast SEO en Rank Math · In het Nederlands en Engels · GPL-2.0

603

pagina's gescand in de test, zonder één time-out

9

controles op elke pagina

27

launch checks voor de hele site

0

meldingen van de WordPress Coding Standards

Wat hij controleert

Per pagina, automatisch

Titels en meta descriptions komen rechtstreeks uit Yoast SEO of Rank Math, inclusief hun sjablonen. Zonder SEO-plugin gebruikt hij de standaard van WordPress.

  • 01

    Titel

    Ontbreekt, is te lang voor Google of wordt door meerdere pagina's gebruikt.

  • 02

    Meta description

    Niet ingevuld, te lang of dubbel. Zonder description kiest Google zelf een stukje tekst.

  • 03

    Alt-teksten

    Afbeeldingen zonder beschrijving, ook de uitgelichte afbeelding. Slecht voor Google én voor blinde bezoekers.

  • 04

    H1-kop

    Geen hoofdkop, of meer dan één. Houdt rekening met thema's die de titel zelf als H1 tonen.

  • 05

    Dunne content

    Pagina's met minder woorden dan het minimum dat je zelf instelt.

  • 06

    Kapotte interne links

    Links naar pagina's die niet (meer) bestaan, in de prullenbak liggen of nog een concept zijn.

  • 07

    Volgorde van koppen

    Koppen die een niveau overslaan, bijvoorbeeld een H2 met direct een H4 eronder. Google en schermlezers gebruiken die volgorde om de pagina te begrijpen.

  • 08

    Te zware afbeeldingen

    Afbeeldingen boven het maximum dat je zelf instelt, want die maken een pagina traag. Deze controle staat uit tot je een maximum invult.

  • 09

    Pagina's zonder links

    Pagina's waar geen andere pagina en geen menu naar linkt. Google vindt die moeilijk, en bezoekers ook.

Voortgang bijhouden

Zie wat elke scan oplevert

Een score per pagina, en per probleem of het nieuw is, onveranderd of opgelost. Zo zie je wat je werk echt oplevert: de plugin houdt een geschiedenis van je scans bij, en de belangrijkste cijfers staan ook op je WordPress-dashboard. Bestaande resultaten blijven werken, de database wordt bij een update automatisch bijgewerkt.

  • 01

    Een score per pagina

    Elke pagina krijgt een score van 0 tot 100, op een eigen scherm met de slechtste bovenaan. Vanaf 80 is het goed, tussen 50 en 79 kan het beter en onder de 50 is er werk aan de winkel. Een extra kolom laat zien hoeveel de score sinds de vorige volledige scan veranderd is.

  • 02

    Nieuw, onveranderd of opgelost

    Elk probleem zegt wat de laatste scan ermee deed: nieuw gevonden, nog steeds aanwezig of opgelost. Opgeloste problemen verdwijnen niet stilletjes, maar blijven tot de volgende scan zichtbaar. Met het statusfilter zie je alleen wat je wilt zien.

  • 03

    Een geschiedenis van je scans

    Een apart Scans-scherm bewaart de laatste twintig scans: wanneer ze liepen, hoe lang ze duurden, de gemiddelde score, het aantal problemen en hoeveel er bij kwamen of opgelost werden. Per soort probleem zie je of het echt beter gaat, of alleen de titels.

  • 04

    Direct fixen in het overzicht

    Alt-teksten, SEO-titels en meta descriptions typ je meteen in de lijst, met een tekenteller erbij. Na het opslaan wordt de pagina opnieuw gescand en werkt de rij zichzelf bij.

  • 05

    Op je dashboard

    Een widget op het startscherm van WordPress laat de gemiddelde score, het aantal problemen en wat de laatste scan erbij vond of oploste zien, met een link naar elk scherm. Je hoeft de resultaten niet te gaan zoeken.

Automatisch scannen

Hij scant zelf, jij krijgt het rapport

Kies de dagen en het tijdstip, vul een of meer e-mailadressen in, en de plugin scant de site voortaan zelf. Zo zie je elke week hoe de site ervoor staat, zonder eraan te hoeven denken.

  • 01

    Jij kiest het moment

    Een of meer dagen per week en een tijdstip, in de tijdzone van de site. Ook als de klok een uur verzet wordt, scant hij op het juiste moment.

  • 02

    Het rapport in je mailbox

    Met de score, de totalen, wat er bij kwam en wat er opgelost is, de meest voorkomende problemen en de laatste scans. De volledige lijst zit als CSV-bestand in de bijlage.

  • 03

    Pas als de scan klaar is

    De mail gaat pas weg als de scan echt klaar is, dus met de nieuwe cijfers en niet die van vorige week. Een scan die je zelf start, mailt niemand.

  • 04

    Rapporten bewaard, veilig

    Een kopie van elk rapport blijft op de site staan, afgeschermd voor bezoekers en alleen te downloaden door beheerders. Met Testrapport versturen zie je meteen of mailen werkt, en zo niet, waarom.

  • Automatisch scannen

    Standaard: uit

    Zet je dit aan onder SEO Health → Automatisch scannen, dan scant hij de site op de gekozen momenten en stuurt hij daarna het rapport.

  • Dagen en tijdstip

    Standaard: vrijdag om 09:00

    Kies zoveel dagen als je wilt. Het tijdstip is in de tijdzone van je WordPress-site.

  • Rapport sturen naar

    Standaard: leeg

    Een of meer e-mailadressen, gescheiden door komma's. Zonder adres scant hij wel, maar gaat er geen rapport weg.

  • Rapporten bewaren

    Standaard: 12

    Hoeveel rapporten er op de site blijven staan om terug te kijken. Oudere worden verwijderd. Met 0 bewaart hij er geen en wordt het rapport alleen gemaild.

Installeren

In drie minuten klaar

  1. 01

    Download de zip

    Met de knop bovenaan deze pagina. Pak hem niet uit.

  2. 02

    Upload in WordPress

    Ga naar Plugins, Nieuwe plugin en klik op Plugin uploaden. Kies de zip en klik op Nu installeren en Activeren.

  3. 03

    Start de scan

    Open SEO Health in het menu en klik op Start full scan. Je mag de pagina gewoon verlaten, de scan loopt op de achtergrond door.

    SEO Health → Issues → Start full scan

  4. 04

    Updaten gaat vanzelf

    Komt er een nieuwe versie uit, dan meldt WordPress dat op het scherm Plugins, net als bij plugins uit de officiële bibliotheek. Updaten doe je daar met één klik.

Hoe het werkt

Gebouwd voor grote sites

  1. 01

    Scannen in kleine stukjes

    Twintig pagina's per keer op de achtergrond, via WP-Cron of Action Scheduler. Het dashboard blijft snel en er zijn geen time-outs.

  2. 02

    Opslaan in eigen tabellen

    Eén regel per probleem, met indexen op pagina en type. Filteren en sorteren gaat daardoor ook bij duizenden resultaten snel.

  3. 03

    Overzicht in het dashboard

    Sorteren en filteren op type probleem, posttype, ernst en status, met een directe link naar het bewerkscherm.

  4. 04

    Exporteren

    De gefilterde lijst als CSV, met de status van elk probleem erbij, klaar om in Excel te openen of naar een klant te sturen.

Launch checks

De livegang-checklist, automatisch

Een aparte pagina controleert de instellingen die bij elke oplevering terugkomen, verdeeld over voor, tijdens en na de livegang. Handwerk zoals formulieren testen of de klant mailen blijft handwerk, de rest doet de plugin.

  • ✓Zoekmachines mogen de site indexeren
  • ✓HTTPS ingesteld
  • ✓WWW- en HTTPS-redirects
  • ✓XML-sitemap bereikbaar
  • ✓Echte 404-status
  • ✓Favicon aanwezig
  • ✓Geen "Home" in de titel van de homepage
  • ✓Uitgelichte afbeelding op de homepage
  • ✓Goede URL-structuur
  • ✓Geen links meer naar de testomgeving
  • ✓WordPress, plugins en thema's up-to-date
  • ✓Standaardplugins geïnstalleerd
  • ✓Geen inactieve plugins
  • ✓Cookiemelding actief
  • ✓Google Analytics of Tag Manager aanwezig
  • ✓Credit in de footer
  • ✓Menu's linken alleen naar gepubliceerde pagina's
  • ✓Search Console-verificatie op de homepage
  • ✓SPF, DMARC en DKIM voor de mail van het domein
  • ✓Geen standaard "admin"-account meer
  • ✓Mail kan de site echt verlaten
  • ✓Formulieren mailen naar de klant
  • ✓Bedankpagina's bij formulieren
  • ✓Spambescherming op formulieren
  • ✓Eigen inlogscherm
  • ✓Ontwikkelsite verwijst door naar de live site
  • ✓De klant heeft een eigen account

Instellingen

Goede standaarden, alles aan te passen

De standaardinstellingen werken voor de meeste sites. Wil je iets anders, dan pas je het aan onder SEO Health → Settings. Onderaan dat scherm zie je ook welke versie er draait, uit welke SEO-plugin de titels komen en of de scans via Action Scheduler of WP-Cron lopen.

  • Posttypes

    Standaard: berichten en pagina's

    Welke soorten content hij scant. Eigen posttypes, zoals projecten of producten, kun je aanvinken.

  • Contentbron

    Standaard: automatisch

    Automatisch scant hij de gewone content, en de pagina zoals een bezoeker hem ziet als die content leeg is, zoals bij pagebuilders. Je kunt ook altijd de content (snelst) of altijd de pagina (nauwkeurigst) kiezen.

  • Theme H1

    Standaard: aan

    Voor thema's die de paginatitel zelf als H1 tonen. Zet het uit als jouw thema dat niet doet.

  • Minimum aantal woorden

    Standaard: 300

    Pagina's met minder woorden krijgen een melding voor dunne content. Met 0 zet je deze controle uit.

  • Maximale lengte titel en description

    Standaard: 60 en 160 tekens

    Langer dan dit en Google kapt de tekst af in de zoekresultaten.

  • Maximale afbeeldingsgrootte

    Standaard: uit

    In KB. Afbeeldingen in je uploadmap die groter zijn, worden gemeld; 300 is een goed begin. Hij staat standaard uit, omdat hij op een site met veel foto's in één keer heel veel kan melden.

  • Pagina's zonder links

    Standaard: aan

    Meldt pagina's waar niets naar linkt. Hij telt links in de tekst van andere pagina's en in je menu's, niet in een sidebar, footer of widget.

  • Batchgrootte

    Standaard: 20

    Het aantal pagina's per stap op de achtergrond. Op trage hosting helpt het om dit lager te zetten.

  • Opnieuw scannen bij opslaan

    Standaard: aan

    Sla je een pagina op, dan wordt die op de achtergrond meteen opnieuw gescand. Het overzicht blijft zo actueel zonder volledige scan.

  • Footer-credit

    Standaard: leeg

    Tekst die op de homepage moet staan, bijvoorbeeld "Website door PDK". Laat je het leeg, dan slaat de launch check dit over.

  • Ontwikkeldomeinen

    Standaard: leeg

    Je test- of stagingdomeinen, gescheiden door komma's. Na de livegang controleert hij of de content daar niet meer naar linkt.

  • DKIM-selector

    Standaard: leeg

    De selector waarmee je mailserver ondertekent, bijvoorbeeld "default" of "google". Je mailprovider weet hem. Vul je hem in, dan controleert de mailcheck ook DKIM.

  • Meetcode

    Standaard: leeg

    De Google Analytics- of Tag Manager-code die de site hoort te gebruiken, bijvoorbeeld G-ABC123DEF4. Vul die van de oude site in, dan controleert hij of juist die is overgezet en niet zomaar een code.

  • Je eigen e-maildomeinen

    Standaard: leeg

    Het domein van jouw bureau, bijvoorbeeld "jouwbureau.nl". Dan ziet hij formulieren die nog naar jou mailen in plaats van naar de klant, en of de klant een eigen beheerdersaccount heeft.

Veilig en netjes

Zoals een plugin hoort te zijn

  • Alleen voor beheerders

    Elke actie controleert de rechten van de gebruiker en een nonce. Bij het fixen vanuit het overzicht controleert hij ook of je die ene pagina mag bewerken. Zo kan niemand van buitenaf een scan, export of wijziging starten.

  • Invoer schoon, uitvoer veilig

    Alle invoer wordt gesanitized en alle uitvoer ge-escaped. Databasequeries gaan via prepared statements.

  • Ruimt zichzelf op

    Deactiveren stopt al het werk op de achtergrond. Verwijder je de plugin, dan verdwijnen ook de tabellen, instellingen en tijdelijke gegevens.

  • WordPress-standaard

    Gecontroleerd met PHPCS en de WordPress Coding Standards, en vertaalbaar. Een Nederlandse vertaling zit er al bij.

Voor developers

Uit te breiden met hooks

Eigen controles toevoegen, de score anders berekenen of bepalen wie de resultaten ziet: daar zijn filters en een action voor. De code staat open op GitHub.

  • seo_health_check_capability

    Welk recht nodig is om de plugin te gebruiken. Standaard manage_options, dus alleen beheerders.

  • seo_health_check_issue_types

    Een eigen type probleem registreren.

  • seo_health_check_post_issues

    Problemen voor een pagina toevoegen of weghalen. Samen met de vorige hook bouw je zo een eigen controle.

  • seo_health_check_post_html

    De HTML aanpassen die gescand wordt.

  • seo_health_check_seo_meta

    De gevonden titel en description aanpassen, bijvoorbeeld voor een andere SEO-plugin.

  • seo_health_check_page_score

    De score van een pagina anders berekenen.

  • seo_health_check_inline_fields

    Bepalen welke problemen je direct in het overzicht kunt fixen.

  • seo_health_check_required_plugins

    Welke plugins de launch check verwacht op een opgeleverde site.

  • seo_health_check_linked_post_ids

    Pagina's opgeven die als gelinkt moeten tellen, bijvoorbeeld berichten die alleen op een archiefpagina staan.

  • seo_health_check_scan_finished

    Een action die afgaat als een volledige scan klaar is, handig voor een melding of rapport.

  • seo_health_check_forms

    Andere formulierplugins toevoegen aan de formuliercontroles. Contact Form 7, WPForms en Gravity Forms leest hij al zelf.

  • seo_health_check_check_for_updates

    Geef false terug en de site vraagt GitHub nooit naar nieuwe versies.

  • seo_health_check_docs_url

    De link naar de handleiding naar een andere plek laten wijzen.

Eerlijk is eerlijk

Wat hij niet doet

  • —Hij controleert alleen interne links. Externe links naar andere websites vallen erbuiten.
  • —Bij pagebuilders zoals Oxygen en Elementor scant hij de pagina zoals een bezoeker hem ziet. De site moet zichzelf dan kunnen bereiken, en dat is trager dan de gewone content lezen.
  • —Hij lost niet alles voor je op. Alt-teksten, SEO-titels en meta descriptions pas je in het overzicht aan, maar koppen, dunne teksten en kapotte links zitten in de content zelf. Die los je op in het bewerkscherm.
  • —Op een site zonder bezoekers loopt WP-Cron niet. Houd dan de overzichtspagina open, die duwt de scan zelf verder.

Veelgestelde vragen

Goed om te weten

  • Heb ik Yoast SEO of Rank Math nodig?

    Nee. Zonder SEO-plugin werkt hij ook, maar dan meldt hij bij elke pagina een ontbrekende meta description, omdat WordPress die zelf niet toevoegt.

  • Hoe lang duurt een scan?

    Meestal een paar minuten voor 500 pagina's. Op trage hosting kun je bij Instellingen de batchgrootte verlagen.

  • Verandert de plugin mijn content?

    Scannen verandert nooit iets: hij leest alleen en bewaart zijn bevindingen in drie eigen tabellen. Alleen als je zelf iets fixt in het overzicht, schrijft hij precies dat ene veld weg: de SEO-titel of description in Yoast of Rank Math, of de alt-tekst van die ene afbeelding. De rest van de pagina blijft onaangeroerd.

  • Waarom meldt hij "meerdere H1's" terwijl ik er één heb?

    De meeste thema's tonen de paginatitel al als H1. Een H1 in je tekst is dan de tweede. Heeft jouw thema dat niet, zet dan de instelling Theme H1 uit.

  • Hoe wordt de score berekend?

    Een pagina begint op 100. Elk soort probleem kost 20 punten als het een fout is en 10 als het een waarschuwing is. Komt hetzelfde probleem vaker voor, dan gaat er per keer 2 punten extra af, met een maximum van 10. Tien afbeeldingen zonder alt-tekst tellen dus zwaar, maar minder zwaar dan tien verschillende problemen.

  • Wat betekenen Nieuw, Onveranderd en Opgelost?

    Dat is wat de laatste scan met een probleem deed. Nieuw: die scan vond het voor het eerst. Onveranderd: het was er al. Opgelost: de scan vond het niet meer terug. De plugin onthoudt wanneer hij elk probleem voor het eerst zag, dus iets dat er al maanden zit, telt niet opnieuw als nieuw.

  • Welke problemen kan ik direct in het overzicht oplossen?

    Ontbrekende alt-teksten, SEO-titels en meta descriptions, omdat die elk in een eigen veld staan. Voor titels en descriptions heb je Yoast SEO of Rank Math nodig, want daar schrijft hij de waarde in. Koppen, dunne content en kapotte links zitten in de tekst zelf, daarvoor ga je via de link naar het bewerkscherm.

  • De scan komt niet verder, wat nu?

    De scan draait op WP-Cron, en dat loopt alleen als iemand de site bezoekt. Houd de overzichtspagina open, dan duwt die de scan zelf verder. Heeft je host WP-Cron uitgezet, zorg dan voor een echte cronjob die wp-cron.php aanroept.

  • Waarom meldt hij geen links naar een pagina die in mijn footer staat?

    De scan leest de tekst van je pagina's en de items in je WordPress-menu's. De header, footer, sidebar en navigatie slaat hij bewust over, anders lijkt elke pagina overal vandaan gelinkt. Een pagina die je alleen via een widget of een footer uit een pagebuilder bereikt, wordt dus gemeld. Berichten die alleen op een archiefpagina staan ook. Zet de controle uit bij Instellingen, of gebruik de hook om die pagina's als gelinkt te laten tellen.

  • Waarom meldt de controle op afbeeldingsgrootte niets?

    Die staat uit tot je bij Instellingen een maximum invult; 300 KB is een goed begin. Alleen afbeeldingen in je eigen uploadmap worden gemeten, want hij leest het bestand van de schijf. Afbeeldingen van een CDN of een andere site slaat hij over in plaats van ze te downloaden.

  • Waarom start de automatische scan later dan het tijdstip dat ik instelde?

    WordPress voert geplande taken uit als iemand de site bezoekt. Op een rustige site gebeurt er dus niets tot de eerste bezoeker na dat moment. Wil je het precies op tijd, laat je host dan wp-cron.php aanroepen met een echte cronjob en zet DISABLE_WP_CRON op true.

  • Het rapport komt niet aan, wat nu?

    Klik op Testrapport versturen op het scherm Automatisch scannen. Lukt het niet, dan staat de reden er direct onder. Veel hosts kunnen via PHP helemaal geen mail versturen; een SMTP-plugin die mailt via een echte mailbox lost dat op. Kijk ook in je spammap: een mail van een site die nog onbekend is, komt daar vaak terecht.

  • Waar worden de bewaarde rapporten opgeslagen?

    In wp-content/uploads/seo-health-check/. Ze noemen elke pagina van de site en wat eraan mankeert, dus de map krijgt een .htaccess die toegang weigert, en elk bestand een naam die niet te raden is, voor servers die .htaccess negeren. Downloaden gaat via WordPress, dat controleert of je dat mag. Verwijder je de plugin, dan verdwijnt de map ook.

  • Hoe weet de plugin dat er een update is?

    Eén keer per dag vraagt hij GitHub wat de nieuwste versie is. Is die nieuwer dan wat je hebt, dan toont WordPress de gewone melding dat er een nieuwe versie is op het scherm Plugins, en daar update je hem zoals elke andere plugin. Het antwoord wordt twaalf uur bewaard, dus een site vraagt het hooguit twee keer per dag. Een release zonder zip slaat hij bewust over, anders zou WordPress een verkeerd bestand installeren en de plugin uitschakelen.

Changelog

Wat er per versie veranderde

  • 0.10.1

    Huidige versie

    Een link naar de handleiding, op het scherm Plugins naast Instellingen en onderaan het instellingenscherm.

  • 0.10.0

    Het scherm Plugins meldt nu als er een nieuwere versie is, en updaten werkt daar net als bij plugins uit de officiële bibliotheek. Het venster met versiedetails toont de releasenotes.

  • 0.9.0

    Drie nieuwe launch checks: of de oude ontwikkelsite bezoekers echt naar de live site stuurt, of de klant een eigen beheerdersaccount heeft, en of een plugin het WordPress-inlogscherm heeft vervangen.

  • 0.8.0

    Drie launch checks over formulieren: waar ze hun mail naartoe sturen, welke een bedankpagina hebben, en of er spambescherming actief is. Leest Contact Form 7, WPForms en Gravity Forms.

  • 0.7.0

    Een nieuwe check of mail de site echt kan verlaten. De DNS-check controleert nu ook DKIM, en de analyticscheck kan vergelijken met de meetcode die je verwacht.

  • 0.6.0

    Vier nieuwe launch checks: menu's die naar een niet-gepubliceerde pagina leiden (met een herinnering aan pagina's die nog op hun tekst wachten), de verificatietag van Google Search Console op de homepage, SPF- en DMARC-records in de DNS zodat mail van de site niet in de spam belandt, en of het standaardaccount "admin" nog bestaat.

  • 0.5.2

    Onderaan het instellingenscherm staat nu welke versie er draait, de databaseversie, uit welke SEO-plugin de titels komen en of de scans via Action Scheduler of WP-Cron lopen. Met een link naar de projectpagina, zodat je ziet of er een nieuwere versie is.

  • 0.5.1

    In het e-mailveld staat als voorbeeld weer een nepadres, in plaats van het echte adres van de beheerder van de site.

  • 0.5.0

    Automatisch scannen op de dagen en het tijdstip die je kiest, in de tijdzone van de site. Na elke geplande scan een rapport per e-mail met de volledige lijst als CSV. Rapporten worden afgeschermd bewaard, met een downloadlink en een maximum dat je zelf instelt. En een knop Testrapport versturen die laat zien waarom mailen mislukt, in plaats van stil te falen.

  • 0.4.0

    Drie nieuwe controles: koppen die een niveau overslaan, te zware afbeeldingen en pagina's waar niets naar linkt. Een widget op het WordPress-dashboard met de belangrijkste cijfers, en een Nederlandse vertaling. Links tussen pagina's worden in een derde tabel bewaard, die weer verdwijnt als je de plugin verwijdert.

  • 0.3.0

    Elk probleem krijgt de status Nieuw, Onveranderd of Opgelost, met een statusfilter in het overzicht, en opgeloste problemen blijven zichtbaar tot de volgende scan. Een nieuw Scans-scherm met de laatste twintig scans en een vergelijking per soort probleem. De scores per pagina tonen de verandering sinds de vorige volledige scan, en de CSV-export heeft een statuskolom.

  • 0.2.0

    Een score van 0 tot 100 per pagina, vergelijking met de vorige scan met nieuwe problemen gemarkeerd, en alt-teksten, SEO-titels en meta descriptions direct aanpassen vanuit het overzicht. Opgelost: dubbele titels die onterecht gemeld werden als Yoast of Rank Math hun sjabloon teruggaven in plaats van de echte titel.

  • 0.1.1

    Verbeteringen na een test op een site met 600 pagina's, en de auteursnaam ingesteld.

  • 0.1.0

    Eerste versie: scan per pagina, overzicht, CSV-export, launch checks en instellingen.

Probeer hem op je eigen site

Gratis en open source. Installeren kost drie minuten.

Download de plugin (.zip)