Xavier Bertels

I’m Head of Product at Phished. Previously CPO at SweepBright and co-founder of Mono.

Hoe Google de SEO-markt wurgt

Of ja, toch een beetje. Maar vooreerst even een kleine introductie. Search Engine Optimization is een echte markt geworden. Praktisch gezien komt het neer op: bedrijf x heeft een website en wil op zoekterm abc bovenaan in de zoekresultaten van Google, Altavista en Yahoo zichtbaar zijn.

Dat is niet altijd zo eenvoudig. Je kan niet kiezen waar je te staan wilt komen. En je kan een plaatsje bovenaan technisch gezien niet echt afkopen. Daarom dat gespecialiseerde SEO-bedrijven zich op dit gat in de markt hebben gericht. Er wordt een audit uitgevoerd van je website en er wordt een rapport met knelpunten opgesteld. Als de klant een go geeft, gaat het SEO-bedrijf aan de slag en probeert het om, na een tijdsverloop gaande van enkele weken, tot enkele maanden, betere resultaten bij de zoekmachines te scoren.

Om de eindconclusie van dit artikel volledig te begrijpen, moeten we ook eventjes in de theorie duiken. Ongeveer de helft van alle zoektermen op het web worden in Google ingegeven (zoekmachine statistieken). Het is dus voor een SEO-bedrijf vooral hier dat er bij de klant punten gescoord kunnen worden. Als we even kort door de bocht gaan kunnen we stellen dat google de volgorde van zijn zoekresultaten bepaalt aan de hand van drie pijlers:

  1. De Pagerank van de webpagina, die onder andere wordt bepaald aan de hand van
    • Het aantal inkomende links
    • Het aantal inkomende links van sites met een hoge pagerank
    • De frequentie waarmee er nieuwe content geplaatst wordt (algemeen gezien: meer = beter)
  2. De frequentie van de zoekterm: hoe vaak komt de term op de pagina
  3. De semantische plaatsing van de zoekterm. Als hij éen keer tussen een <h1>-tag staat, is hij belangrijker dan als hij éen keer tussen een <p>-tag staat. Als hij in de URL van de webpagina staat is hij belangrijker dan als hij in het document zelf staat.

SEO is dus geabstraheerd iets heel eenvoudigs: zorg voor een groter aantal inkomende links van goed gerankte sites (Pagerank checker) en bouw je (x)html document semantisch op. Maak frequent nieuwe en kwaliteitsvolle inhoud aan en zorg ervoor dat je teksten goed geconstrueerd zijn (een goede copywriter is goud waard).

So far so good: met de juiste mensen op de juiste plaats komt dat meestal wel goed. Er wordt resultaat geboekt en omdat de klant waar voor z’n geld wilt, wordt dit vol trots gestaafd door wat zoektermen in te typen in Google. Hoera: derde plaats, eerste plaats, tweede plaats. SEO-bedrijf blij, klant blij, missie volbracht!

Maar Google zit ondertussen niet stil. De zoekmachine evolueert meer en meer naar een soort van persoonlijke zoekassistent. Wat dat betekent? Er wordt met veel meer factoren rekening gehouden. Een voorbeeld: webdesign op Google en webdesign op Yahoo. Aan de hand van mijn IP-adres ziet Google dat ik in West-Europa woon. Ik krijg zoekresultaten van sites die zich in mijn buurt bevinden, so to speak.

Maar het gaat nog verder. Google werkt nu ook aan een algoritme dat rekening houdt met termen waarop je al gezocht hebt en sites waarop je al geklikt hebt. Search History heet dat beest, je kan de dienst inschakelen als je een Google account hebt. Op die manier krijg je “de zoekresultaten die voor jou persoonlijk het meest geschikt zijn”, aldus Google.

