Italian style SEO blog

recovery

I’m writing this post because I’ve been recently asked why a site is still penalized a long time after having submitted a disavow file, and I’ve thought maybe some public considerations are better than a private answer.

First of all, however, let me say I’m not the maximum authority regarding algorithmic link based penalties or filters (well, I’m not the maximum authority regarding anything, to be honest) and everything I’m going to say is just based on common sense.

But let’s back to the problem: most of the webmasters that have used the disavow tool report not having seen any visible effects after several weeks or months. Given they haven’t done any mistakes, their problem is the tool doesn’t work as an On/Off switch. When a file is uploaded it simply tells Google to ignore some links in the incoming link graph, by applying a “nofollow” tag to them. Then, each of those links still remains “followed” until Google doesn’t recrawl the page cointaining it. This is clearly stated in the Disavow Tool Documentation:

It may take some time for Google to process the information you’ve uploaded. In particular, this information will be incorporated into our index as we recrawl the web and reprocess the pages that we see, which can take a number of weeks. These links will continue to be shown in the Webmaster Tools inbound links section.

Google’s John Mueller has often confirmed it during Webmaster Central Hangouts.

So this is a fact: you’ve to wait for Google to recrawl the pages. But if your links are really bad ones (guestbooks, dead profiles, comments on paginated URLs, and similar kind of toxic stuff) chances are it can really take months to have an algorithmic penalty lifted.

Unless… unless you force Googlebot visiting those URLs sooner, and having the bots on a page quickly is a tipical Black Hat goal. Usually one wants links to be discovered: in this case they have to be recrawled, but the ways to achieve the result are obviously the same ones.
I’ll list a few ones:

- Pinging
- RSS syndication
- Social bookmarking
- Xrumer/Scrapebox/(add BH tool) blasts

Do you remember being careful because they may lead a site to be sandboxed because of too many links too quickly? In this case speed is what you need…

Now I’m not suggesting to pollute the web with other crap, but if you’ve built really bad links chances are you’ll need black hat means to make your disavow file work.

Thoughts?

parked-domain

More than year has passed since I published my (quite appreciated) First guide to Hacked Link Building and I definitely think it’s time to return on the topic to give it a new spin.
Those who’ve read my previous post should already know that I named Hacked link building the process to find hacked websites and ask webmasters linking to them to change those links, just like you would do in Broken Link Building: the only difference is you’re haunting for hacked pages instead of expired ones. As Jon Cooper pointed out on Google+, there are many opportunities behind the idea of “broken”, and today I’m showing you how to apply the same concept to expired websites that have been re-registered to be re-focused, redirected or left parked.
When a sites with some good links expires, in fact, chances are that someone will use it for SEO or domaining purposes and these three situations are quite frequent when the owner changes:

1) The domain still hosts a website but its topic is now totally different.
2) The domain redirects to another one in a totally different niche.
3) The domain is left parked.

In each case, webmasters linking to that domain because of its previous content would probably like to change their links now that the content is different or absent…

Here, I want to give credits to Anthony Nelson for having cited this opportunity in his guide to broken link building from noob to novice, but since he didn’t go into details I’ll add something concrete to show you how to quickly find these easy link building opportunities.

I’ll name this strategy and process Dropped Link Building.

Read more…

thanks

Another year has passed and many blogs are already publishing their predictions for 2014. Like last december, instead, I just want to say thanks to a few people that have added value to my SEO 2013. Last year I named 14 awesome SEOs; I’m now adding 6 more. It’s a little number, I know, but this isn’t a tweetbait post and the people I cited in 2013 are still among my favourite ones.
I suggest considering checking out their blogs and following them on Twitter.
Here are the names, in no particular order.
Read more…

twitter-list

A couple days ago I needed getting a complete list of people following a Twitter account and I couldn’t find a quick solution.
First of all, I tried Scraper for Chrome, but since Twitter uses infinite scroll, on a very long list (mine is not) it would have needed too much time and steps.
I checked Followerwonk, and even if I could check the list I couldn’t export it without a Pro plan.
I thought of building an Excel Scraper using Twitter API, but I discovered information isn’t available easily since v1.1 requires authentication to send GET requests from a client. And I didn’t want to build an app (nor I’m able to do it, probably).
So I had to do put a few things together to achieve my goal.
At the end of the day I built a little Excel file that basically scrapes Followerwonk. This is not that great, I know, but the little detail to highlight is it handles paginated results without requiring any further inputs besides the first page URL.

Let me explain…

If you login in Followerwonk, you have the chance to check all your followers/followings but you can’t download them if you’re not a Pro user.

