oonie.co.za / tools / audit-checklist
SEO Audit
Checklist
50 specific, testable checks across Technical, On-Page, Content, Off-Page, and Local SEO. Written for South African business owners who want to know exactly where their site stands — not a lecture on SEO theory.
Start the ChecklistTechnical
0 / 16The stuff Google needs to work properly before anything else matters.
-
Your website is submitted to and verified in Google Search ConsoleGoogle Search Console (GSC) is the free tool Google gives you to see how your site is performing in search. Without it, you're flying blind — you can't see which keywords bring people to your site, whether your pages are indexed, or if there are crawl errors. Go to search.google.com/search-console and add your site. Verify ownership via your domain registrar or *HTML tag.Check: Google Search Console → Settings → Ownership verification
-
Your homepage and key service/product pages appear in Google when you search site:yourdomain.co.zaThe site: operator shows you which pages Google has indexed. Type
site:yourdomain.co.zainto Google.co.za and check the results. If your homepage, services pages, or blog posts are missing, they're not showing up in search at all — regardless of how good your content is.Check: Google.co.za search → type site:yourdomain.co.za -
Your XML sitemap is submitted to Google Search Console and contains only live, indexable URLsA sitemap is a list of your important pages that tells Google what to crawl. Most WordPress sites have one at
/sitemap.xmlor/sitemap_index.xml. Submit it via GSC under Sitemaps. The sitemap should only list pages you want Google to show — not thank-you pages, duplicate pages, or admin URLs.Check: GSC → Sitemaps → check status + errors -
Your robots.txt file is not accidentally blocking Google from crawling important pagesRobots.txt is a small file at
yourdomain.co.za/robots.txtthat tells search engines what not to crawl. If something went wrong (often during a site build), it can block everything — meaning Google simply won't index your site. Check it manually and look forDisallow: /which blocks all crawling. That line should never be there on a live site.Check: Visit yourdomain.co.za/robots.txt directly -
Your site loads over HTTPS (padlock in browser address bar) with no mixed content warningsHTTPS is the secure version of your website — it encrypts data between the visitor's browser and your server. Google uses HTTPS as a minor ranking signal, and Chrome will warn visitors if your site is "not secure," which tanks conversion. Mixed content means the main page is HTTPS but some elements (images, scripts) are still loading on HTTP. Check for it by opening Chrome DevTools (F12) and looking at the Console tab.Check: Chrome → address bar padlock → Site information
-
Typing http://yourdomain.co.za redirects correctly to https://yourdomain.co.za (no broken redirect chain)Even if your site runs on HTTPS, people and old links sometimes try to access the HTTP version. There should be a single clean redirect: HTTP → HTTPS. No loops, no double redirects, no landing on a different page. Test this by typing the HTTP version in your browser and watching where it ends up.Check: Type http:// version in browser and watch where it redirects
-
Core Web Vitals pass in Google Search Console (green for LCP, CLS, and INP)Core Web Vitals are Google's three speed and experience metrics. LCP (Largest Contentful Paint) measures how fast the main content loads. CLS (Cumulative Layout Shift) measures how much the page jumps around while loading. INP measures how quickly the page responds to clicks. Google uses these as ranking factors. South African sites on slow shared hosting often fail LCP.Check: GSC → Experience → Core Web Vitals
-
Your site loads in under 3 seconds on mobile via PageSpeed Insights (score 50+ on mobile)South African mobile data is still relatively expensive and connections aren't always fast. A slow site loses visitors — research consistently shows that users abandon pages that take more than 3 seconds to load. Go to pagespeed.web.dev, enter your URL, and run the mobile test. A score below 50 on mobile is worth addressing urgently. Common culprits: oversized images, page builders loading unnecessary CSS/JS, no caching.Check: pagespeed.web.dev → run mobile test
-
Images are served in WebP format and compressed below 200KB per imageImages are the single biggest contributor to slow page speeds on most small business websites. WebP is a modern image format that's typically 25–35% smaller than JPEG or PNG at equivalent quality. Check what format your images are using (right-click → Inspect → Network tab in Chrome). If you're running WordPress, plugins like ShortPixel or Imagify will automatically convert and compress images.Check: PageSpeed Insights → Opportunities → "Serve images in modern formats"
-
There are no broken internal links returning 404 errors on your siteA 404 error means a page doesn't exist — either it was deleted, moved, or the link has a typo. Internal 404s waste Google's crawl budget and frustrate users. This is especially common after redesigns where page URLs changed. Use the free version of Screaming Frog (crawls up to 500 URLs free) or check GSC under Coverage.Check: GSC → Pages → Why pages aren't indexed → Not found (404)
-
Your site passes Google's Mobile-Friendly Test (text readable without zooming, buttons not too close together)Google primarily uses the mobile version of your site for indexing and ranking — this is called mobile-first indexing. If your mobile experience is broken, your rankings suffer regardless of how good the desktop version looks. Common issues: text too small to read, buttons overlapping, content wider than the screen. Test at search.google.com/test/mobile-friendly.Check: search.google.com/test/mobile-friendly
-
There are no redirect chains (A → B → C) — all redirects go directly to the final destinationRedirect chains happen when a URL redirects to another URL that itself redirects again. Each hop adds latency and causes a small loss of link equity. Common after redesigns where old redirects weren't cleaned up. Aim for a single direct redirect: old URL → new URL. No in-between stops.Check: Screaming Frog (free up to 500 URLs) → Redirect Chains report
-
Browser caching and Gzip or Brotli compression are enabled on your serverCaching stores copies of files so repeat visitors load the site faster. Compression (Gzip or Brotli) reduces the size of files sent from the server to the browser — typically cutting *HTML/CSS/JS file sizes by 60–80%. If you're on managed WordPress hosting (Kinsta, WP Engine, Cloudways), these are usually enabled by default. On budget shared hosting, they often aren't.Check: PageSpeed Insights → Diagnostics → "Serve static assets with an efficient cache policy"
-
Your site's HTML has a lang="en" (or appropriate language) attribute on the <*html> tagThe language attribute on the <*html> tag tells browsers and search engines what language your content is in. For South African English,
<*html lang="en-ZA">is technically most accurate. View page source (Ctrl+U) and look at the very first HTML line.Check: View page source (Ctrl+U) → look for lang= on first line -
GSC shows no Manual Actions or Security Issues against your siteA Manual Action means a Google reviewer has flagged your site for violating their guidelines — which results in ranking suppression or complete de-indexing. Security Issues means Google has detected malware, hacked content, or deceptive pages. Either is bad. If you have one, you'll see it immediately in GSC. You'll need to fix the underlying issue and request a review.Check: GSC → Security & Manual Actions (left sidebar)
-
Structured data (Schema markup) on your site passes Google's Rich Results Test with no errorsSchema markup is code that helps Google understand what your page is about — whether it's a service, a review, an FAQ, a product, or a local business. If you have schema on your site (many SEO plugins add it automatically), it needs to be valid or it won't generate rich results in search. Do not tag content as something it isn't — Google penalises misleading structured data.Check: search.google.com/test/rich-results
On-Page
0 / 12What's on each page, how it's structured, and whether Google can make sense of it.
-
Every important page has a unique title tag under 60 characters that includes the primary keywordThe title tag is what appears as the blue clickable headline in Google search results. It's one of the strongest on-page ranking signals. Each page needs its own unique title. Keep it under 60 characters so it doesn't get cut off. Put the primary keyword near the start. Example: "Accounting Services Cape Town | Smith & Associates" not "Welcome to Smith & Associates Accountants and Business Advisors".Check: Right-click page → View page source → search for <*title>
-
Every important page has a unique meta description between 120–155 characters that summarises the page contentThe meta description is the grey paragraph text under the title in search results. It's not a direct ranking factor, but it affects click-through rate — a compelling description means more people click. Keep it under 155 characters. Each page needs its own, unique description — don't copy-paste.Check: Paste URL into Ahrefs free tools or check via SEO browser extension
-
Every page has exactly one H1 heading tag, and it includes the primary keyword for that pageThe H1 is the main heading on a page — the big headline at the top. There should be exactly one H1 per page. Having multiple H1s confuses Google about what the page is actually about. Having none means you're missing an important ranking signal.Check: Right-click → Inspect → Ctrl+F → search for h1
-
Heading tags (H2, H3) are used in logical order to structure content — not just to make text biggerHeading tags create a content hierarchy that helps both Google and screen readers understand your page structure. A common mistake is using H2 or H3 purely for visual styling — to make text bold or bigger — without it being a logical content section. This scrambles the structure Google reads.Check: Install SEOquake or Detailed SEO Extension to view heading structure
-
No two pages on your site target the same primary keyword (no keyword cannibalisation)Keyword cannibalisation happens when multiple pages compete for the same search term. Instead of one strong page ranking, you have two weak ones undermining each other. Google has to pick one, and it might pick the wrong one. This often happens with blogs — writing multiple posts about the same topic, or having a service page and a blog post both targeting the same keyword.Check: Google.co.za → search your target keyword → see which of your pages appears first
-
All images have descriptive alt text that explains what the image shows (not "image1.jpg" or empty)Alt text tells Google what an image shows (helpful for image search) and is read aloud by screen readers for visually impaired users. It should describe the image accurately — "Electrician installing a distribution board in a Cape Town home" is good. "Pic 1" or an empty alt attribute is not. Logos and decorative images can have empty alt text (
alt="") — but not content images.Check: Right-click any image → Inspect → look for alt= attribute -
Your page URLs are short, readable, and contain the primary keyword (no random strings like ?p=442)Clean URLs help users and Google understand what a page is about before they even open it.
/services/accounting-cape-town/is better than/?page_id=47. Use hyphens, not underscores. On WordPress, go to Settings → Permalinks and set it to "Post name".Check: Look at your current URLs — are they human-readable? -
Canonical tags are set correctly — no page is pointing to itself with the wrong version or pointing to a blank URLA canonical tag tells Google which is the "official" version of a page when duplicates exist. Most SEO plugins (Yoast, RankMath) handle this automatically. Problems occur when the tag is wrong — pointing to a different page, pointing to a URL with trailing parameters, or missing entirely on pages that need it.Check: View page source → Ctrl+F → search "canonical"
-
Internal links point from your lower-priority pages to your most important pages (not just top-nav)Internal linking passes authority between pages. If your blog posts, about page, and contact page never link to your key service pages, those pages get less authority signal than they should. Your most important pages should receive links from multiple other pages on the site — not just the top navigation.Check: Pick your 3 most important pages → count how many other pages link to them
-
No important page is more than 3 clicks away from your homepageClick depth affects how much authority Google assigns to a page. Pages that are 4, 5, or 6 clicks away from the homepage receive much less crawling priority. If a user has to dig through multiple menus and categories to find an important service or product page, that page likely isn't getting the attention it deserves.Check: Start from homepage and count clicks to reach each important page
-
Structured data is present on pages where it's applicable (LocalBusiness, FAQPage, Service, etc.)Schema markup can earn you rich results in Google — FAQ dropdowns, star ratings, business hours appearing directly in search results. For local businesses in South Africa: LocalBusiness schema on your contact/about page is particularly valuable. FAQPage schema on service pages can earn FAQ snippets.Check: search.google.com/test/rich-results → enter your URL
-
Open Graph tags are set so that when someone shares your page on social media, a proper image and title appearOpen Graph tags (og:title, og:image, og:description) control how your pages look when shared on LinkedIn, Facebook, and WhatsApp. Without them, social shares either show no image, pull a random image, or show garbled text. Most SEO plugins handle this — just make sure you've set a specific Open Graph image for each important page.Check: Paste your URL into developers.facebook.com/tools/debug/
Content
0 / 9What you're actually saying, and whether Google (and humans) find it useful.
-
Your homepage clearly states what you do, who you do it for, and where you're based — within the first screenVague homepages — "we help businesses grow" — are a conversion and SEO problem. Within the first visible area (above the fold), a visitor should be able to answer: what does this company do, who is it for, and where are they? For South African service businesses, this means stating your location explicitly.Check: Open your homepage in an incognito window — can you answer all three questions in 5 seconds?
-
Each main service or product has its own dedicated page (not all services listed on one single page)When all your services are on one page, that page has to compete for every service keyword simultaneously — and it typically wins for none of them. Each service with meaningful search volume deserves its own dedicated page with a focused keyword target. A tax practitioner should have separate pages for personal tax, corporate tax, and trust tax — not one "services" page listing all three in a paragraph.Check: Count how many distinct services you offer vs. how many service pages you have
-
Key service/product pages contain at least 500 words of original content (not just a headline and a contact form)Thin pages — a headline, a sentence, and a contact button — rarely rank for competitive terms because there's no content for Google to evaluate. A proper service page should explain what the service involves, who it's for, what the process looks like, and what's included. 500 words is a floor, not a ceiling.Check: Paste your page content into a word counter — wordcounter.net
-
Your content is original — not copied from a supplier, competitor, or generated and published without editingDuplicate content — copying from other sites, manufacturer descriptions, or press releases — is actively harmful to your rankings. This includes AI-generated content that's published without meaningful editing. Run your key pages through a plagiarism checker (Copyscape, or Quetext's free tier) if you're not certain the content is unique.Check: copyscape.com → paste your page URL and run a check
-
Blog posts or articles are published on a consistent schedule (at least monthly) and target specific search queriesEach blog post or article is an opportunity to rank for a specific question or search phrase your potential clients are using. "What does an estate agent do in South Africa?" or "How much does a trademark application cost?" are the kinds of searches content should be targeting — not generic industry news nobody is searching for.Check: Open your blog — when was the last post published? Do the titles look like search queries?
-
Older content is updated when information changes — no pages contain outdated pricing, laws, or processesIn South Africa specifically: VAT thresholds, POPIA requirements, SARS deadlines, CIPC processes, and legal regulations change. Pages that reference old figures or outdated legislation undermine your credibility. Google's "freshness" signal also gives a mild ranking boost to recently updated pages for time-sensitive queries.Check: Search through your key service pages for any specific figures, dates, or regulatory references that might be outdated
-
Your site includes genuine social proof — client names/logos, testimonials with full names, or case studiesGoogle's quality evaluator guidelines explicitly value E-E-A-T: Experience, Expertise, Authoritativeness, and Trustworthiness. Real social proof — testimonials with real names, recognisable client logos, case studies with actual numbers — contributes to these signals. Testimonials like "Great service! — John" without surnames, photos, or context carry almost no weight.Check: Does your site have testimonials? Are they attributed to real, verifiable people or businesses?
-
Your About page includes real people, credentials, experience, and your physical location in South AfricaFor professional services — accountants, attorneys, engineers, advisors — Google places significant weight on expertise and credentials. An About page that says "we are a passionate team of experts" with no names, qualifications, or location is a missed opportunity. Name the people behind the business, list relevant qualifications (CA(SA), SAIPA, admitted attorney, registered engineer), and be specific about where you operate.Check: Read your About page — would a stranger trust you based on what's there?
-
There is a clear, single call-to-action on each key page — not three competing CTAs pointing in different directionsEvery key service or product page should have one primary action you want the visitor to take: call this number, book a consultation, request a quote. Multiple competing CTAs on the same page (call us, email us, WhatsApp us, book online, download this guide) dilute each other.Check: Open each key page — what's the most prominent action available? Is there more than one?
Off-Page
0 / 7Signals that come from outside your website — primarily links and authority.
-
You have inbound links from at least 5 relevant, reputable South African websites or industry directoriesLinks from other websites to yours are still one of the strongest ranking signals Google uses. A link from a relevant SA industry body, a recognised local publication, or a chamber of commerce carries far more weight than a generic directory link. Check your existing backlink profile using Ahrefs Webmaster Tools (free) or Google Search Console under "Links".Check: GSC → Links → Top linking sites | Or: Ahrefs Webmaster Tools (free)
-
Your site has no toxic or spammy backlinks pointing to it from irrelevant foreign directories or link farmsToxic backlinks — links from spammy directories, link farms, or sites unrelated to your industry — can actively harm your rankings. This is particularly relevant if you've ever paid for links or been part of a link exchange scheme. If you find obviously toxic links, you can disavow them via Google Search Console (only do this if the links are clearly harmful — misusing the disavow tool can hurt you).Check: Ahrefs Webmaster Tools → Backlink profile → filter by low domain rating or suspicious anchors
-
Your business is listed (and consistent) on major SA directories: Yellosa, Hotfrog, SA Yellow Pages, and your industry association siteBusiness directory listings serve two purposes: they're a source of backlinks, and they're citations — mentions of your business name, address, and phone number (NAP). Inconsistency (different addresses, old phone numbers, varying business names) weakens your local SEO. Check Yellosa.co.za, Hotfrog.co.za, and your relevant professional body's website.Check: Google your business name + "directory" to find existing listings
-
Anchor text on inbound links looks natural — not 80%+ of links using the exact same keyword phraseIf someone links to your site using your exact target keyword phrase almost every time (e.g. "Cape Town accountants" 90% of the time), Google's Penguin algorithm can interpret this as a manipulative link building pattern. Natural link profiles have a mix: brand name, URL, generic terms ("click here", "read more"), and some exact-match keywords.Check: Ahrefs Webmaster Tools → Backlinks → Anchors tab
-
You are mentioned (with or without links) in online media, publications, or relevant South African forums and communitiesUnlinked brand mentions still carry weight as an authority signal, and they're opportunities to request a backlink. Track your brand mentions via Google Alerts (free). South African small businesses often miss mentions in community Facebook groups, LinkedIn posts, or industry forums — these can often be turned into links with a polite request.Check: Set up a Google Alert for your business name at google.com/alerts
-
Your website has not been penalised for past link schemes — check GSC for manual actions related to linksIf the previous owner of your domain, a past SEO provider, or you yourself engaged in link schemes (paid links, private blog networks, link exchanges), there may be an algorithmic penalty suppressing your rankings — or a manual action. Algorithmic penalties from Penguin show up as sudden traffic drops after Google algorithm update dates.Check: GSC → Security & Manual Actions → Manual actions
-
Your social profiles (LinkedIn, Facebook) link back to your website and have consistent business name and contact infoSocial profiles are treated as citations — they confirm your business's existence and details. Google often surfaces LinkedIn and Facebook profiles in brand search results, so an incomplete or inconsistent social profile hurts your brand impression in search.Check: Review your LinkedIn Company Page and Facebook Business Page — do all links and contact details match your website?
Local & SA-Specific
0 / 6Checks that matter specifically because you're operating in South Africa.
-
Your Google Business Profile is claimed, verified, and fully completed — including services, opening hours, and photosYour Google Business Profile is what powers the map results and the business info panel on the right side of Google search. A fully completed profile — with services listed, hours set, current photos, and a real street address or service area — ranks significantly better than an empty or unclaimed one. Go to business.google.com to claim and manage it.Check: Search your business name on Google — does a business profile appear on the right?
-
Your Google Business Profile has at least 10 reviews with an average rating above 4.0, and you respond to all reviewsGoogle reviews are a confirmed local ranking factor. In South Africa, many businesses have unclaimed profiles or single-digit review counts — making it relatively easy to outrank competitors simply by actively requesting reviews from clients. Responding to reviews (positive and negative) also shows Google you're an active business.Check: Search your business name on Google — how many reviews do you have?
-
Your site uses a .co.za domain (or has been geo-targeted to South Africa via Google Search Console)A .co.za domain is an automatic signal to Google that your site is intended for South African users — no additional configuration needed. If you're using a .com or .net domain, you need to set the International Targeting in GSC (Legacy tools → International Targeting → Country tab). Without this, Google may not prioritise your site for google.co.za searches.Check: What TLD is your domain? If .co.za, you're fine. If .com/.net → set geo-targeting in GSC
-
Your site is hosted on a South African server or a CDN with SA edge nodes (not a server in Europe or the US)Server location affects page speed for local users — a server in London adds latency for visitors in Cape Town or Johannesburg. SA hosting options include Afrihost, Hetzner SA, Web Africa, and Xneelo. If you're using Cloudflare, it has nodes in Johannesburg which mitigates the server location issue.Check: tools.keycdn.com/geo → enter your domain
-
Location-specific pages exist for each major city or area you serve (not just "we serve all of South Africa")If you operate in multiple cities, a single page saying "we serve clients nationwide" won't rank for location-specific searches. You need dedicated pages for each location: /services/accounting-johannesburg/ and /services/accounting-cape-town/. Each location page must have unique content — not just the same page with the city name swapped. Google penalises duplicate location pages.Check: Search "[your service] + [city you serve]" on Google.co.za — do you appear?
-
Your site displays a South African phone number (not just WhatsApp or email), and it's consistent across all platformsNAP consistency — your business Name, Address (or service area), and Phone number — is a core local SEO signal. Your SA phone number should be identical across your website, Google Business Profile, Facebook, LinkedIn, and any directory listings. Even small differences (021 vs +2721, or different address formats) create inconsistency that weakens your local signals.Check: Compare your phone number format across website, GBP, Facebook, and Yellosa
Your Results
Where You
Stand
0–40% — Needs Serious Work
Your site has significant gaps that are actively costing you visibility. The good news is that there are clear, fixable things to work through. The bad news is that this will take time you probably don't have. Rather have a human fix this properly? That's what NoGravy is for.
→ nogravy.co.za
→ nogravy.co.za
41–70% — Getting There
You've got a reasonable foundation but there are still meaningful gaps. The items you haven't ticked aren't minor — they're the ones separating you from consistent organic traffic. If you want someone to work through the gaps with you, NoGravy can help.
→ nogravy.co.za
→ nogravy.co.za
71–100% — Solid Foundation
You've done the work. Your site has most of the fundamentals in place. At this point, the gains come from content strategy, conversion rate optimisation, and link building — the harder, more iterative work. NoGravy specialises in exactly that.
→ nogravy.co.za
→ nogravy.co.za