Waarom je vacatures niet in Google for Jobs verschijnen
Je structured data is valide, maar je vacature staat er niet. Acht veelvoorkomende oorzaken en hoe je ze uitsluit.
De Rich Results Test geeft groen, en toch staat je vacature nergens in Google for Jobs. Dat groene vinkje betekent alleen dat je markup syntactisch geldig is. Google zegt zelf dat er geen garantie is dat features op basis van structured data ook echt in de zoekresultaten verschijnen. Tussen "valide" en "wordt getoond" zit een lijst met voorwaarden die de test niet controleert. Geeft de test bij jou nog helemaal geen groen, begin dan bij de basis van JobPosting-markup en kom daarna hier terug. Hieronder staan de acht oorzaken die in de praktijk het vaakst spelen.
1. Je markup staat op een overzichtspagina
De klassieker bij vacaturesites. JobPosting-markup hoort op een pagina met één enkele vacature, niet op een zoekresultaat- of lijstpagina. Google stuurt hier een expliciete melding voor in Search Console: "A list page should not include structured data for individual jobs".
Het voelt logisch om je overzichtspagina te verrijken, want daar komt het meeste verkeer binnen. Google ziet het andersom: een lijstpagina met tien JobPosting-blokken is tien keer dubbele data zonder canonieke bron. De oplossing is om de markup van de listing te halen en alleen op de detailpagina te zetten.
2. Je beschrijving is te dun
Google eist een volledige beschrijving in HTML: verantwoordelijkheden, kwalificaties, vaardigheden, werktijden, en eisen aan opleiding en ervaring. De description mag ook niet gelijk zijn aan de title. Een vacature van drie regels met "stuur je cv" haalt de lat niet, en onvolledige vacatureteksten zijn zelfs een expliciete overtreding van het beleid.
Wat is dan wel volledig? Denk aan de vacaturetekst zoals een goede recruiter hem schrijft: wat ga je doen, wat moet je kunnen, wat zijn de werktijden, welke opleiding of ervaring vraagt de functie. Staat een van die onderdelen nergens op de pagina, dan is de beschrijving voor Google onvolledig, hoe netjes de markup er verder ook uitziet.
Een praktisch detail dat weinig mensen kennen: in de beschrijving herkent Google alleen <p>, <ul> en <li>. Koppen, <strong> en <em> worden in de weergave genegeerd. Wie zijn opmaak volledig uit koppen en vetgedrukte regels opbouwt, levert bij Google dus één ononderbroken blok tekst af.
3. De markup zegt meer dan de pagina laat zien
Alles wat in de structured data staat, moet ook zichtbaar op de pagina staan. Staat het salaris wel in de markup maar niet in de tekst, dan schend je de contentrichtlijnen. Dit gaat vaak mis bij ATS-koppelingen: het systeem stuurt meer velden mee dan de template daadwerkelijk toont.
Loop je velden na, kijk dan vooral naar salaris, sluitingsdatum en locatie. Dat zijn de velden die een ATS standaard meegeeft en een template het vaakst weglaat.
Controleren doe je met twee schermen naast elkaar: de broncode met de JSON-LD aan de ene kant, de pagina zoals een bezoeker hem ziet aan de andere. Elk veld in de markup moet je op de pagina kunnen aanwijzen. Kun je dat niet, dan moet het veld eruit of de template erbij.
4. Je titel bevat meer dan de functietitel
In het veld title hoort alleen de functietitel. Geen vacaturecodes, geen adressen, geen datums, geen salarissen en geen bedrijfsnamen. Google geeft zelf het voorbeeld: niet "Apply now for IT job - FRENCH speaker in Bucharest", maar "Market Specialist, French speaker". Overmatig gebruik van tekens als uitroeptekens kan bovendien als spammy markup worden aangemerkt.
Toon je als vacaturesite vacatures namens werkgevers, dan geldt een extra regel die tegen het gevoel ingaat: je mag de titel niet zelf herschrijven om aan de richtlijnen te voldoen. Je levert de titel aan zoals je hem van de werkgever krijgt. Het opschonen moet dus bij de bron gebeuren.
5. De locatie of remote-markering klopt niet
Zodra je jobLocation gebruikt, is addressCountry verplicht. Veel implementaties vullen wel een plaatsnaam in en laten het land leeg, en daarmee valt de vacature buiten de boot.
En dan de fout die bijna iedereen maakt: TELECOMMUTE is uitsluitend bedoeld voor functies die volledig remote zijn. Incidenteel thuiswerken telt niet, en "remote bespreekbaar" ook niet. Een functie met twee vaste kantoordagen in Utrecht is voor Google een functie in Utrecht, met jobLocation en al. Markeer je die als remote, dan klopt je data niet. Bij een echt volledig remote functie moet je bovendien minimaal één land opgeven via applicantLocationRequirements, anders weet Google niet waar hij de vacature mag tonen.
6. Verlopen vacatures staan nog live
Google staat verlopen vacatures niet toe, en wie ze structureel laat staan riskeert een manual action. Er zijn drie geldige manieren om een vacature te laten verlopen: zet validThrough op een datum in het verleden, verwijder de pagina volledig (een 404 of 410), of haal de JobPosting-markup van de pagina af. Eén van de drie is genoeg.
Dit is het deel dat de meeste vacaturesites wel automatiseren bij publicatie, maar vergeten bij het opruimen. Hoe je dat verloopproces goed inricht, staat in het hoofdstuk over sitemaps en de Indexing API.
7. Er is geen zichtbare manier om te solliciteren
Een vacature zonder sollicitatiemogelijkheid wordt niet toegestaan. Hetzelfde geldt voor vacatures achter een login: gebruikers moeten de volledige tekst kunnen lezen zonder in te loggen. Het klinkt vanzelfsprekend, maar het gaat ook technisch mis. Rendert je sollicitatieknop alleen via JavaScript die de crawler niet uitvoert, dan bestaat die knop voor Google niet.
Test dit niet in je eigen browser, maar met de URL-inspectie in Search Console. Daar zie je de pagina zoals Googlebot hem ziet, inclusief wat er na het renderen overblijft.
8. Je hebt niet lang genoeg gewacht
Google waarschuwt er zelf voor: na publicatie kan het meerdere dagen duren voordat een pagina gevonden en gecrawld is. Een vacature die gisteren live ging en vandaag onvindbaar is, is dus nog geen probleem.
Controleer de status in de URL-inspectie in Search Console; een gewone zoekopdracht zegt niets over de vraag of de pagina in de wachtrij staat. Wil je de wachttijd structureel omlaag hebben, dan is dat het terrein van de Indexing API, niet van meer geduld.
Zo stel je de diagnose
Loop de vragen in deze volgorde af, dan sluit je elke oorzaak gecontroleerd uit:
- Staat de URL in de index? Check de URL-inspectie in Search Console. Zo nee, dan is dit je probleem en heeft de rest van de lijst nog geen zin.
- Is de markup valide? Check de Rich Results Test. Fouten hier zijn de makkelijkste categorie, want de test wijst ze letterlijk aan.
- Is de content compleet, en staat alles uit de markup zichtbaar op de pagina zelf?
- Staat er een manual action open in Search Console? Die vind je onder "Handmatige acties", en zolang die openstaat gebeurt er niets.
- Is er een duplicaat van deze vacature dat wint? Dezelfde vacature op je eigen site, een aggregator of het ATS-domein kan de vertoning claimen.
Deze volgorde voorkomt dat je naar een groene test zit te kijken terwijl het probleem is dat de pagina überhaupt niet in de index staat.
Het loont om dit uit te zoeken. Google for Jobs staat gewoon live in Nederland en België, en het vacatureblok staat bovenaan de zoekresultaten, precies boven de plek waar je anders voor adverteert. De regels hierboven bepalen wie daar staat. Wil je alle voorwaarden op een rij afvinken, gebruik dan de Google for Jobs-checklist.