How To Build A Local SEO Site With SBPM

How To Build A Local SEO Site With SBPM

Although SBPM was originally designed to create websites that made money from displaying eBay or Amazon affiliate links underneath or in the middle of a block of spun content, it can be used to build different types of websites.

I know that a few users of SBPM have been using it to create sites that are designed to target a specific geographic area, mainly for advertising local services or companies. I call this creating a “Local SEO” site.

Creating local SEO sites based around offering a service such as plumbing or dry cleaning is also achievable with SBPM and using custom variables, you can create posts and pages that have generic but relevant content designed to target people looking for local services.

Site structure

I want to make the site look as good as possible, so apart from the SBPM generated content I will also be adding some articles too, especially to the home page.

The home page article must be 100% unique (not spun) and will help make the site look more credible to the visitor.

I will use a service such as to have an article of around 1000 words created about my chosen theme/topic. Adding images and videos to this long-form content to help it look more attractive and professional will help too.

If the site gets well received by the search engines, I may also return to add several shorter “how to” or “guide” articles later as this will help with the overall organic SEO of the site. These can be short 500 word articles that relate to the main topic.

Heck… I might even use LongTailPro to find some good keywords to target for these shorter posts.​

Thinking about visual design

It would be nice to be able to hide the main “thin posts” as much as possible and just keep the sidebar content to a minimum (or get rid of the sidebar totally).

I would configure a widget to show posts from the same category as the current one, so that the visitor does not get bombarded with too many choices or posts that are outside of the state they are looking at.

You can use the Ultimate Posts Widget plugin to achieve this.​

Monetization Strategies

local seo money

There are several ways this type of website could be used to make money. If you are looking to use more specific towns and cities (within a smaller geographic area) instead of something that is countrywide, you can use a lead-magnet (PDF or email auto-responder series) via an opt-in form to capture the visitors email address and details.

The email address information can then be sold to a local company for a price-per-lead. Imagine how much money a local lawyer makes from each client in the long run – it’s got to be worth around $40 per lead if you can introduce customers to them direct. They just have to close the deal themselves and you get paid regardless.

How NOT to make money with a thin local SEO site…

In an ideal world, you could create an SBPM site with this sort of content and use Google Adsense to generate money, but this is the fastest way to get your Adsense account banned – so please, please, please – do not do this.

Instead I will be placing affiliate links to Amazon Home Services, a section of where you can book a local professional to attend your property to carry out any number of different services. Amazon pick the contractors and handle all of the payment process, which is great for the customer, the company that does the work and me, the affiliate.

The Amazon Home Services product is not available in all areas just yet, but there is a good chance that there will be something available for most major cities. If not, I still have the chance that the visitor to my website will buy something within the 24 hour cookie window.

Local SEO Data Sources

To start, you will need to have access to some data of cities or towns in the locality you are targeting. For this case study, I will be using the data from, where you can download open source databases (CSV, Excel or SQL) of US or world cities. This data also includes ZIP, state and longitude and latitude data too, which we can use as SBPM custom variables.

Lets start by using the United States Cities And Zip Codes Database, which I have downloaded as CSV and imported into Excel. My idea is to create a WordPress site with different categories for each state and then posts for each city within that state. The service I will be targeting is Lawn, Garden and Yard maintenance.

Looking at the data

The CSV file comes with the following fields:

  • zip
  • state
  • city
  • lat
  • lng

To prepare the data, I will use Excel to combine these fields together to create the SBPM keywords with the state as the category, the city as the keyword and then zip, latitude and longitude as 3 custom variables.

In column F, I have entered the following formula in each row:


his converts the data into this format:


When I copy and paste all of this data into SBPM, it generates 29,470 possible posts (when I use all rows of the spreadsheet). We can then use the “After” option in the Pre and Post Title Options box in the SBPM settings to add the service information.​

I have entered this into the “After” field:

%%category%% Yard Lawn And Garden {Care|Services|Maintenance}

This will mean that the WordPress post title will be something along the lines of (remember that the %%category%% placeholder will be the state code):

  • Acmar AL Yard Lawn And Garden Care
  • Acmar AL Yard Lawn And Garden Services
  • Acmar AL Yard Lawn And Garden Maintenance

Add the supporting spun content

So now I have the keywords sorted, I need to add some generic content that will bring visitors to the site and give them information about lawn care with a call to action to buy from Amazon Home Services.

I need to make this content relevant to the location but also generic enough so that it can be spun and not sound too rubbishy. I have used Spin Rewriter to generate some spun content about the topic of lawn and yard care and added a paragraph at the top that signposts the user that it is local to the area they are in.

Add a Google map

add a google map

I also want to embed a Google Map of the local area too, which will add some good evidence for the visitor that the site is designed for them and their area.

To do this, we can embed an iframe that uses the longitude (%%lng%%) and latitude (%%lat%%) custom variables. I have also put this map inside a DIV and used CSS to float it to the right on the page to keep it all neat and tidy.

<div id="google-map" style=“float:right;”><iframe width=“350” height=“350” frameborder=“0” scrolling=“no” marginheight=“0” marginwidth=“0” src=“,%%lng%%&hl=es;z=14&output=embed”></iframe></div>

Add some images

I have written before about using random images in posts with SBPM, so I won’t go over the top here discussing it and how it can work.

I will choose some open source images that are generic, but relevant to the topic and upload them to my WordPress site, making a note of their file names first.

I want the image to show lower down the page as part of the content, floated to the left too.

<div id="%%category%%-lawn-care-image" style="float:left;"><img src="/{lawn-care|yard-care|garden-care|yard-services|yard-garden-care|patio-cleaning}.jpg" alt="{lawn|garden|yard} {care|maintenance|services} providers %%keyword%% %%category%%" title="{picture|image|visual} of {lawn|garden|yard} {care|maintenance|services} in %%keyword%% %%category%%"></img></div>

