In this guide, we are going to detail our guest post outreach process using Ninja Outreach.
Here is a quick overview of all the steps we have to take:
- Compile a list of relevant sites.
- Export the list and filter it based on Ahrefs traffic (if you prefer).
- Run the list through Never Bounce to increase delivery rates.
- Creating a custom template + outreach example.
- Import the list, select a template, and reach out.
- GSA Website Contact guide.
These are the five most important steps we discuss here.
Part 1: Ninja “Compile a List” Process
1) Login here: https://app.ninjaoutreach.com/Account/Login?ReturnUrl=%2F
2) Go to see which topics we haven’t reached out to yet: https://app.ninjaoutreach.com/Template. You can also keep track of it in your MS Word Topics sheet of course, or in an Excel file.
3) Verify it to see if you haven’t used this topic already at the Active campaigns page, as the metrics on the Template page aren’t always accurate: https://app.ninjaoutreach.com/OutreachMode/Start
4) Now click on Lists in the main navigation menu, and click the first item “Create a list“, a window pops up where you enter the following information:
- List name: Niche (eg. pressure cookers).
- Permitted team members (select yourself, just in case).
- Tags (no need).
- Description (leave empty).
- Click “Search websites & Blogs”.
Compiling a list of blogs to reach out to:
Check ‘Blogger‘ next to the search button, to reduce e-commerce sites and manufacturers.
IMPORTANT: When we search for blogs only select the ones that are relevant and you need to manually select each site, (there is no option in bulk), you can add all 50 from the first page but as your list grows to 400+ prospect, Ninja Outreach starts to lag enormously the further you go down which really slows it down.
Go specific first and search for: pressure cooker.
IMPORTANT: Only after hitting search the filters appear, click on Filters and select the following:
- Has email address.
- Adjust the Alexa range, minimum of 0, maximum of 600k.
Make sure that with each filter change you wait to confirm if it gets applied, Ninja is a bit buggy at times.
From the 700 link opportunities, there are now 191 results left so, later on, we need to go broader.
Now it shows how irrelevant Ninja is, I search for pressure cookers and on the 1st page I run into this:
- Blood pressure issues
- Teen issues related to church
- Performance under stress
Hardly worth it to check the next 50 results if the first 50 are so irrelevant already but do it anyway.
Do check the singular version of the phrase as well: pressure cooker instead of pressure cookers.
Surprisingly when I search for the singular version a lot more food and recipe blogs show up, even on the second page, only after that it gets irrelevant again.
In case of pressure cookers, there are more popular products that are very relevant, you will see this on the search results and in this case that’s slow cookers, so if you don’t have a separate page for that go for it.
Broadening your search
Look up the category the product is in, you can use your imagination for this or head over to Amazon.com to see in which category they put it, in this case, we have a number of options like:
- Cooking (in general)
- Kitchen appliances
If you can’t get enough results there you have to go even broader and find its parent category which is Food.
I’m sure there are plenty of food/recipe blogs.
You can also use the topics you suggest to the sites to come up with keywords to search for:
- Easy Recipes you can Make in Less Than 15 Minutes
- Hate to Cook? This is How to Keep Your Family Healthy
- How to Make your own Food for at Work
This provides us a few more search terms like recipes, healthy eating, etc, as the first search term ‘pressure cookers’ only gave me 14 blogs to add to my list and we want at least 400 blogs to reach out to due to further filtering down later on.
All together this is a rather time consuming process and sometimes I doubt if this is the most effective way of spending our time.
Now if we don’t manually add sites like this there are consequences, first as mentioned Ninja starts to lag enormously when your lists grows into the hundreds of sites due to infinite scroll instead of pagination.
Secondly, we are using a custom email template where we suggest topics.
If you suggest topics to irrelevant sites there is a high chance that people start to flag your email as spam which affects your delivery rate and ruins the reputation of your domain so this is something you can’t skip.
Alternative Ways to Compile a List
You could manually scrape Google, or automatically scrape Bing.
I couldn’t get Scrapebox to scrape Google but it still works with Bing.
For manual scraping, I suggest the Chrome extension named Link Clump, once installed, adjust the settings and you will be able to select the results with your mouse while holding Ctrl+Z as you can see in the screenshot above.
First, release your mouse button and then release your keyboard combination to save it to your clipboard.
You can make the job a little easier for yourself by going to Google Search settings, which you find under Settings -> Search settings.
There you can select how many results you want to show per page.
I like to stick to max 30 results or Google will give you the ban hammer, and come up with captchas first and later disable your ability to search completely.
This happened to me when I showed 100 results per page, and later on with 50 results per page as well so don’t go too quickly here.
It’s needless to say that Google’s search engine is a million times better than Ninja’s search module.
The limitation, however, is that we can’t apply the same filters as in Ninja.
Though we can apply them after importing the list or use external tools for this instead, for example, Ahrefs’s batch analyzer or Majestic’s URL importer.
Ninja benefit: I think the greatest benefit from Ninja is their large database of sites which means they have a lot of email addresses on file and once you import your own list it automatically fetches those email addresses.
Once again, the biggest downside from Ninja is relevancy from its own search function as while I’m searching for slow cookers and just reached page four I get a lot of results like how to fix a slow computer, etc.
Another great way to help you to combine a list is by visiting sites that already did the work for you, just open them in multiple tabs when searching for something like ‘best cooking blogs’ and you will find numerous lists and LinkClump will once again help you to copy it all in one sweep to a file of your liking.
I’ve become a huge fan of LinkClump and I think this manual method is going to be my main way to compile a list.
We can also reverse engineer competitors of course but this is more time consuming then you think and just because they link to your competitors it’s not a guaranteed way they link to you as well.
Our success rate in previous outreach campaigns wasn’t higher when it was based on reverse engineering our competitors because our emails (and topics we suggest) are generally less targeted because many sites cover different niches.
Part 2: Export in Ninja and Filter with Ahrefs
I’m not so concerned with metrics like Majestic Trust Flow, referring domains, Ahrefs Domain Rating because in this tutorial we used Ninja Outreach and only selected blogs with an Alexa ranking of <600k so that should be sufficient for now.
What’s more important to me is the amount of traffic a site receives so that’s what we will use Ahrefs for.
But first export the list in Ninja?
After you completed compiling your list in Ninja Outreach you simply click on Lists again, which takes you to the main dashboard page.
Your latest list is the first one to show up and at the bottom of the list item, you can click on the small cloud to export your leads as a CSV file.
Now you want to open the file in Excel and go to Data -> Sort by columns, and use the comma as a divider.
At this point something odd happens when I do this, it doesn’t sort it equally over the columns so that I can’t just copy one column and be done but I found a trick for this.
Click Start in Windows and type CMD in the search field and run the command prompt by clicking on it.
Here you can navigate to the right folder by entering: cd desktop in my case and rename the file with extension by entering: ren pressurecookers.csv pressurecookers.txt.
I understand that not everyone is familiar with MS DOS command prompts so now you know.
Personally I wouldn’t know how to change a file extension in Windows so that’s me again!
Now I open the text file with Excel and it automatically suggests to sort it to columns, once again I select the comma as a divider and now it does sort it appropriately.
I don’t know why this happens, maybe I run an older version of Excel that isn’t 100% compatible with the CSV format Ninja Outreach delivers but this fixes the problem.
I’m using Microsoft Excel 2010 in case you wonder, and voila, everything is sorted under the right column as you can see below:
Note: This is actually not the pressure cookers list but a different one as I updated this post later on with images.
Next I’m going to remove all the columns I don’t need because I selected ‘Has email address’, so I only keep the website and email column.
I also give it a quick manual check just to make sure if all the sites have an email address indeed.
From the 400 sites I gathered I noticed 5 of them come without an email address (again: don’t ask me why) so I just remove those five sites from the list.
Ahrefs Batch Analyzer
Now we hop over to Ahrefs, and I hope you have a paid account with them, if not you should get one as their batch analyzer tool is the only useful traffic estimator I have ever found and allows you to look up 200 sites at a time.
SEMrush isn’t that terrible either but you don’t want to enter 400 sites one by one right?
There is one downside to Ahrefs as well, you won’t see where the traffic is from while SEMrush allows you to select the country so there is room for improvement.
In our guest post database we noticed we have a few sites that get 99% of their traffic from India which is kind of useless if you want to rank in the US so we purge such sites.
During cold outreach you can spend your time better though so we do ignore the country source.
Once logged in we go to More -> Batch Analyzer, or simply click this link.
Enter 200 sites at a time and click Analyze, this usually takes 5-20 seconds.
Once done hit export and open the file in Excel. Select the column Total Traffic at the end of your sheet, you might have to scroll a bit to see it, and copy all the values to your CSV file.
Make sure they match the right site (this is sometimes nasty when there are duplicates present in your list), though with Ninja Outreach I’ve never seen any duplicates.
I have to do this twice now because I’m left with 395 sites.
Job done, despite ranking in the Alexa top 600k about 10% of the sites have less than 1000 organic visitors/months so I’m going to remove them.
I do this by using the sorting function in Excel, you find it all the way to the right in your main tab:
- Select the column you want to sort.
- Click Sorting & Filtering.
- Select ‘from low to high or A to Z’.
- A new window pops up and select Expand Selection (important).
- Select all the rows with <1000 traffic, click your right mouse button and click remove.
Now I’m left with 349 sites instead, all good.
Below a little guide, how to remove duplicates before we move on to our next step and that is filtering the emails in Never Bounce.
Removing duplicates in Excel
If you are uncertain if there are duplicates in your list there’s a handy function in MS Excel to find those.
- Trim all your domains/links to the root.
- Remove http(s):// and www. using search and replace.
- Select the column that you want to check for duplicates.
- Click ‘conditional formatting’ in the main tab.
- Click ‘New rule’ from the drop down menu.
- Select ‘Only unique or duplicate cells’.
- Click Layout
- Click the Padding tab (I’m sorry if this is not the correct word, it’s the last tab though, I’m using Google Translate as my Excel version is in Dutch).
- Select the background color for the duplicates and click on OK in both windows and you’re done.
Any duplicates now show up in the color you selected so that you can remove those rows manually, there shouldn’t be too many.
Part 3: Filter Emails with Never Bounce
Why is this important?
If more than 10% of the emails you send get flagged as “mail not delivered” it is said that your mail only reaches 50% of the inboxes in total.
If more than 20% gets flagged you can imagine this gets only worse and it might ruin your domain’s reputation.
Now I don’t know If all of this is true, sites like Zero Bounce, Never Bounce come up with these statistics so it’s not very biased of course but what’s more important, we did see an increase in response after we started using Never Bounce.
It’s no hidden fact that domain reputation does play a role when reaching out in bulk so I highly recommend these type of services.
So I hop over to Never Bounce.
Click Sign in, click Add list from the dashboard, and it asks me to upload my file in CSV format.
After dividing the text to columns we kind of ruined the CSV format but when we simply remove the traffic column that we added and only leave the website and email column we can save it as CSV again.
In my case this does throw a few errors in Excel but it doesn’t affect the outcome.
I mean it’s not comma separated anymore but Never Bounce accepts it nonetheless.
After uploading I need to select Clean My List (paid), and it asks me how I want to pay, we always buy 10,000 credits at a time so I select from our credits of course.
Now we need to wait and this can take a while (5-20 minutes) so if you have any other tasks in between you can do them now and check back later.
I find it a little annoying when doing outreach for a client as I often charge by the hour for larger clients and then I have to focus on something else, and write my time down as I obviously don’t want to bill a client half an hour when the tool does its work.
It looks like it’s quick but it always hangs on the last few percent.
Email status explained
Oh well that’s quick, it only took about 5 minutes this time.
Now we click on Download and we get a number of options:
- Deliverable (Recommended)
- All results
I always choose all results as I can use my sorting from A to Z option in Excel on the status column.
It automatically renames my file to pressurecookers.all.csv, not that I still need the old CSV file but still.
I was going to explain the different statuses so let’s do that now:
- Valid (these are the ones I’m going to reimport in Ninja Outreach)
- Catch_all (unverifiable), I just noticed they renamed this to accept_all.
- Unknown, I’m not exactly sure what to do with those.
- Invalid, delete right away.
After deleting the invalid ones I’m left with 330 sites.
I’m going to move the accept_all and unknown to a different tab in Excel, and now I have 255 sites that I can import in Ninja Outreach again and 75 sites that I have different plans with.
What to do with Accept-All & Unknown emails
You definitely don’t want to email those addresses from an email address associated with your main domain name.
I don’t even want to email those from a domain that I set up specifically for outreach campaigns but there are two other options.
Use a Gmail address, you might burn through them rather quick but you can always buy a new SIM card and register a new Gmail address.
After using the same phone number two or three times to verify your new accounts Google puts a stop to it so I simply get a new prepaid SIM card for a few dollar.
It’s not the perfect solution but Gmail integrates with many mailing providers so it’s good to have backup options, especially if you reach out in bulk or for multiple sites.
Use a tool to gather the contact pages of the websites.
You could use Ninja Outreach for this by re-importing those sites to a new list named: Pressure Cookers (catch all).
That’s what we used to do.
Then let Ninja find the contact pages automatically, and then repeat the export process again.
What you can also do is use another tool for this.
I prefer to use GSA Website Contact, this tool automatically scrapes the contact pages of a list of sites that you insert and is doing a pretty decent job at that, it does it rather quickly as well so before I start reaching out in Ninja to the valid emails I setup GSA.
Combining the first and second option
You will never reach all of the sites this way but if you combine it with Gmail you definitely increase your changes.
As for GSA, you get a 40% success rate on average.
At the bottom of this post, you will find a guide that shows you how to use GSA Website Contact
Part 4: Creating a Custom Outreach Template
Let’s keep this short & sweet, click Templates, and then Create Template.
Give the template a name, enter your subject title, and below that, you’ll find the editor where you can compose your email.
Ninja sucks when it comes to finding names of people so we don’t personalize it with Hi First Name, there is a replacement function when the name is missing but that option is buggy.
The last time I tested this the email arrived as Hi First Name, which is awful of course.
What we can do instead is use the URL of the site and start with:
I just visited your blog: Website Url…
As the website URL is obviously never missing!
Having said all that, here is the custom template we use:
I just rewrote it a little bit as I don’t want everyone to use the exact same template but it comes down to pretty much the same thing:
My name is Dennis and I work for [insert site you work for].
I’m mailing you because I found your site: Website Url , and was wondering if you accept guest posts?
Here are a few topics I had in mind:
- Topic 1
- Topic 2
- Topic 3
If you are interested please let me know, and if none of them speak to your imagination I can always suggest some different ones.
I’ve done quite a bit of guest posting, below some samples we did for other sites:
I hope to hear from you soon!
That’s it, easy right?
We came up with this ourselves only to find out later that Authority Hacker uses almost the exact same outreach template as we use.
Maybe it was buried in my sub-conscious, who knows and it doesn’t really matter as it’s always a good idea to suggest topics and showcase your previous work.
Part 5: Import, and Email
So at almost 3500 words this guide is becoming longer than I thought but we’re almost there.
Back to the main dashboard, hit Create List, name it: Pressure Cookers (Valid), and click Import List.
Next is type of import, I select Websites here and copy the valid ones from my Excel sheet.
Just in case I messed up somewhere with the CSV sheets, Ninja will attach the correct email addresses to the correct website again.
After clicking Import, Ninja says: Gotcha, leads queued for importing, and once that’s done they inform you by email so we can take a little break again to grab a cup of coffee or something as this doesn’t take long.
I already received the email that the import is ready with 255 results but when I refresh the page it shows zero contacts.
There is a reason for this, your original list already contains those 255 results so Ninja won’t allow you to import it in another list so what you need to do to prevent this is remove the original list first by clicking on the small removal sign in the list item.
I just did this.
So we click Import, paste our site list again, and wait again.
Now we see an actual status bar with 253/255 imported, great!
Odd enough it says 254 found with email instead of 255 but so be it, one more or less won’t change the world.
Time to hit Start Outreach
Oh boy I am getting excited here, now it’s finally going to happen!
Ninja takes you through a kind of wizard here and asks you three questions:
- The list you want to select (kind of redundant as I clicked Start Outreach in that list).
- The email address you want to send from (you can have multiple email addresses of course).
- The email template, (we already prepared one for Pressure Cookers).
Actually this wizard kind of annoyed me as I’m not a new user, still I had to click Next a dozen or so times before this wizard closed but so be it.
It’s not like the wizard allows you to select anything as it works as a kind of layover so by the time you reached step 12 you already forgot what you had to do in step 5.
While writing this guide you can clearly notice my annoyance with Ninja for multiple reasons.
I also explained the absolute plus side that it has a huge database and a lot of contact details on file so that’s the only reason why we keep on using it now and in the future.
We don’t use Ninja to check the replies because sometimes they never arrive in their system but do arrive in our Webmail.
I also have serious doubts about their follow-up sequence, whether the follow-up emails get send at all that is.
So don’t think this is a glowing review of the Ninja Outreach tool.
It actually started as a guide for my VA, but while I was at it and needed to explain so much in detail I thought let’s make it even more detailed and post it as a guide on the website.
Anyway, we forgive Ninja for their short comings and I’m pretty sure they’ll address it in the future, but as said, none of the shortcomings are truly essential for our purpose, we just work around it.
Okay, where were we?
Yes, we selected our list, the From email address, and the template, next is how many emails you want to send per day?
200 is max and that’s already preselected so no need to do a thing here.
Select a follow-up email template, okay not sure if it arrives but heck why not, we already prepared it last time.
Send the follow-up email after three days and click Check Leads, here you can preview your email and verify all the data, I like the option that shows you how your email arrives and just noticed a small mistake.
The last thing to do is hit LAUNCH CAMPAIGN and it appears under Active Campaigns.
BONUS PART 6: GSA Website Contact
Because we have so many contacts left with email addresses that are rather dubious (catch_all & unknown) we don’t want to contact them from our custom domain but use Gmail or GSA instead.
Hence a little addition to explain GSA in more detail as it can be a little confusing when you never used it before.
Before you hop over to their site to buy it you need two additional services:
- DeathByCaptcha (name speaks for itself).
- org (our favorite proxy provider).
Also good to know, when you submit a contact form it gets submitted through the website’s internal system, however, that doesn’t mean that there aren’t spam databases that check for this.
So when submitting hundreds or thousands of contact forms with the same email address you will get blocked at some point so you want to switch that up.
Once again, use your throw-away Gmail for this instead of your domain email.
Once you bought the program and activated your license you click New in the tool.
A settings window pops up, and there are quite a few things to do so let’s put it in a list:
- Check use proxies for search engines.
- Check use proxies for sending/parsing forms (I’m not sure if they flag the email or your IP).
- Look at the bottom and deselect all search engines except Google (bit of work).
Filter tab – we don’t use this.
Submission content tab
Edit the following:
- First name
- Last name
You need to double click each to edit it, no need to bother with the rest.
Keep in mind that if you use it again for a different page on your site to adjust your subject and message, and perhaps your email address.
Simply click on Add, and select from a huge list of captcha providers, enter your credentials, and hit the test button to make sure it works, or to simply check if you still have enough credits.
Scheduler tab – we choose to ignore.
Notes tab – no use for.
I knew we forgot something, our proxy settings, you find those in the same Settings popup under the Scraping tab, next to the questions what you want to use proxies for so click Configure.
I delete all my proxies here as BuyProxies supplies me a new set each month and last time I used them for Netpeak Checker I was getting a ton of Google Captcha requests so I think they are outdated.
I was on holiday for almost a month, returned last week and haven’t done any custom outreach since so it’s a good time to login at buyproxies.org to copy the new list.
So I copy all the proxies from buyproxies, click Add Proxy and select the bottom result that says:
Import from clipboard (host:port:login:password)
If you use another provider make sure to double check if the format is right, in my case it is, so once I click OK it automatically tests the proxies and they are good to go.
If you use public proxies, which are free, there are a number of other options to choose from like scraping new proxies every xx days and so on.
Importing a list of sites
Before I start to import I want to clean up my history first so I click Tools -> Remove -> All, to get rid of everything as the way it’s presented is sometimes a little bit confusing.
Now I go to my other tab in Excel, copy all the sites and in GSA I click Tools -> Import from clipboard, and the 75 sites appear in the waiting row.
Scraping for contact pages
Pretty straight forward, click Start -> Check websites, and it will try to find contact pages.
Now keep in mind the failure rate is rather high this time, so it might be a better idea to import the list to Ninja Outreach again and use the contact pages they provide instead.
That way you don’t have to use the “Check Websites” option, it’s not like you lose any time because this is a rather time/CPU intensive process that happens on your computer using your local internet connection.
This must be a pretty poor batch as usually it does find about 50% of the contact pages but in this case it only found 24 out of 75 and 1 result filtered, so that’s only one/third and it hasn’t even tried to submit yet so I will definitely contact this batch of 75 sites through Gmail as well.
Sending the message
This is the last step, once the checking/scraping is complete you hit Start again and Send Message, it shows the message in a popup and asks you to confirm it.
Then it asks if you only want to submit to the selected sites or not, I hit NO here so that it submits to all the sites I have in the que as it only takes the ones that have a contact page (light up in green) anyway.
That’s also the reason why I always clear the history before I start a new batch, keep it as easy as possible.
After completing the task I noticed that 22 messages were sent out of 75 in total so that’s a 30% success rate, little lower than usual.
Some Last Words
I just checked the word count again we’re at 5000+ words now, quite a guide for a VA I can tell you and it took me a good 5,5 hours.
When I don’t have to write and explain it this whole process still takes me about 2,5-3 hours, most of that time is spent on compiling the list in Ninja, and on average half an hour waiting for tools to do their job like NeverBounce, GSA, and the import function from Ninja.
That’s almost half a day to send out a few hundred emails.
I’m pretty sure I can speed this up drastically and reduce it to an hour and half or less if I don’t use Ninja to compile a list.
Besides time there are costs
People often like to pretend that they land links for only the cost of content but time equals money, and if we didn’t have a tool like Ninja we spend a lot more time or money on VA’s to collect emails.
There are other tools that collect emails of course like Hunter.io but we haven’t tested their efficiency yet.
I read something that they are guessing emails, which is far from ideal of course.
Quick cost overview:
- Ninja Outreach sets you back around $1200/year (you need to cough that up right away, no monthly subscription available)
- Ahrefs subscription goes for a similar amount (which you can pay per month or every three months)
- Then we have some smaller costs for the captcha’s and the proxies which is about $300/year.
- GSA Website Contact (one-time cost of $97).
- The cost of content not to forget when a site accepts your guest post offer.
- Your time multiplied by $xx/hour or if you managed to train a VA successfully perhaps $x/hour. My congratulations as there are so many steps involved that it’s quite a challenge of its own.
So is it really that cheap and easy to do it yourself?
It isn’t all that difficult, I mean once you’ve done it a few times you definitely get the hang of it.
Definitely not cheap though, if you have a single website and you use the same tools we use you spend at least $3000/year.
Now translate that into paid guest posts from our database and that’s about 30 guest posts.
If your SEO budget is limited to $300/month or less it’s clear that you can’t do it for much less yourself.
If you have multiple websites instead and you have the time to do it yourself or the time and patience to train other people then it would make sense to do it yourself indeed.
I’ve been doing custom outreach for a client for a while now and our costs come down to $75/guest post on average.
That’s a little cheaper then what we offer it for in our database (see a screenshot of our database below), but it still takes quite a bit of back & forth for the client to approve sites that are accepting our offer.
Before you click on the above screenshot make sure you are logged in by clicking Register first, only then will you be able to see all the sites in our database.
Unregistered users only see a small sample without filter options.
We can proudly say that we are the most affordable provider when it comes to either custom outreach or the sites that we already closed deals with in our database so if you do plan to outsource it give us a shot and I’m sure you won’t be disappointed.