<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><!-- generator="wordpress/2.0.7" --><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Blue Hat SEO-Advanced SEO Tactics</title>
	<link>http://www.BlueHatSEO.com</link>
	<description>Advanced SEO Tactics and Techniques</description>
	<pubDate>Sat, 06 Jun 2009 07:11:23 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.0.7</generator>
	<language>en</language>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/BlueHatSEO/HXKR" type="application/rss+xml" /><feedburner:emailServiceId>BlueHatSEO/HXKR</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item>
		<title>Conspiracy Theories Please</title>
		<link>http://feedproxy.google.com/~r/BlueHatSEO/HXKR/~3/toFkMyrRp0M/</link>
		<comments>http://www.BlueHatSEO.com/conspiracy-theories-please/#comments</comments>
		<pubDate>Fri, 05 Jun 2009 09:09:05 +0000</pubDate>
		<dc:creator>Eli</dc:creator>
		
		<category>Random Thoughts</category>

		<guid isPermaLink="false">http://www.BlueHatSEO.com/conspiracy-theories-please/</guid>
		<description><![CDATA[If you find portions of my writing style on this blog hard to understand, overly complicated, different then my writing style elsewhere or just generally outside the realm of normal blogging; It&#8217;s not because I&#8217;m trying to hide something, trick you, cover up a lack of experience, or prevent you from learning the technique. In [...]]]></description>
			<content:encoded><![CDATA[<p>If you find portions of my writing style on this blog hard to understand, overly complicated, different then my writing style elsewhere or just generally outside the realm of normal blogging; It&#8217;s not because I&#8217;m trying to hide something, trick you, cover up a lack of experience, or prevent you from learning the technique. In fact I&#8217;m not blogging at all. I&#8217;m writing pseudocode.</p>
<p>Thanks for understanding,<br />
-Fishy Eli
</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/BlueHatSEO/HXKR?a=toFkMyrRp0M:RKQp83uYukg:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/BlueHatSEO/HXKR?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BlueHatSEO/HXKR?a=toFkMyrRp0M:RKQp83uYukg:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/BlueHatSEO/HXKR?i=toFkMyrRp0M:RKQp83uYukg:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BlueHatSEO/HXKR?a=toFkMyrRp0M:RKQp83uYukg:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/BlueHatSEO/HXKR?i=toFkMyrRp0M:RKQp83uYukg:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BlueHatSEO/HXKR?a=toFkMyrRp0M:RKQp83uYukg:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/BlueHatSEO/HXKR?d=7Q72WNTAKBA" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.BlueHatSEO.com/conspiracy-theories-please/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.BlueHatSEO.com/conspiracy-theories-please/</feedburner:origLink></item>
		<item>
		<title>Open Questions - Subdomains and Main Domains</title>
		<link>http://feedproxy.google.com/~r/BlueHatSEO/HXKR/~3/FjqiF_QF0vo/</link>
		<comments>http://www.BlueHatSEO.com/open-questions-subdomains-and-main-domains/#comments</comments>
		<pubDate>Thu, 04 Jun 2009 07:53:59 +0000</pubDate>
		<dc:creator>Eli</dc:creator>
		
		<category>Random Thoughts</category>

		<guid isPermaLink="false">http://www.BlueHatSEO.com/open-questions-subdomains-and-main-domains/</guid>
		<description><![CDATA[I got a great question on my SEO Empire post from Ryan at NetSEO. I figured it was worth addressing in a post rather than leaving a really long comment.

Eli,
Can you be so kind and explain why this is:
“Primary domains can pass a penalty to subdomains. Subdomains can’t pass a penalty to a main domain [...]]]></description>
			<content:encoded><![CDATA[<p>I got a great question on my <a href="http://www.bluehatseo.com/seo-empire-part-1/">SEO Empire</a> post from Ryan at <a href="http://netseo.com/">NetSEO</a>. I figured it was worth addressing in a post rather than leaving a really long comment.</p>
<blockquote><p>
Eli,<br />
Can you be so kind and explain why this is:</p>
<p>“Primary domains can pass a penalty to subdomains. Subdomains can’t pass a penalty to a main domain unless the main domain holds a relation to the subdomain (ie. a link).”
</p></blockquote>
<p>Happy to answer Ryan <img src='http://www.BlueHatSEO.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Anytime I make a statement like that I am usually making a reference to an exemption to the general This-Is-My-Site -> This-Is-Google -> This-Is-The-Value stream of things. Sometimes I&#8217;m a bit presumptuous in assuming readers caught the reference. In this instance I&#8217;m talking about the exception given to protect free hosts from penalties, particularly those who give their users subdomains such as Hypermart, Xoom, Wordpress.com, Blogger, Tripod etc.  This exemption can&#8217;t only cover the popular free hosts otherwise no new freehosts would ever stand a chance. As soon as they got a single spammy user their whole site could get banned and poof goes their legit business. Likewise algorithmically it can&#8217;t cover all free hosts because then the biggens like Wordpress.com and Typepad would all be penalized. On a foresight this would also include profile based social sites such as Myspace and outbound linking social sites such as Delicious. Anyone remember when Geocities sites used to rank so well. <img src='http://www.BlueHatSEO.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Yet at the same time with a lot of splog platforms out there manual reviews would be a nightmare and unfeasible. So there is a line drawn. That line has to consist of some sort of relationship between the primary domain and the subdomain of a site that&#8217;ll evaluate if the &#8220;subsite&#8221; belongs to the main site or if it&#8217;s a separate entity. By way of algorithms that relationship is very tough to determine. In fact it&#8217;s damn near impossible to do with 100% accuracy. Unfortunately for them, they have the burden of relying on internal linking relationships between the two which would include the above statement as well as other protective factors that would encompass other exceptions such as nonstatic links (like Furl &#038; Delicious would use).</p>
<p>This area of unsureness gives us SEO peeps room to do things such as create splogs and do subdomain spam.  As long as we know what they&#8217;re looking for (the antispam teams) we know what not to provide. Most sites that contain ownership of their subdomains link from their mainpage down to the subpages to the subdomains and so on and so forth. So when in doubt do the opposite. It&#8217;ll provide less of a chance for a relationship between the maindomain and subdomain to be found and if you&#8217;re worried about linkjuice get it from other sources via deeplinks.</p>
<p><!-- \u0057\u0050\u0020\u0068\u0061\u0073\u0020\u0061\u0020\u0070\u006C\u0075\u0067\u0069\u006E\u0020\u0079\u006F\u0075\u0020\u0063\u0061\u006E\u0020\u0075\u0073\u0065\u0020\u0074\u006F\u0020\u0063\u0072\u0065\u0061\u0074\u0065\u0020\u0061\u0020\u0077\u0065\u0062\u0072\u0069\u006E\u0067\u0020\u006F\u0066\u0020\u0073\u006F\u0072\u0074\u0073\u0020\u0074\u006F\u0020\u006D\u0061\u006B\u0065\u0020\u006C\u0065\u0067\u0069\u0074\u0069\u006D\u0061\u0074\u0065\u0020\u006C\u006F\u006F\u006B\u0069\u006E\u0067\u0020\u0069\u006E\u006E\u0065\u0072\u006C\u0069\u006E\u006B\u0073\u0020\u0061\u006D\u006F\u006E\u0067\u0020\u0074\u0068\u0065\u0020\u0064\u0069\u0066\u0066\u0065\u0072\u0065\u006E\u0074\u0020\u0075\u0073\u0065\u0072\u0073\u002E\u0020\u0054\u0068\u0069\u0073\u0020\u0077\u006F\u0072\u006B\u0073\u0020\u0067\u0072\u0065\u0061\u0074\u0020\u0074\u006F\u0020\u0068\u0069\u0064\u0065\u0020\u0073\u0075\u0062\u0064\u006F\u006D\u0061\u0069\u006E\u0020\u0073\u0070\u0061\u006D\u0020\u006F\u006E\u0020\u0057\u0050\u004D\u0055\u0020\u0069\u006E\u0073\u0074\u0061\u006C\u006C\u0073\u002E --></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/BlueHatSEO/HXKR?a=FjqiF_QF0vo:aeqJE6YZKpk:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/BlueHatSEO/HXKR?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BlueHatSEO/HXKR?a=FjqiF_QF0vo:aeqJE6YZKpk:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/BlueHatSEO/HXKR?i=FjqiF_QF0vo:aeqJE6YZKpk:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BlueHatSEO/HXKR?a=FjqiF_QF0vo:aeqJE6YZKpk:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/BlueHatSEO/HXKR?i=FjqiF_QF0vo:aeqJE6YZKpk:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BlueHatSEO/HXKR?a=FjqiF_QF0vo:aeqJE6YZKpk:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/BlueHatSEO/HXKR?d=7Q72WNTAKBA" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.BlueHatSEO.com/open-questions-subdomains-and-main-domains/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.BlueHatSEO.com/open-questions-subdomains-and-main-domains/</feedburner:origLink></item>
		<item>
		<title>Advanced White Hat SEO Exists Damn It! - Dynamic SEO</title>
		<link>http://feedproxy.google.com/~r/BlueHatSEO/HXKR/~3/A9gOeS2zK9Y/</link>
		<comments>http://www.BlueHatSEO.com/advanced-white-hat-seo-exists-damn-it-dynamic-seo/#comments</comments>
		<pubDate>Wed, 22 Apr 2009 01:37:00 +0000</pubDate>
		<dc:creator>Eli</dc:creator>
		
		<category>Guides</category>

		<guid isPermaLink="false">http://www.BlueHatSEO.com/advanced-white-hat-seo-exists-damn-it-dynamic-seo/</guid>
		<description><![CDATA[Hello again!
I&#8217;ve been restless and wanting to write this post for a very long time and I&#8217;m not going to be happy until its out. So get out your reading glasses, and I have it on good authority that every reader of this blog happens to be the kind of dirty old men that hang [...]]]></description>
			<content:encoded><![CDATA[<p>Hello again!<br />
I&#8217;ve been restless and wanting to write this post for a very long time and I&#8217;m not going to be happy until its out. So get out your reading glasses, and I have it on good authority that every reader of this blog happens to be the kind of dirty old men that hang out and harass high school chicks at gas stations so don&#8217;t tell me you don&#8217;t have a pair. Get &#8216;em out and let&#8217;s begin&#8230;.</p>
<p>Fuck, how do I intro-rant this post without getting all industry political? Basically, this post is an answer to a question asked a long time ago at some IM conference to a bunch of gurus. They asked them does advanced White Hat SEO exist? If I remember right, and this was a long time ago and probably buzzed up so forgive me, every guru said something along the lines of there is no such thing as advanced White Hat SEO. Now I&#8217;m sympathetic to the whole self promotion thing to a small degree. If your job is to build buzz around yourself you have to say things that are buzz worthy. You can&#8217;t say the obvious answer, YOU BET IT DOES AND YOU&#8217;RE RETARDED FOR ASKING! You gotta say something controversial that gets people thinking, but not something so controversial that anyone of your popularity level is going to contradict in a sensible way making your popularity appear more overrated than a cotton candy vendor at the Special Olympics. In short, yes advanced white hat exists and there&#8217;s tons of examples of it; but you already knew that and I&#8217;m going to give you such an example now. That example is called Dynamic SEO. I&#8217;ve briefly mentioned it in several posts in the past and it is by every definition simple good ol&#8217; fashion on-site keyword/page/traffic optimizing White Hat SEO. It also happens to be very simple to execute but not so simple to understand. So I&#8217;ll start with the basics and we&#8217;ll work into building something truly <strong>badhatass</strong>.</p>
<p><strong>What Is Dynamic SEO?</strong><br />
Dynamic SEO is simply the automated no-guessing self changing way of SEOing your site over time. It is the way to get your site as close to 100% perfectly optimized as needed without ever knowing the final result AND automatically changing those results as they&#8217;re required. It&#8217;s easier done than said.</p>
<p><strong>What Problems Does Dynamic SEO Address?</strong><br />
If you&#8217;re good enough at it you can address EVERY SEO related problem with it. I am well aware that I defined it above as on-site SEO, but the reality is you can use it for every scenario; even off-site SEO. Hell <a href="http://squirt.robstool.com">SQUIRT</a> is technically dynamic off-site SEO. <a href="http://www.bluehatseo.com/blue-hat-technique-18-log-link-matching/">Log Link Matching</a> is even an example of advanced off-site Dynamic SEO. The problems we&#8217;re facing with this post specifically includes keyword optimization which is inclusive of keyword order, keyword selection, and even keyword pluralization.</p>
<p>See the problem is you. When it comes to subpages of your site you can&#8217;t possibly pick the exact best keywords for all of them and perfectly optimize the page for them. First of all keyword research tools often get the keyword order mixed up. For instance they may say &#8220;Myspace Template&#8221; is the high traffic keyword. When really it could be &#8220;Templates For Myspace&#8221;. They just excluded the common word &#8220;for&#8221; and got the order wrong because &#8220;Template Myspace&#8221; isn&#8217;t popular enough. They also removed the plural to &#8220;broad&#8221; the count. By that logic Myspace Templates may be the real keyword. Naturally if you have the intuition this is a problem you can work around manually. The problem is not only will you never be perfect on every single page but your intuition as a more advanced Internet user is often way off, especially when it comes to searching for things. Common users tend to search for what they want in a broad sense. Hell the keyword Internet gets MILLIONS of searches. Who the fuck searches for a single common word such as Internet? Your audience is who. Whereas you tend to think more linear with your queries because you have a higher understanding of how Ask Jeeves isn&#8217;t really a butler that answers questions. You just list all the keywords you think the desired results will have. For instance, &#8220;laptop battery hp7100&#8243; instead of &#8220;batteries for a hp7100 laptop.&#8221; Dynamic SEO is a plug n play way of solving that problem automatically. Here&#8217;s how you do it.</p>
<p><strong>Create A Dynamic SEO Module</strong><br />
The next site you hand code is a great opportunity to get this built and in play. You&#8217;ll want to create a single module file such as dynkeywords.pl or dynkeywords.php that you can use across all your sites and easily plug into all your future pages. If you have a dedicated server you can even setup the module file to be included (or required) on a common path that all the sites on your server can access. With it you&#8217;ll want to give the script its own sql database. That single database can hold the data for every page of all your sites. You can always continue to revise the module and add more cool features but while starting out it&#8217;s best to start simple. Create a table that has a field structure similar to <strong>ID,URL,KEYWORD,COUNT</strong>. I put ID just because I like to always have some sort of primary key to auto increment. I&#8217;m a fan of large numbers what can I say? <img src='http://www.BlueHatSEO.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><strong>Page Structure &#038; Variables To Pass To Your Module</strong><br />
Before we get deep into the nitty gritty functions of the module we&#8217;ll first explore what basic data it requires and how the site pages will pass and return that data. In most coded pages, at least on my sites, I usually have the title tag in some sort of variable. This is typically passed to the template for obvious reasons. The important thing is it&#8217;s there so we&#8217;ll start with that. Let&#8217;s say you have a site on home theater equipment and the subpage you&#8217;re working on is on LCD televisions. Your title tag may be something like &#8220;MyTVDomain.com: LCD Televisions - LCD TVs&#8221;.</p>
<p><em>Side Note/<br />
BTW sorry I realize that may bother some people how in certain cases I&#8217;ll put the period outside of the quotes. I realize it&#8217;s wrong and the punctuation must always go inside the quotes when ending a sentence. I do it that way so I don&#8217;t imply that I put punctuation inside my keywords or title tags etc etc.<br />
/Side Note</em></p>
<p>You know your keywords will be similar to LCD Televisions, but you don&#8217;t know whether LCD TVs would be a better keyword. ie. It could either be a higher traffic keyword or even a more feasible keyword for that subpage to rank for. You also don&#8217;t know if the plurals would be better or worse for that particular subpage so you&#8217;ll have to keep that in your mind while you pass the module the new title variable. So before you declare your title tag create a quick scalar for it (hashref array). In this scalar you&#8217;ll want to put in the estimated best keywords for the page:<br />
[<br />
Keyword1 -> &#8216;LCD Television&#8217;,<br />
Keyword2 -> &#8216;LCD TV&#8217;,<br />
]<br />
Then put in the plurals of all your keywords. It&#8217;s important not to try to over automate this because A) you don&#8217;t want your script to just tag the end of every word with &#8220;s&#8221; because of grammatical reasons (skies, pieces, moose, geese) and B) you don&#8217;t want your module slowing down all the pages of your site by consulting a dictionary DB on every load.<br />
[<br />
Keyword1 -> &#8216;LCD Television&#8217;,<br />
Keyword2 -> &#8216;LCD TV&#8217;,<br />
Keyword3 -> &#8216;LCD Televisions&#8217;,<br />
Keyword4 -> &#8216;LCD TVs&#8217;,<br />
]<br />
Now for you &#8220;what about this awesome way better than your solution&#8221; mutha fuckas that exist in the comment section of every blog, this is where you get your option. You didn&#8217;t have to use a scalar array above you could of just have used a regular array and passed the rest of the data in their own variables, or you could of put them at the beginning of the standard array and assigned the trailing slots to the keywords OR you could use a multidimensional array. I really don&#8217;t give a shit how you manage the technical details. You just need to pass some more variables to the modules starting function and I happen to prefer tagging them onto the scalar I already have.<br />
[<br />
Keyword1 -> &#8216;LCD Television&#8217;,<br />
Keyword2 -> &#8216;LCD TV&#8217;,<br />
Keyword3 -> &#8216;LCD Televisions&#8217;,<br />
Keyword4 -> &#8216;LCD TVs&#8217;,<br />
URL -> &#8216;$url&#8217;,<br />
REFERRER -> &#8216;$referrer&#8217;,<br />
Separator -> &#8216;-&#8217;<br />
]<br />
In this case the $url will be a string that holds the current url that the user is on. This may vary depending on the structure of the site. For most pages you can just pull the environmental variable of the document url or if your site has a more dynamic structure you can grab it plus the query_string. It doesn&#8217;t matter if you&#8217;re still reading this long fuckin&#8217; post you probably are at the point in your coding abilities where you can easily figure this out. Same deal with the referrer. Both of these variables are very important and inside the module you should make a check for empty data. You need to know what page the pageview is being made on and you&#8217;ll need to know if they came from a search engine and if so what keywords did they search for. The Separator is simply just the character you want to separate the keywords out by once its outputted. In this example I put a hyphen so it&#8217;ll be &#8220;Keyword 1 - Keyword 2 - Keyword 3&#8243; Once you got this all you have to do is include the module in your code before the template output, have the module return the $title variable and have your template output that variable in the title tag. Easy peasey beautiful single line of code. <img src='http://www.BlueHatSEO.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><strong>Basic Module Functions</strong><br />
Inside the module you can do a wide assortment of things with the data and the SQL and we&#8217;ll get to a few ideas in a bit. For now just grab the data and check the referrer for a search engine using regex. I&#8217;ll give you a start on this but trust it less the older this post gets:<br />
<strong>Google:</strong> ^http:\/\/www\.google\.[^/]+\/search\?.*q=.*$<br />
[?&#038;]q= *([^&#038; ][^&#038;]*[^&#038; +])[ +]*(&#038;.*)?$<br />
<strong>Yahoo:</strong> ^http:\/\/(\w*\.)*search\.yahoo\.[^/]+\/.*$<br />
[?&#038;]p= *([^&#038; ][^&#038;]*[^&#038; +])[ +]*(&#038;.*)?$<br />
<strong>MSN:</strong> ^http:\/\/search\.(msn\.[^/]+|live\.com)\/.*$<br />
[?&#038;]q= *([^&#038; ][^&#038;]*[^&#038; +])[ +]*(&#038;.*)?$</p>
<p>Once you&#8217;ve isolated the search engines and the keywords used to find the subpage you can check to see if it exists in the database. If it doesn&#8217;t exist insert a new row with the page, the keyword, and a count of 1. Then select where the page is equal to the $url from the database order by the highest count. If the count is less than a predefined delimiter (ie 1 SE referrer) than output the $title tag with the keywords in order (may want to put a limit on it). For instance if they all have a count of 1 than output from the first result to the last with the Separator imbetween. Once you get your first visitor from a SE it&#8217;ll rearrange itself automatically. For instance if LCD TV has a count of 3 and LCD Televisions has a count of 2 and the rest have a count of 1 you can put a limit of 3 on your results and you&#8217;ll output a title tag with something like &#8220;LCD TV - LCD Televisions - LCD Television&#8221; LCD Television being simply the next result not necessarily the best result. If you prefer to put your domain name in your title tag like &#8220;MYTVSITE.COM: LCD TV - LCD Televisions - LCD Television&#8221; you can always create an entry in your scalar for that and have your module just check for it and if its there put it at the beginning or end or whatever you prefer (another neat customization!).</p>
<p><strong>Becoming MR. Fancy Pants</strong><br />
Once you have the basics of the script down you can custom automate and SEO every aspect of your site. You can do the same technique you did with your title tag with your heading tags. As an example you can even create priority headings *wink*. You can go as far as do dynamic keyword insertion by putting in placeholders into your text such as %keyword% or even a long nonsense string that&#8217;ll never get used in the actual text such as 557365204c534920772f205468697320546563686e6971756520546f20446f6d696e617465. With that you can create perfect keyword density. If you haven&#8217;t read my super old post on <a href="http://www.bluehatseo.com/blue-hat-technique-13-maintaining-your-rank-by-manipulating-freshness-factors/">manipulating page freshness factors</a> you definitely should because this module can automate perfect timings on content updates for each page. Once you have it built you can get as advanced and dialed in as you&#8217;d like.</p>
<p><strong>How This Works For Your Benefit</strong><br />
Here&#8217;s the science behind the technique. It&#8217;s all about creating better odds for each of your subpages hitting those perfect keywords with the optimal traffic that page with its current link building can accomplish. In all honesty, manually done, your odds are slim to none and I&#8217;ll explain why.  A great example of these odds in play are the ranges in competitiveness and volume by niche. For instance you build a site around a homes for sale database you do a bit of keyword research and figure out that &#8220;Homes For Sale In California&#8221; is an awesome keyword with tons of traffic and low competition. So you optimize all your pages for &#8220;Homes For Sale In $state&#8221; without knowing it you may have just missed out on a big opportunity because while &#8220;Homes For Sale In California&#8221; may be a great keyword for that subpage &#8220;New York Homes&#8221; may be a better one for another subpage or maybe &#8220;Homes For Sale In Texas&#8221; is too competitive and &#8220;Homes In Texas&#8221; may have less search volume but your subpage is capable of ranking for it and not the former. You just missed out on all that easy traffic like a chump. Don&#8217;t feel bad more than likely your competitors did as well. <img src='http://www.BlueHatSEO.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Another large advantage this brings is in the assumption that short tail terms tend to have more search volume than long tail terms. So you have a page with the keywords &#8220;Used Car Lots&#8221; and &#8220;Used Car&#8221;. As your site gets some age and you get more links to it that page will more likely rank for Used Car Lots sooner than Used Car. Along that same token once it&#8217;s ranked for Used Car Lots for awhile and you get more and more links and authority since Used Car is part of Used Car Lots you&#8217;ll become more likely to start ranking for Used Car and here&#8217;s the important part. Initially since you have your first ranking keyword it will get a lot of counts for that keyword. However once you start ranking for the even higher volume keyword even if it is a lower rank (eg you rank #2 for Used Car Lot and only #9 for Used Car) than the count will start evening out. Once the better keyword outcounts the not as good than your site will automatically change to be more optimized for the higher traffic one while still being optimized for the lesser. So while you may drop to #5 or so for Used Car Lot your page will be better optimized to push up to say #7 for Used Car. Which will result in that subpage getting the absolute most traffic it can possibly get at any single time frame in the site&#8217;s lifespan. This is a hell of a lot better than making a future guestimate on how much authority that subpage will have a year down the road and its ability to achieve rankings WHILE your building the fucking thing; because even if you&#8217;re right and call it perfectly and that page does indeed start to rank for Used Car in the meantime you missed out on all the potential traffic Used Car Lot could have gotten you. Also keep in mind by rankings I don&#8217;t necessarily always mean the top 10. Sometimes rankings that result in traffic can even go as low as the 3rd page, and hell if that page 3 ranking gives you more traffic than the #1 slot for another keyword fuck that other keyword! Go for the gold at all times.</p>
<p><strong>What About Prerankings?</strong><br />
See this is what the delimiter is for! If your page hasn&#8217;t achieved any rankings yet than it isn&#8217;t getting any new entry traffic you care about. So the page should be optimized for ALL or at least 3-6 of your keywords (whatever limit you set). This gives the subpage at least a chance at ranking for any one of the keywords while at the same time giving it the MOST keywords pushing its relevancy up. What I mean by that is, your LCD page hasn&#8217;t achieved rankings yet therefore it isn&#8217;t pushing its content towards either TV or Televisions. Since it has both essentially equaled out on the page than the page is more relevant to both keywords instead of only a single dominate one. So when it links to your Plasma Television subpage it still has the specific keyword Television instead of just TV thus upping the relevancy of your internal linking. Which brings up the final advanced tip I&#8217;ll leave you with.</p>
<p>Use the module to create optimal internal linking. You already have the pages and the keywords, its a very easy to do and short revision. Pass the page text or the navigation to your module. Have it parse for all links. If it finds a link that matches the domain of the current page (useful variable) then have it grab the top keyword count for that other page and replace the anchor text. Boom! You just got perfectly optimized internal linking that will only get better over time. <img src='http://www.BlueHatSEO.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><strong>There ya go naysayers. Now you can say you&#8217;ve learned a SEO technique that&#8217;s both pure white hat and no matter how simple you explain it very much advanced.</strong>
</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/BlueHatSEO/HXKR?a=A9gOeS2zK9Y:Gv9J9f6HZAs:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/BlueHatSEO/HXKR?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BlueHatSEO/HXKR?a=A9gOeS2zK9Y:Gv9J9f6HZAs:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/BlueHatSEO/HXKR?i=A9gOeS2zK9Y:Gv9J9f6HZAs:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BlueHatSEO/HXKR?a=A9gOeS2zK9Y:Gv9J9f6HZAs:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/BlueHatSEO/HXKR?i=A9gOeS2zK9Y:Gv9J9f6HZAs:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BlueHatSEO/HXKR?a=A9gOeS2zK9Y:Gv9J9f6HZAs:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/BlueHatSEO/HXKR?d=7Q72WNTAKBA" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.BlueHatSEO.com/advanced-white-hat-seo-exists-damn-it-dynamic-seo/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.BlueHatSEO.com/advanced-white-hat-seo-exists-damn-it-dynamic-seo/</feedburner:origLink></item>
		<item>
		<title>We Added A New Java Chat</title>
		<link>http://feedproxy.google.com/~r/BlueHatSEO/HXKR/~3/IpVrSQDThWg/</link>
		<comments>http://www.BlueHatSEO.com/we-added-a-new-java-chat/#comments</comments>
		<pubDate>Thu, 12 Feb 2009 17:43:39 +0000</pubDate>
		<dc:creator>Eli</dc:creator>
		
		<category>Announcements</category>

		<guid isPermaLink="false">http://www.BlueHatSEO.com/we-added-a-new-java-chat/</guid>
		<description><![CDATA[Facts be faced I haven&#8217;t been posting lately. So if you want to chat it up and get some solid advice feel free to join us in the chatroom.
Chat.BlueHatSeo.com

]]></description>
			<content:encoded><![CDATA[<p>Facts be faced I haven&#8217;t been posting lately. So if you want to chat it up and get some solid advice feel free to join us in the chatroom.</p>
<p><center><strong><a href="http://chat.bluehatseo.com/">Chat.BlueHatSeo.com</a></strong></center>
</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/BlueHatSEO/HXKR?a=IpVrSQDThWg:BjDIjOiIWJo:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/BlueHatSEO/HXKR?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BlueHatSEO/HXKR?a=IpVrSQDThWg:BjDIjOiIWJo:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/BlueHatSEO/HXKR?i=IpVrSQDThWg:BjDIjOiIWJo:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BlueHatSEO/HXKR?a=IpVrSQDThWg:BjDIjOiIWJo:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/BlueHatSEO/HXKR?i=IpVrSQDThWg:BjDIjOiIWJo:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BlueHatSEO/HXKR?a=IpVrSQDThWg:BjDIjOiIWJo:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/BlueHatSEO/HXKR?d=7Q72WNTAKBA" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.BlueHatSEO.com/we-added-a-new-java-chat/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.BlueHatSEO.com/we-added-a-new-java-chat/</feedburner:origLink></item>
		<item>
		<title>How To Overthrow A Wikipedia Result</title>
		<link>http://feedproxy.google.com/~r/BlueHatSEO/HXKR/~3/d5kNGVVXm1k/</link>
		<comments>http://www.BlueHatSEO.com/how-to-overthrow-a-wikipedia-result/#comments</comments>
		<pubDate>Tue, 04 Nov 2008 11:52:50 +0000</pubDate>
		<dc:creator>Eli</dc:creator>
		
		<category>General Articles</category>

		<guid isPermaLink="false">http://www.BlueHatSEO.com/how-to-overthrow-a-wikipedia-result/</guid>
		<description><![CDATA[A busy ranking artist runs into this problem quite often. I ran into it again the other day and figured I might as well show my Blue Hat peeps how to overcome the same problem since its a fairly popular problem to have and there is a simple solution to it.
The Problem
Your site is holding [...]]]></description>
			<content:encoded><![CDATA[<p>A busy ranking artist runs into this problem quite often. I ran into it again the other day and figured I might as well show my Blue Hat peeps how to overcome the same problem since its a fairly popular problem to have and there is a simple solution to it.</p>
<p><strong>The Problem</strong><br />
Your site is holding a particular rank and a Wikipedia page is ranked right above it. The specific ranks don&#8217;t particularly matter, but much like Hillary Clinton in the primaries you can&#8217;t possibly live being beaten like that. You have to drop the Wikipage down a notch and you have to continue moving up.</p>
<p><strong>The Simple Solution</strong><br />
The simplicity of this tactic actually depends very heavily on the Wikipedia entry. Either way they&#8217;re all very beatable, but some are easier than others. In fact as mentioned I just ran into this problem recently and I managed to knock the competitive Wikipage entirely out of the top 20 in just two days using these steps. First you need to understand why the Wikipage ranks. Most of these pages rank for 3 reasons.</p>
<p><strong>1)</strong> The domain authority of Wikipedia.org.</p>
<p><strong>2)</strong> Innerlinking amongst other Wikipedia entries boosting the page&#8217;s value.  &lt;- Particularly the *See Also&#8217;s</p>
<p><strong>3)</strong> Inbound links from most typically blogs and forums. &lt;- <em>An observant person would not only notice the high percentage of links from blogs/forums in contrast to other types of links but a strong lack of sitewide links from any of those sites.</em></p>
<p>You obviously can&#8217;t do anything about the domain authority of Wikipedia.org but understand that it&#8217;s pages are like a tripod; If you knock out one of the legs the whole thing falls (pun). Well now that you understand why it&#8217;s there right up above you like a towering fugly friend of the girl you&#8217;re trying to hit on the solution becomes obvious. Knock out reasons two and three.</p>
<p><strong>Steps</strong><br />
<strong>1)</strong> Using your favorite link analysis tool (I prefer the simplistic Yahoo Site Explorer) find all the pages that link to the particular wikipedia entry that come from the wikipedia.org domain.</p>
<p><strong>2)</strong> Go to each listing and find the reference to the offending Wikipage. You&#8217;ll find most of them in the See Also section or linked throughout the article. This is where the simplicity that I was talking about before comes into play. Listings such as &#8220;Flash Games&#8221; or &#8220;Election News&#8221; are easier because they&#8217;re so irrelevant. When people are searching Google for terms such as these they&#8217;re obviously wanting to find actual flash games or election news, not some faggy Wikipedia page saying what they are. The same concept applies to other Wikipages linking to them. Just because the author put the text Cat Food in the article or the See Also doesn&#8217;t mean its a relevant reference to the subject matter.</p>
<p><strong>3)</strong> SLOWLY remove nearly all those bitches! Be sure to leave a good convincing reason for the removal on the editing reason. Remove as many as possible but strictly limit yourself.  I understand Blue Hatters have a tendency to overdo things but you&#8217;re just going to fuck yourself if you quickly go through each and every reference and mass delete them. If you don&#8217;t know how many you should remove, then keep it to no more than 1-2 a day. Remove the references with the highest pagerank first if you got a ranking emergency and switch IPs between each one. This will either knock out one of it&#8217;s legs or at least cripple the leg a bit. Which leaves you with my match and exceed philosophy.</p>
<p><strong>4)</strong> Find all the blogs and forums that link to that Wikipage and go drop a link in as many of them as you can. Match and exceed. <img src='http://www.BlueHatSEO.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  I&#8217;m not going to dive into the nofollow talk on this one or talk about the benefits of links via blog comments. Just realize your goal in this instance isn&#8217;t to get more links it&#8217;s to get your link on the same pages that link to the Wikipage. As mentioned above you&#8217;ll be dealing mostly with blogs and forums, you&#8217;re in the same niche as the topics they&#8217;re talking about obviously and you probably won&#8217;t have any sitewide links to deal with so you won&#8217;t have to go through any link begging pains.</p>
<p><strong>5)</strong> Try to drop your link into the article. This is common sense.</p>
<p><strong>Side Note</strong><br />
Wikipedia&#8217;s domain authority isn&#8217;t something &Yacute;0µ should be entirely worried abouṪ. They&#8217;re site and µrl structure actually ß&Ecirc;comes favorable to help deaden some of the heightening factors.</p>
<p><strong>OH FYI! There is now a Printer Friendly link on every post on Blue Hat by popular demand</strong>
</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/BlueHatSEO/HXKR?a=d5kNGVVXm1k:7QZx058Oyv8:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/BlueHatSEO/HXKR?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BlueHatSEO/HXKR?a=d5kNGVVXm1k:7QZx058Oyv8:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/BlueHatSEO/HXKR?i=d5kNGVVXm1k:7QZx058Oyv8:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BlueHatSEO/HXKR?a=d5kNGVVXm1k:7QZx058Oyv8:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/BlueHatSEO/HXKR?i=d5kNGVVXm1k:7QZx058Oyv8:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BlueHatSEO/HXKR?a=d5kNGVVXm1k:7QZx058Oyv8:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/BlueHatSEO/HXKR?d=7Q72WNTAKBA" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.BlueHatSEO.com/how-to-overthrow-a-wikipedia-result/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.BlueHatSEO.com/how-to-overthrow-a-wikipedia-result/</feedburner:origLink></item>
		<item>
		<title>Stumble and Digg Begging</title>
		<link>http://feedproxy.google.com/~r/BlueHatSEO/HXKR/~3/imLPxfKegkA/</link>
		<comments>http://www.BlueHatSEO.com/stumble-and-digg-begging/#comments</comments>
		<pubDate>Wed, 10 Sep 2008 06:25:48 +0000</pubDate>
		<dc:creator>Eli</dc:creator>
		
		<category>Neat Tricks and Hacks</category>

		<guid isPermaLink="false">http://www.BlueHatSEO.com/stumble-and-digg-begging/</guid>
		<description><![CDATA[Haven&#8217;t done a Neat Tricks and Hacks in awhile. Here&#8217;s one to remind DIGG and Stumbleupon users to up your shit.
PHP



&#60;?
$sites[&#8217;stumbleupon&#8217;] = &#8216;Glad you stumbled upon us. Please leave us a nice review if you enjoy the site!&#8217;;
$sites[&#8217;digg.com&#8217;] = &#8216;Glad you found us on Digg. Please Digg up if you like!&#8217;;

if( !empty( $_SERVER[&#8217;HTTP_REFERER&#8217;] ) ) [...]]]></description>
			<content:encoded><![CDATA[<p>Haven&#8217;t done a <a href="http://www.bluehatseo.com/category/neat-tricks-and-hacks/">Neat Tricks and Hacks</a> in awhile. Here&#8217;s one to remind DIGG and Stumbleupon users to up your shit.</p>
<p><strong>PHP</strong><br />
<code></p>
<pre>
<textarea style="width:450px;height:200px;" wrap="off">
&lt;?
$sites[&#8217;stumbleupon&#8217;] = &#8216;Glad you stumbled upon us. Please leave us a nice review if you enjoy the site!&#8217;;
$sites[&#8217;digg.com&#8217;] = &#8216;Glad you found us on Digg. Please Digg up if you like!&#8217;;

if( !empty( $_SERVER[&#8217;HTTP_REFERER&#8217;] ) ) {
    $data = parse_url( $_SERVER[&#8217;HTTP_REFERER&#8217; ] );
    foreach( $sites as $domain => $text ) {
        if( strpos( strtolower( $data[&#8217;host&#8217;] ), $domain ) !== false ) {
            echo &#8216;&lt;script type=&#8221;text/javascript&#8221;&gt;alert(&#8221;&#8216;.addslashes($text).&#8217;&#8221;);&lt;/script&gt;&#8217;;
            break;
        }
    }
}
?&gt;
</textarea>
</pre>
<p></code></p>
<p><strong>PERL</strong><br />
<code></p>
<pre>
<textarea style="width:450px;height:200px;" wrap="off">
$sites{&#8217;stumbleupon&#8217;} = &#8216;Glad you stumbled upon us. Please leave us a nice review if you enjoy the site!&#8217;;
$sites{&#8217;digg.com&#8217;} = &#8216;Glad you found us on Digg. Please Digg up if you like!&#8217;;

if ($ENV{&#8217;HTTP_REFERER&#8217;} ne &#8220;&#8221;){
	foreach $key (keys %sites) {
		if($ENV{&#8217;HTTP_REFERER&#8217;} =~ /$sites{&#8217;$key&#8217;}/) {
			print qq~&lt;script type=&#8221;text/javascript&#8221;&gt;alert(&#8221;$line&#8221;);&lt;/script&gt;~;
		}
	}
}
</textarea>
</pre>
<p></code><br />
<small><em>*PERL code is untested, I just translated it off the top of my head. Probably made a mistake or two&#8230; I always do. Am I the only CGIer left in this world?</em></small></p>
<p><strong>Javascript</strong><br />
Source: <a href="http://www.topnewstrends.com"><strong>Top News Trends</strong></a><br />
<code></p>
<pre>
<textarea style="width:450px;height:200px;" wrap="off">
<script language=”javascript” type=”text/javascript”>
if (document.referrer.indexOf(”stumbleupon”) > 0)
{
alert(’Glad you stumbled upon us. Please leave us a nice review if you enjoy the site!’);
}else if (document.referrer.indexOf(”digg”) > 0)
{
alert(’Glad you found us on Digg. Please Digg up if you like!’);
}
</script>
</textarea>
</pre>
<p></code></p>
<p>I just started testing this method today, so I couldn&#8217;t tell you how well it works yet. I&#8217;m going to start with Stumbleupon because I&#8217;m willing to wager I&#8217;ll have better results with them than the Digg crowd but who knows? Let me know how it works for you in the comments. <img src='http://www.BlueHatSEO.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />
</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/BlueHatSEO/HXKR?a=imLPxfKegkA:Hy0RwEMUWCU:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/BlueHatSEO/HXKR?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BlueHatSEO/HXKR?a=imLPxfKegkA:Hy0RwEMUWCU:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/BlueHatSEO/HXKR?i=imLPxfKegkA:Hy0RwEMUWCU:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BlueHatSEO/HXKR?a=imLPxfKegkA:Hy0RwEMUWCU:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/BlueHatSEO/HXKR?i=imLPxfKegkA:Hy0RwEMUWCU:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BlueHatSEO/HXKR?a=imLPxfKegkA:Hy0RwEMUWCU:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/BlueHatSEO/HXKR?d=7Q72WNTAKBA" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.BlueHatSEO.com/stumble-and-digg-begging/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.BlueHatSEO.com/stumble-and-digg-begging/</feedburner:origLink></item>
		<item>
		<title>New Wordpress Plugin - PingCrawl</title>
		<link>http://feedproxy.google.com/~r/BlueHatSEO/HXKR/~3/rsVrjK4JN_4/</link>
		<comments>http://www.BlueHatSEO.com/new-wordpress-plugin-pingcrawl/#comments</comments>
		<pubDate>Wed, 06 Aug 2008 22:02:59 +0000</pubDate>
		<dc:creator>Eli</dc:creator>
		
		<category>SEO Tools</category>

		<guid isPermaLink="false">http://www.BlueHatSEO.com/new-wordpress-plugin-pingcrawl/</guid>
		<description><![CDATA[I&#8217;ve been starting to use a new plugin I helped develop with the coding expertise of Josh Team from Dallas Nightlife Entertainment. It&#8217;s called PingCrawl. Its a plugin that helps get your Wordpress blogs deep links automatically on every post.
Plugin Summary
Every time you make a post on your blog it grabs similar posts from other [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been starting to use a new plugin I helped develop with the coding expertise of <a href="http://joshteam.wordpress.com">Josh Team</a> from <a href="http://www.spottedhere.com">Dallas Nightlife Entertainment</a>. It&#8217;s called PingCrawl. Its a plugin that helps get your Wordpress blogs deep links automatically on every post.</p>
<p><strong>Plugin Summary</strong><br />
Every time you make a post on your blog it grabs similar posts from other blogs that allow pingbacks using the post tags. It then links to them at the bottom of the post as similar posts. It then executes the pingback on all the posts. You can specify how many posts to do per tag and that many will be done for each tag you use in your posts. Typically it has about an 80% successrate with each pingback and they are legit so the ones that fall into moderation tend to get approved. This creates quite a few deep links for each blog post you make and through time really helps with your link building. Especially for new blogs.</p>
<p><strong>Theory Of Operation</strong></p>
<p>    * The plugin will listen to anytime a post is saved, published, updated, etc.<br />
    * The plugin on execution time will find all the tags on the post and perform the following per tag:<br />
          o Use Google API to check for ( 35 ) results with the tag name.<br />
          o With the ( 35 ) results it loops through them and performs the following<br />
                + Does the result have a pingback meta tag?<br />
                + Does the result have trackback somewhere in the source<br />
                + (if yes to both) it stores the pingback xmlrpc location in memory.<br />
                + (if no to either) we skip that record and move to the next.<br />
                + Once their are 5 legit pingable servers we then append their links to the post we currently added.<br />
                + We then retrieve the xmlrpc urls from memory, and execute a pingback.ping against the xmlrpc as defined in the <a href="http://hixie.ch/specs/pingback/pingback-1.0">pingback 1.0 spec</a>. (due to the nature of pingbacks and php it is not a 100% guarantee. A lot of dependencies on state, server responses, headers, etc.)</p>
<p>Their are built in features such as caching google’s recordsets per tag, so you don’t have to make request out to google for the same use. And logic to know if you’ve already “PingCrawled” a post then on edit to ignore it, etc w/ a built in polling system.<br />
Installation:</p>
<p>   1. Download Plugin<br />
   2. Put file in the wp-content/plugins directory of your wordpress installation<br />
   3. Login to your blog dashboard<br />
   4. Click on Plugins<br />
   5. Click on Active to the Right of PingCrawl in the list<br />
   6. Make a Post</p>
<p>*Note ( because of the nature of the script any one tag can make as many as 41 HTTP request and storing source code into memory to run regular expressions against. Because of this I would try to limit my tags to no more than 3 (123 HTTP Request). Use more at your own risk.</p>
<p><strong>Warning:</strong> This plugin can really slow down the time it takes to make your posts so I would recommend not using more than 3 tags per post. Also we coded in a small link injection which will put a link of mine into the mix about once every 10 posts. They will all be very white hat and clean links so no worries and if you left the code intact I&#8217;d consider that a substantial thank you for the plugin. <img src='http://www.BlueHatSEO.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><center><br />
<h3><strong><a href="http://www.bluehatseo.com/wp-content/uploads/2008/08/pingcrawl.zip">Download PingCrawl</a></strong></h3>
<p></center></p>
<p><strong>Screenshot</strong><br />
<em>*The size of the links are entirely customizable. I&#8217;d recommend making them very small at the bottom of the post but in this screenshot I made them big so you can see the format better.</em><br />
<img id="image272" src="http://www.BlueHatSEO.com/wp-content/uploads/2008/08/pingcrawlscreen.jpg" alt="pingcrawlscreen.jpg" />
</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/BlueHatSEO/HXKR?a=rsVrjK4JN_4:nHofCB_onlw:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/BlueHatSEO/HXKR?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BlueHatSEO/HXKR?a=rsVrjK4JN_4:nHofCB_onlw:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/BlueHatSEO/HXKR?i=rsVrjK4JN_4:nHofCB_onlw:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BlueHatSEO/HXKR?a=rsVrjK4JN_4:nHofCB_onlw:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/BlueHatSEO/HXKR?i=rsVrjK4JN_4:nHofCB_onlw:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BlueHatSEO/HXKR?a=rsVrjK4JN_4:nHofCB_onlw:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/BlueHatSEO/HXKR?d=7Q72WNTAKBA" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.BlueHatSEO.com/new-wordpress-plugin-pingcrawl/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.BlueHatSEO.com/new-wordpress-plugin-pingcrawl/</feedburner:origLink></item>
		<item>
		<title>Open Questions #4 - Diminishing Values On Outbound Links</title>
		<link>http://feedproxy.google.com/~r/BlueHatSEO/HXKR/~3/PviSQMyYhKU/</link>
		<comments>http://www.BlueHatSEO.com/open-questions-4-deminishing-values-on-outbound-links/#comments</comments>
		<pubDate>Tue, 29 Jul 2008 23:12:23 +0000</pubDate>
		<dc:creator>Eli</dc:creator>
		
		<category>General Articles</category>

		<guid isPermaLink="false">http://www.BlueHatSEO.com/open-questions-4-deminishing-values-on-outbound-links/</guid>
		<description><![CDATA[I somehow missed this question from the Open Questions post and I can&#8217;t help but answer it.
From Adsenser
I loved your SEO empire post.
But I was wondering how much effect does a lot of links from a lot of indexed pages from the same domain have?
I always thought that the search engines looked mainly at the [...]]]></description>
			<content:encoded><![CDATA[<p>I somehow missed this question from the Open Questions post and I can&#8217;t help but answer it.</p>
<p>From <a href="http://www.adsenser.nl/">Adsenser</a></p>
<blockquote><p>I loved your SEO empire post.<br />
But I was wondering how much effect does a lot of links from a lot of indexed pages from the same domain have?<br />
I always thought that the search engines looked mainly at the number of different domain linking to you.<br />
Can you give some more info on this?<br />
Or do you use these pages to link to a lot of different domains? </p></blockquote>
<p>This is a fantastic opener for a conversation on sitewide outbound links affects on other sites as well as the site itself. Which has been long debated but never cleared up, not because its too complicated just because theres so many myths its hard to work the fact from the fiction.  To be clear in my answer I&#8217;m going to refer to the site giving the link as the &#8220;host site&#8221; and the site receiving the link as the &#8220;target site.&#8221; Just so I don&#8217;t have to play around with too much terminology.</p>
<p>The entire explanation of why sitewide links, main page links, subpage links, and reciprocal links work is based off a simple SEO law called Diminishing Values. It basically states that for every link whether it be recipricol, innerlink, or outbound link there is some form of consequence. Also, for every inbound link, innerlink accepted or reciprocal link there is a benefit.</p>
<p><strong>SEO Law of Diminishing Values</strong><br />
Diminishing Values = sum(benefits) > sum(consequences)</p>
<p>The need for the sum of the benefits to be greater than the sum of the consequences is essential because, as mentioned in my SEO Empire post there can&#8217;t be a negative relevancy for a site in relationship to a term. For example lets take the niche of cars. There&#8217;s a theoretical mass of car blogs. For the sake of the example we&#8217;ll say there are several thousand blogs on the subject of cars. Something in the industry happens that stirs all the bloggers such as SEMA having a car show or something. So all these car blogs blog about SEMA&#8217;s new car show coming out and give it a link. If these outbound links caused a consequence greater or equal to the valued benefit given to SEMA than all these blogs would drop in value as per the topic, cars. Thus the mass affect would be that of a negative relevancy, therefore sites with no relevancy but contain topic links would by all theory rank higher than the general census of on topic sites.</p>
<p>So the notion of an outbound link diminishing your sites value in equal proportion is just complete bubkiss and obviously not the way things actually work. Even if it was true and there was a compensation for on site SEO when an event in a niche happens the site hosting the event wouldn&#8217;t just rise in the rankings it would propel everyone else downwards causing more turbulence in the SERPS than what happens in actuality with just their site rising. It&#8217;s just simple SEO Theory 101, but sadly a lot of people believe it. There&#8217;s also a lot of sites that absolutely won&#8217;t link to any sites within their topic in fear that their rankings will suddenly plummet the moment they do. They&#8217;re under the greedy impression that they&#8217;re somehow hording their link value and that is in some way benefiting them. So with the assumption that an outbound link gives much more value to its target than it diminishes from its host everything in a sense balances out and outbound links become much less scary. This of course in no way says that the consequence to the host is a diminishment of any sort. It&#8217;s entire consequence could be 0 or as a lot of other people believe +X (some people think on topic outbound links actually adds to your sites relevancy). I haven&#8217;t personally seen one of my sites go up in rank after adding an outbound link but I&#8217;m open to the idea or to the future of the concept being reality.</p>
<p><strong>I Practice What I Preach</strong><br />
The Law of Diminishing Values is one of the reasons why BlueHatSEO is one of the only SEO blogs that has all dofollow comments as well as top commentators plugin on every page. <strong>Your comments will not hurt my rankings</strong>..I&#8217;ll say that one more time <strong>Your comments will not hurt my rankings</strong>. Whewww I feel better <img src='http://www.BlueHatSEO.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><strong>Back To The Question</strong><br />
Before we get into the meat of the question we&#8217;ll take a small scale example that we should all know the answer to.<br />
<strong>Q:</strong> If a host site writes an automated link exchange script that automatically does thousands of link exchanges and puts those links on a single subpage and all the target sites also have their link exchange page setup the same way on a subpage. Will the host site gain in value?</p>
<p><strong>A:</strong> I&#8217;ll tell you straight up from personal experience. Yes it does. It&#8217;s simple to test if you don&#8217;t believe me go for it yourself</p>
<p>Now we&#8217;ll move up to a much larger scale with a specific on topic example using sitewide links.<br />
<strong>Q:</strong> If you own two 100k+ page lyric sites with lots of inbound links and very good indexing ratios, will putting a sitewide link to the other site on both raise both in value or keep them both the same?</p>
<p><strong>A:</strong> Also from my personal experience, yes both will not only raise in value but they will skyrocket in value by in the upwards of 50% which can result in much higher rankings. Likewise this example can be done with any niche and any two large sites. Cross promote them with sitewide links between the two and see what happens. The results shouldn&#8217;t be surprising.</p>
<p>Now, on the large scale to the meat of the question.<br />
<strong>Q:</strong> If these two lyrics site cross compared all their inbound links from other sites and managed to get all the sites that link to lyric site A to also link to lyric site B to the point at which each increased in links by 100k (same as the number of increased links would of been with a sitewide link between the two) would both sites increase in value more-so than if they did the sitewide link instead?</p>
<p><strong>A:</strong> Yes absolutely. This is a bit harder to test, but if you&#8217;ve been building an SEO Empire and each site&#8217;s inbound links are from your own sites than it becomes quite a bit easier to test and I&#8217;m certain you&#8217;ll find the results the same as I did.</p>
<p><strong>Conclusion</strong><br />
<strong>On a 1:1 ratio on a generalized population of relevant links vs non-relevant inbound links from separate domains/sites are still more effective than a sidewide link of the same magnitude. However! A sitewide link does benefit both sites to a very high degree. Just not to the degree that lots of other sites can accomplish.</strong></p>
<p>Sorry that question took so long to answer. I didn&#8217;t just want to give you a blank and blunt answer. I wanted to actually answer it with logic and a reasoning that hopefully leads to an understanding of the ever so important WHY.
</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/BlueHatSEO/HXKR?a=PviSQMyYhKU:8IIaSw_T9ek:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/BlueHatSEO/HXKR?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BlueHatSEO/HXKR?a=PviSQMyYhKU:8IIaSw_T9ek:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/BlueHatSEO/HXKR?i=PviSQMyYhKU:8IIaSw_T9ek:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BlueHatSEO/HXKR?a=PviSQMyYhKU:8IIaSw_T9ek:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/BlueHatSEO/HXKR?i=PviSQMyYhKU:8IIaSw_T9ek:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BlueHatSEO/HXKR?a=PviSQMyYhKU:8IIaSw_T9ek:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/BlueHatSEO/HXKR?d=7Q72WNTAKBA" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.BlueHatSEO.com/open-questions-4-deminishing-values-on-outbound-links/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.BlueHatSEO.com/open-questions-4-deminishing-values-on-outbound-links/</feedburner:origLink></item>
		<item>
		<title>Blue Hat Technique #20 - Cyclic Documents</title>
		<link>http://feedproxy.google.com/~r/BlueHatSEO/HXKR/~3/rJ-QKPboZ4s/</link>
		<comments>http://www.BlueHatSEO.com/blue-hat-technique-20-cyclic-documents/#comments</comments>
		<pubDate>Tue, 29 Jul 2008 07:52:28 +0000</pubDate>
		<dc:creator>Eli</dc:creator>
		
		<category>Blue Hat Techniques</category>

		<guid isPermaLink="false">http://www.BlueHatSEO.com/blue-hat-technique-20-cyclic-documents/</guid>
		<description><![CDATA[Summer You Never Even Really Gave Yourself enough time.  
There was a bit of confusion with my cycle sites technique illustrated in the SEO Empire Part 1 post. I used autoblogs as an easy to understand example. Autoblogs generate links quickly to themselves and can be cycled (redirected) to a source to push those [...]]]></description>
			<content:encoded><![CDATA[<p>Summer You Never Even Really Gave Yourself enough time. <img src='http://www.BlueHatSEO.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>There was a bit of confusion with my cycle sites technique illustrated in the <a href="http://www.bluehatseo.com/seo-empire-part-1/">SEO Empire Part 1</a> post. I used autoblogs as an easy to understand example. Autoblogs generate links quickly to themselves and can be cycled (redirected) to a source to push those links. Therefore by the definition:</p>
<blockquote><p><strong>Cycle Site-</strong>A site that automatically gains links to itself and then through a redirection passes that link value to another site.</p></blockquote>
<p>an autoblog is a perfect example of a Cycle Site. However, an Autoblog by itself is not a Cycle Site and a Cycle Site is not just an Autoblog. Any site that quickly gains links to itself and is capable of redirection can be used as a Cycle Site.</p>
<p>In contrast as we all remember, a <a href="http://www.bluehatseo.com/blue-hat-technique-16-link-laundering-sites/">Link Laundering Site</a> is a site that has an ability to gain links not just to itself but directly to another site. In the post I used a reciprocal link directory as an example. However really almost any platform can be used to launder links. I haven&#8217;t actually of heard anyone getting confused amongst the differences between the two techniques, but I also haven&#8217;t heard very much discussion pertaining to the extremely close relationship they share. These two techniques more so than the some of the other techniques on this site are very closely related. Inherently a link laundering site takes precedent over a cycle site. Why? Because if a site can constantly feed link value to another site without having to cycle and closing out, even if its for a short while, than its worth more as a link builder.</p>
<p>Therefore whenever possible a Link Laundering Site should be used over a Cycle Site if possible. The Cycle Site simply gives you more structures as to which gain links by than Link Laundering Sites can provide. Since you&#8217;re not worried about people liking the site and continuing its success you are able to build links to it much quicker. There is however a happy medium between the two techniques that can give Cycle Sites link laundering stability and Link Launder Sites Cycle Site power. This technique is called Cyclic Documents and its exactly what it sounds like and it is very powerful.</p>
<p><strong>Cyclic Documents</strong><br />
A Cyclic Document is a document or link given to a user of a Cycle or Link Laundering site as to qualify a given set of links or time before it cycles (redirects typically) to its target.</p>
<p><strong>The Premise</strong><br />
The idea is very simple. The link you give to gain the links to is instead of your main page, for which you&#8217;d have to cycle out and thus loose the link building power of, goes to a secondary document and/or a redirect to the main page where as its viewed as either just an obscurity, a method of tracking, or even not noticed at all. To help remove the confusion and to help differentiate the actual example with the technique itself I&#8217;m going to do the methodology portion twice. The first will be with the classic Autoblog example given in the SEO Empire post the next with a random structure.</p>
<p><strong>Methodology 1 - The Autoblog</strong><br />
<strong>1)</strong> If you&#8217;re using Wordpress or similar platform for your Autoblog do a simple modification to the code that includes a simple conditional with a redirect checking for a certain string in the posts title that would normally never exist in a post title.<br />
<code><?php<br />
if($post_title=="elineverpostswhatabitch")<br />
{<br />
header( 'Location: http://www.mytargetsite.com' ) ;<br />
}<br />
?></code></p>
<p><strong>2)</strong> Create a cronjob script that parses through the previous posts on the Autoblog and finds posts beyond a certain age. Use the actual mysql database don&#8217;t just write a scraper! I&#8217;m just going to throw my recommendation out there and you can adjust and make your own necessary changes to it based upon your experience and best judgement. 8 Days.</p>
<p><strong>3)</strong> If it finds a post past the set days have it change the title to what your picked unique title was in step 2.</p>
<p><strong>What Does This Do?</strong><br />
Your Autoblog will create posts based on rss feeds (typically). It will then do pingbacks and gather at least one link to that post. I say at least one because there is odds of these new breed of comment scrapers <img src='http://www.BlueHatSEO.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  The author of the original blogpost may check for the link, hopefully within your set number of days. See his link and hopefully leave the trackback alive on his site. After the author no longer cares about the link and has forgotten about it, but before the search engines have had a chance to index the page it will cycle that single post to your new target site thus giving it +1 link. This is why I never mentioned robots.txt in the original technique post. I wasn&#8217;t hiding something fantastic from ya after all. <img src='http://www.BlueHatSEO.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><strong>Methodology 2 - The Image Upload Site</strong><br />
<strong>1)</strong> On your image upload site when the user uploads there image and you give them back the link code instead of linking to www.myimagehoster.com have it link to a sequential numeric subdirectory or subpage. eg. www.myimagehoster.com/10.</p>
<p><strong>2)</strong> Through mod-rewrite have all /# or /[0-9]+ pull a script. In this script have it read in a variable saying what number its currently on and incriment it then make all numeric at and below it redirect to your target site. This sounds more complicated than it really is. Really, all you&#8217;re doing is recording the number 1 to a file or db or something and every so often have it change it to the next number up which in this case is 2. From that point on every /1 and /2 link automatically redirects to your target site thus giving it it&#8217;s hopeful link (assuming the person kept the image code in tact). Based on the popularity of the site you can increment the number faster or slower and redirect more at a faster rate.</p>
<p><strong>What Does This Do?</strong><br />
If your image upload site used to a be a Cycle Site where it would work for awhile and eventually gather tons of links very quickly then cycle out and generate no links for a period before you&#8217;d bring it back. Now you keep it going forever and instead of destroying its momentum you can use it to gather even more links faster than you ever could before. After so long people will forget the link code and not click on it. That&#8217;s prime to have your link change out. You can also control your rankings. ie. if your image upload site ranks for terms that give it a tons of traffic and you know x amount of link are required to maintain those rankings you can maintain that amount of links thus keeping your momentum at its maximum and yet still produce equally high volumes of links to your target. Also, I could very easily have used the link directory and software directory site example used in the link laundering technique with this same methodology.</p>
<p>Now for Jebus sake don&#8217;t go creating a shit ton of image upload sites or Autoblogs like what happened when SEO Empire came out. <- Even my other blogs on other subjects were getting hit by hundreds at a time. Use some creativity as I typically encourage you to do. You won&#8217;t ever get rich doing the direct examples gurus give you and you won&#8217;t with me either. Most of all have fun and learn a lot from it. <img src='http://www.BlueHatSEO.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />
</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/BlueHatSEO/HXKR?a=rJ-QKPboZ4s:uAHldfJkW7w:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/BlueHatSEO/HXKR?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BlueHatSEO/HXKR?a=rJ-QKPboZ4s:uAHldfJkW7w:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/BlueHatSEO/HXKR?i=rJ-QKPboZ4s:uAHldfJkW7w:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BlueHatSEO/HXKR?a=rJ-QKPboZ4s:uAHldfJkW7w:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/BlueHatSEO/HXKR?i=rJ-QKPboZ4s:uAHldfJkW7w:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BlueHatSEO/HXKR?a=rJ-QKPboZ4s:uAHldfJkW7w:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/BlueHatSEO/HXKR?d=7Q72WNTAKBA" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.BlueHatSEO.com/blue-hat-technique-20-cyclic-documents/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.BlueHatSEO.com/blue-hat-technique-20-cyclic-documents/</feedburner:origLink></item>
		<item>
		<title>Product Review: Auto Stumble</title>
		<link>http://feedproxy.google.com/~r/BlueHatSEO/HXKR/~3/KMjGob0-Wr4/</link>
		<comments>http://www.BlueHatSEO.com/product-review-auto-stumble/#comments</comments>
		<pubDate>Wed, 21 May 2008 09:35:28 +0000</pubDate>
		<dc:creator>Eli</dc:creator>
		
		<category>Site Reviews &amp; Commentary</category>

		<category>SEO Tools</category>

		<guid isPermaLink="false">http://www.BlueHatSEO.com/product-review-auto-stumble/</guid>
		<description><![CDATA[Oh boy I haven&#8217;t done an actual product review in a really long time. Well with my effort to get back into posting regularly it couldn&#8217;t hurt to do one for the sake of catching up. More the merrier.   This one was sent in by the famous Mark from Digerati Marketing. It&#8217;s called [...]]]></description>
			<content:encoded><![CDATA[<p>Oh boy I haven&#8217;t done an actual product review in a really long time. Well with my effort to get back into posting regularly it couldn&#8217;t hurt to do one for the sake of catching up. More the merrier. <img src='http://www.BlueHatSEO.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  This one was sent in by the famous Mark from <a href="http://digeratimarketing.co.uk/">Digerati Marketing</a>. It&#8217;s called Auto Stumble. Its job is pretty apparent, it helps you get exchange stumbles automatically.</p>
<p>I&#8217;ve been doing a lot of stumble work lately due to my recent release of several large community sites. Stumbleupon traffic doesn&#8217;t convert very well but it has some very good advantages other than the fact that its actual traffic.</p>
<p>1) The few users that convert tend to be very active<br />
2) Stumbleupon users tend share links a lot with their friends. Great for branding and word of mouth.<br />
3) They bookmark everything and anything which means lots of social bookmarking links.<br />
4) They&#8217;re suckers for linkbait such as kittens in diapers and neatly featured sites. They really appreciate a good layout.<br />
5) If the timing is right they do wonders for a site with a Digg button.</p>
<p><strong>Auto Stumble is available at <a href="http://www.autostumble.net/">AutoStumble.net</a></strong> for <strike>£10</strike> (£20) <- British Pounds?...Damn Paypal.. It's OK Paypal should automatically convert and its available for immediate download after the exchange. That's about <strike>$19.66</strike> ($39.32) for you normal people</p>
<p>Auto Stumble automates the process in a pretty ingenious way. It runs as a background app in your system tray and automatically stumbles other users of the program&#8217;s sites using your account and has them do the same. It&#8217;s pretty nice but a tough tool to pull off because you really got to have a lot of people running it 24/7. I for one am a fan of this system because facts be faced piqq and stumblexchange have just gone to shit and they&#8217;re really annoying to login every day and &#8220;earn credits.&#8221; Once again though lots of people are required to pull off this tool in an effective way. I&#8217;ve already given the tool to the SQUIRT members as a bonus and Mark has recruited some buyers so there is enough to at least pull off a featured listing for most topics for at least an hour.</p>
<p>Here&#8217;s a video with some more info:<br />
<object width="425" height="355">
<param name="movie" value="http://www.youtube.com/v/VyWCvSQgUOQ&#038;hl=en"></param>
<param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/VyWCvSQgUOQ&#038;hl=en" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"></embed></object>
</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/BlueHatSEO/HXKR?a=KMjGob0-Wr4:y5cO1ZGtu4k:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/BlueHatSEO/HXKR?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BlueHatSEO/HXKR?a=KMjGob0-Wr4:y5cO1ZGtu4k:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/BlueHatSEO/HXKR?i=KMjGob0-Wr4:y5cO1ZGtu4k:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BlueHatSEO/HXKR?a=KMjGob0-Wr4:y5cO1ZGtu4k:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/BlueHatSEO/HXKR?i=KMjGob0-Wr4:y5cO1ZGtu4k:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BlueHatSEO/HXKR?a=KMjGob0-Wr4:y5cO1ZGtu4k:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/BlueHatSEO/HXKR?d=7Q72WNTAKBA" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.BlueHatSEO.com/product-review-auto-stumble/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.BlueHatSEO.com/product-review-auto-stumble/</feedburner:origLink></item>
		<item>
		<title>Blue Hat Technique #19 - Keyword Spinning</title>
		<link>http://feedproxy.google.com/~r/BlueHatSEO/HXKR/~3/0HymPssTSPQ/</link>
		<comments>http://www.BlueHatSEO.com/blue-hat-technique-19-keyword-spinning/#comments</comments>
		<pubDate>Mon, 19 May 2008 08:24:41 +0000</pubDate>
		<dc:creator>Eli</dc:creator>
		
		<category>Blue Hat Techniques</category>

		<guid isPermaLink="false">http://www.BlueHatSEO.com/blue-hat-technique-19-keyword-spinning/</guid>
		<description><![CDATA[Holy cripes! It&#8217;s been awhile since I&#8217;ve sat down and written a Blue Hat Technique. It just so happens I need this one for the next SEO Empire post. I&#8217;m like blah blah talking about Keyword Spinning then I realized you guys have no fuckin&#8217; clue what I&#8217;m yammering about. So I figure nows a [...]]]></description>
			<content:encoded><![CDATA[<p>Holy cripes! It&#8217;s been awhile since I&#8217;ve sat down and written a <a href="http://www.bluehatseo.com/category/blue-hat-techniques/">Blue Hat Technique</a>. It just so happens I need this one for the next SEO Empire post. I&#8217;m like blah blah talking about Keyword Spinning then I realized you guys have no fuckin&#8217; clue what I&#8217;m yammering about. So I figure nows a good time to fix all that and luckily this one is really really easy but like all Blue Hat Techniques it works like a mofo in many situations.</p>
<p><strong>The Problem</strong><br />
Let&#8217;s say you have a database driven website. A great example would be a <a href="http://www.bluehatseo.com/madlib-sites/">Madlib Site</a> or an <a href="http://www.bluehatseo.com/from-affiliate-to-e-commerce-mogul-the-real-secrets-to-e-commerce/">E-commerce</a> site. In fact this technique works so damn well with Ecom sites it should be illegal along side public urination. So we&#8217;ll use that as our primary example. You got your site setup and each product page/<a href="http://www.bluehatseo.com/power-indexing-tips/">joint page</a> has its keywords such as &#8220;17 Inch Water Pipes For Sale&#8221; and the page titles and headers match accordingly. You have several thousand pages/products put together and are well SEO&#8217;d but its impossible to monitor and manually tweak each one especially since most of the keyword research tools available aren&#8217;t entirely accurate to the keyword order. Like they may say &#8220;Myspace Pimps&#8221; gets 50 billion searches a day when really &#8220;Pimps On Myspace&#8221; are getting it. So while amongst your thousands of pages you have one page that could be ranking for a solid phrase and getting an extra 100 visitors/day for people searching for &#8220;Water Pipes For Sale 17 Inch&#8221; you&#8217;re stuck with virtually no search traffic to that page and never knowing the difference. It&#8217;s quite the dilemma and you probably realize that it&#8217;s more than likely already happening to you. Luckily its easily fixed with a simple tool you can create yourself to fit whatever needs and sites you have.</p>
<p><strong>Methodology</strong><br />
<strong>1)</strong> Add an extra field to all you&#8217;re database entries. Any row that creates a page of some sort add an extra field called TrafficCount or something you can remember.</p>
<p><strong>2)</strong> Add a snippet of code into your template or CMS that counts each pageview coming from a Goohoomsn referrer and increments the appropriate field.</p>
<p><strong>3)</strong> Wait a month&#8230;.*Goes for a bike ride*</p>
<p><strong>4)</strong> Call the titles in the database. It can only be assumed, even in a commercial/free CMS that the titles or keywords are held somewhere in the database. Locate them and scan through them one by one.</p>
<p><strong>5)</strong> Use the Google/Yahoo/MSN API&#8217;s to see if the page ranks for its keywords.</p>
<p><strong>6)</strong> If it does rank than compare that to the traffic count for the month. Compare that to some sort of delimiter you&#8217;ve preset. I prefer to use a really small number like 5 for the first month or two then start moving it up as needed. If the traffic is too low than split the titles/keywords and randomly reorganize them.</p>
<p><strong>*</strong><em>Sometimes you&#8217;ll end up with some really messed up titles like &#8220;Pipes Sale Water For Inch 17&#8243; so if its too un-userfriendly than you may want to make a few adjustments such as never putting a For,The,If,At type word in the front or never rearranging the front two words so like Water Pipes always stays in the front then only the trailing ends. Once again it depends on how your site is already organized.</em></p>
<p><strong>7)</strong> Reset the traffic count.</p>
<p><strong>8)</strong> Wait another month and watch your search traffic slowly rise. Every month the site will get more and more efficient and get more and more deep traffic to the site. The pages that are already good will not change and the poor performing pages will start becoming higher performing pages. As an added bonus it will help improve your sites <a href="http://www.bluehatseo.com/blue-hat-technique-13-maintaining-your-rank-by-manipulating-freshness-factors/">freshness factors</a>.</p>
<p><strong>9)</strong> Take a scan of your average number of keywords or title sizes. Let&#8217;s say your average page has very short key phrases such as &#8220;Large Beer Mugs.&#8221; There are only so many combinations that those keywords will produce so if its just a low traffic keyword theres no point in continually changing the titles every single month forever. So I like to only have the Keyword Spinning script run for a preset amount of months on each site. For instance if my average keyword length is three words than the most combinations I can have is six. So I should logically quit running after 6-8 months. At which point my site is about as perfect as it can be without human intervention. Lastly don&#8217;t forget to <a href="http://www.bluehatseo.com/blue-hat-technique-12-improving-ctr-in-organic-results/">make improvements to your CTR</a>.</p>
<p>Simple huh! Keyword Spinning is a really easy way to get the most out of nearly all your sites. The more you can squeeze out of each site the less sites you have to build to reach your profit goals. With minimal scripting its all very quick to implement and automate (please don&#8217;t do it by hand!). That&#8217;s all there is to it. <img src='http://www.BlueHatSEO.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><em>Usually with my Blue Hat Techniques I like to drop a little hint somewhere in it that references a really cool trick or spin to the method that&#8217;ll greatly increase your profits. Since You&#8217;ve been all so damn patient about me being late on the SEO Empire part 2 post, and for the moment at least, quit asking me why Blue Hat sucks now I&#8217;ll just tell it to ya. My answer to that question BTW is that I&#8217;m still working on my projects which is eating up some time and I&#8217;m not happy with what I&#8217;ve written so far. If I&#8217;m not happy, it doesn&#8217;t get published. Sorry but the boss has spoken. <img src='http://www.BlueHatSEO.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </em></p>
<p><strong>The Secret Hint</strong></p>
<blockquote><p>3) Wait a month&#8230;.*Goes for a <strong>bike ride</strong>*</p></blockquote>
<p>Use this technique on your <a href="http://www.bluehatseo.com/seo-empire-part-1/">Cycle Sites</a> that you&#8217;ve choosen to not cycle out. Instead of competing with the original author, who you are probably linking to might I add, you can sometimes grab even better phrases and rank for them giving you a ton more traffic (I&#8217;ve seen Cycle Sites increase their SE traffic over 50x by doing this). If not than you&#8217;ll eventually get their original title again which at least will put you where you started. It&#8217;s also the strangest damn thing, you&#8217;ll get a percentage less complaints and pissed off bloggers when you switch the titles around, maybe they don&#8217;t care as much when they don&#8217;t see you ranking for their post titles.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/BlueHatSEO/HXKR?a=0HymPssTSPQ:mraT7pT67L0:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/BlueHatSEO/HXKR?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BlueHatSEO/HXKR?a=0HymPssTSPQ:mraT7pT67L0:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/BlueHatSEO/HXKR?i=0HymPssTSPQ:mraT7pT67L0:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BlueHatSEO/HXKR?a=0HymPssTSPQ:mraT7pT67L0:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/BlueHatSEO/HXKR?i=0HymPssTSPQ:mraT7pT67L0:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BlueHatSEO/HXKR?a=0HymPssTSPQ:mraT7pT67L0:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/BlueHatSEO/HXKR?d=7Q72WNTAKBA" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.BlueHatSEO.com/blue-hat-technique-19-keyword-spinning/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.BlueHatSEO.com/blue-hat-technique-19-keyword-spinning/</feedburner:origLink></item>
		<item>
		<title>Del.icio.us Captcha Cracked</title>
		<link>http://feedproxy.google.com/~r/BlueHatSEO/HXKR/~3/VXN8WIhiY9g/</link>
		<comments>http://www.BlueHatSEO.com/delicious-captcha-cracked/#comments</comments>
		<pubDate>Sun, 23 Mar 2008 05:54:55 +0000</pubDate>
		<dc:creator>Eli</dc:creator>
		
		<category>Check Mates</category>

		<guid isPermaLink="false">http://www.BlueHatSEO.com/delicious-captcha-cracked/</guid>
		<description><![CDATA[Here ya go. This is the del.icio.us captcha busted in Python.


#!/usr/bin/python
import Image,time,random,glob,re,os,sys

##$$$$
train = raw_input("train? (y/n)")
if(train == "y") : train= True
else: train = False
##
fileName = ''.join(sys.argv[1:])
def getNeighbourhood(i,width,height,pixels):
	results = []
	try:
		if(pixels[i+1] != 0): results.append(i+1)
		if(pixels[i-1] != 0): results.append(i-1)
		if(pixels[i-width] != 0): results.append(i-width)
		if(pixels[i+width] != 0): results.append(i+width)
		if(pixels[i-width+1] != 0): results.append(i-width+1)
		if(pixels[i+width+1] != 0): results.append(i+width+1)
		if(pixels[i-width-1] != 0): results.append(i-width-1)
		if(pixels[i+width-1] != 0): results.append(i+width-1)
	except:pass
	return results
now = time.time()
captcha [...]]]></description>
			<content:encoded><![CDATA[<p>Here ya go. This is the del.icio.us captcha busted in Python.<br />
<img id="delicious" src="http://www.BlueHatSEO.com/wp-content/uploads/2008/03/376623524.png" alt="376623524.png" /></p>
<pre><code>
#!/usr/bin/python
import Image,time,random,glob,re,os,sys

##$$$$
train = raw_input("train? (y/n)")
if(train == "y") : train= True
else: train = False
##
fileName = ''.join(sys.argv[1:])
def getNeighbourhood(i,width,height,pixels):
	results = []
	try:
		if(pixels[i+1] != 0): results.append(i+1)
		if(pixels[i-1] != 0): results.append(i-1)
		if(pixels[i-width] != 0): results.append(i-width)
		if(pixels[i+width] != 0): results.append(i+width)
		if(pixels[i-width+1] != 0): results.append(i-width+1)
		if(pixels[i+width+1] != 0): results.append(i+width+1)
		if(pixels[i-width-1] != 0): results.append(i-width-1)
		if(pixels[i+width-1] != 0): results.append(i+width-1)
	except:pass
	return results
now = time.time()
captcha = Image.open(fileName)
(width,height) = captcha.size
pixels = list(captcha.getdata())
i=0
for pixel in pixels:
	if (pixel == 2): pixels[i] = 0
	i+=1
toclean = []
for i in xrange(len(pixels)):
	neighbourhood = getNeighbourhood(i,width,height,pixels)
	if (len(neighbourhood) < 4) : 	pixels[i] = 0

captcha.putdata(pixels)
started=False
lowestY,highestY,count = 0,10000,0
captchas = []
slant = 15
for x in xrange(width):
	hasBlack = False
	for y in xrange(height):
		thisPixel = captcha.getpixel((x,y))
		if(thisPixel != 0):
			if(started == False):
				started=True
				firstX = x
				firstY = y
			else:
				lastX = x
			if(y > lowestY): lowestY = y
			if(y< highestY): highestY = y
			hasBlack = True
	if((hasBlack == False) and (started==True)):
		if((lowestY - highestY) > 4):
			croppingBox = (firstX,highestY,lastX,lowestY)
			newCaptcha = captcha.crop(croppingBox)
			if(train):
				text = raw_input(&#8221;char:n&#8221;)
				try: os.mkdir(&#8221;/home/dbyte/deliciousImages/&#8221; + text)
				except:pass
				text__ = &#8220;/home/dbyte/deliciousImages/&#8221; + text + &#8220;/&#8221; + str(random.randint(1,100000)) + &#8220;-.png&#8221;
				newCaptcha.resize((20,30)).save(text__)
				text_ = &#8220;/home/dbyte/deliciousImages/&#8221; + text + &#8220;/&#8221; + str(random.randint(1,100000)) + &#8220;-.png&#8221;
				newCaptcha.resize((20,30)).rotate(slant).save(text_)
				text_ = &#8220;/home/dbyte/deliciousImages/&#8221; + text + &#8220;/&#8221; + str(random.randint(1,100000)) + &#8220;-.png&#8221;
				newCaptcha.resize((20,30)).rotate(360 - slant).save(text_)
				captchas.append(Image.open(text__))
			else:
				#text = str(count)
				#text = &#8220;tmp-delicious-&#8221; + text + &#8220;.png&#8221;
				#newCaptcha.save(text)
				captchas.append(newCaptcha.resize((20,30)))

			started=False
			lowestY,highestY = 0,10000
			count +=1
if(train == False):

	imageFolders = os.listdir(&#8221;/home/dbyte/deliciousImages/&#8221;)
	images =[]
	for imageFolder in imageFolders:
		imageFiles = glob.glob(&#8221;/home/dbyte/deliciousImages/&#8221; + imageFolder + &#8220;/*.png&#8221;)
		for imageFile in imageFiles:
			pixels = list(Image.open(imageFile).getdata())
			for i in xrange(len(pixels)):
				if pixels[i] != 0: pixels[i] = 1
			images.append((pixels,imageFolder))

	crackedString = &#8220;&#8221;
	for captcha in captchas:
		bestSum,bestChar = 0,&#8221;"
		captchaPixels = list(captcha.getdata())
		for i in xrange(len(captchaPixels)):
			if captchaPixels[i] != 0: captchaPixels[i] = 1
		for imageAll in images:
			thisSum = 0
			pixels = imageAll[0]
			for i in xrange(len(captchaPixels)):
				try:
					if(captchaPixels[i] == pixels[i]): thisSum+=1
				except: pass
			if(thisSum > bestSum):
				bestSum = thisSum
				bestChar = imageAll[1]
		crackedString += bestChar
	print crackedString
	#print &#8220;time taken: &#8221; + str(time.time() - now)</code></pre>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/BlueHatSEO/HXKR?a=VXN8WIhiY9g:FmBsfNOyCLo:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/BlueHatSEO/HXKR?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BlueHatSEO/HXKR?a=VXN8WIhiY9g:FmBsfNOyCLo:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/BlueHatSEO/HXKR?i=VXN8WIhiY9g:FmBsfNOyCLo:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BlueHatSEO/HXKR?a=VXN8WIhiY9g:FmBsfNOyCLo:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/BlueHatSEO/HXKR?i=VXN8WIhiY9g:FmBsfNOyCLo:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BlueHatSEO/HXKR?a=VXN8WIhiY9g:FmBsfNOyCLo:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/BlueHatSEO/HXKR?d=7Q72WNTAKBA" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.BlueHatSEO.com/delicious-captcha-cracked/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.BlueHatSEO.com/delicious-captcha-cracked/</feedburner:origLink></item>
		<item>
		<title>Captchas Captchas Captchas</title>
		<link>http://feedproxy.google.com/~r/BlueHatSEO/HXKR/~3/GfAgMMFPjQY/</link>
		<comments>http://www.BlueHatSEO.com/captchas-captchas-captchas/#comments</comments>
		<pubDate>Tue, 18 Mar 2008 06:03:00 +0000</pubDate>
		<dc:creator>Eli</dc:creator>
		
		<category>Random Thoughts</category>

		<category>Check Mates</category>

		<guid isPermaLink="false">http://www.BlueHatSEO.com/captchas-captchas-captchas/</guid>
		<description><![CDATA[Guess what I&#8217;m in the mood to talk about? You guessed it. Captchas! In fact I feel like dedicating a whole week, maybe more depending on if any downtime occurs.   to talking about nothing but captcha breaking. We&#8217;ll break every captcha in the book and even by the end of this post the [...]]]></description>
			<content:encoded><![CDATA[<p>Guess what I&#8217;m in the mood to talk about? You guessed it. Captchas! In fact I feel like dedicating a whole week, maybe more depending on if any downtime occurs. <img src='http://www.BlueHatSEO.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  to talking about nothing but captcha breaking. We&#8217;ll break every captcha in the book and even by the end of this post the captchas that haven&#8217;t been created yet. Furthermore, for this week only I am accepting any and all captcha related guest posts. So if you got a captcha solved or want to discuss techniques to breaking them feel free to write up a guest post and email it to ELI at BLUEHATSEO.COM in html form. You can stay anonymous and not only will I put it up but I&#8217;m also willing to put up any ad you&#8217;d like. Pick any text or banner ad you&#8217;d like to put up with your post and I&#8217;ll include it. With as many readers as this place has I&#8217;m sure it&#8217;ll get clicked. Also be sure to include your paypal address. If I really like your guest post I may even send you a $100 as a thank you. Also, all you bloggers are welcome to repost any of the captcha related posts on this blog. I now declare any captcha related posts on this blog public domain and republishable under full rights. For some odd reason I feel like blowing the captcha breaking industry the fuck up. Like my favorite saying goes, if you&#8217;re going to wreck a room you might as well WRECK it. Lets begin by visiting one of my first captcha related posts; the <a href="http://www.bluehatseo.com/creating-an-army-of-free-captcha-typers/"><strong>Army Of Captcha Typers</strong></a>.</p>
<p>The Army of Captcha Typers is a great technique because it doesn&#8217;t require loads of programming and is 100% adaptable to any captcha. I suggest you go back and reread it, but in interest of keeping this short here&#8217;s a quick summary.</p>
<blockquote><p>
You use a service, I used a proxy site as an example, to get the users to type in the captchas for you. It records what the user typed in as the solution to the captcha and you use that to solve it. The more pageviews the service provides per user the more effective it is to breaking captchas. Why pay Indians or tediously code it yourself?</p></blockquote>
<p>Normally I like to leave most of the code and creative portion out of the written technique in interest of not ruining the technique and to help the methods be more effective through use of spins and unique code. I don&#8217;t write this blog to ruin techniques, and those people who claim I do are just insecure and like to claim they already know everything. As common sense as most of the stuff I post is, I haven&#8217;t met a person yet who hasn&#8217;t in some way learned something from this blog. That truth brags a lot louder than most SEO blogs I&#8217;ve seen. But! If we&#8217;re going to wreck something lets wreck it. In that spirit I see no reason why every newbie on the planet shouldn&#8217;t be able to easily throw up their own web proxy site that solves captchas for them so here&#8217;s the script to do it.</p>
<p><a href="http://bluehatseo.com/wp-content/uploads/captchasolverproxy.zip"><strong>Captcha Solving Web Proxy</strong></a></p>
<p>This a modified version of CGIPROXY that I mentioned in the post. Basically you install it following the included instructions (README file). Then you setup your web proxy site. Target a niche such as kids behind a school proxy or something similar. There is an extra file included called captcha.cgi. Upload it to the cgi-bin in the same folder as the nph-proxy.cgi and give it 755 chmod permissions. Make a folder one directory below your cgi-bin called captchas. Give it read/write permissions (777 should work all else fails). Then anytime you got a captcha to solve upload it to that directory with a unique filename. This can be done automatically with whatever script you&#8217;re using to spam a captcha protected site. On the very next pageview the webproxy will require the person to type in the captcha and disguise it as a human check to prevent abuse. Any captcha works. Once it gets their response it&#8217;ll delete the captcha from the folder and write out the solution along with the filename to a new file called solved.txt. Format: characters|image.jpg\n . Remember to make some kind of reminder or code for the filename so you know which image is which when you go to use the solutions. Get enough users to your webproxy (which is very easy) and you can solve any captcha in moments.</p>
<p><strong>Enjoy!</strong></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/BlueHatSEO/HXKR?a=GfAgMMFPjQY:XmKSehhtAfo:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/BlueHatSEO/HXKR?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BlueHatSEO/HXKR?a=GfAgMMFPjQY:XmKSehhtAfo:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/BlueHatSEO/HXKR?i=GfAgMMFPjQY:XmKSehhtAfo:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BlueHatSEO/HXKR?a=GfAgMMFPjQY:XmKSehhtAfo:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/BlueHatSEO/HXKR?i=GfAgMMFPjQY:XmKSehhtAfo:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BlueHatSEO/HXKR?a=GfAgMMFPjQY:XmKSehhtAfo:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/BlueHatSEO/HXKR?d=7Q72WNTAKBA" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.BlueHatSEO.com/captchas-captchas-captchas/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.BlueHatSEO.com/captchas-captchas-captchas/</feedburner:origLink></item>
		<item>
		<title>User Contributed - Captcha Breaking W/ PHPBB2 Example</title>
		<link>http://feedproxy.google.com/~r/BlueHatSEO/HXKR/~3/haMmvUkfrf4/</link>
		<comments>http://www.BlueHatSEO.com/user-contributed-captcha-breaking-w-phpbb2-example/#comments</comments>
		<pubDate>Tue, 11 Mar 2008 11:25:29 +0000</pubDate>
		<dc:creator>Eli</dc:creator>
		
		<category>User Contributed</category>

		<guid isPermaLink="false">http://www.BlueHatSEO.com/user-contributed-captcha-breaking-w-phpbb2-example/</guid>
		<description><![CDATA[This is a fantastic guest post by Harry over at DarkSEO Programming. His blog has some AWESOME code examples and tutorials along with an even deeper explanation of this post so definitely check it out and subscribe so he&#8217;ll continue blogging.
This post is a practical explanation of how to crack phpBB2 easily. You need to [...]]]></description>
			<content:encoded><![CDATA[<p><strong>This is a fantastic guest post by Harry over at <a href="http://www.darkseoprogramming.com/">DarkSEO Programming</a>. His blog has some AWESOME code examples and tutorials along with an even deeper explanation of this post so definitely check it out and subscribe so he&#8217;ll continue blogging.</strong></p>
<p>This post is a practical explanation of how to crack phpBB2 easily. You need to know some basic programming but 90% of the code is written for you in free software.</p>
<p><b>Programs you Need</b></p>
<p>C++/Visual C++ express edition - On Linux everything should compile simply. On windows everything should compile simply, but it doesn&#8217;t always (normally?). Anyway the best tool I found to compile on windows is Visual C++ express edition. <a href="http://www.microsoft.com/express/download/">Download</a></p>
<p>GOCR - this program takes care of the character recognition. Also splits the characters up for us <img src='http://www.BlueHatSEO.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  . It&#8217;s pretty easy to do that manually but hey. <a href="http://www-e.uni-magdeburg.de/jschulen/ocr/gocr045.exe">Download</a></p>
<p>ImageMagick - this comes with Linux. ImageMagick lets us edit images very easily from C++, php etc. Install this with the development headers and libraries. <a href="http://www.imagemagick.org/download/binaries/ImageMagick-6.3.7-5-Q16-windows-dll.exe">Download from here</a></p>
<p>A (modified) phpbb2 install - phpBB2 will lock you out after a number of registration attempts so we need to change a line in it for testing purposes. After you have it all working you should have a good success rate and it will be unlikely to lock you out. Find this section of code: (it&#8217;s in includes/usercp_register.php)</p>
<p><code>		if ($row = $db->sql_fetchrow($result))<br />
		{<br />
			if ($row['attempts'] > 3)<br />
			{<br />
				message_die(GENERAL_MESSAGE, $lang['Too_many_registers']);<br />
			}<br />
		}<br />
		$db->sql_freeresult($result);</code></p>
<p><code>
<p>Make it this:</p>
<p>	if ($row = $db->sql_fetchrow($result))<br />
		{<br />
			//if ($row[&#8217;attempts&#8217;] > 3)<br />
			//{<br />
			//	message_die(GENERAL_MESSAGE, $lang[&#8217;Too_many_registers&#8217;]);<br />
			//}<br />
		}<br />
		$db->sql_freeresult($result);</code></p>
<p>Possibly a version of php and maybe apache web server on your desktop PC. I used php to automate the downloading of the captcha because it&#8217;s very good at interpreting strings and downloading static web pages.</p>
<p><b>Getting C++ Working First</b></p>
<p>The problem on windows is there is a vast number of C++ compilers, and they all need setting up differently. However I wrote the programs in C++ because it seemed the easiest language to quickly edit images with ImageMagick. I wanted to use ImageMagick because it allows us to apply a lot of effects to the image if we need to remove different types of backgrounds from the captcha.</p>
<p>Once you&#8217;ve installed Visual C++ 2008 express (not C#, I honestly don&#8217;t know if C# will work) you need to create a Win32 Application. In the project properties set the include path to something like (depending on your imagemagick installation) C:\Program Files\ImageMagick-6.3.7-Q16\include and the library path to  C:\Program Files\ImageMagick-6.3.7-Q16\lib. Then add these to your additional library dependencies CORE_RL_magick_.lib CORE_RL_Magick++_.lib CORE_RL_wand_.lib. You can now begin typing the programs below.</p>
<p>If that all sounds complicated don&#8217;t worry about it. This post covers the theory of cracking phpBB2 as well. I just try to include as much code as possible so that you can see it in action. As long as you understand the theory you can code this in php, perl, C or any other language. I&#8217;ve compiled a working program at the bottom of this post so you don&#8217;t need to get it all working straight away to play with things.</p>
<p><b>Getting started</b></p>
<p><b>Ok this is a phpBB2 captcha:</b><br />
<img src="http://www.bluehatseo.com/wp-content/uploads/phpbb2.jpg" alt="" />
</p>
<p>It won&#8217;t immediately be interpreted by GOCR because GOCR can&#8217;t work out where the letters start and end. Here&#8217;s the weakness though. The background is lighter than the text so we can exclude it by getting rid of the lighter colors. With ImageMagick we can do this in a few lines of C++. Type the program below and compile/run it and it will remove the background. I&#8217;ll explain it below.</p>
<p><code><br />
using namespace Magick;</p>
<p>int main( int /*argc*/, char ** argv)<br />
{</p>
<p>	// Initialize ImageMagick install location for Windows<br />
	InitializeMagick(*argv);</p>
<p>	// load in the unedited image<br />
	Image phpBB("test.png");</p>
<p>	// remove noise<br />
	phpBB.threshold(34000);</p>
<p>	// save image<br />
	phpBB.write("convert.pnm");</p>
<p>	return(1);<br />
}</code></p>
<p>All this does is loads in the image, and then calls the function threshold attached to the image. Threshold filters out any pixels below a certain darkness. On linux you have to save the image as a .png however on windows GOCR will only read .pnm files so on linux we have to put the line instead:</p>
<p><code><br />
	// save image<br />
	phpBB.write("convert.png");</code></p>
<p><img src="http://www.bluehatseo.com/wp-content/uploads/noback.jpg" /><br />
The background removed.</p>
<p>Ok that&#8217;s one part sorted. Problem 2. We now have another image that GOCR won&#8217;t be able to tell where letters start and end. It&#8217;s too grainy. What we notice though is that each unjoined dot in a letter that is surrounded by dots 3 pixels away should probably be connected together. So I add a piece of code onto the above program that looks 3 pixels to the right and 3 pixels below. If it finds any black dots it fills in the gaps. We now have chunky letters. GOCR can now identify where each letter starts and ends <img src='http://www.BlueHatSEO.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' />  . We&#8217;re pretty much nearly done. </p>
<p><code><br />
using namespace Magick;</p>
<p>void fill_holes(PixelPacket * pixels, int cur_pixel, int size_x, int size_y)<br />
{<br />
	int max_pixel, found;</p>
<p>	///////////// pixels to right /////////////////////<br />
	found = 0;<br />
	max_pixel = cur_pixel+3;	// the furthest we want to search<br />
	// set a limit so that we can't go over the end of the picture and crash<br />
	if(max_pixel>=size_x*size_y)<br />
		max_pixel = size_x*size_y-1;</p>
<p>	// first of all are we a black pixel, no point if we are not<br />
	if(*(pixels+cur_pixel)==Color("black"))<br />
	{<br />
		// start searching from the right backwards<br />
		for(int index=max_pixel; index>cur_pixel; index--)<br />
		{<br />
			// should we be coloring?<br />
			if(found)<br />
				*(pixels+index)=Color("black");</p>
<p>			if(*(pixels+index)==Color("black"))<br />
				found=1;<br />
		}<br />
	}</p>
<p>	///////////// pixels to bottom /////////////////////<br />
	found = 0;<br />
	max_pixel = cur_pixel+(size_x*3);<br />
	if(max_pixel>=size_x*size_y)<br />
		max_pixel = size_x*size_y-1;</p>
<p>	if(*(pixels+cur_pixel)==Color("black"))<br />
	{<br />
		for(int index=max_pixel; index>cur_pixel; index-=size_x)<br />
		{<br />
			// should we be coloring?<br />
			if(found)<br />
				*(pixels+index)=Color("black");</p>
<p>			if(*(pixels+index)==Color("black"))<br />
				found=1;<br />
		}<br />
	}	</p>
<p>}</p>
<p>int main( int /*argc*/, char ** argv)<br />
{</p>
<p>	// Initialize ImageMagick install location for Windows<br />
	InitializeMagick(*argv);</p>
<p>	// load in the unedited image<br />
	Image phpBB("test.png");</p>
<p>	// remove noise<br />
	phpBB.threshold(34000);</p>
<p>/////////////////////////////////////////////////////////////////////////////////////////////////////<br />
// Beef up "holey" parts<br />
/////////////////////////////////////////////////////////////////////////////////////////////////////<br />
	phpBB.modifyImage();             // Ensure that there is only one reference to<br />
        	                            // underlying image; if this is not done, then the<br />
                	                    // image pixels *may* remain unmodified.   [???]<br />
	Pixels my_pixel_cache(phpBB); // allocate an image pixel cache associated with my_image<br />
	PixelPacket* pixels;             // 'pixels' is a pointer to a PixelPacket array</p>
<p>	// define the view area that will be accessed via the image pixel cache<br />
	// literally below we are selecting the entire picture<br />
	int start_x = 0;<br />
	int start_y = 0;<br />
	int size_x = phpBB.columns();<br />
	int size_y = phpBB.rows();</p>
<p>	// return a pointer to the pixels of the defined pixel cache<br />
	pixels = my_pixel_cache.get(start_x, start_y, size_x, size_y);</p>
<p>	// go through each pixel and if it is black and has black neighbors fill in the gaps<br />
	// this calls the function fill_holes from above<br />
	for(int index=0; index<size_x*size_y; index++)<br />
		fill_holes(pixels, index, size_x, size_y);</p>
<p>	// now that the operations on my_pixel_cache have been finalized<br />
	// ensure that the pixel cache is transferred back to my_image<br />
	my_pixel_cache.sync();</p>
<p>	// save image<br />
	phpBB.write("convert.pnm");</p>
<p>	return(1);<br />
}</code></p>
<p>I admit this looks complicated on first view. However you definitely don&#8217;t have to do this in C++ though if you can find an easier way to perform the same task. All it does is remove the background and join close dots together.</p>
<p>I&#8217;ve given the C++ source code because that&#8217;s what was easier for me, however the syntax can be quite confusing if you&#8217;re new to C++. Especially the code that accesses blocks of memory to edit the pixels. This is more a study of how to crack the captcha, but in case you want to code it in another language here&#8217;s the general idea of the algorithm that fills in the holes in the letters:</p>
<p>1. Go through each pixel in the picture. Remember where we are in a variable called cur_pixel<br />
2. Start three pixels to the right of cur_pixel. If it&#8217;s black color the pixels between this position and cur_pixel black.<br />
3. Work backwards one by one until we reach cur_pixel again. If any pixels we land on are black then color the space in between them and cur_pixel black.<br />
4. Go back to step 1 until we&#8217;ve been through every pixel in the picture</p>
<p><i>NOTE: Just make sure you don&#8217;t let any variables go over the edge of the image otherwise you might crash your program.</i></p>
<p>I used the same algorithm but modified it slightly so that it also looked 3 pixels below, however the steps were exactly the same.</p>
<p><b>Training GOCR</b></p>
<p>The font we&#8217;re left with is not recognized natively by GOCR so we have to train it. It&#8217;s not recognized partly because it&#8217;s a bit jagged.</p>
<p><img src="http://www.bluehatseo.com/wp-content/uploads/jagged.jpg" /></p>
<p>Assuming our cleaned up picture is called convert.pnm and our training data is going to be stored in a directory call data/ we&#8217;d type this.</p>
<p>gocr -p ./data/ -m 256 -m 130 convert.pnm</p>
<p>Just make sure the directory data/ exists (and is empty). I should point out that you need to open up a command prompt to do this from. It doesn&#8217;t have nice windows. Which is good because it makes it easier to integrate into php at a later date.</p>
<p>Any letters it doesn&#8217;t recognize it will ask you what they are. Just make sure you type the right answer. -m 256 means use a user defined database for character recognition. -m 130 means learn new letters.</p>
<p>You can find my data/ directory in the zip at the end of this post. It just saves you the time of going through checking each letter and makes it all work instantly.</p>
<p><b>Speeding it up</b></p>
<p>Downloading, converting, and training for each phpbb2 captcha takes a little while. It can be sped up with a simple bit of php code but I don&#8217;t want to make this post much longer. You&#8217;ll find my script at the end in my code package. The php code runs from the command prompt though by typing &#8220;php filename.php&#8221;. It&#8217;s sort of conceptual in the sense that it works, but it&#8217;s not perfect.</p>
<p><b>Done</b></p>
<p>Ok once GOCR starts getting 90% of the letters right we can reduce the required accuracy so that it guesses the letters it doesn&#8217;t know.</p>
<p>Below I&#8217;ve reduced the accuracy requirement to 25% using -a 25. Otherwise GOCR prints the default underscore character even for slightly different looking characters that have already been entered. -m 2 means don&#8217;t use the default letter database. I probably could have used this earlier but didn&#8217;t. Ah well, it doesn&#8217;t do a whole lot.</p>
<p>gocr -p ./data/ -m 256 -m 2 -a 25 convert.pnm</p>
<p>We can get the output of gocr in php using:</p>
<p>echo exec(&#8221;/full/path/gocr -p ./data/ -m 256 -m 2 -a 25 convert.pnm&#8221;);</p>
<p><b>Alternatives</b></p>
<p>In some instances you may not have access to GOCR or you don&#8217;t want to use it. Although it should be usable if you have access to a dedicated server. In this case I would separate the letters out manually and resize them all to the same size. I would then put them through a php neural network which can be downloaded from here <a href="http://leenissen.dk/fann/">FANN download</a></p>
<p>It would take a bit of work but it should hopefully be as good as using GOCR. I don&#8217;t know how well each one reacts to letters which are rotated though. Neural networks simply memorize patterns. I haven&#8217;t checked the inner workings of GOCR. It looks complicated.</p>
<p><b>My code</b></p>
<p>All the code can be found here to crack phpBB2 captcha.</p>
<p><a href="http://www.bluehatseo.com/wp-content/uploads/breakphpbb2.zip">Zip Download</a></p>
<p>In conclusion to this tutorial it&#8217;s a nightmare trying to port over all my code from linux to windows unless it&#8217;s written in Java <img src='http://www.BlueHatSEO.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' />  . If only Java was small and quick as well.</p>
<p>It&#8217;s worth stating that phpbb2 was easy to crack because the letters didn&#8217;t touch or overlap. If they had touched or overlapped it would probably have been very hard to crack.</p>
<p>I plan to look at that line and square captcha that comes with phpBB3 over on my site and document how secure it is.</p>
<p><strong>Thanks for the awesome guest post Harry.</strong>
</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/BlueHatSEO/HXKR?a=haMmvUkfrf4:dMdb78ck2TQ:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/BlueHatSEO/HXKR?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BlueHatSEO/HXKR?a=haMmvUkfrf4:dMdb78ck2TQ:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/BlueHatSEO/HXKR?i=haMmvUkfrf4:dMdb78ck2TQ:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BlueHatSEO/HXKR?a=haMmvUkfrf4:dMdb78ck2TQ:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/BlueHatSEO/HXKR?i=haMmvUkfrf4:dMdb78ck2TQ:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BlueHatSEO/HXKR?a=haMmvUkfrf4:dMdb78ck2TQ:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/BlueHatSEO/HXKR?d=7Q72WNTAKBA" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.BlueHatSEO.com/user-contributed-captcha-breaking-w-phpbb2-example/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.BlueHatSEO.com/user-contributed-captcha-breaking-w-phpbb2-example/</feedburner:origLink></item>
		<item>
		<title>Merry Christmas</title>
		<link>http://feedproxy.google.com/~r/BlueHatSEO/HXKR/~3/bUwW0ZrGKz8/</link>
		<comments>http://www.BlueHatSEO.com/merry-christmas/#comments</comments>
		<pubDate>Wed, 26 Dec 2007 07:11:01 +0000</pubDate>
		<dc:creator>Eli</dc:creator>
		
		<category>Random Thoughts</category>

		<guid isPermaLink="false">http://www.BlueHatSEO.com/merry-christmas/</guid>
		<description><![CDATA[Roady also wishes everyone a happy holidays.


]]></description>
			<content:encoded><![CDATA[<p>Roady also wishes everyone a happy holidays.</p>
<p><img src="http://img170.imageshack.us/img170/1958/dscf0150pc6.jpg" alt="" />
</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/BlueHatSEO/HXKR?a=bUwW0ZrGKz8:GLiAvecRMXA:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/BlueHatSEO/HXKR?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BlueHatSEO/HXKR?a=bUwW0ZrGKz8:GLiAvecRMXA:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/BlueHatSEO/HXKR?i=bUwW0ZrGKz8:GLiAvecRMXA:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BlueHatSEO/HXKR?a=bUwW0ZrGKz8:GLiAvecRMXA:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/BlueHatSEO/HXKR?i=bUwW0ZrGKz8:GLiAvecRMXA:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BlueHatSEO/HXKR?a=bUwW0ZrGKz8:GLiAvecRMXA:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/BlueHatSEO/HXKR?d=7Q72WNTAKBA" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.BlueHatSEO.com/merry-christmas/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.BlueHatSEO.com/merry-christmas/</feedburner:origLink></item>
	</channel>
</rss>