To make this code work, I will need to have several images placed in the root of the domain with the following filenames:

  • lawn-care.jpg
  • yard-care.jpg
  • garden-care.jpg
  • yard-services.jpg
  • yard-garden-care.jpg
  • patio-cleaning.jpg

As you might be able to see from the example above, I have added some additional ID, ALT and TITLE tags to this code using spintax and the SBPM custom variables to ensure that not all images have the same properties. This helps make the site more unique in the eyes of a passing GoogleBot, but helps keep some real SEO value too.

Add a call to action

buy now CTA

The next step will be to add a call to action, where the person visting my local SEO site will see the map, read a little of the content and then click the link to take them to the Amazon Services page.

There are several ways I could do this, by using a general text link at the bottom of the page, or by adding a link to the image I will be inserting (not a bad idea). However, I would like to add a button that they can click.

Many WordPress themes have their own shortcodes built in to allow you to create a nice clickable button. If you don’t have such a theme, there are a number of websites you can use to create a CSS button and then copy and paste the code into the SBPM content area. We can also add some spintax and SBPM custom variables too so that the “Click Me!” text is more relevant to the visitor.


For this example, I will be using the website Best CSS Button Generator as they have a good range of pretty looking buttons 

The generator spits out a chunk of CSS code that you will either need to add to your theme’s custom CSS area or add as part of the SBPM post content.

The HTML that the generator creates is quite generic and references the CSS with an additional class name, which will make it look pretty.

<a href="#" class="myButton">green</a>​

​However, I need to add 2 things to this code to make it work for me.

  • An affiliate link to the Amazon Home Services page.
  • The spintax to change the text on the button from “green” to something else.
<a href="" target="_blank" class="myButton">{Click To |Go And||Click Here To} {See More On|Read More About|Review|View} %%keyword%% {Maintenance|Contractors|Services} On Amazon{|.com}</a>

Putting it all together

Now that we have the main components of the page, we will need to paste it all together in the SBPM content area.

Add the main spintax content and insert the button HTML in the middle somewhere. You will also need to add the code to add the image and map too.

If your visitors decide to read the whole page, you will need to add a call to action towards the bottom too – so it might be worth adding a simple text link or copying the button code there too. This will give them one last chance to click through on your affiliate link.

Add some SEO data


An important part of getting visitors to the site will be having a good page titles and META descriptions. To set this up, we can use the SEO options within SBPM that will automatically work with either the All In One SEO Pack or Yoast WordPress SEO plugin.

The key is to generate a short META description that contains our target terms (yard, lawn or garden care) and the location the page is created for. We also want to keep this under 160 characters if possible.

This is then added to the SEO Description field inside the SBPM settings. If we don’t do this, the description will just be a truncated version of the start of the post – not ideal for on-page SEO.

I like to phrase my META descriptions as questions to entice the reader to click through for more information.

{Do You Need|Want|Need To Hire|Looking For} {Lawn, Garden Or Yard|Yard|Lawn|Garden|Garden And Lawn|Lawn And Yard|Yard And Garden} {Services|Work|Maintenance} {Near|Around|In} %%keyword%% %%category%%? {See|Find|Get|View} {Our Recommended|Top Local|The Best|Top|Local|Expert} {Workmen|Companies|Contractors} Here.

The final touches

First, make a few test posts to make sure everything is working as you expected. There is nothing worse than generating thousands of posts and then noticing that you missed something off and having to start over – not that it is hard to change with SBPM.

Now that SBPM allows you to have 3 different content blocks, I would copy and paste the content from the main area into the 2nd and 3rd tabs and make some slight changes.

Perhaps the images or map will float to a different side, or be bigger or smaller. You could even use totally different content or a different layout to make the posts more unique.

Make Posts!

This is the part where you make the coffee, push the “Make Posts!” button and let SBPM create the posts for you. If you are making 26k posts, it might take some time, time out a few times, or you might have to do the posts in batches of 5000 at a time – it all depends on your hosting.

Read more about how to make hundreds of thousands of posts with SBPM.​

As we have used some spintax in the “After” field in the “Pre And Post Title” section, each post title will not be preset – you could run the process over and over, until you have created every combination possible. This could take your site to near 100k posts if you really wanted to.

​What to do next

I usually finish up by installing and configuring a caching plugin such as W3 Total Cache.

It’s best to do this after creating all of the posts as having it enabled when publishing a post will add overhead to the process and could make it run very slowly.

This concludes my tutorial on creating a Local SEO site using SBPM.

What do you think of my method?  What would you add or leave out?

Or have you created one of these sites before and have a few tips for others?

Let me know below :)​


Using Images With SBPM

One of the many questions I get asked about using SBPM with WordPress is how it can be used to create random images within the content of your posts and pages.

You might want to do this to add some visual disruption to your posts, to help separate one area from another, or to highlight a product or type of product you are talking about in the post content. Adding images to posts is always a great idea and is something that many readers want from a good website.

​Adding random images.

photo credit: Gangsta Cat(license)

To add these random images within our SBPM posts, we will have to rely on a little combination of HTML and SpinTax. WordPress is great at allowing you to add images using their interface, selecting the size, title, alt text and positioning but we will have to go a little “old school” here to get the result we need.

I will have to assume something here too, that you either have a folder full of images called pic1, pic2, pic3 etc, or a folder with images called names such as product.jpg, main-pic.jpg, logo.jpg etc.

Which ever of these you have, it is best to start by getting a list of the file names you want to have shown in your content. If you are using an image as part of a post about a product or line of products, make sure it is relevant and not too specific to a model.

This will avoid your post about the WhizzBang Juicer 200 having an image showing the CrappyJuiceSystem 100 instead. In these circumstances, a generic picture of someone juicing might be more relevant – but there are ways we can add the specific image if we want to, but more of that later.

Adding a basic image.​

