The Complete SEO Audit

Ironically, this complete SEO audit is still a work-in-progress!

In the meantime, enjoy 55 fundamental checks I use in a complete SEO audit as a Dallas SEO consultant.

Site TypeIssue TypeCategorySub-CategoryItem
All WebsitesSetupBasic InformationLoginsDo you have proper login access to the analytics platform, Google Search Console, tag manager platform, CMS, et al.?
All WebsitesSetupBasic InformationDomain Check and record age of the domain.
All WebsitesSetupBasic InformationDomain Record domain expiration date. If expiry is in 1 year or less, notify site owner immediately.
All WebsitesSetupBasic InformationDomain Check the domain name- is it excessive in length, or is too close to an exact match domain?
All WebsitesSetupBasic InformationDomain Is the WHOIS registration public or private? There aren't necessarily SEO consequences here, but it can be helpful to have a private registration.
All WebsitesSetupRisk ManagementAlgorithm Filters & PenaltiesHave you checked the site's analytics against a penalty/filter/algorithm update tool like Panguin?
All WebsitesTechnical SEOAccessibilityBasic AccessSite pages return 200 or 301 status codes. 302's, 307's, and 4XX status codes are avoided.
All WebsitesTechnical SEOAccessibilityBasic AccessPage(s) can be accessed with JavaScript, CSS disabled (option: disable cookies too)
All WebsitesTechnical SEOAccessibilityIndexationManual site: search returns number of results appropriate to size of site
All WebsitesTechnical SEOAccessibilityIndexationManual site: search returns the home page of the site as the first result
All WebsitesTechnical SEOAccessibilityIndexationPage(s) return a cached copy from Google with a date of 2 weeks ago or younger
All WebsitesTechnical SEOAccessibilityIndexationText-only versions of cached pages properly render all page content.
All WebsitesTechnical SEOAccessibilityIndexationSearch for brand and brand terms display appropriate pages
All WebsitesTechnical SEOAccessibilityRobots.txtRobots.txt file blocks all user agents from sensitive or personal files
All WebsitesTechnical SEOAccessibilitySitemapsXML Sitemaps employed
All WebsitesTechnical SEOAccessibilitySitemapsHTML Sitemaps Employed
All WebsitesTechnical SEOAccessibilitySitemapsHTML Sitemap URLs match target page canonical URLs
All WebsitesTechnical SEOAccessibilitySitemapsHTML Sitemap URLs all return 200 status codes
All WebsitesTechnical SEOAccessibilitySitemapsXML Sitemap URLs all return 200 status codes
All WebsitesTechnical SEOAccessibilitySitemapsXML Sitemap URLs match target page canonical URLs
All WebsitesTechnical SEOAccessibilitySitemapsImage files included in sitemap
All WebsitesTechnical SEOAccessibilitySitemapsVideo files included in sitemap
All WebsitesTechnical SEOAccessibilitySitemapsHreflang sitemaps (or tags employed) employed
All WebsitesTechnical SEOURLCanonicalA single canonical tag employed
All WebsitesTechnical SEOURLCanonicalCanonicals match final page URLs
All WebsitesTechnical SEOURLCanonicalSession parameters aren't canonicalized
All WebsitesTechnical SEOURLCanonicalM dot pages marked as rel alternate
All WebsitesTechnical SEOURLRewritesURLs are rewritten to SEO-friendly URLs instead of page id numbers
All WebsitesTechnical SEOURLRewritesProtocol is forced to rewrite either to http(s):// only or http(s)://www
All WebsitesTechnical SEOURLRewritesTrailing slash automatically resolves
All WebsitesTechnical SEOURLRewritesCase automatically rewritten to lowercase
All WebsitesTechnical SEOURLRedirects301 redirects are used instead of 302 or 307
All WebsitesTechnical SEOSpeedResource SizeHTML minified
All WebsitesTechnical SEOSpeedResource SizeCSS Minified
All WebsitesTechnical SEOSpeedResource SizeJS minified
All WebsitesTechnical SEOSpeedResource SizeLarge resource calls externalized, and combined into as few calls as possible
All WebsitesTechnical SEOSpeedOther ResourcesSmall resources (scripts and style sheets) are called inline
All WebsitesTechnical SEOSpeedOther ResourcesIf possible, scripts are placed before closing tag
All WebsitesTechnical SEOSpeedNetworkFailing ideal script placement, scripts are loaded with the async and/or defer attributes
All WebsitesTechnical SEOSpeedNetworkPreconnect Prefectch Preload
All WebsitesOn-Page SEOConventionsHeadingsIf XHTML 1.X / HTML >4.X use only 1 H1 heading, first in order of headings. If HTML 5, multiple headings ok.
All WebsitesOn-Page SEOConventionsStructured JSON-LD or microdata markup properly used
All WebsitesOn-Page SEOConventionsMeta DataMeta titles & descriptions are optimized to user click-through/engagement, have used target keywords effectively & meet length requirements.
All WebsitesOn-Page SEOConventionsMeta DataThere are no duplicate or empty Meta titles & descriptions
All WebsitesOn-Page SEOStructureNavigationFlat structure is used, with target pages/action as few clicks away from home page as possible. Unnecessary subdirectories are avoided.
All WebsitesMarketing DataMobileMobile FriendlinessResponsive design, m dot or dynamic serving is used for mobile devices.
All WebsitesMarketing DataMobileMobile FriendlinessViewport configured to device width and content scaled.
All WebsitesMarketing DataMobileMobile FriendlinessTap targets sized a minimum of 34 pixels, ideally to 44 pixels
All WebsitesMarketing DataMobileMobile FriendlinessLegible font sizes used for headings, body copy text
All WebsitesMarketing DataReportingAnalyticsAnalytics package installed
All WebsitesMarketing DataReportingAnalyticsRaw, Master IP Filtered, and Test Views Set up
All WebsitesMarketing DataReportingAnalyticsKnown bots filtered out from all non-raw views
All WebsitesMarketing DataReportingAnalyticsEvent, goal, transaction tracking enabled
All WebsitesMarketing Data ReportingTrackingUser insights software such as Hotjar, Inspectlet, Lucky Orange installed.
All WebsitesMarketing DataReportingTrackingTag management softare employed