Our Excel Extension for Google Adwords relies on a framework called ExcelDNA – a .NET Framework runtime that allows developers a great deal of freedom to develop add-ins using either C# or VB.NET. While I was checking out the web site for ExcelDNA I came across an incredible tool called SEOtools created by Neils Bosma.
SEOtools is a must have for Excel enabled SEOs

Here’s a screenshot of Excel extracting the H1 elements found on the URLs listed on the left hand side. That’s an incredibly efficient way to extract your competitors keywords. The platform does a lot – and I’m hopeful it may be extended to provide even more features in the future.
Functions
SEOtools functions are highly self explanatory and incredibly reliable – even with a lot of data. Here’s a run through of the best ones (refer to the guide page for the full list.)
=GooglePageRank([URL]) - Retrieves the Google PageRank by URL
=GoogleIndexCount([URL]) - Returns an approximation of the number of pages indexed by Google by domain (the equivalent to “site:yourdomain.com”)
=WhoIs(string domain) - Retrieves WhoIs for a domain
=IsDomainRegistered([DOMAIN]) - Returns “true” if a domain is registered. WhoIs servers are configured in SeoTools.config.xml
=FacebookLikes([URL]) – Retrieves the the number of total Facebook Likes of an url (same count as in a badge)
=AlexaReach([URL]) – Retrieves Alexa Traffic Reach Rank
=ResolveIp([URL]) – Resolves the IP address of the domain in an URL
=HttpStatus([URL]) – Returns the HTTP status code and its description. Also retrieves the Location header (useful for debugging redirects)
=ResponseTime([URL]) – Returns the number of milliseconds it takes for an url to load (cached)
=LinkCount([URL]) – Returns the number of links on a page (cached)
=HtmlTitle([URL]) – Returns the HTML title on a page (cached)
=HtmlMetaDescription([URL]) – Returns the HTML meta description on a page (cached)
=HtmlH1([URL]) – Returns the first HTML H1 element on a page (cached)
=HtmlH2([URL]) – Returns the first HTML H2 element on a page (cached)
=HtmlH3([URL]) – Returns the first HTML H3 element on a page (cached)
=XPathOnUrl([URL]; [XPATH]) – Fetches the url and returns the result from xpath expression (cached).
EG: =XPathOnUrl("http://google.com";"/html/head/title")
On XPath – a great little tool to help you construct XPaths for search engine results pages is the brilliant XPathBuilder which has been carefully constructed to help Google Docs hacks users form XPath to extract data from search engines results. You can take the XPath generated by that tool and use it in this query too.
Download this tool now
Download the spreadsheet extension here: http://nielsbosma.se/projects/seotools/ - SEO with Excel got even easier today. Thanks Niels, and if you’re listening, we’d love to see a few things added:
- Tweets to URL
- Facebook Shares
- Google +1′s
- Ranking for keyword in Bing and Google
Image credits:
Mikko Miettinen







