SEO Questions and Methods for Every Site Audit

A good list of SEO questions should be discussed with clients before the start of a site audit. Consider the following list as an example.

SEO Questions to Start a Site Audit

  1. SEO QuestionsHas there been in any previous SEO work, and do you have reports?
  2. What are your current SEO goals?
  3. What are the most important pages, products, and services you have?
  4. Where should we focus the effort?
  5. What’s the current marketing strategy?
  6. What other advertising is there?
  7. Are the statistics available for current traffic, popular pages, etc.?
  8. Is there anything I missed?

SEO Methods to Start a Site Audit

The website itself is a good place to start an SEO audit. The website should be setup to convert. Afterall, if you increase organic traffic to your website, it will not do any good if your site is not converting.

Make sure there is a call to action prominently displayed on the page. You want to direct users what to do. Don’t make the users guess what you want from them. Ask yourself how the call to action could be stronger.

Many businesses make the mistake of talking about themselves on the landing page. Rather, you want to talk about the customer, and what the business can do for them. Put the business information on an about page.

Look at the landing page and think about what it is saying. Think of how this could more directed to what the business can do for the customer.

Quick SEO Analyzer Tactics

  • Check the business on common social media pages, and make sure the profiles are complete and accurate.
  • Do a Google search on the business name to see what information pulls up on the business.
  • Google and see what pages are indexed, and how high they come up. Pages that do not show may not be indexed.
  • Check on mobile devices for responsiveness. Test various features of the website on 2 or 3 mobile devices for functionality.
  • Check the Google Analytics account to get a quick snapshot of traffic the website is getting.

SEO Audit Report – Why Get One – What It Tells You

SEO audit reportAn SEO audit report is a way to evaluate a website performance in search engine friendliness. It is typically done before an SEO campaign. This way, it is easy to know, track, and measure the work needed to be done.

Rather than implement only general SEO tactics that everyone can do, and audit report will tell you what unique work should be done on your website.

The conclusion of an audit should summarize the strengths and weaknesses of your website. And you should also know where to concentrate your SEO efforts.

Top Reasons For an SEO Audit Report

  • You know that traffic to your website has decreased, or you think it should be higher.
  • You notice competition ranking higher, and you want to stay ahead.
  • You want to follow-up on previous SEO work to see if it was effective.
  • You want to have a specific SEO roadmap on how to increase organic traffic.

Applying general SEO tactics could be a waste of time. It is better to audit your site, so you know exactly what needs to be done to rank higher.

How often should you do an audit?

Audits are typically done before SEO work is implemented. However, it is a good idea to routinely do an audit at least two times a year. This way it is easier to keep tabs on search engine changes, and how your competition is doing.

How to do an SEO audit?

  1. Do it yourself.
  2. Use an SEO tool.
  3. Hire an SEO expert.

It is likely that when completing an audit, you will use a combination of these three methods. There are some all-in-one SEO audit tools to do a quick job. However, doing a manual audit will give you a more accurate look at your website’s search engine friendliness.

How long does it take to do an SEO audit?

The length of an audit depends on the methods used and size of the website being audited. A general tool can complete an audit very quickly. Whereas a manual audit could take several or more hours. If it is too expensive or time-consuming to do a complete manual audit, you should at least incorporate some manual components in the audit. Think of it as an investment in your business. A proper audit will give you the information you need to outrank the competition and grow your business.

Before you start an audit, it is very important to use some analytical tools to gather recent statistics about the website. These stats will serve as a baseline that you can compare with future stats, after you complete the audit and implement SEO.

Google First Page Competition Analysis

google first page
Get that Google first page search result.

Check into keyword competition on Google first page results. Test out your keywords before you use them. If one of these phrases turns up high authoritative websites, It will be nearly impossible to rank in the top spots for that keyword. It is best to scratch it off the list, and try another one.

Examples of authoritative sites are Amazon and Wikipedia. It is better to use keywords that do not serve up this type of sites in Google first page results. If you find a keyword that turns up low authoritative sites, such as article directories, or free blogger platforms, then these are great keywords you want to quickly implement in your SEO campaign.

Web Page Ranking Tools

It is not exactly known how much weight Google gives to page rank as a determining factor for landing on the coveted front of page of search results. However, the page rank of your competition is a good indicator for how likely it is that your site can land on the first page of Google.

As a general rule of thumb, if much of your competition has a page rank of 4 or higher, it could be very difficult to get the results you want with that keyword. On a scale of 0 – 10 for page rank, a 4 is considered very good. Pages that have this high of ranking, do not necessarily need all the SEO tactics that you would need to use.

Google also considers individual page authority. It tends to give more weight to page authority over domain authority.

Two free website ranking tools to use are MozBar and SEOquake. These are free browser extensions. SEOquake will tell you page rank. MozBar displays page and domain authority.

web page ranking tools
This is how the MozBar and SEOquake extensions look in a browser.

Focus on finding keywords that turn up Google first page results with page ranks of 3 or less, and domain authority of 40 or less. These keywords will be great candidates to use at the start of an SEO campaign.