Allemaal goed en wel, maar waar passen de SEO-bedrijven nu nog in het verhaal? De economie, en dus daarmee zowat heel het bedrijfsleven, is gebaseerd op resultaten. Als je betaalt voor een dienst, dan wil je resultaten zien. Als je een SEO-audit laat uitvoeren en je website laat optimaliseren, dan wil je waar voor je geld. En dat kan ik je niet kwalijk nemen, ik zit ook zo in elkaar. Alleen wordt het voor een SEO-bedrijf wel heel moeilijk om nog resultaten voor te leggen aan de klant. Als de persoonlijke zoekassistent de toekomst is en als Yahoo (My Yahoo) en Live Search (Windows Live ID) dit gaan overnemen—wat niet eens zo ondenkbaar is—dan zie ik het niet meer zitten om nog aan SEO te doen. Hoewel het steeds nuttig zal blijven, zal het gewoon niet meer marktvatbaar zijn, omdat er geen zwart-witresultaten neergelegd kunnen worden.

CAPTCHA’s en accessibility: spam bots op hun eigen zwakte pakken

De CAPTCHA. Het moest dé revolutionaire methode worden om spambots tegen te houden. Ongewenste berichten op blogs, vervelende e-mails, automatische registraties op forums, het zou allemaal verleden tijd worden met deze nieuwe techniek.

De opzet is eenvoudig: een computergegenereerde afbeelding toont een letter- of cijfercombinatie, die de gebruiker dan moet invoeren in het daarvoor voorziene veld. Op die manier wordt er geverifieerd of de gebruiker een geautomatiseerde bot is, of een mens. Immers, een bot kan geen afbeeldingen lezen en een mens wel. Althans, dat was de idee erachter.

Onlangs is echter gebleken dat CAPTCHA’s nogal redelijk makkelijk te kraken zijn. Door bots dus. Via een techniek die we Optical Character Recognition noemen kan een bot de letters van een afbeelding uitlezen. Zoals aangetoond door het OCR Research Team zijn zelfs sommige van de meer ingewikkelde CAPTCHA’s makkelijk te kraken. Greg Mori en Jitandra Malik beschrijven in hun artikel “Breaking a Visual CAPTCHA“ hoe dat precies in z’n werk gaat.

Niet alleen is een CAPTCHA dus een achterhaalde en redelijk zwakke techniek, het is bovendien heel gebruikeronvriendelijk. Om te beginnen is het een extra stap in het verzenden van een bericht of het registreren van een account. Een stap die de gebruiker eigenlijk koud laat en vaak als overbodig of zelfs storend ervaart. Hoe vaak heeft u immers al niet de verkeerde code ingevoerd, waarbij u terug moest keren naar de volgende pagina. Tot overmaat van ramp bleken de invoervelden dan nog eens gewist te zijn, waardoor u helemaal van nul moest beginnen. Vervelend is zacht uitgedrukt.

Ten tweede—en dat is minstens zo belangrijk—hebben blinden, kleurenblinden en slechtzienden vaak de grootste moeite om die CAPTCHA te lezen. Voor een blinde surfer is het bijna helemaal onmogelijk—of zijn software moest gebruik maken van OCR, maar het mag duidelijk zijn dat dat de hele idee van een CAPTCHA overbodig maakt. Voor iemand die kleurenblind is, is het vaak vervelend als er bijvoorbeeld met een achtergrond gewerkt wordt waardoor de voorgrond niet meer te onderscheiden is—dus de tekens niet meer leesbaar zijn. Iemand die slechtziend is ten slotte, zal er niet veel aan hebben om de tekstgrootte in zijn browser aan te passen: het gaat om een afbeelding waarvan de afmetingen exact bepaald zijn. Met uitzondering van enkele weinig gebruikte webbrowsers wordt inzoomen op dit beeld dus onmogelijk.

Daarom ben ik dan ook resoluut tegen CAPTCHA’s. Ik heb ze vroeger wel in websites geïmplementeerd, maar ik voelde weldegelijk aan dat het niet om een definitieve oplossing kon gaan. Ik heb de alternatieven onderzocht en vergeleken. Zo is het bijvoorbeeld mogelijk om tekstueel, via een javascript, een boodschap te laten verschijnen die vraagt om een eenvoudige rekensom op te lossen. Het probleem daar is echter van bijna dezelfde orde als bij andere CAPTCHA’s. Er is een extra struikelblok om een actie te ondernemen en een blinde zal de oplossing niet kunnen geven, om de eenvoudige reden dat JavaScript niet automatisch uitgevoerd wordt door de browser die blinde surfers gebruiken.