photo credit: HTML Tag an einer Fußgängerbrücke über die B46 in Offenbach

The basic HTML command to add an image to a web page is as follows:

<img src=“filename.jpg”>

This will load and display an image called filename.jpg (probably from the root folder of your domain) and display it in the WordPress page or post, without adding any additional settings that might tell your browser how big it should be or what the ALT text is.

If we had a list of images that we wanted to show randomly within the post, we could use some Spintax to select one and show it.

<img src=“{image1|image2|image3|image4}.jpg”>

Each time SBPM makes a post or page with this code, it will randomly select either image1, 2, 3 or 4 and add that in to the page content. Of course, you will need to have images already uploaded that match those names or the HTML will just show an empty space.

We could make that little block of Spintax even simpler, like this, where we are only spinning the number, rather than the entire filename:

<img src=“image{1|2|3|4}.jpg”>

But what if you have a selection of images that all have different names?

Unfortunately, the Spintax will get a little complicated here, but only have to make it once.

<img src=“{product|main-pic|logo}.jpg”>

Here, we are referencing individual images with differing names, which we have made a list of earlier. Although they are all JPG files in this example, they could just as easily be a mixture of image formats too. You will just need to tweak the Spintax in SBPM to account for this.

<img src=“{product.gif|main-pic.png|logo.jpg}”>

Adding specific images.​

photo credit: Juice FTW!

There are a few ways that SBPM could be used to add specific images to a post or page. You might want to do this to show an exact product when posting an Amazon review.

You can upload an image that matches the keyword you are using to create the post and use  HTML to load the exact image.

SBPM will replace the %%keyword%% placeholder with the name of the post and the relevant image will be loaded. For example, you could have the following keywords loaded in SBPM to create posts.

Juicer 9000
Fruit Crusher Pro
Banana Musher​

If you wanted to load an image for each of these, you would could add the following code in to your content:

<img src=“%%keyword%%.jpg”>

However, you would need to ensure you have images with the exact names (including capitalisation and spaces) uploaded too:

Juicer 9000.jpg
Fruit Crusher Pro.jpg
Banana Musher.jpg​

The same type of functionality could be achieved using SBPM custom variables with your keywords. If you add an %%image%% variable to each keyword, you can control which image will be shown:

Juicer 9000(image=juicer-900.jpg)
Fruit Crusher Pro(image=fruitcrusher.jpg)
Banana Musher(image=Banana-Musher.gif)​

You could then add the following code to the SBPM content, referencing that new image variable.

<img src=“%%image%%”>

Grabbing images from Amazon.

photo credit: Amazon boxes

Loading images from items from Amazon is easy when use can use the ASIN number of the product as a custom variable. Amazon have a great naming convention for their images, so by adding the ASIN as a customer variable to your keywords you can add the images quite easily.

See my post on using AmaSuite to get keywords and products for SBPM here, where you can learn how to quickly and easily get the ASIN number for each product.  You can also use the CSV To SBPM converter to take data from AmaSuite and make it compatible with SBPM.

Lets add the ASIN custom variable to our keywords for each of the products we are making posts about:

Juicer 9000(ASIN=B123456)
Fruit Crusher Pro(ASIN=C678900)
Banana Musher(ASIN=A112233)​

The link to a medium size Amazon product uses the ASIN code as part of the URL, so using the new ASIN custom variable, we could grab the image for each of the 3 products we have listed as follows:

<img src=“”>

This will allow you to show the specific image for the specific Amazon product in your content.

Formatting your images.

photo credit: National Print Museum of Ireland

Once you have chosen which images you will show in your content, you can add some additional HTML code to your <img> tag that will style the image and also add other useful SEO data.

Align the image randomly

When you show your image, you may want to have the text flow around it, rather than it just leaving it hanging there on it’s own. To do this, you will need to add the ALIGN element to your image.

<img src=“image1.jpg” align=“left”>

The above example will move the image to the left hand side of the screen and any text following that image will be wrapped around the side. The full list of options are:

  • left – Align the image to the left
  • right – Align the image to the right
  • middle – Align the image in the middle
  • top – Align the image at the top
  • bottom – Align the image at the bottom​

​Using Spintax, we can randomise the output of the ALIGN attribute, like this, allowing for a truly random output of how the image appears on the page:

<img src=“image1.jpg” align=“{left|right|middle|top|bottom}”>

ALT text and TITLE text

photo credit: Life Story

If you want to follow the proper HTML standards, each image should have a title and also some “ALT text”. The title should give a description of the image and the ALT text is shown if the browser has the images turned off or if the image can’t be shown for some reason.

The ALT text is generally used to tell visitors what the image is and should be short and sweet, whereas the TITLE attribute can be more descriptive and tell the visitor what the image is about and include supporting information.

These 2 attributes are mainly used to improve website accessibility, where people with impaired vision or mobility are wanting to use your site. However, these 2 attributes are also good for improving the SEO of the page.

<img src=“image1.jpg” title=“The juice crusher 900 is excellent for creating carrot juice” alt=“juice crusher 9000”>

Using Spintax, you can change these 2 values to become more unique for each image on your page.

<img src=“image1.jpg” title=“{This|The} juice crusher 900 is {amazing|cool|perfect|excellent} for {making|creating} carrot juice” alt=“{The juice|juice} crusher {9000|nine thousand}”>

Putting it all together.

photo credit: Following the faces of the deltoidal icositetrahedron

Now we know how to add random images, or specific product pictures using Spintax and SBPM, we could put all of these elements together to create the full IMG tag.

<img src=“image1.jpg” align=“{left|right|middle|top|bottom}” title=“{This|The} juice crusher 9000 is {amazing|cool|perfect|excellent} for {making|creating} carrot juice” alt=“{The juice|juice} crusher {9000|nine thousand}”>

You can also reference any other SBPM variables or custom variables in these 2 elements too, which will make them more relevant, especially if you are using random images.

