Automatisch meta-descriptions invullen
Dit is even een klein handigheidje. Vooral handig als je snel heel veel artikelen van een nieuwssectie, productfeed of weblog wil voorzien van een metadescription, waar dat eerder nog niet gedaan was.
Wat je doet is automatisch de eerste regel van je tekst invullen in het metadescription veld.
Dit is overigens een bewezen goede manier om meer verkeer uit Google te halen.
Waarom? Omdat zo voorkomt dat Google lelijke snippets toont als 'uw browser ondersteunt geen frames/javascript', de inhoud van je navigatiemenu of andere lelijke foute teksten.
Met andere woorden: een automatische meta-description is beter dan geen meta-description!
Hoe pak je dat aan?
Simpel eigenlijk: je pakt de inhoud van het artikel, kapt dat af op de eerste punt die je tegenkomt en zorgt ervoor dat lelijke codes (htmlentities en zo) geen herrie schoppen.
De code is als volgt:
/*
* get frst sentence of text
*/
function first_sentence($content) {
$content = html_entity_decode(strip_tags($content));
$pos = strpos($content, '.');
if($pos === false) {
return $content;
}
else {
return substr($content, 0, $pos+1);
}
}Uitleg
Met de functies strpos() en substr() haal je de content uit de string $content ($content zou dan de tekst van je blogpost zijn) tot aan het eerste punt:
function first_sentence($content) {
$pos = strpos($content, '.');
return substr($content, 0, $pos+1);
}Nu ben je eigenlijk al bijna klaar. Door de volgende code te gebruiken toon je al de eerste zin:
echo first_sentence($content);
Maar je wil natuurlijk voorkomen dat er lelijke codes tussen zitten en dat er toch een korte tekst getoond wordt als er onverhoopt geen punt aan het einde van een zin zit. Daar gebruik je strpos() voor:
$pos = strpos($content, '.');
if($pos === false) {
return $content;
}
else {
return substr($content, 0, $pos+1);
}Tenslotte filter je htmlentities en dergelijke eruit:
html_entity_decode(strip_tags($content));
Plaats dit in je HTML template:
<meta name="description" content="<?= first_sentence($content);" />
En klaar is klara.
Suggesties in de comments zijn uiteraard welkom :)
Update: tekst afkorten
met word_wrap() achtige functies kun je eventueel de hoeveelheid karakters inkorten tot 150, bijvoorbeeld met de volgende code (gevonden op php.net, zelf nog niet getest):
// Substring without losing word meaning and
// tiny words (length 3 by default) are included on the result.
// "..." is added if result do not reach original string length
function _substr($str, $length, $minword = 3){
$sub = '';
$len = 0;
foreach (explode(' ', $str) as $word){
$part = (($sub != '') ? ' ' : '') . $word;
$sub .= $part;
$len += strlen($part);
if (strlen($word) > $minword && strlen($sub) >= $length){
break;
}
}
return $sub . (($len strlen($str)) ? '...' : '');
}Interessant?
Lees dan ook eens meer artikelen over ...
Reacties
door monchito, 2009 10 18
hey Mathieu, ja daar zat ik ook nog aan te denken en is een logische volgende stap. Wellicht dat ik het artikel nog update, maar dat is een eitje voor iedere php-programmeur.in elk geval: daar kun je de functie substr() voor gebruiken: http://php.net/manual/en/function.substr.php
"Dit is even een klein handigheidje."Dat is de meta description die je zou krijgen bij deze post met dit script. Naar mijn mening niet de meest goede meta description.Een op maat geschreven meta description is dan ook altijd beter. Maar zo een oplossing is natuurlijk beter dan geen meta description.
door monchito, 2009 10 19
Daar kan ik overigens aan toevoegen dat content managers en journalisten die veelal geschoold zijn in 'schrijven voor het web' of professionele copywriting, hun stukken doorgaans beginnen met een ankeiler waarin de 5W's genoemd worden: wie, wat waar wanneer waarom en hoe. Als je dat dus consequent altijd gedaan hebt, dan heb je prima meta-descriptions! (ervan uitgaande dat je doelgroep net als zo'n 80% van de mensen zoekt met informationele queries).
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 Webshoptimizer - Mathieu, 2009 10 18
Ah, fijn artikel. Geeft me goed inzicht in handige scripts. Het enige wat ik nog mis is afkorting op 160 karakters ;-)