Ik ben op zoek gegaan naar een andere oplossing. Ik ben vertrokken vanuit de redenering dat je met spambots hetzelfde moet doen, als wat zij met ons doen: je moet ze op hun zwakte pakken. En een van die zwaktes is dat een spambot niet kan nadenken—voorlopig althans nog niet. De oplossing die ik gevonden heb is gebruikervriendelijk en perfect toegankelijk.

Spambots vullen automatisch formuliervelden in. Omdat ze echter vaak niet kunnen weten wat ze waar juist moeten invullen, vullen ze lukraak alle velden in met hun spambericht. Dit met uitzondering van velden met bijvoorbeeld een id “name” of “e-mail”. De idee is dus: als er iets of iemand een veld invult dat een surfer niet kan zien, dan gaat het om een automatisch ingevuld veld. In ons formulier voegen we dus een “nutteloos” veld toe:

<label for="txtURL" class="h">Vul dit veld niet in als u een mens bent. Zo helpt u mee in de strijd tegen spam.</label> <input name="txtURL" type="text" class="h" value="">

In ons stijlblad (CSS) gaan we de velden met bijvoorbeeld klasse “h” verbergen voor de bots. Ik stel voor om een klasse te gebruiken die je niet “hidden” noemt, of waaruit een bot niet kan afleiden dat het om een verborgen veld gaat. Een eenvoudige display: none; zou het veld voor blinden, maar ook voor sommige slimmere spambots verbergen. Als we echter met positionering werken, iets waar een “blindenbrowser” of spambot geen rekening mee houdt, kunnen we de velden virtueel van het scherm positioneren. Het moet voor een blinde surfer wel duidelijk zijn dat hij het veld niet mag invullen. Hiervoor heb ik gezorgd door tussen de <label>-tags een juiste omschrijving te zetten. Iets wat je trouwens altijd zou moeten doen als je werkt met formulieren.

.h {position: absolute; top: -9999px; left: -9999px;}

Als we nu bijvoorbeeld via een php-functie controleren of het veld al dan niet ingevuld is, kunnen we gemakkelijk op basis daarvan een foutmelding weergeven of de echte post-actie laten doorgaan.

if ($_POST['txtURL']!="") { ...functie... }

Ik gebruik deze functie onder andere om het gastenboek van de U&Me website tegen spambots te beschermen en het werkt als geen ander. Ik ga het stap voor stap ook in andere websites implementeren.

Wat ik echter wel nog moet meegeven is dat dit, zoals altijd, geen wonderoplossing is. Voor grote pakketten als Wordpress is het niet zinvol om dit extra veld toe te voegen: spammers leren ook. Ze kunnen gemakkelijk hun spambots zo configureren dat er bij een wordpress installatie maar een bepaald aantal velden ingevuld wordt, bijvoorbeeld. Voor custom made inhoudbeheersystemen (CMS) is het volgens mij echter een ideale oplossing. Help free the world of spam. Spread the word.

RE: 10 manieren om je beroeps- of bedrijfswebsite te verknoeien

Op de weblog van Webcraft heeft Michiel een overzichtje gemaakt van de tien meest gemaakte fouten bij het ontwerpen van een bedsrijfswebsite.

Over het algemeen ben ik het wel met hem eens. Ware het niet dat dit 2007 is en er dus een aantal dingen grondig veranderd zijn. Kritiek hebben is gemakkelijk, hoor ik jullie al roepen, maar als er geen kritiek was, was er ook geen dialoog en zonder dialoog, geen innovatie. Het is een noodzakelijk kwaad!