Thanks! For the nice review, I’d difinately look into adding your suggested features.
Regards
/Niels
Forgive me for being dense, but how do you actually get these queries to run? I’ve downloaded the plugin, installed it as instructed but don’t see any additional options within excel.
Adding the query string to the forumla bar “=LinkCount(nameofsite.com)” doesn’t appear to do anything. I am on a Windows 7 machine with Office 2010.
Am I missing a vital step? Or should I just go back to an abacus
@alan: Did you put quotes around the url as in =LinkCount(“nameofsite.com”)
i remember this tool being referenced at SEOMoz Mozcon and it definitely sounded like something I wanted to check out! thanks for writing about to remind me to try it out!
it is installed and works like a champ! i agree with your suggested features to be added…one more nice one would be to pull the number of backlinks to the URL, basically if you ran a site:www.site.com search in google. i am guessing there might be a way to get it to work with xpath somehow in the meantime, but it would be nice if it could be implemented straight into the plugin
Hi Guys,
I have downloaded this to my environment, but cannot get it to work, no data, received the security message, but nothing happens. Have I missed anything?
Thanks
@vince – you need to open a blank spreadsheet, then click the SeoTools.xll file you downloaded/extracted and allow it to run in excel. then in cell A1 type in your full url and in cell B1 try a formula such as =GooglePageRank(A1) — this basically is telling excel to find the google pagerank of the url listed in cell A1
Hi Chris,
Many thanks – this is going to be such a powerful tool to work with
Regards,
V
ok here is the xpath formula if you want to see the total link results of a search (replace A3 with the cell of your URL)…i noticed in my earlier comment i said i wanted a function to search google for site:www.site.com when i really meant to say link:www.site.com
=XPathOnUrl("http://www.google.com/search?q=link:"&A3&"&num=30&pws=0", "//div[@id='resultStats']")
in google docs you can actually extract the number only instead of the whole “About 2,030 results (0.09 seconds)” so that only the 2,030 number shows in the cell…there might be a way to do this in excel, but have not looked yet.
Loving the quick cached/non-cached using the PR check – it comes back with “-1″ if not cached. Wonder how accurate this is and if scaling up will break anything…
I am just giving this a go now; selling t-shirts, this could be pretty useful as a means to monitor how effective this kind of marketing could be for us!
I’ve got the same problem with Office 2010 running on Win 7. Is there a work around?
Plugin looks more than promising!
I’ve found a work around, for me the plugin doesn’t work if you just open the file. Go to:
File > Options > Add-ins > Manage Add-ins > Go
Then browse and find SeoTools.xll, Excel should add this and one other file. Click ok.
Now force a recalc on open cells in a sheet and it should work.
Thanks JR!
Had to use the JR workaround method and I must say its a great set of tools. I have tried to not keep too much of the work bundled in spreadsheets but this is definitely making me head that way now.
I’ve been trying to get the href value of anchors on a page using:
=XPathOnUrl(“http://www.google.com/search?q=example”, “//a/@href”)
which doesn’t seem to work. Any ideas?
This is turning in to unofficial support…
Your XPATH return multiple result.
Try “(//a/@href)[1]” to get the first result and then “(//a/@href)[2]” and so on.
Create a column with values 1,2,3,4,5….. and use the following function call to get what you want:
=XPathOnUrl(“http://www.google.com/search?q=example”, “(//a/@href)[”&A1&"]“)
I’ll try to find time to write a blog post about it.
Thanks Niels, I’ve tried it but (//a/@href)[2] only returns the anchor text not the href attribute value?
//a returns a list of ; separated values so I would expect //a/@href to return a list of ; separated href values?
I may not know enough about Xpath though.
I tried myself using SEOTools and you’re right… It must be a bug in SeoTools. Í’ll look into this and get back to you.
Thanks Niels – I’ve followed you on Twitter so if you’d rather continue this elsewhere, DM me.
I’ve created a quickfix until I make a new release:
http://nielsbosma.se/wp-content/uploads/2011/01/SeoTools20110809.zip
The XPath library I use don’t allow to referense attributes so I’ve added an optional parameter in XPathOnUrl for selecting attributes. Try:
=XPathOnUrl(“http://www.google.com/search?q=example”;”(//a)[1]“;”href”)
Wow thanks for doing that Niels!
This is seriously awesome, just made my day 10x easier and 20x nerdier.
Hehe! That make me feel 30x happier
Thanks Niels going to try it now – great work
Can’t make the LinkCount works either ! Sad
I cant get it to work.. using windows xp and excel 2007
Will try it at home later.. does it work on a mac?
when I manually add the .xll file it crashes excell
@Chris Makara:
Try the RegexpFind function in SeoTools:
=RegexpFind(“About 2,030 results (0.09 seconds)”;”About ([d,]*) results”;1)
(I’m adding your link: count as a function in the next release!)
thanks Niels, looking forward to the next release!
Hi Guys,
I have been trying to get the xpath stuff to work, but nothing is happening wheni copy the formula in, am sure am missing something here?
Hi Guy,
I think would really complement this tool, if it was able to provide a cache date and also just specific information from who is on, owner registration & DNS.
Do you guys think this would be valuable to add on to the tool set?
Kind Regards!
Hi Vince
If you’re using Excel 2010 use , instead of ;
Also make sure excel hasn’t reloaded the old plugin, mine does from time to time.
You could probably scrape the other data you’re looking for – dns etc
Hi JR,
Thanks for your feedback, will try a few scraper tools!
No am using 07..
Do I have to change anything to get it to work e.g. the other formulas are written like this above =GooglePageRank([URL] but are entered into excel this way =GooglePageRank(a2)?
Many Thanks,
Vince..
Exactly as you say:
=GooglePageRank(a2) or (“www.site.com”)
In 2010 once the plugin is loaded you get type ahead with the functions, so you can check it’s loaded that way.
Am using 2007, sorry for my ignorance but lets say I have a url in cell a2 is there anything I need to change to this =XPathOnUrl(“http://www.google.com/search?q=example”;”(//a)[1]“;”href”) – to get it to return the information from cell a2? Hope that makes sense.. Really appreciating your help!
Hi Vince
This:=XPathOnUrl(“http://www.google.com/search?q=example”;”(//a)[1]“;”href”)
Returns the first href attribute values for an anchor on a google search results page.
If you had a website address in a2 and wanted to get the first href value then the following should work:
=XPathOnUrl(a2;”(//a)[1]“;”href”)
To get all href values from the anchors on a page:
=XPathOnUrl(a2;”(//a)“;”href”)
Hope that helps
The only other thing to consider is that in these comments, quotes can sometimes behave oddly when cut and paste in to Excel. Check that they are regular speech marks and not 66/99.
Hi JR no both suggestions still not working!
excel stated the formula has an error!
it doesn’t work on Macs. I do you know of any simular tools for the Apple?
Hi everybody!
I’ve released a new version of SeoTools with some of the features requested in this blog:
http://nielsbosma.se/2011/08/20/new-release-of-seotools/
Get it while it’s hot!
Regards!
/Niels
Thanks Niels!
Do you plan to release a mac version of this Excel tool?
Cheers
Frank.
@Frank: Not at the moment. The ExcelDNA framework that I’m using doesn’t exist for mac.
I’ve been trying to get the Add-In running for two days. On Office 2010 x64 it works like a charm. I’ve been trying to get it running on Office 2003. It turns out that the tool is actually functioning properly, it is just not available in the menu and you need to enter the functions manually. I guess that is no biggie. Great tool!
Hey guys, I think this would be promising, but I cant seem to get it running. I can load the add-in, but when I try to execute a formula it crashes excel every time.
Any suggestions? Has this happened to anyone else?
This is an amazing tool – installation was easy and it works like a charm!
Thanks for releasing such a cool tool.
Hi,
is it possible to check a domain instead of an url ?
I test something like this : =CheckBacklink(http://www.myreferer.com;”http://www.mydomain.com/*”)
But it doesn’t work.
Thanks.
Hi Guys,
Love this app, would it be possible to tell you which country the website is based? or is this already a option and i am just missing it.
@Kat – that’s an easy enough thing to do and I have a solution. I’ll write you a quick blog post this afternoon.
Richard
Is it possible to get GoogleResultCount values for different country specific google tld’s? Pls. advise. Thanks.
Looked at the official website for you, but no doesn’t look like it works for any other TLD yet.
This is one of the most usefull app I ever used. I did the CheckBacklink all the time manually doing a Vlookup at my collected backlinks from seomoz, majestics a href etc etc. With your tool i can do the same in much less time and with more exact results. Thanks a lot for this app!
Oh my… this is great! I wish I had had it last week for a job I was doing, but pleased to have found it now. If only there was a Mac version: life would be perfect!
I too wish there was a version of this for a Mac. So bummed as I won’t run VMWare on my Mac. I’ve heard so many wonderful things about this. If you ever do a Mac version please let me know!
I come across this powerful SEO tool just today. OMG, guys! Niels Bosma, big thank you!
Thеre’s definately a lot to know about this subject. I really like all of the points you have made.
Greetings! I know this is kinda off topic however , I’d figured I’d ask.
Would you be interested in trading links or maybe guest authoring a blog article or vice-versa?
My blog addresses a lot of the same topics as
yours and I believe we could greatly benefit from each other.
If you might be interested feel free to shoot me an email.
I look forward to hearing from you! Superb blog by the way!
Woww… I had no idea of this amazing add in. Thanks!
You саnt sеt up а egуptian silk Χbox
720 through a sowѕ tvѕ anԁ radіo ѕtаtіonѕ rofl
At this time I am ready to do my breakfast, after having my breakfast coming again to read further news.
Simply want to say your article is as surprising.
The clarity on your post is just excellent and that i could
assume you are knowledgeable in this subject. Fine together
with your permission let me to take hold of your RSS feed to stay up to date with coming near near post.
Thank you a million and please continue the gratifying work.
I enjoy, lead to I found just what I used to be looking for.
You’ve ended my four day lengthy hunt! God Bless you man. Have a great day. Bye
Hiya very nice website!! Guy .. Beautiful .
. Superb .. I’ll bookmark your web site and take the feeds also? I’m satisfied to search out a lot of helpful information right
here in the put up, we need develop extra techniques in this regard, thanks for sharing.
. . . . .
Excellent post. I was checking continuously this blog and
I care for such information much. I was seeking this particular information for a very long time.
I am impressed! Very useful information specifically the last part
Thank you and good luck.
I am also having this problem. Well, not so much a problem as much as it is my lack of Excel knowledge.
So let’s say I want to pull basic onpage SEO for three sites to compare. I understand how to click in a cell next to the domain name, add a function, paste in the URL, then get the value. But how the heck to I just run a report without pasting URL values into each cell?