Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Excel Power-ups for Going Beast-mode in Local SEO

2,699 views

Published on

The Local SEOs workflow is a bit different from “regular” SEO, and getting the tooling together to handle that workflow can be pricey or require coding skills mere mortals generally don’t possess. Luckily, with a little know-how, any mortal can go BEAST MODE in Excel.

In this session, I’ll show just how much can be handled in Microsoft Excel. And don’t worry if you’re not an Excel wizard – this session is meant for anyone who’s used even just the basic functions of Excel. From citation auditing, performance monitoring, competitive analysis, and even producing visualizations clients can understand, there’s a lot you can do with formulas I’ll share and plugins you can get for free.

Published in: Marketing
  • Be the first to comment

Excel Power-ups for Going Beast-mode in Local SEO

  1. 1. State of Search David Minchala, @daveminchala
  2. 2. It’s hard out here for a local SEO http://1.bp.blogspot.com/- wCvqMTTE_z0/TVy6YgbYkKI/AAAAAAAAF qs/1OEKdaEzmso/s400/Picture%2B1.jpg @daveminchala | #stateofsearch 2
  3. 3. A lot of clients come to us with, er, baggage… @daveminchala | #stateofsearch 3 http://4.bp.blogspot.com/-DTJqn2pS4Rw/UFtn3s3eIrI/AAAAAAAAAGA/DHpi-H- 8bVk/s1600/DSC02641.JPG
  4. 4. Google MyBusiness Issues @daveminchala | #stateofsearch 4
  5. 5. Reputation Issues @daveminchala | #stateofsearch 5
  6. 6. Data Issues @daveminchala | #stateofsearch 6
  7. 7. Anti-Competitive Issues @daveminchala | #stateofsearch 7
  8. 8. And then everything else… @daveminchala | #stateofsearch 8
  9. 9. Usually, there are problems here… http://moz.com/learn/local/local-search-data-us @daveminchala | #stateofsearch 9
  10. 10. Well, *somewhere* in here… http://moz.com/learn/local/local-search-data-us @daveminchala | #stateofsearch 10
  11. 11. And this certainly doesn’t help. https://getlisted.org/static/resources/listing_time_to_live.pdf @daveminchala | #stateofsearch 11
  12. 12. The Arsenal Type Example Providers Value Prop Link research & OpenSiteExplorer, diagnosis MajesticSEO, LinkRisk Find links you might want & links you should stay away from @daveminchala | #stateofsearch 12 Webmaster Resources Google Webmaster Tools Find out if you have a search quality problem; work directly with Search engines to resolve them Competitive Analysis SEMRush, Whitespark, Google search How are competitors doing & what might be working for them Citation research Whitespark, Synup, Moz Local, Yext* See how NAP is displayed on specific publishers & push updates to them; find new citation opportunities Citation diagnosis Google search; listing publisher websites Find where else is bad/outdated NAP data persisting (if you know how to look)
  13. 13. My problems: Amorphous Problems Inadequate tooling to size them No clear starting point or path Difficult to maintain visibility into issues Poor feedback loop for work Difficult to keep client engaged @daveminchala | #stateofsearch 13
  14. 14. Cross roads time… @daveminchala | #stateofsearch 14
  15. 15. Get overwhelmed… @daveminchala | #stateofsearch 15 https://c1.staticflickr.com/1/12/18359894_25cbbb0dcb.jpg
  16. 16. …surrender to insanity… http://www.tellhimhespele.com/wp-content/uploads/2013/05/man-kissing-pigeons.jpg @daveminchala | #stateofsearch 16
  17. 17. …be Mike Tyson?... http://i.huffpost.com/gen/1108191/thumbs/o-MIKE-TYSON-PIGEON-EX-facebook.jpg @daveminchala | #stateofsearch 17
  18. 18. …OR GO BEAST-MODE! @daveminchala | #stateofsearch 18
  19. 19. My Spirit Animals @daveminchala | #stateofsearch 19
  20. 20. I need goals. @daveminchala | #stateofsearch 20
  21. 21. Sweet Photoshop skills, bro. @daveminchala | #stateofsearch 21
  22. 22. DUMB Objectives, SMART Goals Example DUMB Objectives: • Generate leads • Make it easier to retain customers Example SMART Goals: • Ensure Google MyBusiness listing & Website are visible in front page search results on Google and top 5 directories that are most important to the client within 6 months. • Reduce duplicate and erroneous listings to less than 50% of known, findable @daveminchala | #stateofsearch 22 listings in 3 months. Example KPIs • Rank position in Search Engines • # bad listings found in Google search Required reading: http://www.kaushik.net/avinash/digital-marketing-and-measurement- model/
  23. 23. I need a method. @daveminchala | #stateofsearch 23
  24. 24. @daveminchala | #stateofsearch 24
  25. 25. Getting the lay of the land Required reading: http://moz.com/blog/ultimate-local-seo-audit @daveminchala | #stateofsearch 25
  26. 26. That’s a lot of work… I need to make it efficient. @daveminchala | #stateofsearch 26
  27. 27. @daveminchala | #stateofsearch 27
  28. 28. First, go get this: http://nielsbosma.se/projects/seotools/download/ @daveminchala | #stateofsearch 28
  29. 29. Getting sh*t done in Excel Scrape Tickle Google and import directly into Excel Start with this formula: XPathOnUrl("http://www.google.com/search?q="&UrlEncode($C$2)&"&start=1&num=100 ", "(//h3[@class='r']/a)”,”href”) Okay, Excel, go to this URL. The URL has parameters that you can find in plain english in C2 – encode it into a URL param, wouldja? When you get there, parse the HTML and find this particular <a> tag. It has links I care about. And bring me back JUST the URL. @daveminchala | #stateofsearch 29
  30. 30. Getting sh*t done in Excel Scrape Tickle Google and import directly into Excel Select the number of cells you want to populate with results (Hint – use the num= URL param for Google search) Press F2 to write/paste your formula into the top cell Press shift+ctrl+Enter and… @daveminchala | #stateofsearch 30
  31. 31. Getting sh*t done in Excel Scrape Tickle Google and import directly into Excel @daveminchala | #stateofsearch 31 Bam! Er… wait… In an adjacent cell, use this to clean that up: =LEFT((RIGHT(A2, (LEN(A2)-7))), (LEN((RIGHT(A2, (LEN(A2)-7))))- LEN((RIGHT((RIGHT(A2, (LEN(A2)-7))), (LEN((RIGHT(A2, (LEN(A2)-7))))- FIND("&amp", (RIGHT(A2, (LEN(A2)-7))))+1))))))
  32. 32. Getting sh*t done in Excel Scrape Tickle Google and import directly into Excel @daveminchala | #stateofsearch 32 That’s better.
  33. 33. Getting sh*t done in Excel Go to a URL, look for a string, and if it’s there, import directly into Excel Start with this formula: RegexpFindOnUrl("http://www.6pm.com/shoes", “free shipping”) Okay, Excel, go to this URL. And look for this string. If you find it, send it right back to me. If not, return an error. @daveminchala | #stateofsearch 33
  34. 34. Getting sh*t done in Excel @daveminchala | #stateofsearch 34 What we have now: Framework for going to any URL and  Pulling in the information that’s there  Or Only pulling information we care about All in Excel so we can spend more time on pulling out insights, less time on getting what we need.
  35. 35. With apologies to Mac users.. There’s not SEOTools for Mac. Sorry. @daveminchala | #stateofsearch 35 But…
  36. 36. Import.io is the TRUTH! @daveminchala | #stateofsearch 36 https://import.io/
  37. 37. Import.io is the TRUTH! Make any of your listings into an API and check for changes daily, weekly, WHENEVER. HINT: This is a good thing to apply to your Google MyBusiness listing ;) @daveminchala | #stateofsearch 37
  38. 38. Let’s start an audit Start at Yext to get URLs you’ll definitely want to monitor https://chrome.google.com/webstore/detail/scraper/mbigbapnjcgaff ohmbkdlecaccepngjd @daveminchala | #stateofsearch 38
  39. 39. Getting the Listng URLs @daveminchala | #stateofsearch 39
  40. 40. Searching Google for Bad Data Phone number searches are my go-to. You’ll need to check several versions. I use RegexReplace for that: 10-digit phone Regex Replace result 2066022005RegexpReplace($A$2,"^.{3}","("&LEFT($A$2,3)&")") --> (206)6022005 RegexpReplace($A$2,"^.{3}","("&LEFT($A$2,3)&") ") --> (206) 6022005 RegexpReplace($A$2,"(^.*)","("&LEFT($A$2,3)&") "&RIGHT(RegexpFind($A$2, "^.{6}"), 3)&"-"&RIGHT($A$2,4)) --> (206) 602-2005 RegexpReplace($A$2,"(^.*)","("&LEFT($A$2,3)&")"&RIGHT(RegexpFind($A$2, "^.{6}"), 3)&"-"&RIGHT($A$2,4)) --> (206)602-2005 RegexpReplace($A$2,"(^.*)",LEFT($A$2,3)&"-"&RIGHT(RegexpFind($A$2, "^.{6}"), 3)&"-"&RIGHT($A$2,4)) --> 206-602-2005 @daveminchala | #stateofsearch 40
  41. 41. Starting to sound like a good option… http://www.tellhimhespele.com/wp-content/uploads/2013/05/man-kissing-pigeons.jpg @daveminchala | #stateofsearch 41
  42. 42. I’ve automated *a lot* of this in Excel @daveminchala | #stateofsearch 42
  43. 43. Put it all together & automate Enter a query, tell me if it’s a phone number or something else Then press the button and … @daveminchala | #stateofsearch 43
  44. 44. Put it all together & automate Get a table of up to 300 citation sources where your query string appears. And who’s likely providing that data! @daveminchala | #stateofsearch 44
  45. 45. Put it all together & automate Here ya go  https://www.dropbox.com/s/p44p6tkaa0eez79/automatedNAP audit.xlsm?dl=0 PLEASE tell me how to make it better! @daveminchala | #stateofsearch 45
  46. 46. Me @daveminchala David.minchala@gmail.com @daveminchala | #stateofsearch 46

×