Even if I endorse Followerwonk for its analysis capabilities, I just needed my followers in a useable form: too little to start a paid plan. So I checked if you could scrape the list using SEO tools for Excel.
A quick look to the paginations shows content is served via javascript and paginated (50 per page) but results are loaded using a session parameter and a page one (ie. https://followerwonk.com/?session=slcdb.203513782.422017.fl.db&track_p=2).

This means the list can be scraped, given you correctly handle the pagination.

I know you want the bacon, so first of all this is what you need:

=XPathOnUrl(Sheet2!$B$1&IF(MOD(A1;50)<>0;INT(A1/50)+1;INT(A1/50));"//table/tbody/tr["&IF(MOD(A1;50)<>0;IF(INT(A1/50)>=1;A1-INT(A1/50)*50;A1);A$50)&"]/td/a";"href")

And then, if you’re interested, a bit of explanations.

1) Sheet2!$B$1 is the cell in which you have the URL to scrape, without the page value (ie. https://followerwonk.com/?session=slcdb.203513782.422017.fl.db&track_p=).
2) A column contains numeric values from 1 to the number of your followers.
3) We append the page value to the URL with a simple check: MOD(A1;50) is different from zero when the current index is not a multiple of 50. In the true case, INT(A1/50) is 0 when we are in page 1; it’s 1 when we are on page 2; and so on. Then INT(A1/50)+1 is the page value. When we are at the row 50, 100, 150, etc we fall in the false case and we just get the value of INT(A1/50).
4) We use XpathOnURL on the built URL (you need SEO tools for Excel) to get the href attribute of the //table/tbody/tr[]/td/a/ element.
5) The tr[] index changes from 1 to 50. We check if MOD(A1;50) is different from 0 that means we are not at the last item of the current page. If false, we just need the 50th element (A$50); if true, we need to know count to 1 to 49 and then, after 50, restart from 1. We check if INT(A1/50)>=1, that means we are past the 50th row: in this case A101-INT(A101/50)*50=101-100=1. On the contrary, if we have not reached the 50th row, we just pick the current index (A51).

Et voilà: your list, for free.

Now, I hope to be in the list of people you follow.


And if you liked the post and it will come in handy, you can say thanks by linking it in your next one and sharing it via your social profiles and/or Inbound.org.

25291-diploma-and-degree-cap

Something I often notice when it comes to link building is how poor are internal linking strategies of most of the sites that go after external links. I mean, external links are definitely more powerful than internal ones, but completely forgetting of optimizing the latter equals missing a big zero cost opportunity. Then, an easy advice is: before spending hours and money chasing links from other sites, try add a few of them on your own domain.
It’s not rocket science and a number of posts about internal linking already exist out there.
But I’m the kind of guy that likes doing stuff within a strategy, and one can do better than putting links on their own pages wherever possible.

So today I’m showing how to:

  • Quickly find the right pages in which adding an internal link;
  • Fastly check if a link already exists in them;
  • Easily define how to choose the most effective anchor text in each of them.

Are you interested? Let’s go.
Read more…

twitter-logo

One year – more or less – has passed since I published a post on Moz (formerly SeoMoz.org) in which I discussed how Twitter’s SEO problems were impacting online reputation management; while I think I’ve posted some better stuff on my own blog (ie. here), that article still remains the one people mostly contact me about and just a few days ago I’ve been asked via email if I had had any occasions to check if Twitter’s issues had been solved. Seeing the topic still attracts interest, I’ve thought a follow up post would have been useful, being Twitter’s SEO still a mess.

Canonical URL one year ago

In 2012, looking at the canonical URL Twitter specified, in fact, I suggested to link to your profile by choosing the URL with:

  • https
  • non-www
  • no “at” sign (@)
  • minuscule letters
  • no slash at the end
  • no hashbang (/#!/)

Read more…

seo-hotlinking

A few days ago, a friend of mine told me has an image on one of his websites hotlinked in a numbers of forums and blogs, and he asked me if he could get any benefits from it. I’ve thought a little about the situation, and at the end I’ve decided to share my conclusions in a post.
So, this is how you can benefit from having your images hotlinked on other websites. I hope you’ll enjoy the reading.

What’s hotlinking?

First of all, a brief introduction for those few people that don’t know what hotlinking is. In very simple words, an hotlinking occurs when a page on website ABC loads some objects (tipically images) hosted on website XYZ. A very common situation is, for example, website ABC’s page having something like this in its HTML code:

<img src="http://www.websiteXYZ.com/hotlinked-image.jpg" alt="" />

Very simple, and very debated.

Common approach to hotlinking

The problem with hotlinking is that everytime ABC site’s page is loaded, a request for the image is made to server XYZ: this means that XYZ has its own bandwith consumed without being actually visited. And the more ABC gets visits, the more XYZ server is stressed.
This leads the majority of the webmasters to prevent hotlinking by denying external requests to their images. You’ll find a plenty of articles on how to do this and I’ll not go into details here.
My aim is to show a different way of dealing with the “problem”, so let’s go on.
Read more…