Tip: automatische zoekmachine vriendelijke urls

2010 03 20 door monchito

php code 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

monchito

door monchito, 2010 03 20

Ik heb deze post hier neergezet als persoonlijke bookmark :p

monchito

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

Mart-Jan

door Mart-Jan, 2010 11 02

hallo,

kan je ook wat voorbeelden geven, aub?
groeten,

Mart-Jan

Ramon Eijkemans

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?