Posted by Anonymous on March 28, 2009 at 9:51am
I'm curious what everyone is for pagerank sculpting overall. There doesn't seem to be a clear, straightforward way to add nofollow attributes to links in primary/secondary links to such pages as /contact et cetera... What's everyone doing?
-=- christopher
Comments
nofollow
The best option I've found is just using the input filter to nofollow links within nodes. As far as menus...if you've created your contact page as a webform, and you have the meta tags (nodewords) module installed, you should be able to set the robots.txt file to nofollow that page. I'm not sure how that would work with Drupal's default contact system.
My "day job" - Internet Marketing Specialist, at a Drupal Design and Internet Marketing agency.
Twitter: LevelTen_Colin
My "day job" - Internet Marketing Specialist, at a Drupal Design and Internet Marketing agency.
Twitter: LevelTen_Colin
internal nofollow
A danger with using nofollow on a Drupal input filter is that search engines won't follow internal links inside of nodes. Internal links inside of nodes are great for SEO. I often set nofollow with the input filter so that search engines don't follow spam links from user-generated content, but then I change the input filter to full HTML when I post so that search engines will follow my internal links.
--
My Drupal Tutorials
that's a good way to go
It's also what I do. For UG content, set the permissions so that the filtered HTML is the default, give admin users full html by defualt, or at least provide it as an option.
My "day job" - Internet Marketing Specialist, at a Drupal Design and Internet Marketing agency.
Twitter: LevelTen_Colin
My "day job" - Internet Marketing Specialist, at a Drupal Design and Internet Marketing agency.
Twitter: LevelTen_Colin
When you restrict pages
When you restrict pages through robots.txt but link these pages without the nofollow attribute from pages that are indexed by search engines, these links flow PageRank. Aaron Wall has a good writeup called Robots.txt vs Rel=Nofollow vs Meta Robots Nofollow (http://www.seobook.com/robots-txt-vs-rel-nofollow-vs-meta-robots-nofollow).
If I don't want an internal page to get any link juice, I don't link to it using the menu system, but only from inside of nodes/blocks or the footer message text.
--
My Drupal Articles
is there a way
Is there a way to add "nofollow" attributes to the primary links in Drupal's menu system?
</ br>
My "day job" - Internet Marketing Specialist, at a Drupal Design and Internet Marketing agency.
Twitter: LevelTen_Colin
My "day job" - Internet Marketing Specialist, at a Drupal Design and Internet Marketing agency.
Twitter: LevelTen_Colin
This module makes it easy:
This module makes it easy: http://drupal.org/project/menu_attributes
I use it for a few sites.
sweet!
this is precisely what I was looking for.. thanks!
-=- christopher
PR sculpting
PageRank sculpting appears to be dead now.
--
My Twitter
Reference?
Do you have a reference you can cite?
--
Christian
--
Christian
The inventor of nofollow
The inventor of nofollow
...until the next time
...until the next time google changes its mind ;)
-=- christopher
They killed PR sculpting a
They killed PR sculpting a long time ago, but just didn't tell anyone. I don't think it will ever come back (or should have been a "feature" of nofollow to start with).
Now that pagerank sculpting
Now that pagerank sculpting via nofollow is dead, I'd like to see a discussion on another approach, one that assists with sculpting while not leaving the "SEO footprint" that Google may look for. What I mean by this, is if a solution was to hide links within javascript (yes, still can be done), then Google is likely to "know", particularly with a hand check, that the site was touched by an SEO. This isn't a good thing.
What I would like to see is a minimization of links automatically created. So, for example, in the login block I'd like to have the links reduced from "Create new account" and "Request new password" to a single management page, something like "Create Account or Get Password"...simple enough, and reduces the number of links on the page.
IMHO, this is the best way forward for sculpting. Since it's been stated Google monitors projects by known SEOs, I don't believe it wise to have the tell-tale signs of SEO on it (like the nofollows of a large amount of internal links, or purposefully hiding links via javascript). And since nofollowing a link doesn't help sculpting any longer, I believe the best solution is more control over which links appear on every page.
We could take this further and have options with the Primary Links (main navigation), where we can set some links in the nav to only appear on certain pages, or list pages they should not appear on (much like we do blocks).
Dan
Google reads and follows
Google reads and follows some JavaScript links now, so that might not work and even if it does, it might not last for long as Google will probably spider more types of JavaScript links in the future.
Also, JavaScript won't show up on some devices (e.g., mobile devices), reducing the usability the website.
I would just use robots.txt to control the bots. I haven't seen any drop in my sites' rankings from having a lot of comments. Google never tells the whole truth so I think that making radical changes to Drupal based on ambiguous comments by Matt Cutts would be a mistake.
If you wanted to prevent Google from seeing so many links, write a module that removes all links from the comments. At the bottom of the comments put one link: "Add a comment". That link goes to a page of comments (blocked by robots.txt) that lists only the comments, but with "reply" links.
--
Twitter
True, some javascript links
True, some javascript links are already crawled. While there are ways to write them so they are not, you're right again that next week Google may crawl those as well...
Using the robots.txt file doesn't prevent the loss of that link juice either, which is the ultimate goal of this thread (as I understand it)...to efficiently distribute PR to the pages you identify on your site.
I'm not so concerned about comments. I know many are, but comments are good for a site. That type of interaction is a bonus. While I want to sculpt my PageRank, I'll never suggest that this is the most important thing. In the end, sculpting PageRank doesn't make money, quality sites do.
Dan
zed's dead, baby..
well calling it "dead" isn't really what is going on in the seo community as a whole... it's just that considerations for its use must be adjusted from what was previously assumed.. and like Matt Cutts even said regarding his own blog, he still nofollows certain links on a page such as RSS feed links and that sort of thing. I definitely agree with you, though, with regards to limiting the number or links automatically emitted by Drupal.. or at least giving the end user control, which is really what my post was originally about... and not just for seo purposes, either. There has been a lot of talk in the Design For Drupal initiative about returning easy to use control of menus to the users, allowing them to add classes and ID's as they deem it necessary without having to use a programmatic solution to do such a basic task when theming. This would work well with SEO, as well, with a well thought-out solution that simply gives all users, regardless of their task, control to the links on their pages.
-=- christopher
In terms of PR sculpting,
In terms of PR sculpting, nofollow is dead. It doesn't operate like many (most...) expected, and to utilize it with that old assumption doesn't help sculpt, but can actually detract from the goals of sculpting.
The RSS example was because it's not helpful to search engines. That point wasn't about sculpting, that was an example of when to use nofollow on internal links, which really was already clear.
Control is good and it's good to hear about the Design for Drupal initiative. For most users this is all unnecessary, but for building large sites with high revenue expectations, these are things it would be nice to have the ability to do without programming.
Dan
He nofollows the RSS feeds
He nofollows the RSS feeds to keep them out of the SERPs, not to focus PageRank on other pages ("sculpting").
--
Twitter
that is now true, but
that is now true, but previously he was doing it, in effect, to not pass pagerank. now nofollow will tell it to do both... keep it out of SERPs and, less importantly, don't give it any pagerank... but just having the link on the page increases the divisor of pagerank amongst links on the page, making it more important to consider any and all links you put on a page, which is what SEOMoz and some other people are pointing out, that the 'new sculpting' is going to be more akin to the old school way of doing things.... including but not limited to just really considering if you should be creating that link at all, which brings us back to the issue of the user having more control in Drupal of when and where links are generated. :)
-=- christopher
nofollowing that link
nofollowing that link doesn't "focus PageRank on other pages". That's what we're dealing with now. Since a nofollowed link still counts when dividing a page's PR "juice", many are reconsidering what to link to.
JS Page Rank Sculpting
Page sculpting in Drupal.
The following is my adventure in page rank scuplting in drupal. Turns out it's not an easy task.
Caveat- I follow the advice of Leslie Rhode, the Godfather of SEO in pr sculpting and anything else SEO.
His course on it is free and can be had at http://www.dynamic-linking.net/
1 I have found Zen based themes to be very SEO friendly and the easiest to work with.
http://drupal.org/project/zen
I like cti-flex a lot.
http://drupal.org/project/cti_flex
Zenophile is also very helpful
http://drupal.org/project/zenophile
First attempt.
In my first attempt I used server side rewrites to detect googlebot.
Starting off with the theme I Placed a statement around elements I wanted to remove such as the site logo and primary links.
As such
for the logo
<?php if ($logo): ?><div id="logo"><?php
if ( strstr($_SERVER['HTTP_USER_AGENT'], "Googlebot" ) == false ){ ?><a href="<?php print $front_page; ?>" title="<?php print t('Home'); ?>" rel="home"><?php } ?><img src="<?php print $logo; ?>" alt="<?php print t('Home'); ?>" id="logo-image" /><?php
if ( strstr($_SERVER['HTTP_USER_AGENT'], "Googlebot" ) == false ){ ?></a><?php } ?></div>
<?php endif; ?>
That allowed me to remove the image and title links when googlebot came around. I then placed a keyword phrase in the site slogan and wrapped it in a link.
for the primary links
<?php if ($primary_links) { ?><div id="suckerfishmenu">
<?php
if ( strstr($_SERVER['HTTP_USER_AGENT'], "Googlebot" ) == false ){
print $primary_links_tree;}
?>
</div>
<?php } ?>
Any links that were removed that I did want the spiders to follow I placed in the footer of the page.
For blocks I wanted removed I simply used the "If php returns true" with the google bot detect code.
<?phpreturn (strpos($_SERVER['HTTP_USER_AGENT'], 'Googlebot') === FALSE);
?>
This method worked fine as far as sculpting goes BUT it conflicts with any cacheing. I use boost and this proved to be a bad combination.
What boost does is cache's the page when it gets hit. So if a user hits it it gets cache'd with the links. If google hits it it gets cached without.
Not good.
For awhile I ran without cacheing. But that turned out to not be a workable solution. Site was eating up to many resources and was too slow.
Turned out my gains from sculpting were not even close to a match for the losses in site speed.
So I ditched that approach. If someone could find a way to make it work with boost it is a workable approach. There are a few threads out there asking for a feature that boost does not send the cache'd page to the spiders but I don't feel that is a solution either since sending a slow page to a search engine turns out to be a bad idea (and not for the reasons that most SEO experts tell you)
Second attempt (better)
Needed modules
Menu Attributes
http://drupal.org/project/menu_attributes
Menu Item Container
http://drupal.org/project/menu_item_container
Promising but flawed
Special Menu Items
http://drupal.org/project/special_menu_items
Step 1
Add a javascript file to your theme. Here's mine (borrowed from Leslie)
var link = new Array( "link1","link2");
function go(i) {window.location=link[i];}
Edit accordingly
Step 2
Include it in your theme info file like so (my file was called click.js
scripts[] = js/click.jsStep 3
Install Menu Attributes and Menu Item container
Step 4
Hack the menu attributes module
at line 58 add
$info['onclick'] = array('label' => t('onclick'),
'description' => t("Specifies the onclick number."),
);
Step 5
Adjust settings for menu attributes to desired. Including the new "onclick" we added.
Step 6
Now go and create Menu Item containers for each link you want to remove. On the link edit page you will see the onclick menu attribute
Fill it in with
go(1)
With the number replaced with the place in the array in the js ile with the appropriate link.
Wash, rinse , repeat with each link you want to remove from the crawl.
What's wrong with this technique
Obviously it's clunky. I hope someone (who is better at coding than me) picks this idea up and creates a module
It doesn't seem to work in primary links (at least in my theme). For some reason the
<a href="#">that the menu item container normally puts out gets stripped out in the primary links.I don't know why. I've wrestled around with it and submitted an issue.
http://drupal.org/node/1221104
The problem with this is not that the link does not work. It does. But the problem is with styling it with css. It would require a lot of css tricks to be able to style a span like an href. Don't really want to go there.
I've tried various hacks but can't get it to output so far. If anyone solves this please let me know.
So it works everywhere except primary links. In my case I have a lot of primary links I want removed so this is not optimum.
Something else to look at is special menu items.
http://drupal.org/project/special_menu_items
That module does output the href in the primary links but is apparently incompatible with the menu attributes module Aaargh!
http://drupal.org/node/1256036
So that's my hacky approach. Hopefully someone with more php skills than myself may become interested in taking this further into a more elegant solution.
Or maybe someone can figure why the href is stripped in primary links and come up with a solution for that.
Thanks
Phil
AKA Shun Shifu
IS this crossing the line?
Is this crossing the line into cloaking, a violation of Google's TOS? FRom what I read, are you changing the content that googlebot gets?
David Minton, Managing Partner, DesignHammer | Durham, NC, USA
A lot of trouble for not much gain...
Please reread J. Cohen's posts, they're spot-on.
Additions:
Google isn't a fan of user-agent sniffing to render different content to Google Bot than the user.
PR is a valuable resource so why throw it away. Why not pass it along instead to the low value URL and have that URL, in turn, pass it to money pages.
If you really want to obscure links then you can include them in iframe or object and Disallow the src in robots.txt
read the rest
The user agent info in the beginning was a previous technique I tried and was only included for informational purposes.
The second technique is the one that I think can be built upon.
I can't anywhere in the technique that would throw page rank away. But if one were to use nofollow to sculpt the argument is that it would actually throw it away, hence javascript.
Most likely the javascript that is being read by google is onpage and it's just the spider being sloppy.
Mobile devices not seeing it may be something to consider. Probably time for a mobile theme anyway.
This wasn't in reference to blocking comment links but more so about overall site sculpting.