Disregard blogroll links, acquire link juice! By using spinned text, each page of your site will have a unique text snippet in the sidebar, containing a contextual link with a different anchor text each time!
I’ll keep it short and simple:
1. Install and enable the Shortcode PHP Exec WordPress plugin
2. Create a shortcode called spin with the following code:
extract(shortcode_atts(array('string' => '{This is|I am} the default {text|content}.'), $atts));
# Choose whether to return the string or the number of permutations
$return = 'string';
if($calculate)
{
$permutations = 1;
$return = 'permutations';
}
# If we have nothing to spin just exit (don't use a regexp)
if(strpos($string, '{') === false)
{
return $$return;
}
if(preg_match_all('!{(.*?)}!s', $string, $matches))
{
# Optional, always show a particular combination on the page
if($seedPageName)
{
mt_srand(crc32($_SERVER['REQUEST_URI']));
}
$find = array();
$replace = array();
foreach($matches[0] as $key => $match)
{
$choices = explode('|', $matches[1][$key]);
if($calculate)
{
$permutations *= count($choices);
}
else
{
$find[] = $match;
$replace[] = $choices[mt_rand(0, count($choices) - 1)];
}
}
if(!$calculate)
{
# Ensure multiple instances of the same spinning combinations will spin differently
# Ensure we are dealing with arrays
if(!is_array($find))
{
$find = array($find);
}
if(!is_array($replace))
{
$replace = array($replace);
}
foreach($find as $key => $value)
{
if(($pos = strpos($string, $value)) !== false)
{
# If we have no replacement make it empty
if(!isset($replace[$key]))
{
$replace[$key] = '';
}
$string = mb_substr($string, 0, $pos).$replace[$key].mb_substr($string, $pos + mb_strlen($value));
}
}
}
}
return $$return;
3. Make sure the checkbox for Execute shortcodes in (sidebar) widgets is selected.
4. Go to Appearance -> Widgets and add a text widget to your sidebar containing something along the line of:
[spin text='{Visit|Go to} BlueWidgets.com for <a href="http://www.bluewidgets.com/">{blue widgets|cheap widgets}</a> from {reputable|well-known} widget {manufacturers|companies} {such as|like} {Cool Widgets|Barbarian Widgets}!']
This is standard spintax text. You can do better than that, but you get the picture. Use LSI keywords next to the link, vary anchor text A LOT and spin as deep as possible.
5. Et voilà! Each page of your (WordPress based) website contains a contextual link with a different anchor text.