Tip: automatische zoekmachine vriendelijke urls
Hier weer een technische tip.
Strip allerlei lelijke leestekens uit je url, op het moment dat je zoekmachine vriendelijke urls genereert, bijvoorbeeld op basis van een title die door niet-technici ingevoerd wordt in je cms.
Update: nu met stopwoorden filter
public static function encodeUrlParam ($string){
$string = trim($string);
if(ctype_digit($string)){
return $string;
}
else {
// replace accented chars
$accents = '/&([A-Za-z]{1,2})(grave|acute|circ|cedil|uml|lig);/';
$string_encoded = htmlentities($string,ENT_NOQUOTES,'UTF-8');
$string = preg_replace($accents,'$1',$string_encoded);
// clean out the rest
$replace = array('([40])','([^a-zA-Z0-9-])','(-{2,})');
$with = array('-','','-');
$string = preg_replace($replace,$with,$string);
}
return strtolower($string);
}Bron: PHP.net
Wat het doet
Eerst haalt het spaties eruit aan het begin en einde van de titel ($string) met de trim() functie.
Vervolgens controleert het of $string numeriek is met ctype_digit().
Daarna worden leestekens, zoals umlauts e.d. eruit gestript en spaties omgezet naar '-'.
Klaar, simpel, kopiƫren en gebruiken :)
Stopwoorden filteren
Om urls korter te maken, kun je nikszeggende stopwoorden eruit filteren. Dat kan met een reguliere expressie en een lijstje met stopwoorden. Ik laat het aan jullie over om deze functie te integreren met wat hierboven staat ;)
function removeCommonWords($string){
// array met stopwoorden, zie bijvoorbeeld
// http://www.catalogus.hvu.nl/webopac/helpteksten/stopwoorden.htm
$commonWords = array('stopwoorda','stopwoordb');
return preg_replace('/b('.implode('|',$commonWords).')b/','',$string);
}Interessant?
Lees dan ook eens meer artikelen over ...
Reacties
door monchito, 2010 03 20
Ik zal trouwens binnenkort deze functie nog wat aanpassen, want uiteraard kun en moet je urls ook inkorten: kortere urls klikken beter. Kan op 2 manieren: - of je stript alle woorden die kleiner zijn dan 3 karakters - of je hanteert een lijst met stopwoorden die je eruit filtert (zoals de seo slugs plugin van wordpress doet voor de Engelse taal) - of wellicht zelfs een combinatie van de twee
door Ramon Eijkemans, 2010 11 02
Hoi Mart-Jan, deze functie roep je aan op het moment dat een url gegenereerd wordt. Het werkt dan ongeveer als zo:
$url = 'mijn nog niet nette url';
$url = removeCommonWords($url);
$url = encodeUrlParam($url);
En dan krjg je zoiets als dit:
$url = 'niet-nette-url';
Rants/opmerkingen/suggesties?
Wat is MONLOG
Sinds 2002 is MONLOG het weblog van Ramon Eijkemans, freelance SEO-gun for hire.
Dit weblog bevat how-to's, mijmeringen, soms wat humor. Het gaat vrijwel altijd over SEO. Ik herhaal geen nieuws. Het doel van dit weblog is om jou van praktische en doordachte informatie te voorzien!
En dan nog dit: guestpostings zijn welkom! Mail me als je je ei kwijt wil op dit goed rankende podium.
Laatste comments
@Aartjan: ik heb hetzelfde met 'lekker kontje' :)...
25.11.2011 door Ramon Eijkemans op Ranken op Banaan
Bij mij is 'banaan' toevallig al jaren het zoekwoord waar ik...
23.11.2011 door Aartjan van Erkel op Ranken op Banaan
Gewoon maken waar vraag naar is. Dat is zo oud als de weg...
22.11.2011 door Thomas op Ranken op Banaan
Een banaan natuurlijk :)
09.11.2011 door Ramon Eijkemans op Ranken op Banaan
In welk tineu zien we jou terug binnenkort?
09.11.2011 door Emiel op Ranken op Banaan
@Simme @Navin proost! :)
07.09.2011 door Ramon Eijkemans op Vakantie!
Zo maak je mij wel erg jaloers :)
05.09.2011 door Navin Poeran op Vakantie!
12 bier geeft plezier.en veel succes gewenst tijdens de tw...
31.08.2011 door simme op Vakantie!
@Willem: ik denk op de manier zoals ik in dit artikel...
20.08.2011 door Ramon Eijkemans op Faceted search & SEO: vloek of zegen?
Goed en interessant artikel. Wat mij vooral bezighoudt, is...
20.08.2011 door Willem Hoekstra op Faceted search & SEO: vloek of zegen?


door monchito, 2010 03 20
Ik heb deze post hier neergezet als persoonlijke bookmark :p