<img src=“image1.jpg” align=“{left|right|middle|top|bottom}” title=“{This|The} %%keyword%% is {amazing|cool|perfect|excellent} for {making|creating} juice” alt=“%%category%% %%keyword%% %%ASIN%%”>

You could even take it further by adding image sizes or some CSS style too, both with some added Spintax to make them appear more randomised per page.

<img src=“image1.jpg” width=“{250|210|245|200}” style=“border:{1|2|3}px {dotted|solid|dashed} {grey|green|blue|black};” align=“{left|right|middle|top|bottom}” title=“{This|The} juice crusher 9000 is {amazing|cool|perfect|excellent} for {making|creating} carrot juice” alt=“{The juice|juice} crusher {9000|nine thousand}”>

We all know that search engines like Google and BING look for footprints on pages to try to determine if they are spam or auto-generated garbage. Using these techniques to show images in your SBPM content, you can make the pictures on your pages appear more unique. Taking the time to do this will make your site look better and get more visitors in the long run.

Use your theme’s image styles.​

photo credit: how to make WordPress needle cushion 3

Depending on which WordPress theme you are using, you may also have some additional image styles or attributes you can use. Often, themes use CSS to ALIGN the images left or right or have built-in support for adding drop shadows or fancy boxes and borders.

If you want to use these in your SBPM code, it would be best to create a dummy post in WordPress, add an image and start messing with the options. You can then look at the HTML code that produces the image and copy that as a starting point.

For example, using Thrive Themes (which I use on this site) when adding an image to a post, it automatically adds an HTML CLASS element to the IMG tag:

<img class=“alignleft wp-image-280 size-medium” src=“” alt=“csv to sbpm tool output” width=“300” height=“180” />

The theme uses the CSS class to align the image and also set the size, all of which will be used to determine how much of a margin to show around the image and how it will look on the page. If you start to experiment with making your images look different, you can look at how the images are handled in your theme for some more formatting and styling hints.​


Using AmaSuite With SBPM

Unless you have been living under a rock with no access to your email, or are busy “prepping” whilst “off grid”, you might have noticed that Amasuite version 4 has been launched by Chris Guthrie and Dave Guindon.

Amasuite is a collection of tools that allow you to grab Amazon product data which can be used to select the right products to promote on your affiliate sites, or even to work out which products might be worth selling yourself, if you are part of that Fullfillment By Amazon white-label bandwagon.

Amasuite is a set of 4 tools, all designed to help you get data about the best selling Amazon​ products in a given category or niche.  You can then use this data to find out what is selling best, what commission you will get or give you information where you could possibly sell your own product on Amazon.

What comes with Amasuite:

Azon Top 100 Analyzer

Extracts the top 100 best selling items from Amazon categories.

Azon Product Inspector

Research Amazon products using keywords and categories to pull the best selling products for your niche.  We will use this tool in this article to find the details of the top 200 selling products in a specific niche.

Azon Keyword Generator

This tool grabs the Amazon autosuggest keywords, based on a seed keyword idea.  These keywords can be used to create posts or tags in WordPress using SBPM.

Azon Review Finder

Give this tool a category or list of Amazon product IDs and it will extract the name and email addresses of the people who have reviewed the product.  This software is new in Amasuite 4 and is geared towards people who sell products on Amazon and are looking for people to review their products for free.


Amasuite also comes with a massive amount of bonus training, WordPress plugins and information to help you become an Amazon affiliate or seller.​Click here to check out Version 4 of Amasuite

I have used Amasuite version 3 to build sites with SBPM, using a combination of phpZon ProEasyAzon or ReviewAzon and thought it would be a good time to go over the process I use when creating sites using thse tools. The new Amasuite version does look like it contains some new bells and whistles, but version 3 is still perfect for this job.

1. Grab data using AzonProduct Inspector

In this example, I will be building a thin affiliate site on the topic of Dog Collars. I just chose this niche at random, but the process will be the same for the niche you are in.

  • Open the Amasuite Product Inspector application and enter “dog collar” in the “Search phrase” box.
  • Tick the “Exact Match” option.
  • Choose “Pet Supplies” from the category dropdown.
  • Set the “Extract Items By” to “Popularity”
  • Set “Max Pages” to “10” so that I get a good range of products.
  • Click the “Start” button on the toolbar and let the AzonProduct Inspector do it’s thing.

Once it has finished getting the results, I then click the “Save” button on the toolbar and choose “CSV” from the list, which allows me to save the data out to my hard drive for later use.

2. Import into Excel

We then need to open the CSV file we created in Excel to tidy it up before we can use it in SBPM. You can usually double click the file to open it direct in Excel, or you can open the CSV as a text file and copy and paste into a blank Excel worksheet.

If you get the data in Excel and it looks like one massive chunk of text in one column, you will need to select column A and choose the “Text To Columns” option from the “Data” tab. You can then choose “Delimited” and “Comma” to split the data into separate columns.

Learn how to do this at the Excel Easy Text To Columns tutorial.

After you have got this sorted out, your Excel should roughly look like this:

3. Tidy up the titles.

Firstly, I would look at the titles of the products, with a view to making them more WordPress friendly.

I start with removing any instances of the following types of characters in the Amazon product title:

" ' # ~ @ : ; /  * & %

I select the “Title” column and do a search and replace for any of these characters, replacing them with a single space.

Once you have done this, the last step is to do a search and replace for two spaces and replace them with a single space. You will need to do this a few times, until Excel can’t find any more to replace.

People who sell on Amazon are almost as bad as on eBay when it comes to naming their products, using extra information that looks bad when it is used as a WordPress post title.

Unfortunately, this requires some manual editing of each item, but in the long run, it looks better for your site if you use this as your post title and keyword:

SportDOG Rechargeable NoBark 10R Bark Control Collar

Rather than:

SportDOG Rechargeable NoBark 10R Bark Control Collar PLUS REPLACEMENT BATTERY & PET EMERGENCY Contact Information...

Which is the original title that Amasuite extracted from Amazon.

Another thing you can do, is to make a copy of the title column and turn one into a more compact title and the other can be used as a custom variable. Just remember that if you do this, you will need to change the column name in Row 1.

It might also be a good idea to rename the column headers to make them unique.  SBPM will work with spaces in the headers.  The custom variable of %%Product Id%% will work – but maybe %%ProductId%% is better.

4. Delete or rearrange the columns

The last part I do before the import to SBPM is to either delete or rearrange the columns so they are in the right order. I want the keyword (or Amazon title) in column A, so I just add in a new column and then drag and drop to the right place.

There are a few columns that I would probably not even use, such as the link to the reviews, category name or the amount of money you will get from a sale of that product.  Just delete the columns you think you won’t need to use.​

Amasuite version 4 allows you to automatically embed your Amazon Associates ID into each link, which is a great help.  Not impossible to do in Excel though :)​

This is how my Excel file looks now – all neat and tidy :)​

5. Import to SBPM

Now, there are 2 ways to do this, the long hard way and the nice quick easy way. I will go through both because I think that using the long way will help you in the future and it will teach you some Excel skills too.

In a nutshell, what we need to do to get the data ready for SBPM is to convert what we have in Excel, into the right format that SBPM understands.





Excel method:

What we are going to do is combine the colums in Excel to create this format. To do this, move to the end of a row and start by entering an equals sign = and then clicking the cell on that row where your keyword is. This should be cell A2 as per the example screenshot above.

Next, you will need to add an open bracket which will signify to SBPM that the next information will be the custom variables. These custom variables take the format of name=value and if you want more than one custom variable, you will need to separate these with commas.

To add the open bracket, or Excel formula will need to look like this:


The & (ampersand) will append the bracket or what ever text you want, that you have put inside the quotes.

Next, we need to enter the custom variable name, which we will get from the first row of each column, follow by another equals sign:


Then, add another & sign and choose the corresponding value in that column followed by a comma:


If we just take a quick pause here and see whta the outcome of this will be using the data in the screenshot, we can see that we have created the following:

PetSafe PIF00-12917 Stay and Play Wireless Fence(ProductId=B0055L8RRC)

We are already on the way to creating our SBPM compatible data 

Carry on adding each additional custom variable to this formula, including the required equals sign between each variable name and value and a comma between each one.

At the end, the formula looks like this (the formula has wrapped a little…):


At the end of the formula, rather than adding a comma at the end, I have added the closing bracket. This results in the following:

PetSafe PIF00-12917 Stay and Play Wireless Fence(ProductId=B0055L8RRC,ListPrice=349.99,SalePrice=329.95,Savings=20.04,SavingsPercentage=6,Commissions=13.2,Rating=3.7)

Once you have got this formula correct, you can copy and paste it down each row in your Excel file and all of the information will be populated:

You can then copy and paste this column (column I) into the keywords part of SBPM and use the custom variables in the content.

The easy SBPM way:

Whilst learning how to do this in Excel is very useful, I knew that there must be an easier way – so I created a tool especially to help 

The CSV To SBPM Converter Tool

This tool allows you to use raw CSV or Excel data and have it converted to SBPM formatted keywords with the custom variables created for you.

You can also choose between outputting the category and keyword or just the keyword, along with the custom variables. You can read more about the tool over at the page.

Let’s get back to our Dog Collar data, which we have already loaded into Excel and cleaned up, re-arranged and made ready for SBPM.

To use this conversion tool, highlight all of the data in Excel (including the column headers) and either press CTRL+C to copy to the clipboard or right click on the data and choose “Copy” from the menu.

Go over to the CSV to SBPM Converter page and paste the data in the box that says “Paste your CSV data here…”.

Choose “Copy and paste from Excel” under the “My data is” section and choose if you want to output the category/keyword or just keyword format. In this example, we are just going to output keyword formatted data.

Click the submit button at the bottom of the page and it will reload, with the neatly formatted SBPM data ready for you to copy and paste direct into the category/keyword section of the plugin.

6. Add the content.

How you might use the Amazon data is up to you. However I will give a little example of the kind of sites I have been creating using the Amasuite extract.

My current “tool of choice” for creating Amazon affiliate sites is EasyAzon – also from Chris Guthrie, because it easily allows you to create different types of links and can be geotargetted easily too.Click here to read more about EasyAzon

An example of using EasyAzon as a WordPress shortcode is as follows:

[easyazon_block add_to_cart="default" asin="B0055L8RRC" cloaking="default" layout="top" localization="default" locale="US" nofollow="default" new_window="default" tag="amazonid-20"]

If we took this as an example and used the SBPM custom variable we created earlier, we could add this to our content as follows to automatically add in the ProductId (ASIN):

[easyazon_block add_to_cart="default" asin="%%ProductId%%" cloaking="default" layout="top" localization="default" locale="US" nofollow="default" new_window="default" tag="amazonid-20"]​

The next thing to do will be to either write some quite generic content about Dog Collars, how great they are and that they should be purchased from the following Amazon link.  We also need to add in the %%keyword%% placeholder, plus some of the additional custom variables we have created too.  This will make the content look more unique.

After spinning some old PLR content I found, my SBPM content has ended up like this:

​[easyazon_infoblock align="left" identifier="%%ProductID%%" locale="US" tag="amazonid-20"]
When it {comes to|concerns|pertains to|involves} {dog|canine|pet dog|pet} training, a <b>%%keyword%%</b> {can|could} be {an effective|an efficient|a reliable} {tool|device}. {However|Nevertheless|Nonetheless}, they {must|should|need to|have to} be {used|utilized|made use of} {properly|correctly|appropriately|effectively} {and|and also|as well as} {safely|securely} if you're {going to|visiting} {train|educate} your {dog|canine|pet dog|pet} with them. In this {article|short article|post|write-up}, I {will|will certainly} {show|reveal} you {how to|ways to|the best ways to|how you can} {use|utilize|make use of} shock collars to {achieve|accomplish|attain} this {goal|objective}.
A %%keyword%%, which is on sale {at the moment|currently|presently|right now} for %%SalePrice%%, is {a product|an item} that {will|will certainly} {send|send out} a shock to the {dog|canine|pet dog|pet} when they do {something wrong|glitch}. {Most of|The majority of|A lot of} these {types of|kinds of|sorts of} collars {come with|included|featured|had|possessed} {different|various} {levels|degrees} of shocks that {can|could} be {administered|provided|carried out}, {and|and also|as well as} {should|ought to|must|need to} be {set|established} {properly|correctly|appropriately|effectively} for the {size|dimension} of the {dog|canine|pet dog|pet}. A shock {will|will certainly} be {sent|sent out} from the transmitter to the receiver of the {dog|canine|pet dog|pet}'s collar. You {control|manage|regulate} the transmitter to {send|send out} signals when your {dog|canine|pet dog|pet} does something that you do not {approve|authorize|accept}.
<center><a href="">The %%keyword%% has {an average|a typical|an ordinary} {rating|score|ranking} of %%Rating%% {out of|from} 5 on {Amazon|} - {Click Here|Click on this link|Visit this site|Go here|Visit here} To {Read|Check out|Review} The {Reviews|Evaluations|Testimonials|Ratings|Assessments}</a></center>
<h2>How Does The %%keyword%% Work?</h2>

[easyazon_infoblock align=”left” identifier=”%%ProductID%%” key=”attributes” locale=”US” tag=”amazonid-20″]

It's {a simple|an easy|a basic|a straightforward} {idea|concept|suggestion}-- {any time|whenever|at any time} the {dog|canine|pet dog|pet} does {something wrong|glitch}, you {send|send out} a shock to the {dog|canine|pet dog|pet}. They {might|may|could} not figure it out the {first|very first|initial} time, {but|however|yet} if they do the {same|exact same|very same} {thing|point|factor} {again|once again|once more} {and|and also|as well as} {get|obtain|acquire} {shocked|stunned|surprised}, they {might|may|could} {start to|begin to} {notice|discover|observe|see} a pattern. If they do it {three|3} or {four|4} {more|even more} times {and|and also|as well as} {receive|get|obtain} a shock {every time|each time|whenever|every single time} they {have|have actually} done that {same|exact same|very same} {behavior|habits|actions}, then {soon|quickly} they {will|will certainly} {think|believe|assume} that doing that {behavior|habits|actions} {causes|triggers|creates|induces} them {to get|to obtain} {shocked|stunned|surprised}. {Thus|Therefore|Hence}, they {will|will certainly} {stop|quit} doing that {behavior|habits|actions}.
{An electronic|A digital} shock collar {can|could} be {used|utilized|made use of} to {stop|quit} {many|numerous|lots of|several} {different|various} {kinds of|type of|sort of} {misbehaviors|wrongdoings|misdeeds} in {dogs|canines|pet dogs|pets}, such as {jumping up|lifting} on {furniture|furnishings} or {visitors|site visitors}, {digging|excavating} {holes|openings|gaps} in the {backyard|yard}, {chewing|eating} on {things|points|factors} {and so on|and so forth|and more|etc}.

This example content will create posts in SBPM that have a large EasyAzon block floated to the left, followed by content with an Amazon link in the middle that uses the %%Rating%% variable to show how much people like it.  It is then summed up with some more generic Dog Collar content and another EasyAzon block, showing the product specifics, such as size, weight, materials etc.

Again, this is just demo content, so when creating your sites, spend more time making sure it all works and flows properly before posting.  I would also use the 3 different content tabs in SBPM to create variations on this theme, using different content or layouts to mix it up a bit.

The result:

Here is a screenshot of the output of this content – and yes… it does not look visually perfect, but I am only using the basic WordPress template and have not done any tweaking​ at all – but you get the idea.

SportDOG YardTrainer 105 Dog Trainer SD-105   SBPM Demo Site

I hope this helps!

I hope this little Amasuite tutorial and CSV to SBPM tool has been useful for you to help you build some great Amazon affiliate sites.

It would be great if Amasuite gave us slightly more data than just the title, ratings and reviews, such as the product specifics as per the second EasyAzon box I added in my example above.  However, it is an excellent tool for starting to build out your Amazon affiliate sites.​

Of course, there will be other affiliate programs that give you CSV data that you could also use in SBPM in the same way – so you are not restricted to just using Amazon.

What other affiliate programs do you use SBPM for?​


How To Make 100k WordPress Posts

When I first designed SBPM, I was building “thin” affiliate sites that were designed to bur brightly for a few months, before being tossed into the Google de-indexed black hole. This worked wonderfully (and still does) and it was soon discovered that having more posts on your sites was a better thing.

Therefore, the task was to build a site with as many posts as possible – the more pages that were indexed, the more chance you have of getting a visitor, the more chance you have of making an affiliate sale.

However, one of the issues that people keep running into when trying to run SBPM to make lots of posts at once, is that either the PHP timeout kicks in after 30 seconds and their host kills the script, or their server runs out of memory.

Whilst I can take some of the responsibility for the effectiveness of my PHP coding skills to keep the memory usage of SBPM down, there is not a great deal I could do (from a code perspective) to stop memory type issues from happening if you want to make 100k posts. WordPress can be a memory hog and there are always other PHP processes running at the same time which can impact SBPM running smoothly.

Getting these timeouts can be a pain, especially when you are not sure how far through the posts SBPM got, when you want to start posting again.

Here are a few ways you can break that memory and timeout limit and use SBPM to take your blog to 100k posts.

