PageRank Sculpting: You can still use rel=nofollow

Some months ago Google changed the way that treats the nofollowed links. This new policy causes massive problems to all the sites that use the nofollow attribute as it affects the way that PageRank flows in the site and it could lead to PR loss.

WebSEOAnalytics has developed a free script that allows you not only to do PageRank sculpting as easily as you did before but also keep all the rel=”nofollow” links you have in your sites.

Brief description

Our solution uses obfuscated javascript in order to block Google. Additionally we encode the URLs in order to make sure that they can not be detected by search engines. This script has already tested in several sites for the last 3 months and it is currently used in this site.

The main idea is that the developer will still be able use rel=”nofollow” to block the links he wants. Then a script will detect all the nofollowed links and it will replace it with the obfuscated javascript.

You can download the script here:

Below you can find installation instructions and also a detailed analysis of the way it works.


The solution should comply with the following restrictions:

  1. The solution needs to fix the old sites with the minimum effort and be compatible with the old dynamic parts.
  2. It needs to be time efficient.
  3. It must be expandable and easily customized.
  4. It must be supported by all the browsers and exclude the minimum number of users from viewing the page.
  5. It must be easy to update in case that Google makes more changes.

In the next part we will present how to install the script and the PHP code that solves the above issue. If your site is not developed in PHP it is very easy to build your own script by following the steps of the last part of the article. Within the next weeks we will release a .NET version of the script.


Warning: Make sure you have basic knowledge of PHP and that you know what you are doing before you start editing your site.

Download the webSeoAnalyticsLinker zip and extract the files on the root of your site.

Include the file webSeoAnalyticsLinkerheader.php in every page of your site by inserting before the <html> tag the command

<?php include('webSeoAnalyticsLinkerheader.php'); ?>

Include the file webSeoAnalyticsLinkerfooter.php in every page of your site by inserting after the </html> tag the command

<?php include('webSeoAnalyticsLinkerfooter.php'); ?>

Add in all of your pages the javascript files webSeoAnalyticsLinker.js and base64.js by inserting between the tags <head></head> the lines:

<script src="webSeoAnalyticsLinker.js"></script>
<script src="base64.js"></script>

By default the above script uses the Recursive Function mode (see below). If you wish to use the HTTP POST mode you need to edit the files variables.php and webSeoAnalyticsLinker.js. Open them and change the variables $webSeoAnalyticsLinkerMode and var webSeoAnalyticsLinkerMode from 0 to 1.

When using the HTTP POST mode it is optional to block the nofollowed pages in the case that they do not get called by using the POST method. In order to do this insert before the <html> tag the command

<?php include('nofollowblocker.php'); ?>

This will prevent Google from indexing your blocked page.

We suggest to use the default Recursive Function mode.

The last modification that needs to be done is in your CSS file. Every style that affects the <a> tag must also affect the <span> tag. In order to achieve this modify all the anchor styles of your css file like this:

The following lines

