Analyzing keyword performance, discovering new keyword opportunities, and determining which keywords to focus efforts on can be painstaking when you have thousands of keywords to review. With keyword metrics coming from all over the place (Analytics, Adwords, Webmaster Tools, etc.), it’s challenging to analyze all the data in one place regularly without having to do a decent amount of manual data manipulation. In addition, dependent on your site’s business model, tying revenue metrics to keyword data is a whole other battle.
This post will walk you through a solution to these keyword analysis issues and provide some tips on how you can slice and dice your data in wonderful ways.
With Microsoft Excel, we can create a report with all the keyword data you will need, all in one place, and fairly easy to update on a weekly or monthly basis. Then with all this data we can easily categorize segments of it to more quickly determine the better performing sets of keywords.
What we will need to do is push Google Analytics, Webmaster Tools, Adwords, Ranking data, and Revenue data all into one excel spreadsheet. Then we will put it all together into one master report and one categorized pivot table report.
To start, you should be especially familiar with pivot tables, the Google Adwords API, the Google Analytics API, and keyword research of course. Utilizing these APIs and being consistent in the formatting of the data you put into your spreadsheet will make it easy to update. If you aren’t familiar with these tools, I have provided resources below and some steps to organizing this data.
Here are some resources for learning to use pivot tables in Excel:
Excel for SEO
Microsoft Pivot Table Overview
Now let’s go fetch that data.
I Got 99 Problems, But A Keyword Visit Ain't One
First off we need to get our keyword traffic metrics through the Google Analytics API. I suggest using Mikael Thuneberg’s GA Data Fetch spreadsheet. You can follow the instructions, read the how to guide, and download the file here.
Make sure to build off the GA data fetch file or a copy of it, as it has the proper VBA functions (the Visual Basic code that allows for the API to work) installed for API calls. Once you have your API token and the spreadsheet setup you can perform your first API call.
We will be using the more complex query to extract organic keyword visits for a specific date field and filter by the number of visits. The query I use for example, will output visits, average time on site, page views, and bounces for any keyword with 5 or more visits in the last 30 days. However, you can modify the parameters to your liking. To see what other metrics can be used, check out the Analytics API documentation.
Your Analytics data should look something like this:
Google Analytics data called through the API in Excel.
Now select the whole keyword column and create a pivot table of the keyword list in another sheet. In the adjacent column create a table where the cells equal the values in the pivot table column. Label this table “KeywordList” or whatever you like. We now have the keyword table to reference for extracting Adwords data.
Pivot tables don’t have the same referencing abilities as regular tables, so the table in column B is what you will reference in future steps.
To Be, Or Not To Be Searched, That Is The Question
Next up is pulling in search volumes for our keyword table. Thanks to the wonderful Richard Baxter, there are a couple articles on using and installing the Adwords API Plugin. One on SEOmoz and one on Seogadget.
I know the Adwords API access is a bit of an issue for some, so if you cannot use the API, utilize the Google Adwords Keyword Tool (gathering data from this tool will unfortunately require a lot more work).
In a new sheet, use the Adwords API array formula called “arrayGetAdWordsStats” to pull in the average and seasonal monthly search volumes for your keyword table. Your formula should look something like this:
=arrayGetAdWordsStats(KeywordList,”EXACT”,”US”,”WEB”)
You should now have 12 months of historical search volumes and averages for all your keywords.
Results from an Adwords API call usually look like this.
Note: If your keyword list is greater than 800 keywords, you will have to break out the list into a few separate tables just to perform API calls for those keywords. If this is the case, make sure to keep each array of search volumes aligned in the same columns.
The Impression That I Get
No API required here, Google’s Webmaster Tools provides a pretty easy way to download its search query data. If you open up the Search Queries report in Webmaster Tools there is an option to “download the table” at the bottom. Download the table for the same date range you used earlier and drop it into a new sheet.
The report downloaded from Webmaster Tools. Note the “-“ is used for zero values, in the yellow columns I simply cleaned that up with an IF statement.
Impressions, CTR, and Average Rank can now been added to our metrics.
If You Ain't First Page, You're Last
Since we all know how accurate average rank is from Webmaster Tools, let’s get some current rankings into this report .Grab your main keyword list from the spreadsheet and run rankings for them with your application of choice. I usually use Rank Tracker, but I am sure everyone has their own preference. Once you have your rankings drop it into a new sheet.
The More You Know
The number of metrics we can add to the report are limitless, but there comes a point where adding too many can create more work for updating the report or create analysis paralysis. The only other metric I suggest adding in is the SEOmoz Keyword Difficulty if you have a PRO account. Again this may be very time consuming to add for large numbers of keywords, hopefully you have an intern for that.
Mo Money Mo Metrics
Revenue data may come from different places dependent on how your business works, so I unfortunately don’t have a one stop solution to importing that data. However, most applications usually allow you to download that data to CSV or Excel. If you have Ecommerce enabled in Google Analytics, you can use the API to pull in this data. As long as you have some metrics to relate to your keyword such as Average Order Value or Conversion Rate, drop it in a new sheet and you will be good to go.
Some of you may be asking yourself what to do if your revenue data does not tie back to the keyword visit. This is where the categorization of keywords plays an extremely important part in this report. In this case, we want to create a bridge between the revenue data and keyword data. This can be done through categorizing your keywords into a category that relates back to a field in your revenue data. For example, you might be able to associate keywords with product names or landing pages. These products or landing pages would then become categories. Once you have determined what your categories will be, you can assign them to keywords in a new sheet that simply contains keywords in one column and the category tag in the other. You can learn more about keyword categorization here.
Categorizing the keywords above not only lets me group them to aggregate metrics for analysis, but it allows me to bridge the gap somewhat between the keywords and conversions in this example.
One Report To Rule Them All
Finally we have all the data; we just have to put it all together. Create a new sheet and pull in your master keyword list by using =NameOfTheTable, drag this down until you reach the last keyword on the list (paste values after if you want sorting capabilities). Now select your keywords and create a new table. In the columns next to the keywords all you have to do is a VLOOKUP of each metric you would like to add to your report. Once you fill in the first cell of each column, the column should automatically be added to the table and populate the other cells with the equation. Repeat this process until all your metrics are in this table.
There will also be a need to calculate some metrics such as the Bounce Rate or Conversion Rate if you pulled in revenue data. Those should be added in adjacent columns as well. Additionally, if you didn’t need to categorize your keywords earlier, I suggest categorizing them now in an adjacent column. When completed your master report should look something like this:
The master report.
Amazing. We have all the data in one place in a simple to sort and use table! Just wait…it gets better.
Pivotal Success
Now you may be wondering how this report can get any better. Two words my friends: Pivot Tables.
Creating a pivot table of your master report will allow you to segment your data in a number of ways that weren’t possible before. In the Pivot Table Field List, the Row Labels, Column Labels, and Values will define the layout of your report. What we first need to do is drag and drop the Category and Keyword fields into the Row Labels respectively. This will set your top level metrics to summarize at the Category level and allow you to drill down into each Category to see the associated keywords and their individual metrics.
Next you will want to start dragging your metrics into the Values section, which will automatically populate the Column Labels section with the Values field. As you add your metrics in, you can edit their names and the way they are aggregated. You will want to think carefully about how you will aggregate certain metrics so that viewing those summarized numbers at a Category level makes sense.
This shows you how best to setup your pivot table fields and their value settings.
For instance, I might summarize Impressions and Visits, but average CTR and Bounce Rate. Seeing the average CTR and Bounce Rate for a Category will allow me to narrow down which sets of keywords are performing better than others. Then looking at the total Impressions and Visits for those well performing categories will allow me to see where there might be a higher potential to increase traffic to my site. While this may not be an absolute rule to determine keyword focus, it is a good rule of thumb and can be a way to prioritize which ones to focus on.
Pivot table reports also allow you to add report filters, letting you filter out data by any metric or even multiple metrics. With this you could analyze keywords that only rank on the first page of SERPs using the current ranking as a filter. Hell, you could add a field to the master report calculating the number of words in each keyword phrase, then filter by that and bounce rate, giving you your well performing long tail keywords. Get creative, let loose, play with the metrics, you will be surprised at what kind of conclusions you can make about your site’s keyword traffic.
The final product.
Conclusion
Updating the report is simple. Rerun the API calls with the new date range, rerun your rankings for the new keyword list, and export the other reports you need with new date range. As long as you kept your formatting and equations the same, the rankings and other reports should be dropped into their respective sheets without having to change anything. The master report should automatically be updated once you update the keyword column and the pivot report should update once you hit refresh under the pivot table menu. That’s it!
Well I should probably stop talking now and let you get to your hours upon hours of keyword analysis fun. Hopefully this was informative enough to make building a report such as this fairly easy. I would love to hear your feedback and will gladly answer any questions or comments about the post below. If you have issues later on, you can always contact me via Twitter.
Excel Template
Added by Keri, from Dan's comments on this post:
Since there was some interest in sharing the data set I used to better understand steps, I have provided a download on my personal site. You can download the excel template here. Hope this helps
Dan, you rock!
I love Excel posts - love 'em! I'm really delighted you like the API extension for Adowrds - you should definitely check out Neil's SEO Tools Extension, too.
I say - PROMOTE!
Thanks Richard!Glad you like the post. I love excel posts as well, the possibilities are just endless with using it for SEO. Niel's SEO Tools is great, I use that on a daily basis, I can only dream of creating an extension like that!
Great post Dan. Will definitely be referencing this to send around to my team. Very awesome way to automate reporting for people that don't know how to code. Hats off to you. (I actually just took my hat off)
I def suggest a promotion on this one.
Thank you sir. Glad to be of service! If your team runs into any issues, I'll be glad to help.
Mind blown. This is an awesomely thorough keyword analysis domination template. I'm actually surprised you released this to the public, you must be a really swell fella.
I definitely need to hit the books and study the Excel for SEO and Pivot Table links since I am a level 2 Excel rookie on a scale of 1-10.
Another question I had is whether your website gets more traffic from people searching for rappers or people searching for LOTR?
Fake data my friend. Fake data.
Fantastic post, Dan!
If you all like this post, make sure to also read the follow post from another Flank SEO and Dan's Co-Worker, Joe Robison!
https://www.seomoz.org/blog/how-to-fix-crawl-errors-in-google-webmaster-tools
Great work Dan! Really nice post. After reading it I am really not sure how one can manage a big list of keywords in an Excel sheet without using Niel's SEO Tools Extension. This keyword tool can be very helpful in managing a long list of keywords and the best part is that we can do all the manipulation that we want without using any other keyword tool.Simply amazing!
Great post here Dan! I'd add goals as another column depending on the business objectives of the organization. For exmaple, if you are a membership site, you might want to know what keywords / group of keywords drive account creations.
One other thing I do when reporting keyword metrics like bounce rate, avg time on site and pageview/visit is that, when you categorize keywords in this fashion, the metrics is not normalized. What this means is that those metrics are 'averages' and not raw. I would create 3 separate columns for calculating bounce visits, time on site, and pageviews for each keyword. Once you create your pivot table, use those raw numbers and recalculate your bounce rate/avg time on site and pageview per visit. You'll get a more accurate depiction of your values this way.
For pulling keyword data and metrics, I typically use Next Analytics for this task.
+1 for promoting this blog post! Great work here!
Thanks Jackson. I agree, adding Goals is a great metric to throw in there. Great tip on the calculation of those metrics too. It all depends on how you summarize it and if it makes sense to make a decision off of, but yes if you want to see a more accurate depiction of those metrics at the category level, you pretty much laid it out simply. Thanks!
Love it, I'm an Excel guru and love how much info you give in this. Which API extension for Adowrds do you use the most?
just when I think I am a bamf I get a slice of humble pie from AMAZING posts like this. Well done. Will certainly be using this spreasheet action.
I'm definitely behind on my pivot tables, but this is fantastic. Combining so many of my favorite and sub-favorite things.
I would consider myself an Excel ninja, but it never occured to me to use it as a way to analyze keywords. Plan on giving it a re-read, after the Superbowl.
Thank you for an excellent post, Dan.
IPullRank hit the nail on the head - a lot of people in my team don't program, so when things get technical they often aren't able to get involved, but with a post like this that doesn't involve programming, they have a chance to jump in and get their hands dirty as if they were coding.
Excellent resource.
Agreed. It's really a great way to boost your technical skills as a SEO without having to learn how to code. It's also a good way to develop sufficient reports, while your developers build a more robust reporting system. Thanks for the input!
Well there goes my Monday morning (well Monday afternoon, Monday morning I will be recovering from the Superbowl!). Can't wait to give this a whirl.
Great post Dan. It is amazing how much can be done using good old Excel.
and who doesn't love excel?
Good post, good methodology! Generally speaking what it's important here is the methodology.
For my reports i use the same template with GA analytics data for Ecommerce and engagement + GWT data.
But, even if this post is very complete the most important think in clients eyes (ecommerce view) is to have a pivot table with websites' categories+sales+visits at first and another sheet with details like you show above!
Since there was some interest in sharing the data set I used to better understand steps, I have provided a download on my personal site. You can download the excel template here. Hope this helps!
Sorry, but if "tigers" brings 1 visit with a bounce rate of 100% and the "lions" brings 99visits with a bounce rate of 0% your pivot says that animals have a bounce rate of 50%, instead the bounce rate should be 99%. Isn't it?That's the same for all the animals averages and %s.
Although the data is fake, yes technically. What really matters is understanding how it's calculated, you can get the most accurate bounce rate for a keyword category by using a calculated field and dividing the bounces by visits, or if you just want to get a guage of how keywords in a category perform in relation to others, you can just average the bounce rates. As long as you aren't using that number to calculate anything, you can still use it as a reference point between two categories.
I usually display bounce rate the more accurate way with a calculated field, but for the purpose of keeping this post example simple I did not. I updated my download to have it use the calculated field so you can see it that way as well.
Hi Dan, I just added the link to the template to the end of the main post. Thanks for sharing!
Great, thank you!
Awesome post Dan. I will definitely be looking your way for Excel/data pulling help! Cheers and happy Friday!
so do you think if you could get tools to help you do this type of reporting automatically without excel they would be helpfull? i dont know why i hate excel so much... google docs is cool but i think that code and automation are better than having to mess with spreadsheets... i guess its a diffrent type of automation
I actually am working with developers to build a web based version of this type of report for our biggest clients. So it's always helpful to get these types of tools outside of excel, especially when you are dealing with massive data sets. However, the nice thing about excel is that it is universally used. Learning to develop reporting skills in excel is key for the long run. Not every company a person works at will have the developers or IT support to build out more robust reporting tools, so having a way to generate them in this fashion gives you an edge over others. Excel also gives you more freedom with data manipulation, the ways you can slice and dice your data is restricted by the built in functionality of a custom report, while excel allows you to extract it from a report and manipulate it any way you want.
Really great post Dan, thanks for sharing. I also use Mikaeil's GA Data Fetch for Excel template in my daily work, such a good tool.
Thanks a lot for showing us how to get more advanced with our keyword research
Brilliant article!
I've got a question about Mikael Thuneberg’s GA Data Fetch spreadsheet. Is it possible to work with pagination in this GA Data Fetch spreadsheat? In some cases I need the API to show me more than 10k rows.
Thanks
Adriaan
I'm not sure what you mean exactly, but there are a couple ways to get the right amount of data from the API call. Usually once you have filled out the parameters and you have your array formula ready, you will have to select a grid on the sheet to put your data in before you enter the function. If you just select the needed amount of columns, it should just keep filling down until all the data is there for those given parameters. Sometimes that will cause the program to crash though because it might be too much data, in that case just select a grid that is as large as you need.
Nice analysis.
Johan
Terrific. As an ex-accountant raised on SuperCalc, Lotus 123, Symphony and Excel, I love seeing new ways of using numbers and data to improve business performance.
Wonder why Google didn't think of this ...
Yes, really nice compedium. I rather not prefer to manage the keyword analysis in Exel, personally i do not like this long columns - yes I know it's useful but everyone has his point of view :)
I use Colibri Tool https://colibritool.com/ to keyword analysis, it gives me really fine view on all positions my websites take by keywords and exhaustive knowledge about my competitors and their positions by the same keywords or keyword phrases.
And I think that all keyword analysis cases should turn into their efficiency - their impact on content for example.
I personally use excel in most of my reports because i find it convenient to use. You can graph all the data that are needed and you can easily understand the report with one look, All you have to do is categorize the needed data in each cell. After reading this one, i learned more about excel. Thanks for sharing.
Great post Dan. Thanks for sharing this. After a long research I found this useful post for my team. I will start action on this. Hats off mate.
Hi - I'm trying to download the report but keep getting an error page. Can I locate the template anywhere else? I have searched everywhere and come up with nothing.
Please help.
I had been using MarketXLS. It really works for me.
Hi there - I keep getting a Microsoft Visual Basic Ru-time error '9' Subscript out of range. Any idea what I must adjust? The debugger has highlighted this in yellow " Sheets("Table").Select" in the RefreshWorksheet
thanks for this information. I have also come across this link that displays some benefits and features of excel based reporting: https://www.excelreports.info/reporting-with-excel/
Excellent work of Excel.Great thing for a Keyword Analysis report in excel...
Trimantra Software Solution- Custom software development company
Great stuff. I've been looking for a way to bering all these metrics together into a meaningful report - as well as being something I can use repeatedly without reinventing the wheel every time - and this looks like it! So thank you.
I'm using Excellent Analytics to get get the GA Data. I've applied for the Adwords API - having set up a new MCC account, but my application is still pending approval a week later. How long does it take typically? And what are the criteria for approval?
Nearly 3 months after my application – with about half a dozen email during the first 3 weeks, followed by 2 months of silence, I have finally heard back from Google. They declined my application, with the following explanation:
“Please note, as per the API T&C’s, usage of the AdWords API exclusively for Targeting Idea Service (TIS) and Traffic Estimation Service (TES) such as keyword research and keyword suggestions is not allowed. Due to this, we are unable to approve your token application.”
Given that I told them how I would be using the API on day one, you’d think they could have mentioned this then, and saved me the bother!
Any ideas about what my next move should be would be greatly appreciated.
Ben
The images are NOT loading. Please rectify, Thanks in advance :)
- Sajeet
Hi Sajeet, you might want to check from a different browser or different computer. They're working on my end, including from my phone and browsers that have never visited that page before.
Nice presentation. It is very easy to understand and manageable.
Thanks for sharing this....i have been looking for a way to create this in excel for a while but its a bit complicated. Glad i came across this SEO blog
WOW... Woke up to this awesome article on a Sunday morning, my head is still spinning but I think once I eat breakfast and settle in for the day I REALLY need to get my head around this stuff :-) Thanks
Hi mate nice post, been using some of these methods/metrics in Excel for a while =)
Only thing which gives you greif at times is getting data from Omniture to excel when you have a huge amount of data.
Great stuff Dan.
I'd love to see a similar breakdown of the keyword research process for a non-existing site with no analytics data too. When I prepare these, I always feel like I'm leaving something out.
Nice post and titles Dan! I will definitely be using this tool for my keyword research.
Awesome post and a thumbs up to you Dan! promote this post to the main blog.
Great post Dan, any blog posts on measurements or data research I love, I’m just a data freak, I love pie charts and excel spread sheets, they rock...
Thank you. Since you love charts, just a little bonus for you - take your pivot table report and use the pivot chart function to generate pie or bar charts which can be viewed at category or keyword level!
Wow...this looks great! I can't wait to up my skills to the point I can wrap my mind around this.
I am just getting started with learning how to use the data in GA and Webmaster Tools. Can anyone suggest a good starting point to learning how to use excel and the reports from google for seo. (ie: What can someone do with the data, what are the first things you should look at / do with all the data before moving on to a more advanced reprot like this one?)
I'd really like to learn how to do this.
Thanks for the well written post!
For the excel specific stuff, I would check out a few of the links early in the post. The Excel for SEO guide is a great one and if that's a little too advanced, click the link to the Microsoft Pivot Table tutorial. On the Microsoft site there are plenty of tutorials for all kinds of Excel features.
For some resources in learning what to do with the data, try this article on Avinash's blog. There are a ton of articles on his blog that can teach you how to take your data and create actionable reports out of them.
Hope that helps!
How to make sure that our Analytics data will not share on any other third parties!
I personally like to use these tools because they save our lot of precious time but never ever use such kind of tools
Because of privacy issues
Will someone please guide me through?
thanks i was jsut going through the search yesterday to learn more about this style of reporting :)
Fantastic post, Dan...
Brilliant post Dan! a great resource!
Great post, but all the average aggregation in the pivot are wrong ;-)
(Avg Time on Site, Avg Pageviews, Bounce, ctr, ...)
Yes, I didn't use calculated fields in the example as a way to more simply explain how to build this report. Unfortunately, you can still only get an accurate measure of the Bounce Rate and CTR, the Avg TOS and Avg Pageviews will always have to calculated as an average of averages essentially. However, the point is to use them as a way to compare different categories and not used as an absolute rule on determining which sets of keywords perform better. Those inaccurate averages essentially become relative measures to compare those categories.
For example, if in one keyword category I have 3 keywords which each have avg pageviews of 2. The average will show as 2. In another you have 3 keywords with two keywords having avg pageviews of 2, and one having 1.5 avg pageviews. This category will have an average of 1.83. While that may not be the 100% accurate because we aren't totaling all the pageviews for those keywords and then dividing by the number of visitors, we still know that the avg of 2 pageviews for the first category is better than the 1.83 of the second category.
Good catch though, I probably should of explained that in a note or something in the post.
Great post dan, good way to track keywords. Will take some time to get used to the system after setting everything up, but kudos to you mate. Thanks for the post. Thumbs up!!!
Good information than q for sharing
Hi Dan - Ncely done. Any chance you're open to releasing your keyword data set - or part of it - say, via Google Spreadsheets, so anyone can try your recs with the same data? I don't do any search marketing work these days, but I was the search lead [5+ years ago] at an agency here in London, but I do a good deal of data work, so I'm just keen to play and share.
James
Let me try and put a downloadable template on my site. Google docs won't work as some of the functionality is not available there. The data set I have used is fake, just to keep in mind, but it will still provide useful for validating each step in creating this report.
Wonderful Post. Regarly I develop at least 10 report on excel... really helpful....
Thanks for the template