Solution 1: Use the “Try to override PHP timeout” option in SBPM.

By default, with most hosting companies and services, there is a timeout value set to not allow PHP scripts to run for more than 30 seconds.

This is so that your VPS or shared hosting server will not get overloaded by a single process that has decided it needs to run all day, consuming more and more memory and resources as it goes.

This is especially useful for shared hosts, where more than one website, belonging to different people exist on the same piece of hardware. It has to be fair to the other users, so PHP scripts running for a longer period of time get killed automatically.

An option was added to the “Posts and schedule options” panel within SBPM back in July 2011, where you are able to temporarily set the “PHP timeout value” to 0, meaning that the SBPM process should never be killed automatically.

This does not always work, and it will depend on your hosting company, who will often not allow their customers to change these sorts of values – but it works very well for people who have VPS or dedicated types of servers.

Solution 2: Split your keywords into chunks.

If you have a very large keyword list, another great way to create over 100k posts on your WordPress site is to break that list into smaller chunks of several thousand keywords at a time.

If you are getting PHP timeouts or memory issues, you will end up getting a feeling for a rough limit of how many posts you can make at a time before you run into issues. Splitting your keyword list down into smaller amounts and then running SBPM several times, but changing the keyword list each time, will get you towards the 100k posts milestone.

Solution 3: Reduce the complexity.

I have found that the larger the content or the more complex it is when posting with SBPM, the more memory it will take up and the quicker you might run into issues.

The data that you enter into SBPM is stored inside the WordPress database, but when you click the “Make Posts” button in the plugin’s admin page, the majority of this data is kept in memory.

This is so that, rather than causing additional overhead each time by SBPM asking the WordPress MySQL database to grab the record containing the content every time it makes a post (several times a second) it is far quicker and less intensive to keep the content in memory.

However, if you have a large spun article or some content that is spun several levels deep, this can push the memory usage up and cause the number of posts being made at one time to lower.

Solution 4: Don’t use WordPress tags.

Almost everything in WordPress is stored in a database table, but the posts are kept in one table and other values such as tags kept in another.

If you use SBPM to create tags for your posts, the can cause an additional overhead (speed and memory) when making posts, possibly causing SBPM to quit sooner than it should.

In my opinion, tags are not all that useful anyway and I have stopped using them – even on my other thicker authority WordPress sites I manage. By not using them in SBPM, you might be saving yourself from memory overload.

Solution 5: Keep reposting.

When you click the “Make Posts!” button, there are also a few options you can select so that SBPM knows what to do when it encounters a post that already exists with the same title.

  • Overwrite with new content
  • Do nothing (skip post)
  • Create new post

If you were looking to change the content on an existing post with new information (like when you made the SBPM posts already, but want to add some more content or change something), you can select the “Overwrite with new content” option. Similarly, you can get SBPM to just create a new post instead, adding another unique article with the same name, but different spun content.

However, using the “Do nothing (skip post)” option is useful when trying to reach that 100k posts milestone.

If you have a massive keyword list in SBPM and have already made the posts, but ran into an error, you can tick this option to continue from where you left off. When you click the “Make Posts!” button, SBPM checks to see what posts are already there before it starts and will skip any keyword it knows exists already.

So if you were at keyword number 20,001 when PHP decided to terminate the script or there was a memory issue, SBPM will skip past the first 20,000 posts as it realises they already exist and will start at the next one.

Sometimes, the way to get to a very large number of posts in Wordress when using SBPM is to just “keep posting!” until it is done.

Solution 6: Create locally and import.

A few of the people I am still in contact with regularly who use SBPM to build sites often say that it is easier to “build local and import”.

If you install WAMP (or MAMP if you have a Mac) you can run your own version of PHP, WordPress and MySQL on your PC. Not only is this a great way to redesign your theme before uploading it to your site, it is also not as restricted by memory issues compared to your share hosting server.

Here are 2 great tutorials for installing WAMP and MAMP and getting WordPress up and running on your own computer:

WAMP (Windows):


Once you have created the posts, you can then export the entire WordPress MySQL database from your local phpmyadmin in MAMP and import it to your server online. You could also use tools and plugins to “clone” your local WordPress site and upload it that way, which can also be effective too.

There are also other plugins and utilities that you can use to make this process easier, such as:

I hope these tips and techniques will help you get more posts into SBPM and stop running into these pesky memory and timeout limits.

I am always looking to make SBPM versatile but also efficient and as streamlined as possible when it comes to how much memory it uses and with the next revision of the plugin, I am looking to reduce it even further.

If you have any comments on any of the solutions I have posted above, let me know in the comments box under this post. Also – if you have any other tips you want to share with the SBPM community, you can share them below too.


Version 2.8 Release Notes

Hi everyone and happy 2015 – hope things are going well for you in your life and businesses so far this year.

Version 2.8 of SBPM has been launched and you should have received a copy via email in the last 24 hours.  You can replace the existing sbpm.php file in your sbpm plugin folder or delete and reinstall this new version.  I will be looking to add some proper WordPress plugin update functions this year, so that you will get notified within your site when an update is available.

Anyway – down to business!

Version 2.8 of SBPM has the following updates and fixes (and has been fully tested against WordPress 4.1.1):

  1. Bug fix: pages not being added properly.
  2. Bug fix: date field not working properly when it is empty.
  3. Bug fix: memory usage reduced.
  4. New feature: multiple content areas.
  5. New feature: jquery settings save
  6. New feature: settings import/export.

Multiple content areas:

sbpm plugin multiple content areas

The first and biggest new feature in SBPM version 2.8 is the ability to use multiple content areas.  This will allow you to add more uniqueness to your posts by using 3 different pieces of content or variations on your content.

For example, I have used this feature to add an Amazon item on the left hand side of the page on one post and the right hand side on others.

