Terug naar werk
Case study · Drone-inspecties & luchtfotografie · 2026

Een website die Drone Visual zelf beheert, zonder CMS eronder

Drone Visual verkoopt inspecties, 3D-modellen en luchtvideo vanaf één site. Het team publiceert zelf blogs en projecten en ziet elke aanvraag binnenkomen in een eigen beheerportaal, terwijl de bezoeker kant-en-klare pagina's krijgt.

WebsiteEigen beheerportaalSEO op zoekdataDrone-inspecties & luchtfotografieFirebaseStatische bouwstraat2026
0KB
JavaScript per pagina, was 287
0
Pagina's uit één bouwstraat
0
Eigen controles, allemaal groen
app.brinkpersoneel.nl/matches
TL;DR

Drone Visual doet drone-inspecties van daken, gebouwen en industriële installaties, maakt 2D- en 3D-modellen en levert foto- en videowerk vanuit de lucht. Drie diensten, drie soorten zoekende klanten, één site. We bouwden een website met een eigen beheeromgeving: het team publiceert zelf blogs en projecten en werkt aanvragen af in een leadoverzicht met zeven statussen. Een bouwstraat zet de content uit de database om in 58 kant-en-klare pagina's, zodat bezoeker en Google de volledige tekst meteen binnenkrijgen. Na de bouw volgde een SEO-ronde die begon bij de zoekdata uit Search Console, niet bij een gevoel.

02 · De uitdaging

Goed werk raakte ondergesneeuwd onder admin.

Een vastgoedbeheerder die zoekt op dakinspectie met drone is een andere lezer dan een aannemer die een digital twin nodig heeft, en allebei zijn ze een ander publiek dan een marketeer die luchtvideo zoekt. De site moest die drie sporen tegelijk bedienen en op elk spoor vindbaar zijn.

Drie doelgroepen, één site

Inspecties, 3D-modellen en luchtvideo trekken elk hun eigen zoeker. Elke dienst moest een eigen vindbare pagina krijgen zonder de andere twee te verdringen.

Zelf publiceren, geen CMS-server

Wel zelf blogs en projecten live zetten, geen server met plugins die jaren onderhouden en beveiligd moet worden.

Snel blijven

De redactieomgeving is ruim een megabyte aan software. Daar mag een bezoeker helemaal niets van downloaden.

03 · Onze aanpak

Niet vragen wat ze nodig hebben, maar kijken hoe ze werken.

We hebben de twee dingen die een CMS normaal in één pakket propt uit elkaar getrokken: content beheren en content uitleveren. Beheren gebeurt in een eigen portaal op de site zelf, waar teksten, blogs, projecten en binnengekomen aanvragen in een database staan. Uitleveren doet een bouwstraat die diezelfde database uitleest en er kant-en-klare HTML-pagina's van maakt. Wie een blog of projectpagina opent, krijgt de volledige tekst dus meteen binnen; er hoeft geen programmatuur te draaien om de pagina alsnog te vullen.

De keerzijde benoemen we net zo eerlijk: een gewijzigde artikeltekst staat direct in het portaal en op de overzichtspagina's, maar de gepubliceerde artikelpagina zelf wordt ververst bij de eerstvolgende build en deploy. Voor een bedrijfssite die niet elke minuut verandert is dat een prima ruil.

01
Splitsen
Beheer en uitlevering uit elkaar: portaal in de site, bouwstraat ernaast.
02
Portaal
Aanvragen, blogs en projecten in één beheeromgeving achter een login.
03
Bouwstraat
De database wordt bij elke build omgezet in 58 kant-en-klare pagina's.
04
SEO-ronde
Eerst de zoekdata per pagina bekijken, dan pas de titels herschrijven.
04 · De oplossing

De oplossing, feature voor feature.

Feature 01

Eén beheerportaal met een echte leadpijplijn.

Belverzoeken en offerteaanvragen komen binnen in één lijst die zichzelf bijwerkt. Elke aanvraag krijgt met één klik een status, van Nieuw tot Gewonnen of Verloren, met een notitieveld voor de opvolging. Een aanvraag zonder naam of bereikbaar contactgegeven wordt meteen gemarkeerd, zodat niemand naar een halflege regel staart.

  • Zeven statussen, ook serverzijdig afgedwongen
  • Twee formulierstromen in één werkbak
  • Onvolledige aanvragen direct gemarkeerd
// aanvragen · vandaag
Offerteaanvraag · dakinspectie
vandaag · formulier
Nieuw
Belverzoek · 3D-model
gisteren · belverzoek
Gecontacteerd
Aanvraag zonder telefoonnummer
gisteren · formulier
onvolledig
Feature 02

De klant publiceert zelf, de site blijft vaste pagina's.