Increase Organic Traffic With Long-Tail Keywords

increase organic traffic
Choose the right keywords to increase organic traffic to your site.

The best way to increase organic traffic is to choose keywords that will quickly get targeted, organic search traffic to your site. It is worth taking a moment to understand keywords, so that you will know how to choose the best keywords.

A Keywords Guide to Increase Organic Traffic

There are five characteristics that keywords should have in order for them to be helpful for your SEO performance.

  1. Good Traffic Numbers: There should be an adequate number of searches with the keywords, so that they can generate traffic.
  2. Sponsored Ads: The keywords should be profitable. Type them in Google and see if sponsored ads come up in the search results.
  3. Relevant: The keywords must be very relevant to the products or services offered on your site.
  4. Beatable Competition: Some keywords may already be owned by your competition. It is not suggested to spend time and money on keywords that may be impossible to outrank the competition with. Use keywords that can beat the competition.
  5. Attracts Targeted Traffic: If the traffic is targeted, then the chance for conversion is much higher.
organic keywords
Understand the best organic keywords for increasing traffic.

Keywords show users interest and intent. Informational (sometimes called “head”) keywords are used when someone is looking for information. transactional (sometimes called “long-tail”) keywords are used when someone is ready to take action after their search.

Head keywords are usually one or two words long. They are broad and have high search volume. However, there is usually not much buyer intent associated with head keywords. An example of a head keyword is “large dogs”.

Long-tail keywords are at least three to four words, and are more specific. Search volume is usually low, but they drive targeted traffic. This translates to higher conversion rates. An example of a long-tail keyword is “best large breed dog food”

Choose Long-Tail Keywords for Quick Wins

Start an SEO campaign with keywords that can give you some “quick wins” on the first page of Google. This will give you early organic search momentum. Be sure the keywords meet the five characteristics needed to be successful.

Contact BrokerStir for an SEO Consultation to increase organic traffic to your website.

Slow Loading Website FIX

slow loading website
A signal that makes users want to leave your site.

A slow loading website will hurt website ranking SEO performance. Thus, page speed is very important. It not only affects SEO rank, it also affects conversion. Users may leave your site quickly if the page loading speed appears to be slow. Visitors and search engines like pages that load quickly.

Many different issues can affect page loading speed. It is best to test the site first, and then apply the fixes as suggested by the test results.

Test for Slow Loading Website

Test website speed for free at It will grade your site. The bottom grade area shows website content breakdown. This area tells you what is taking the most time to load on the website.

The site will tell you how you can fix a slow loading website. It runs a test, gives you results, and instruction on how to improve website performance.

For example it might recommend to cache the browser, or to enable compression. Too many files can slow down your site.

The enable compression guide will provide code that can be added to the .htaccess file. Ask a web programmer if you need help updating the .htaccess file.

Google Developers Page Speed Insights is another great tool for improving a slow loading website. It analyzes how fast a site loads on mobile and desktop devices, and then recommends fixes. Even though this tool gives a breakdown between mobile and desktop devices, the suggested fixes will usually enhance page loading speed on all devices.

Following recommendations suggested by these tools should dramatically increase the speed of a slow loading website. Since page speed is very important when it comes to having Google first page search results and user conversion, it is worth the resources to ensure your site is performing at an optimal level.

How to Map a Data Model to a Database

This post will examine how to map a data model to a database.

For a basic data model, decisions are made on whether to classify objects as “things” or “attributes“. Consider an application built for managing audio tracks.

Data Model

To map the data model from a logic model to a physical model, a database, you have to augment your table. Foreign keys are used to augment a table. Each foreign key points to a primary key of another table.

Primary Keys, Foreign Keys, Logical Keys

For an application that manages audio tracks, the albums should be numbered. These numbers would be called the primary keys or the “id“. For an album numbered 4, then that primary key “id” would be listed as the foreign key “album_id” for a track that is on that album.

Primary keys become end points that a foreign key would point to. The logical key is something you might use in an SQL WHERE clause.


It is important to have a naming convention for any data model. It makes drawing out the data model much easier.

Data Model Sketch


Consider SQLite with Python to build a database. These can both run on the desktop, are fast, and easy to setup.

Database Design for Linking Tables

Imagine building an application that manages audio tracks. For this type of application, database design should be one of the first steps in its design. Actually, good database design is crucial to most applications.

database design

In database design for applications, tables are made for the data, and they indicate the relationships between tables. Hence the term “relational database“.

A picture is often drawn to show how the data will be stored. This picture becomes the schema, or contract, for the database.

design sketch

The connections between data are what makes the database powerful. A well planned database can enable your application to run very quickly.

The basic rule of building a data model is to not replicate data. Rather, use a relationship.

building a data model

Now, consider building an application that manages audio tracks. Consider what the user interface may look like. It it is very important to build an interface that the user wants. An efficient data model is then used to construct the application.

Replication of data in columns will slow down the performance of a database as it scales up. The picture below shows a great user interface, but for a single table, the replication of some column data would eventually slowdown the application.


