How to Perform a Technical SEO Audit - #SAScon

Post on 21-Apr-2017

1.845 views 2 download

Transcript of How to Perform a Technical SEO Audit - #SAScon

@badams #SAScon

How to perform aTechnical SEO audit

Barry Adams16 June 2016

@badams #SAScon

Barry Adams

• Doing SEO since 1998• Founder of Polemic Digital• Senior Editor at State of Digital

@badams #SAScon

Audit Process:

1. Crawl Optimisation

2. Index Optimisation

3. International SEO

4. Miscellaneous Elements

@badams #SAScon

My Technical SEO Tools

• Google Search Console

• DeepCrawl

• Screaming Frog

• WebPagetest.org

• Structured Data Testing Tool

@badams #SAScon

Excel Is Your Friend

@badams #SAScon

Start with a crawl

@badams #SAScon

1. Crawl Optimisation

@badams #SAScon

What is Crawl Optimisation?

Ensuring search engine spiders waste as little time as possible crawling the right URLs on your site.

If you waste crawl budget, the right pages are unlikely to be crawled & indexed.

@badams #SAScon

Google’s Crawl Sources

• Site crawl• XML Sitemaps• Inbound links

• DNS records• Domain registrations• Browsing data

@badams #SAScon

Identifying Crawl Waste

@badams #SAScon

Identifying Crawl Waste

@badams #SAScon

Identifying Crawl Waste

@badams #SAScon

Crawl Waste

• Check URLs in XML Sitemap

@badams #SAScon

Optimise XML Sitemaps• Check if the sitemap contains final URLs only

• Identify 301-redirects or other non-200 status codes

• Check usage of multiple sitemaps

@badams #SAScon

Crawl Waste

• Paginated Listings• Faceted Navigation

http://website.com/jewellery/?page=2&cat=5&color=silver&style=glass&collection=autumnsort=a&…

@badams #SAScon

Optimisation of Paginated Listings

• Check number of items on a single page

• Check implementation of rel=prev/next pagination meta tags

