I have been getting notices from search engines that my meta description length was too long. Upon investigation, I found that my meta descriptions were anywhere from 250-300 characters in length. Most suggest that the length should be 155 or less.
CSC has $max_letters = 250 which is obviously too much and I am not sure why some of my meta descriptions were more than 250. After some testing, I found that $max_letters = 130 puts me just under 155 while $max_letters = 140 puts me just over 155. I stuck with 130 to be on the safe side.
/app/functions/fn.common.php
/** * Return cleaned text string (for meta description use) * * @param string $html - html code to generate description from * @param int $max_letters - maximum letters in description * @return string - cleaned text */ function fn_generate_meta_description($html, $max_letters = 130) { $meta = array(); if (!empty($html)) { $html = str_replace(' ', ' ', $html); $html = str_replace(array("\r\n", "\n", "\r"), ' ', html_entity_decode(trim($html), ENT_QUOTES, 'UTF-8')); $html = preg_replace('/\/i', " ", $html); $html = preg_replace('|]*>.*?|i', '', $html); $html = strip_tags($html); $html = str_replace(array('.', ',', ':', ';', '`', '"', '~', '\'', '(', ')'), ' ', $html); $html = preg_replace('/\s+/', ' ', $html); $html = explode(' ', $html); $letters_count = 0; foreach ($html as $k => $v) { $letters_count += fn_strlen($v); if ($letters_count <= $max_letters) { $meta[] = $v; } else { break; } } }return implode(' ', $meta);
}