To solve the problem of data replication, separate tables can be made that relate to each other. The tables can then be joined to give an interface the user wants. When deciding what separate tables to create, the idea is to look at data and classify it either as its own “thing” or an “attribute” of a thing.

Decide on the “thing” that is most central to the application. In the case of an application to manage audio tracks, the central “thing” are tracks.

The first table to build is a track table. The track title, length, rating, and number of times played are all attributes of the track. Thus, the track table would have four columns: title, length, rating, and play count.

thing or attribute

In the above picture there is replicated data for artist, album, and genre. The fact that data is replicated is an indicator of it not being an “attribute” of tracks, but rather it’s its own “thing” worthy of another table.

Thus, make a table for albums, and tracks would be related to an album. Then make a table for artist, and each album would be related to an artist.

Finally, decide where genre connects to. If genre is connected to album or artist, then every time a change is made for genre of a track, the genre will change for every track of that album or artist. To prevent this, it’s best to connect genre to tracks.

Hopefully by now it’s easy to see that a well designed relational database model can take quite a bit of time. However, the tradeoff is that it can give an application speed and power.

How to Parse Email Data with Python

This post will examine how to parse email data with Python.

You will go step by step through the program

This program will read through mbox-short.txt file, count the occurrences of each email, and put that data in a database.

In the first line of code you will import a library you need to talk to the database.

The second line of code establishes a connection to the database file emaildb.sqlite.

The third line of code creates a cursor object that allows you to make commands to the database.

email db

Next, you will call the execute method on the cursor. This program will create a new table called “Counts” every time it runs. So, first it will drop the table if it exists, and then it will create a new table.

drop table

Notice how you are using SQL commands in Python to talk to the database.

The next several lines of code are similar to what you learned in the Python dictionary post. Here, you are parsing through the file and pulling out the email address.parse data


The next line of code is different. This line uses a technique called parameter substitution.

parameter sub

In this line, you are selecting a row from the table that match the email. The question mark after email serves as a placeholder for a value that will be substituted in. You are substituting in the current value of the email variable.

Next, you will use a “try” statement. You want to use “try” because your program will blow up if no rows were found that matched the email from the previous line. If the email was found, then you advance the count of that email.

In the “except” statement, you are saving the program from blowing up from the email not being found in the table. Rather, you insert this new email into the table, and start the count at 1.

Finally, the conn.commit() statement is very important, because it writes your new changes to the database.


The next thing you will do is run select statement to list the top 10 emails in descending order.

top 10 emails

Before closing out the program, you will loop through the rows and print the columns for each row. It is a good idea to convert your column fields to str type before printing.

print entries

Make an SQL Database

In this post you will make an SQL database.

If you have not done so already, you need to install an SQL database tool. See picture below.


SQLite Browser reads and writes a special type of file that is optimized for rapid retrieval, and storage of data.

Run SQLite Browser and create a new database. Once complete, your screen should display the following:

create database

Now, go ahead and create a table. Use the following command on the right side of the picture shown below (assume case sensitivity). This specifies a new table called “Users”, with two columns, and up to 128 length variable characters. This code also forms a contract with the table. A contract with what is allowed, and not allowed. Put this command in the execute SQL window.

create table

It is up to you regarding the terms of the contract, but you need to plan it ahead of time.

Next, add data (“records”) in your table as shown below.

add records

You can even view the SQL Log to view the code every time you add a new record.

Now, you can learn for SQL commands to insert, delete, and retrieve data.


You put the SQL commands in the Execute SQL window.

At any time you can hit the “Browse Data” button to see all your records.

Following is how you delete a row.

delete row


This will delete all rows that have the matching email address.

The update statement allows you to find certain records and change their values.

sql update

Finally, you can do a retrieval with the statement shown below.

retrieving records

The “SELECT *” command translate to “Select All”.

You can also sort your records.

sorting records

Below is a summary of all the SQL commands you have learned in this post.

SQL summary

This covers the basics of SQL databases. The real power will come later when you learn to exploit connections between tables.

Database Application SQLite and Python

This post will introduce the database application SQLite in relation to Python.

For large project, there are two main roles. One of those roles in the database administrator, who often consults with the developer (the other role). These are rather specialized jobs.

two roles

The administrator talks directly to the database, while the developer talks to indirectly, by way of the application. The following picture illustrates this split between roles, in large projects.

large project structure

However, for smaller projects, one person can handle both roles.

By handling both these roles you will:

  1. Use the database application SQLite to create tables.
  2. Write Python programs to retrieve, clean, and put cleaned data in the tables.
  3. Write another program to pull the cleaned data out and output a nice file.

For now, you will focus on the first step. You will learn how to create a database model, or contract.

database model

There are several common database systems. Oracle dominated this market, mainly because they were the first to embrace the relational model concept. However, there are good alternatives.

common database systems


In the context of Python, you will use SQLite. As it turns out, SQLite is quite popular.

SQLite is Popular

SQLite is fast, and is good for smaller amounts of data. Most importantly, the database application SQLite is embedded in Python.