div.someClass a {

Should be converted to

div.someClass a, div.someClass span.webseoanalyticsLinker {

Back to the lab - Hands on keyboard (for Web Developers)

First of all we need to find a way to dynamically replace every link that is marked as nofollow. The way to do this is to process the output of every page just before it is sent to the user (on the side of the server). Then we will use Regular Expressions to replace all the nofollowed links with spans that execute Javascript.

Secondly as we know Google can execute basic javascript code. In order to prevent Google from parsing our code we can use 2 methods:

  1. Recursive Function Calls
  2. HTTP POST Method

In the first method when the user clicks on the link (which is replaced by a <span>) a javascript function gets called recursively. Finally an obfuscated code is executed that redirects the user to the target page.

In the second method after the click, a form is created dynamically. This form is used in order to create an HTTP POST request to the target URL. Optionally we can check on the target URL (the nofollowed page) if the POST method has been used. If not we will redirect the user to the main page. This will prevent Google from even indexing the page.

The last think we do is to encode all the blocked URLs with Base64 encoding. This is mainly because Google checks not only for anchor links but also for strings that look like URLs. So if you have in your HTML source, within your javascript a URL string, it is certain that Google will follow it and that it will consider it a link. In order to be able to use the Base64 decoding with Javascript we use a library called Base64 encode / decode.

This solution can be applied not only to new but also to old sites with minimum effort. It is extremely time efficient as it allows you to continue using the nofollow attribute in your code. When the code gets executed it will replace all the nofollowed anchors by spans. Also it can be easily customized and updated. Finally it is a cross browser solution and it limits only the users that have javascript turned off.

You can download the PHP/Javascript version of the script from here:

  • SEOux Indianer

    VERY cool stuff here! How hard are the links decodet? Because… google already reads simple JS like “document.write”.. and onclick-JS.

  • bbriniotis

    SEOux Indianer: It can not be decoded by Google for sure. We have been using this script for 3 months to many of our clients and of course in this site. ;)

  • morison dony

    I found your blog on google and read a few of your other posts. I just added you to my Google News Reader. Keep up the good work. Look forward to reading more from you in the future.

  • Renowned Media

    Here is some further reading if anyone would like more info on Google PR and nofollow usage.

    Edited by bbriniotis: URL address is replaced by an anchor link.

  • john chen

    Nice idea, but its really bad for usability. You want your links to work even if Javascript is disabled. I’m using the noscripts plugin on firefox and some of your links like “references and clients” do not work.

    So a caveat to people that are thinking of using this to replace all their no-follow links. Browsers with JS switched off won’t be able to access the links.

  • Marcus Miller

    Hmm, I guess this would work but… really, you are just chasing your tale here. The whole page rank sculpting and silos thing was a killer move two, maybe three years ago but now, it is dead in the ground.

    The same thing to a lesser and more natural degree can be achieved with a good, usable navigation and extra links to important pages built into the site design. Really, no need for this kind of approach and you only risk discovery and punishment at the hand of the google hammer!

  • Mindfull SEO

    Hi there, I would have to agree with Ian and John ,) and wouldn’t be just as easy to perhaps utilize the for ??

  • Pingback: SEO Tools, SEO Analysis, SEM/Online Marketing Blog – Web SEO Analytics | Ispey Seo Expert

  • Pingback: The robots.txt, META-robots & rel=nofollow and their impact on SEO | Web SEO Analytics

  • DailyTechPost

    I think this feature has created a lot of confusion. But if the whole idea of no follow is conceptually clear then it will definitely boost your site’s ranking

  • Pingback: 10 tips for better Internal Link Architecture | Web SEO Analytics

  • Pingback: 10 Tips for Internal Link Site Architecture « Fred Griffin

  • Pingback: Melhores práticas de SEO e as que foram abandonadas | Guilherme Grillo

  • Pingback: Is Google PageRank still important in Seach Engine Optimization? | Web SEO Analytics

  • Pingback: SEO Checklist: 60 essential checks before launching a website | منابع و سوالات آزمون تحصيلات تكميلي

  • Pingback: Dicas de SEO: Porque Minha Campanha Falhou ? (Parte 2) « Rodrigo P. Campos | Site Pessoal & Blog de Tecnologia

  • Investing for Beginners

    I was doing some online research on the nofollow tag attribute trying to determine the best way to use it on my site. Google Search led me to this post here, and after reading it, I feel like I learned a few things, thanks! I haven’t used these tags much on my site, and after looking at this post, that sounds like it might not be a bad thing! Thanks of the info on options that exists to not devalue the use of Nofollows based on changes Google has made. Its good to know about solutions that exists out here for webmasters. Thanks again.

  • Professional Seo Services

    Page rank sculpting with the nofollow tag is still in debate and many sites are still using it to achieve higher pr to the higher priority links, some of sites are able to sculpt to PR 7 and higher using the nofollow tag, so I don’t think it is a big issue as of yet.

  • aravindh

    what about if we have link like onclick= ” parent.location=’ some think . com ‘

    in such javascript , search engine can find us?

  • SEO Consult

    I’d be very cautious using this script. Whilst at present you’ve not encountered any hit, it’s not natural and I’d expect you to run into issues in the future.

    Time can be better spent elsewhere such as looking at improving the structure or the overall internal linking of the site..

  • Alan

    You might be interested in reading our latest blog post about page rank sculpting and no-followed links:

  • Kitchen Accessories

    I have been confused as to how this works but this does add some clarity now. I think its important that the links are both relevant and carry a good level of “weight”..

  • sangamkr

    A very interesting article. The solution given here for no follow links may work for i frames also. i am not sure. i came to this article while search a solution for i frames in my website. can you tell me whether this article content help me for i Frames too.

Leave a Reply