Blogs en projecten maakt Drone Visual zelf aan, bewerkt ze en zet ze live of op concept. De bouwstraat leest de database en rendert elk stuk als gewone HTML-pagina: 20 blogs en 17 projectpagina's. Google en de bezoeker krijgen de volledige tekst direct binnen, en de overzichtspagina's werken zichzelf live bij.

  • Live of concept, per artikel
  • 20 blogs en 17 projectpagina's uit de database
  • Volledige tekst zichtbaar zonder JavaScript
// bouwstraat · laatste run
blogs/dakinspectie-hoogbouw.html
blog · live
Gebouwd
projecten/digital-twin-hal.html
project · live
Gebouwd
blogs/winterschouw.html
blog · concept
Overgeslagen
Feature 03

Van 287 naar 21 kilobyte eigen JavaScript.

Op vrijwel elke pagina werd de Firebase-code dubbel gedownload: één keer van Google en één keer meeverpakt in de eigen bundel. Die tweede kopie is eruit gehaald en wordt nu gedeeld. De redactiecode staat alleen op de beheerpagina's; een bezoeker downloadt er niets van.

  • Eigen bundel van 287 naar 21 KB, gecomprimeerd circa 6 KB
  • Reductie onafhankelijk nagemeten
  • Beheercode fysiek gescheiden van bezoekerscode
// wat een pagina laadt
bundle.js
elke publieke pagina
21 KB
auth.js
alleen /admin en /login
niet publiek
@firebase in de bundel
controle
0 treffers
Feature 04

De samenvatting voor Google komt uit de paginatekst zelf.

De machinesamenvatting die Google meeleest bij de veelgestelde vragen wordt niet met de hand overgetypt maar uit de zichtbare paginatekst gelezen. Alle 60 vraag-en-antwoordparen over acht dienstenpagina's komen letter voor letter overeen met wat de bezoeker leest, ook gecontroleerd op vijf eerdere versies. Twee controlescripts lopen daarnaast 110 punten na op de gebouwde site.

  • 60 van de 60 FAQ-paren identiek aan de paginatekst
  • 110 controles: allemaal geslaagd
  • 58 pagina's zonder dode interne links
// controles · laatste run
FAQ-schema vs paginatekst
8 dienstenpagina's
60/60 gelijk
Interne links
58 pagina's
geen dode links
Redirects en sitemap
gebouwde site
geen conflicten
// gebouwd met
Webpack 5-bouwstraat
Tailwind CSS
App Check + reCAPTCHA v3
Search Console als kompas
Service-, Breadcrumb- en FAQ-schema
AVIF en WebP met fallback

Dezelfde, bewezen stack die we op elk Effiflow-project gebruiken: geen lock-in, makkelijk over te dragen.

05 · Resultaat & impact

Acht maanden later, gemeten in productie.

0%
Minder eigen JavaScript
Van 287 naar 21 KB per publieke pagina, onafhankelijk nagemeten.
0
Pagina's uit één bouwstraat
20 blogs en 17 projectpagina's rechtstreeks uit de database.
0/60
FAQ-paren identiek
Het schema is letterlijk gelijk aan de zichtbare tekst, over acht dienstenpagina's.
0
Controles groen
Dode links, template-restanten, redirects en sitemap nagelopen.
28 dagen tot 27 juli 2026
Gemiddelde positie (Search Console)21,0
Clicks uit Google109
digitale inspectie vastgoedpositie 33,4
bouwkundige inspectie met dronepositie 40,0
dakinspectie met dronepositie 44,2
28 dagen tot 27 augustus 2026
Gemiddelde positie (Search Console)17,5
Clicks uit Google117
digitale inspectie vastgoedpositie 4,3
bouwkundige inspectie met dronepositie 27,0
dakinspectie met dronepositie 34,1

We zijn er eerlijk over wat dit nog niet is. Organisch verkeer is voor deze site voorlopig het kleinere kanaal: in een steekproef van drie dagen kwam het grootste deel van de sessies uit betaalde advertenties. Er is geen conversiemeting gekoppeld, dus over hoeveel aanvragen de SEO-ronde oplevert doen wij geen uitspraak. Wat er wel staat: na de ronde van juli 2026 liep de gemiddelde positie van 21,0 naar 17,5 en vier zoektermen verbeterden zichtbaar. De werkwijze telt zwaarder dan één uitschieter: eerst per pagina in Search Console kijken op welke termen hij vertoond wordt, dan pas de titel herschrijven, met de redenering in het commit-bericht.

Wil je een site die je team zelf kan beheren, zonder CMS-server eronder?

We bouwen websites met een eigen beheeromgeving en maken vindbaarheid meetbaar in plaats van een gevoel. Vertel wat er nu wringt, dan vertellen wij eerlijk of dit model bij jou past.

Martijn Schwarte
Martijn Schwarte
Co-founder · Effiflow
Plan een gesprek