• Check blocking of sorting parameters in robots.txt Disallow: /*?sort=*

@badams #SAScon

Optimisation of Faceted Navigation

• Decide which facets have SEO value Recommend creating static pages for these

• All other facets: robots.txt disallow ‘rel=nofollow’ on facet links

@badams #SAScon

Check Configuration of URL Parameters

@badams #SAScon

Crawl Waste

• Check crawling/indexing of internal site search results

@badams #SAScon

Block Internal Site Search Pages

• Block in robots.txt

User-agent: *Disallow: /SearchResults.aspxDisallow: /*query=*Disallow: /*s=*

@badams #SAScon

Crawl Waste

• Check internal redirects

@badams #SAScon

Minimise Internal Redirects

• Find redirects with Screaming Frog• Internal links should all be 200 OK• Flat site structure

@badams #SAScon

Check HTTP Status Codes

The most important ones:

200 OK: everything is fine, here is your content

404 Not Found: the page you are trying to view doesn’t exist

301 Permanent Redirect: the page you are trying to view has moved permanently, here’s the new URL

302 Temporary Redirect: the page you are trying to view has moved temporarily, here is the new URL

500 Server Error: there’s been a massive fuck up, I can’t serve you this page

@badams #SAScon

Check HTTP Status Codes

Less common:

410 Gone: This page is gone and there is no alternative version. Useful for getting a page out of Google’s index quickly

503 Service Unavailable: The site is temporarily down. Use this when your server is having issues, as it will not impact rankings

@badams #SAScon

Check Soft 404s

When Google detects a Not Found error page but the HTTP status code is 200 OK.

@badams #SAScon

Crawl Waste• Check URL Duplication

http://website.com

http://www.website.com

http://www.website.com/index.php

http://website.com/index.php

http://www.website.com/category

http://www.website.com/category/

http://website.com/category

http://website.com/category/

+ httpS://

@badams #SAScon

Crawl Waste

• Canonicalised Pages

@badams #SAScon

Use Canonicals Wisely• “rel=canonical” is primarily for index issues

It is not a fix for crawl waste

Search engines need to see the canonical tag before they can act on it

Ergo, pages need to be crawled before rel=canonical has any effect

Ditto with meta noindex tags

@badams #SAScon

DON’T use Canonicals for…

• Faceted navigation

• Pagination & sorting

• Site Search pages

• Avoidable URL duplication

@badams #SAScon

OK to use Canonicals for…

• Separate mobile URLs

• Session-specific URL parameters

• Content syndication

• Unavoidable content duplication

@badams #SAScon

Crawl Waste

• Slow loading pages

@badams #SAScon

Load Speed Optimisation• Time to First Byte• Lightweight pages• Caching• Compression

@badams #SAScon

2. Index Optimisation

@badams #SAScon

Index Optimisation

• Ensure Google indexes & ranks the right pages

• Minimise indexing of zero-value pages

• Optimise all technical relevancy factors

@badams #SAScon

Google Search Console

@badams #SAScon

Human-Readable URLs

Bad URL:http://domain.com/default.aspx?p=43351&s=abx&ref=ps-2301-g&…

Good URL:http://domain.com/safety-boots/caterpillar/steel-toe-safety-boots.html

• Don’t overdo it – no keyword stuffing• Use a logical structure that makes sense to humans

@badams #SAScon

Hierarchical URLsHomepage

Category 1 Category 2

Subcategory 2.1

Subcategory 2.3

Subcategory 2.2

Product 2.2 A

Product 2.2 B

Product 2.2 C

Category 3

http://domain.com/

http://domain.com/category/

http://domain.com/category/subcategory/

http://domain.com/category/subcategory/productA.html

http://domain.com/category/subcategory/productB.html

http://domain.com/category/subcategory/productC.html

@badams #SAScon

Always use Canonicals

• Duplicate URLs can originate from various sources…

http://www.website.com/page1.html

http://www.website.com/page1.html?utm_source=buffer&utm_medium=social&utm_campaign=seo

@badams #SAScon

Use Full URLs in Canonicals

<link rel=“canonical” href=“/page1.html”>

<link rel=“canonical” href=“www.website.com/page1.html”>

<link rel=“canonical” href=“https://www.website.com/page1.html”>

@badams #SAScon

Meta Robots Tag<meta name=“robots” content=“…”>

• ‘noindex’: don’t index this page• ‘nofollow’: don’t follow any links on this page• ‘nosnippet’: don’t show a search snippet for this page• ‘noodp’: don’t use the ODP/DMOZ description for this page• ‘noarchive’: don’t show a Cached link for this page• ‘unavailable_after:[date]’: stop crawling and indexing of this page after this date• ‘noimageindex’: don’t use this page as the referring page for an image that

appears in Google search results• ‘none’: same as ‘noindex, nofollow’

@badams #SAScon

Code Bloat

@badams #SAScon

Structured Data

@badams #SAScon

Structured Data

• Schema.org markup

@badams #SAScon

JSON-LD Markup

• In the <head> sectionSeparate from body codeEasier to implement

@badams #SAScon

Google Search Console

@badams #SAScon

Structured Data Testing Toolhttps://search.google.com/structured-data/testing-tool/

@badams #SAScon

Expired Pages

• Google’s advice: serve 404 Not Found Downside: potential loss of link value

Source: https://www.youtube.com/watch?v=9tz7Eexwp_A

@badams #SAScon

My Advice

• Keep the page up• Recommend alternative

products

@badams #SAScon

High-churn Listings Sites

• Pages with a limited lifespan, potentially thousands of new pages every week Online auctions / ‘… for sale’ classified sites / Job listings / etc…

301-redirect old URL to most relevant new URL Minimum 180 days Serve 410 (or 404) on old URL after 180 days

@badams #SAScon

3. International SEO

@badams #SAScon

International Domains

• Check if they’re using the right TLD; Generic TLDs: .com, .org, .net, .info, … ccTLDs: .co.uk, .ie, .de, .fr, .it, .nl, …

• Generic domains can be geo-targeted with Google Search Console

• Country-code domains will be assumed to target that countryIt’s almost impossible to get a .ie website to rank in google.co.uk

@badams #SAScon

Google Search Console

@badams #SAScon

Website Structure

• Subdirectories: website.com/gb website.com/it

• Subdomains: gb.website.com it.website.com

Verify separately in Google Search Console and set the geo-target

@badams #SAScon

Country & Language

www.website.com/be-fr/

www.website.com/be-nl/

www.website.com/be-de/

Use official ISO country & language codes where possible

@badams #SAScon

HTML Language Tag

• Use the ‘lang’ attribute:

• Don’t forget to change when you launch your international version!

@badams #SAScon

HREFLANG Meta Tags

<link rel="alternate" href="http://example.com/en-ie" hreflang="en-ie" />

<link rel="alternate" href="http://example.com/en-ca" hreflang="en-ca" />

<link rel="alternate" href="http://example.com/en-au" hreflang="en-au" />

<link rel="alternate" href="http://example.com/en" hreflang="en" />

<link rel="alternate" href="http://example.com/" hreflang="x-default" />

More info: https://support.google.com/webmasters/answer/189077

@badams #SAScon

Google Search Console

@badams #SAScon

IP Redirects

• Google primarily crawls from US-based IP addresses

• If a site uses IP address redirects, make an exception for all ‘Googlebot’ user-agents

@badams #SAScon

4. MiscellaneousElements

@badams #SAScon

Mobile UX

@badams #SAScon

Mobile UX

@badams #SAScon

Rel=Alternate Meta Tag

Desktop page:<link rel="alternate" media="only screen and (max-width: 640px)" href="http://m.example.com/page1.html">

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

@badams #SAScon

Site Security

@badams #SAScon

Site Security

@badams #SAScon

SSL Certificate Quality

https://www.ssllabs.com/ssltest/

@badams #SAScon

Summarised

@badams #SAScon

Technical SEO Audits Summarised:• Identify Crawl Waste:

XML Sitemaps Sorted & Paginated Listings Duplicate URLs Load Speed

• Check HTTP Status Codes

• Review On-Site Technical SEO: URLs Code Quality Structured Data

• Minimise indexing of zero-value pages

• Check implementation of international SEO: TLDs & IP Redirects Subdomain / Subfolders HREFLANG meta tags

• Check miscellaneous elements: Mobile UX Security SSL

@badams #SAScon

Create Your Report

@badams #SAScon

Create Your Report

• Make it actionableGive examples

• Explain WHY something needs changedSometimes devs can come up with a more elegant solution

• PrioritiseProvide a recommended timeline of changes

@badams #SAScon

Questions?barry@polemicdigital.comwww.polemicdigital.com@polemicdigital@badams