Om te beginnen vind ik geen echte lijn in de tien punten die Michiel opsomt. Sommige tips gaan over bruikbaarheid, anderen over image building en nog anderen over inhoud. Het vormt gewoon geen consistent geheel. In het magische jaar 2000 waren deze tips ongetwijfeld nog van tel, maar vandaag de dag is dat helaas niet meer zo. Als je tips over webdesign moet geven, dan begint dat met woorden als “usability, accessibility, scheiding van inhoud en opmaak, xhtml, css, tableless design” en ten slotte “semantiek”.

Hij heeft aan de wortel van de zaak echter absoluut gelijk. Uiteindelijk is de boodschap die hij wil overbrengen “je bedrijfswebsite is belangrijker voor je imago dan je denkt“. En daar kan ik onmogelijk iets tegen inbrengen. Integendeel: je bedrijfswebsite is verschrikkelijk belangrijk. Hij bepaalt je imago bij een doelpubliek dat niet meer zo onmiddellijk naar je winkel of bureau zelf zal komen. Een doelpubliek van de volgende generatie potentiële klanten. En daar wil je toch een goeie indruk maken, niet? Een website is als het ware je uitstalraam. Een uitstalraam met de uitstraling van de Aldi, dat is een imago dat je als bedrijf liever kwijt dan rijk bent, toch?

Dit aantonen en ondersteunen aan de hand van “tien tips” vind ik echter gevaarlijk. Waar ligt het probleem dan? De mogelijkheid bestaat dat sommige webdesigners dit als een normatief lijstje gaan bekijken. En daar schort het gevaar. Goed webdesign is veel meer dan die tien tips. Goed webdesign, dat kan alleen een échte webdesigner. De achterneef van de baas, is meestal niet goed genoeg (of het moest al een uitzondering zijn, natuurlijk).

Daarom heb ik, in een reactie op Michiel’s tien tips, ook maar éen belangrijke tip voor iedereen die een eigen bedrijf opstart en ook het nut inziet van op het web aanwezig te zijn: laat je website maken door een gerespecteerd, gerenommeerd webbedrijf. Zo’n website kost doorgaans maar om en bij de €3000 (en vaak zelfs minder). En dat is echt niet veel. Een advertentie in een tijdschrift kost al gauw even veel en die advertentie zal er hoogstens een maand, zo niet een week staan. Je website kan rap een jaar, zo niet meerdere jaren dienen. En een goed ontworpen website (scheiding van inhoud en opmaak, weet je wel) krijgt in een mum van tijd een ander uiterlijk. Denk ook aan de mogelijkheden: een on-line bestelformulier dat ook jouw eigen administratie gemakkelijker maakt (alles is uniform). Een on-line winkel, zodat jij minder moet investeren in fysieke winkelruimte. En last but not least: een imago van vooruitstrevend, vooruit denkend en vooraanstaand bedrijf.

Een lijst van de betere belgische webbureau’s wordt door de beheerders van het Telenet Webdesignforum nauwkeurig bijgehouden en alleen de besten komen in aanmerking voor die lijst. Ze is dan ook door de webdesigncommunity zelf samengesteld en, zoals we weten, wordt er in die community niemand van kritiek gespaard knipoog!

Muziek op je website

Naar aanleiding van een discussie op het Telenet Webdesign forum, vond ik het wel zinnig om een klein stukje te schrijven over het gebruik van muziek en geluid in het algemeen op een website.

Je kent het wel: je bent naar je favoriete mixset of readiostream aan het luisteren terwijl je wat aan het rondsurfen bent. Je klikt op een van de vele links waaruit het web is opgebouwd en plots knalt er door je speakers het oorverdovend geluid van de flash-intro van één of andere website. In een erger geval wordt er eerst nog een loodzware Quicktime- of Windows Mediaplugin geladen. Helemaal van de kaart begin je te zoeken naar het veel te kleine mute- of pauzeknopje en als dat geen uitkomst biedt sluit je de website, in de hoop hem nooit meer tegen te komen. Liefst van al blokkeer je nog het hele ding met je Firefox Adblock plugin.

