Self SEO Site Checkup

Basic SEO- Last updated Jan 14, 2018

Website owners regularly ask "how can I improve my website's SEO?" This is a great question to ask since search engine algorithms regularly change and evolve. There are some parts of search engine optimization that are done outside of the website such as backlinks, social media promotions and ads. Other parts of SEO are done on the website and the server where the website is hosted. There are many websites, both free and subscription based that will monitor your website's SEO score and give you tips and notices on how to make improvements. If you are more of a do-it-yourself'er, below are some areas of you website you can check.

Each SEO suggestion is marked with its priority level.


General Site SEO

All pages of your website should have their own unique title, meta description, h1 tag and focus keywords in the content on the page. This is a big task if you are re-doing or checking all of your pages for these things. Start with your top ranking and top converting pages to better optimize those, then move to the less important pages.

If you have a Google Webmasters account setup for your domain, and you submit a sitemap, Google will give you a free report on most items in this section.


Title Tags

Each page should have a title tag that appears within the <head> section of the page. A title should be no more than 55 characters and should contain the main keyword phrase for that page.

  • Between 35-55 characters
  • Contains main keyword phrase
<title>Summer Sandals For Women - ShoeStore.com</title>

How To Check: In ShopSite, if you want to do this for all pages at once, you can download your page database, just the page name field and title field. If there is no title specified, the page name will automatically be used for the title. Open your downloaded database in a spreadsheet program, like Microsoft Excel, and view all titles (or page names). Fix any that are too short (fewer than 35 characters) or too long (longer than 55 characters). Once you have made your changes in the page title column, you can save changes and upload that database back into your ShopSite store.


Meta Description tags

Each page should have a meta description tag that appears within the <head> section of the page. The page meta description should start with an action word such as "Browse", "Shop" or "Learn", should be no more than 160 characters, no fewer than 140 characters and should contain the main keyword phrase for the page.

  • Between 140-160 characters
  • Contains main keyword phrase
  • Starts with a "call-to-action" word
<meta name="description" content="Find the perfect sandals and hot new trends on summer sandals for women. Free shipping on all sandals and boots use coupon code: shipmyshoes at checkout.">

How To Check: You can check the page meta descriptions the same way you check the page title, by downloading your page database and view all meta descriptions at once.


H1 Heading Tags

Each page should have an h1 heading tag which contains the same keyword string that was focused on in the title and meta description.

<h1>Summer Sandals For Women</h1>

How To Check: Just go to your list of pages in ShopSite. ShopSite uses the page name as the default H1 tag for pages. If you want a different H1 tag than the page name, you can go to Pages > Edit Page Layout, and uncheck the checkbox to display the page name. Then under Pages > Edit Page Content, add your own H1 in the text 1 field on the page.


Focus Keyword Phrase

Every page on your website should have one long-tailed keyword phrase that is the focus for just that page. With a long-tailed keyword search engines will give fewer results, giving your website less competition. Plus, customers searching with a long-tailed keyword know more what they want and are closer to purchasing. For example, when I search for "Women's Shoes" in Google, I get over 11 million results. That is a lot of competition for that keyword. Plus, as the searcher, "Women's Shoes" isn't really specific, meaning I don't really know what I want. If I were to instead search for a pair of shoes to match a new outfit, I might search for "red open-toed high heels." This yeilds only 1 million results, less competition, and I am much closer to actually purchasing shoes than the customer just causually looking for "women's shoes."

Once you have selected your focus keyword phrase, you will want to make sure that keyword is highlighted throughout the page. It should appear in your title, your meta description, the H1 heading, any in-bound links to this page, in image alt tags for images of the keyword on this page, and throughout the body text. Don't go overkill and put the keyword phrase in where it doesn't belong though; that's keyword stuffing and is a negative for both users and search engines.


Google Analytics (or Google Tag Manager)

Setting up Google Analytics on your website doesn't directly help or hurt your search engine ranking, but Google has so many site tools that can directly help with page ranking or can give suggestions to enhance your website. Sign up for a Google Analytics account, then follow the steps they provide to add analytics to your website. For ShopSite Merchants, you can go to Merchandising > Google > Analytics, and follow the setup wizard (essentially just copy and paste the code Google provides).


Robots.txt

Robots are the programs that 'wander' the internet crawling all over your website. There are many ways that website owners can 'tell' robots how to read and index the website to get the best out of the robots. The robots.txt file can tell robots things such as where not to crawl, and where your sitemap is located. Google provides some information on how to create your robots.txt file. The basic setup for most ShopSite stores' robots.txt file is shown below. The robots.txt file should be added to your root domain.