To use this new feature, click the tab and enter your content and save the settings.  When the posts are made, if any of the 3 content tabs contain content, they will be used randomly.

JQuery settings save:

I have added some neat jquery code to make the SBPM settings save much more quickly, without having to reload the page.  Not an amazing improvement, but it does make using the plugin much quicker.

Settings import and export.

sbpm import export settings

One thing that I have wanted to include for a long time is the ability to export or import all of the SBPM settings into 1 file that can be moved from one site to another.  Us affiliates like to build similar sites when we find a niche that works, so being able to quickly set up SBPM with new data and settings is a useful tool.

Other news:

In other news, I will be moving SBPM from e-junkie to Gumroad and will be importing the list of current customers too, so if you get an email from them about SBPM, don’t worry – it is from me 🙂

Also, to reflect the greater complexity of the plugin, plus a few new ideas I have in the works, I will be increasing the price from $40 to $69 in the very near future.  Unfortunately, Gumroad does not have an affiliate scheme, so the ability to earn some dollars from recommending the plugin to your friends will be gone.  However, if you want to set something up, get in contact with me and we can sort something out.


Version 2.4 Released

Version 2.4 of SBPM has been released today (check your emails for a copy of the updated file).

The new version features the following updates:

Bug fix for missing AIOSEO data fields.

Bug fix for tags issue.

Add preview function.  This allows you to preview a small number of posts before you commit.

Fixes for /n tags in %%category%%.  Stops the %%category %% variable forcing a new line within your content.

Added %%sst2%% capability to pull top 500 items from database.  If you use the excellent SEO Searchterms Tagging 2 plugin on your sites, you can now extract the top 500 queries and automatically add them to the SBPM Keywords section.  To do this, put %%SST2%% or %%sst2%% into that field and press “Save SBPM Settings” and they will appear!  This is a great way to go back to your sites to add new posts via SBPM based on the keywords people used to find your site.


SBPM v2 Launch!

SBPM Version 2 has been launched with the following new features:

  1. You can now include your own custom variables in your titles – eg: category/postname(var1=value,var2=value) and then use %%var1%% and %%var2%% in your content.
  2. An enhanced date scheduler that allows you to set the posting dates and times with more control.
  3. More SEO fields and functions that are compatible with the AIOSEOP plugin.
  4. The ability to add tags to your posts.

SBPM still remains the ideal way to bulk add posts to your WordPress blogs, using variables and spun content.


Current, Future And Beyond

I have been using SBPM to build thin WordPress sites based on the OneLung Thin Method for quite some time now and have found that one of the best ways to do this is to think “Now, Future And Beyond!”.

You might be thinking that I have turned into Buzz Lightyear overnight – but let me explain.

WordPress and blogging in general is all about regular updates. Even though you tinker with WordPress to remove the footprint, Google probably knows exactly what product you are using to make your site and might expect it to be updated more often than not. This method goes against the “set and forget” method taught at the OneLung membership site – so what is the best thing to do?

Using SBPM, I create my list of the top 30 category/keywords for my niche site and paste them in the box. I then add my spun content underneath and use either phpBay or phpZon to add links to affiliate deals. I save the settings, make the posts and my site immediately has the top 30 products or keywords that people are going to use to buy from my site.

But what about the other 200 or so keywords and products I found when I was doing my site research?

What I do with these is add them as future posts using SBPM.

  1. Go to the SBPM page on your site and delete the category/keywords you have in there at the moment. Don’t touch the spun content.
  2. Paste in your new 200 category/keywords.
  3. In the “Post Options” box, change the schedule from “0” to 72″.
  4. Save your SBPM settings.
  5. Make the posts!

So, what have we just done? Changing the “0” to “72” means that SBPM will schedule each of the 200 posts to be posted at a random interval – between 0 and 72 hours from the last post. This will let WordPress drip feed the posts onto the blog over time, making it look more natural and bringing more visitors too.

This kind of goes against the teachings of thin sites, but using SBPM, you can still “set and forget” and bring in more visitors, sales and $$ over a longer timeframe.


The best wordpress bulk post scheduler

Hi everyone!

It’s been a great day here at SBPM towers. Lots of copies have been sold and I have made 4 WordPress blogs using the plugin already and it is not even lunchtime! I wish all days were like this.

I was chatting to one of my customers earlier who told me that he thought SBPM was “the best wordpress bulk scheduler” he has ever used. He tried all those free plugins that make you use CSV files, Excel spreadsheets and fiddly TXT files to import to get it working.

SBPM is simply the easiest, most straight forward and non-technical way to make large amounts of posts to my sites!
I use another tool to scrape keywords from Amazon and eBay and bulk post them with generic spun content about the product category, add in links to other plugins and add some phpBay and phpZon shortcodes and I have a site ready to make me money in minutes!

You can also make sites as quick as him using SBPM. Just add your post titles, some spun content and off you go! Add Adsense, Amazon, Clickbank, Commission Junction or eBay links (to name but a few) and you are ready to make money as quickly as you can get indexed!

What are you waiting for? Take action NOW!


Working with SBPM categories

I had an email from an SBPM user earlier this morning asking for a future enhancement:

With regards to SBPM, an especially nice feature would be the ability to globally assign a category to posts made from keywords. Right now, it is a pain to go in and add a category. Thanks.

Well, SBPM allows for this to happen already!

If you want all of your SBPM posts to be created in 1 category, simply rename the “uncategorized” category, that all WordPress blogs have, to what ever you want it to be called. You can then just put a list of the post names into the content area in the SBPM admin screen and they will be assigned to that default category automatically.

So, instead of adding your keywords like this:

mycategory/my post 1
mycategory/my post 2
mycategory/my post 3

Rename the “uncategorized” category to “mycategory” and list your keywords in the SBPM admin screen as follows:

my post 1
my post 3
my post 3

There is no need for you to add the category to the beginning of the post name, if you are only using 1 category.