Bovenstaande anekdote is misschien licht overdreven. Maar het is wel op een realiteit geschoeid. Sommige puristen zeggen: “geen geluid of muziek op een website”. Ik ben het daar niet helemaal mee eens. Het web is geëvolueerd van een platform voor het uitwisselen en verbinden van documenten, naar een platform voor het uitwisselen en verbinden van culturen en mensen. Ik wil daarom ook zonder schroom stellen dat het web een multimediaal web is en dat je gerust hier en daar geluid mag implementeren. Als het ten minste op een correcte, aanvaardbare en weldoordachte manier gebeurt.

Het tegenovergestelde is echter meestal waar en daarom wil ik hier een aantal eenvoudige basisregels definiëren voor het implementeren van geluid op je website. Ik maak daarin ook een verschil tussen geluiden en (achtergrond)muziek. De lijstjes zijn niet limitatief. Indien je nog opmerkingen of aanvullingen hebt, mag je die altijd als reactie achterlaten.

Voor (achtergrond)muziek wil ik volgende richtlijnen meegeven:

  • Laat (achtergrond)muziek nooit automatisch beginnen spelen.
  • Laat (achtergrond)muziek nooit automatisch inladen bij het laden van de pagina.
  • Geef duidelijk aan dat een klik op een bepaalde knop of link zal leiden tot het inladen en afspelen van een geluidfragment.
  • Geef duidelijk aan dat er voor het afspelen van de muziek een bepaalde plugin nodig is (Flash, Quicktime, Media Player). Dit geldt uiteraard niet voor Flash als de gebruiker zich al op een Flashpagina bevindt.
  • Voorzie liefst twee alternatieven: een downloadlink voor mensen met een trage verbinding en een streaminglink voor mensen met een breedbandverbinding. Voor de downloadlink zijn er bij voorkeur ook verschillende bestandgroottes beschikbaar. Voor zij die schrik hebben van het stelen van muziek heb ik het volgende ontnuchterend antwoord: alles wat via de computer gaat, kan opgenomen worden. Zelfs Real Media bestanden zijn niet veilig.
Voor interactiegeluiden houd ik mij altijd aan volgende richtlijnen:
  • Zet de geluiden liever stiller dan luider. Er is niet zo storend als een interactiegeluid dat torenhoog boven de achtergrondmuziek van de surfer uitkomt.
  • Laad deze geluiden wel in bij het laden van de webpagina. Interactiegeluiden die meer dan één keer voorkomen kunnen zo in de cache van de browser opgeslaan worden en dit vermindert de serverload en de gebruikte bandbreedte van de surfer aanzienlijk.
  • Codeer interactiegeluiden liefst met een zo laag mogelijke bitrate (boven de 128 kbps is al veel). Op deze manier wordt de serverload en bandbreedte ook zo veel mogelijk beperkt.
  • En als laatste, maar zeker niet minste punt: laat interactiegeluiden nooit langer dan 2 seconden duren. Voor een hoverstate is het zelfs aanbevolen om het interactiegeluid onder de 1 seconde te houden.

Dat interactiegeluiden vooral in Flashapplicaties gebruikt worden lijkt mij vanzelfsprekend. Er is eventueel ook een combinatie van JavaScript en Flash mogelijk, maar dat gaat het doel van dit artikel te boven.

Algemeen wil ik ook nog een heel belangrijk element toevoegen: voorzie een stop- of muteknop om het geluid af te zetten! En maak er voor een keer geen pixelbutton van, die verscholen zit achter drie menu’s, maar zet hem duidelijk en prominent op je webpagina. Houd er dus rekening mee bij het ontwerpen van je website.

Ik wil ten slotte ook nog een Opensource programma aanraden dat absoluut noodzakelijk is om het geluid op je webpagina just right te krijgen. Audacity gebruik ik om de lengte van mijn geluiden in te korten. Daarna breng ik het geluid eerst op een normaal niveau (normalize) en als finishing touch zet ik het wat stiller (voor de technisch onderlegden: -3dB).

Laat gerust jullie aanvullingen, bedenkingen of aanmoedigingen achter!