User-agent: *
Disallow: /cgi-bin/sc/order.cgi
Disallow: /cgi-bin/sc/productsearch.cgi
Disallow: /cgi-bin/sc/billing.cgi
Disallow: /cgi-bin/sc/inv.cgi
Disallow: /cgi-bin/sc/new_options.cgi
Disallow: /cgi-bin/sc/registration.cgi
Disallow: /cgi-bin/sc/tellfriend.cgi

SITEMAP: http://www.yourdomain.com/google-sitemap.xml

How To Check: Some hosts will add a robots.txt file automatically to hosting accounts. To check to see if your site already has a robots.txt file without logging in through FTP, just type in your website in any browser, and add "robots.txt" to the end (i.e. http://www.mydomain.com/robots.txt).


Sitemap

Submitting your website sitemap directly to search engines will help tell robots what pages to index, when they were last updated, etc. This should help get your website indexed faster and stay more current in search engines. For ShopSite merchants, under Merchandising > Google Services > Sitemap, you can tell Shopsite to create a sitemap automatically. Follow the steps of the wizard to add the ShopSite-generated sitemap to your Google Webmaster Tools account. Also make sure you have specified the URL to your sitemap in your robots.txt file.

How To Check: Sitemaps are often called sitemap.xml or google-sitemap.xml, and are located within the root of your domain. To check without logging in through FTP, simply type your domain into any browser, and try both endings to the URL (i.e. http://www.yourdomain.com/sitemap.xml and http://www.yourdomain.com/google-sitemap.xml).


Broken Links

Broken links are obviously bad for your website visitors, but did you know that they are also bad when indexing your website? Robots will follow a broken link and may stop searching your website.

How To Check: If you have setup Google Sitemap, then Google will already give you a report of any broken links that are found. Simply go to Google Webmaster Tools, click on your domain, then click "Crawl Errors."


File Names

Each page and product page has its own file name. This is another opportunity to put focus on your keyword phrase. Use your keyword phrase as your page file name, with dashes instead of spaces. For example, with the keyword phrase "Summer Sandals For Women", the file name could be "summer-sandals-for-women.html."

It is important to note that in most cases you do not want to change a file name after the page has been indexed by search engines. You will lose all that page's ranking as if it were a brand new page. This SEO suggestion is something to keep in mind as you continue with your website Each time you add a new page or new product, make sure you are adding a useful keyword-focused file name. For ShopSite merchants, if you don't enter a file name for a page or product, ShopSite will automatically create one based on the page/product name.

If you do decide to change a file name, make sure you setup a 301 redirect in your site's .htaccess file so that you don't lose your search engine ranking for that page.


Image ALTs

Every image should have an alt attribute. This text is what the customer sees while the image is loading. This text is also what search engines use to index that image. If you have an image of red high heeled shoes, your alt tag might be something like "Dark red womens high heels with open-toe and ankle strap." Image alts shouldn't necessarily contain the keyword for the page they are on (but if it works, put it in), instead they should be very descriptive of the image itself.


Link Titles & Link Anchor Text

Every link can have a title attribute, whether it is a text link or an image link. In both cases the link title should be descriptive of the page it is linking to, not the page the link is on. Same with the anchor text. If you are setting up a text link, "click here" or "learn more" are terrible anchors that don't give any description about the page they are linking to. If you instead did something like "Shop Women's Shoes" or "Learn About Sizing", the link is more descriptive and better for search engines.


Favicon

Favicons don't actually help with SEO, but they do give your website a more polished look, which could help keep customers on your website longer, which is good for SEO. Once you have created your favicon (usually a small square .ico file), upload it to your root and it will be used as your site's favicon automatically. For more information about favicons read our About Favicons page.
NOTE: Browsers cache favicons, so it make take a few days for your browser to update with the newly uploaded favicon.


Social Media

The jury is still out on whether shares effect search engine ranking, but your social media profile ranking can and often does out perform your main website. If you do a search for a popular company, you will likely see their website and their social media profiles as the first few results in search engines. When searching in Google, you may even see that company's Google+ profile in the right column of the search results. This tells you that Google, and other search engines, place a lot of importance on social media profiles. By linking to your company's social media profile pages, you are creating back links for those pages, and helping to build your brand.

Social media site are search engines as well. Many customers these days search and even shop for products by doing searches in social media websites. Make sure your brand is well represented in these social arenas.


Load Speed

Slow loading pages can cause visitors to leave your site, which in turn causes a higher bounce rate, and lower ranking in search engines. The speed in which webpages load is not determined solely by the content on the page. In fact, the server, server settings and order of the files in your code all play a factor in load speed.

Google offers a PageSpeed tool to analyze your page's load speed and tell where improvements could be made.


Page Size

Larger pages take longer to load. Simple as that. Tiny pages won't have enough content to be 'relevant pages' in the eyes of search engines. Keeping both these extremes in mind, it is suggested that you strive for between 250-1000 words per page, with your page size staying at or below 33 Kb. If you have pages over 100 Kb, search engine bots may spend so much time on that one page, that they leave the page before crawling the entire thing, or there is less time alloted to crawl the rest of your website.


HTML Compression

Using Gzip, or a similar software, to compress the size of your HTML, JavaScript and CSS can help with the load speed of the page. Server admins or hosting providers can setup Gzip on the server for you. It is not suggested to use Gzip on images, as it may negatively effect the display quality.


Render-Blocking Elements

This is a common "error" when you are doing a PageSpeed test on Google but many don't know what this means. The over-simplified meaning is that something large is loading first, blocking the rest of the content from loading quickly.

An HTML page loads from top to bottom. Any JavaScript or CSS in the <head> section of the page is loaded before the content of the page is loaded. Google will call those larger JavaScript and CSS files in your <head> section, render-blocking elements. In some cases this can't be avoided. For instance, have you ever seen a page where the content loads quickly, then a second or two later the page 'snaps' to a new format or fonts suddently change? That is because the content is loading before the styles for those elements. Once the styles for those elements are loaded, the page display changes. Google suggests only including styles in your <head> section which aid in the look for content that is above-the-fold. Then including all other styles after the content for the page.

For JavaScript files, if those can be moved to the bottom of the page (below the content, often just above the </body> tag) without effecting their functionality, do so. In some cases you may need to re-write some JavaScript so that it can run or be loaded after the page content is loaded.


Limit The Number Of Page Objects

Page objects are external files such as JavaScript, CSS and images. These files are definitely useful in making a beautiful and interesting page. Keep in mind that using too many calls to the server (each file is a different call) will slow down the loading speed, not to mention slow loading if you are loading large files. There are some techniques to lessen or ease the calls to the server with page objects.

Group Similar Objects. If you are loading multiple stylesheets or multiple JavaScript files, it is helpful to put similar files together. Load all your CSS stylesheets at the same time, and all your JavaScript files at the same time (unless you have split them to have some load in the <head> and some load in the <body>).

Create Image Sprites. Image sprites are single images that are made up of many smaller images. The image below is from facebook.com. You may recognize many of the "like" "love" and "wow" icons used on facebook posts. These little images are all part of a larger image, and just positioned as needed to display correctly on the page.

Facebook Sprite

Server-Side Caching

If you have a website, you are familiar with "refreshing" your web pages after making changes. This is because your local computer has cached the page and/or elements on the page for faster page loading. You need to refresh to clear that cache and load the newest version of the page. The same thing can be done on the server. Each time a visitor comes to your website, the server needs to check for the page information and send that information to the visitor. If you have server-side caching, then the webserver can cache a version of your page and/or elements on the page, making it faster to send the cached versions to visitors. Below is an example of setting up server-side caching for Apache servers in your site's .htaccess file. You'll notice that some elements expire after one week, whereas other expire after one month.

AddType image/svg+xml .svg
AddOutputFilterByType DEFLATE image/svg+xml
# 2 HOURS
<FilesMatch "\.(html|htm)$">
Header set Cache-Control "max-age=7200, must-revalidate"
</FilesMatch>
# MONTH
<FilesMatch "\.(ico|pdf|flv|jpg|jpeg|png|gif|svg|swf)$">
Header set Cache-Control "max-age=2419200, public"
</FilesMatch>
# WEEK
<FilesMatch "\.(js|css)$">
 Header set Cache-Control "max-age=604800, public"
</FilesMatch>

Minification

Minifying CSS, JavaScript and even your HTML page will make the files smaller, and thus faster to load. Minifying files does, however, make them much harder to actually read for all us non-computers. Only minify if you are done editing your files. There are minification tools out there such as CSSMinifier.com and JSCompress.com, but when using a third party to minify your files, make a back up first in case they get minified too much and no longer display correctly.


No Frames

Loading iFrames make a page take longer to load because instead of just loading the current page a visitor is viewing, the page is loading additional pages (each iFrame is a new page). IFrames sneak into your code with things such as some social media widgets, YouTube embeded videos, or old ways of doing navigation menus. Avoid using iFrames whenever possible.


Server & Security Settings


URL Canonicalization

Canonicalization means you are creating a "standard" for something that may have more than one possible representation. With URLs, this most often means creating a standard URL you would like search engines to use for each web page, specifying secure or non-secure, and with or without the www. Below are the 4 variations available for many webpages.

http://mydomain.com/page.html
http://www.mydomain.com/page.html
https://mydomain.com/page.html
https://www.mydomain.com/page.html

To specify which version is the standard/correct version, add a meta tag with the correct version.

<link rel="canonical" href="http://www.mydomain.com/page.html" />

For ShopSite merchants, you can do this for both pages and products using the code below in each respective template

/* For Page Templates */
<link rel="canonical" href="[-- OUTPUT_DIRECTORY_URL --]/[-- PAGE.FileName --]" />

/* For Product Templates */
<link rel="canonical" href="[-- PRODUCT.MoreInfoURL --]" />

IP Canonicalization

This second type of canonicalization is done on the server. It is for the IP version of your domain verses the text version of your domain. Talk with your server admin or hosting provider about setting this up.


HTTPS

Are your webpages loading securely or non-securely? Obviously your shopping cart checkout pages, customer account pages and other pages with sensitive information on them need to be secure, but how is the rest of your website loading? If it is loading non-securely, that's fine. However, search engines have more recently suggested that completely secure websites will get priority in search results. This doesn't mean that suddenly all secure websites will get a boost. But this does mean that if a non-secure page and a secure page are ranking similarly (same keyword relevance, same load speed, etc) that the secure page will get a leg up on the non-secure page. Bare in mind, a negative consequence of having your entire website load securely is that all pages now have to go through encryption, which makes them take longer to load.


Plain Email Address

This suggestion isn't for SEO, but to prevent spam. Wherever you want to display an email link or an email address, don't just type that address in or use a mailto href statement. Instead, create that email or email link with JavaScript so it doesn't get picked up by spam bots. Below is an example of an email link for created with JavaScript.

<script type="text/javascript">
var stb_domain = "JohnDoe.com";
var stb_user = "John";
var stb_recipient = stb_user + "@" + stb_domain;
var stb_url = "mailto:" + stb_recipient;
document.write(stb_recipient.link(stb_url));
</script>

Mobile Ready

So many web users are on mobile devices these days that websites need to optimize for that traffic. Search engines have acknowledged this and even prioritize mobile search results based on web pages that are mobile ready.

You can test if your webpage is mobile ready by using Google's Mobile Friendly Test tool.


Clickable Element Spacing

Clickable element spacing means that anything a visitor might click on such as a link, drop down or input field needs to have enough of a space buffer from other clickable elements to prevent 'fat finger' clicking. It's frustrating when a visitor goes to click on something on their mobile device only to have a nearby element register the 'click' action instead of the intended element. Google recommends 44pxs x 44pxs at the smallest.


Advanced Site SEO


Structured Data/Microdata

Structured data such as microdata is used to nest meta data within the content of the page. Web crawlers and browsers can use the structured data to enhance the user's experience. One example of this is in search engine results. You may have noticed reviews, product pricing, or even images getting displayed with some search results. Those extra elements help results to stand out in the list of results and can increase clicks. Google gives examples of how to markup your product page in three different structured data formats, microdata, RDFa and JSON-LD. Below is the microdata example from that page with ShopSite product tags used.

<div itemscope itemtype="http://schema.org/Product">
  <span itemprop="brand">[-- PRODUCT.Brand --]</span>
  <span itemprop="name">[-- PRODUCT.Name --]</span>
  <img itemprop="image" src="[-- PRODUCT.Graphic URL_ONLY --]" alt="[-- PRODUCT.GraphicDesc --]" />
  <span itemprop="description">[-- PRODUCT.ProductDescription --]</span>
  Product #: <span itemprop="mpn">[-- PRODUCT.Sku --]</span>
  <span itemprop="aggregateRating" itemscope itemtype="http://schema.org/AggregateRating">
    <span itemprop="ratingValue">[-- REVIEWS_STARS_NUMBER --]</span> stars, based on <span itemprop="reviewCount">[-- REVIEWS_COUNT_NUMBER --]
      </span> reviews
  </span>

  <span itemprop="offers" itemscope itemtype="http://schema.org/Offer">
    Regular price: [-- PRODUCT.Price --]
    <meta itemprop="priceCurrency" content="USD" />
    $<span itemprop="price">[-- PRODUCT.SaleAmount NO_SYMBOL --]</span>
    Available from: <span itemprop="seller" itemscope itemtype="http://schema.org/Organization">
                      <span itemprop="name">[-- STORE.Name --]</span>
                    </span>
  </span>
</div>

Once you have added your structured data you can test the markup in Google's Structure Data Testing Tool.