Technical SEO Workbook + 90-Day Checklist (No Coding)
One task per module of the free technical SEO course, fill-in templates for your own site, and a 90-day plan you can follow with free tools and settings you already have.
The companion to the Technical SEO Complete Course: a task, template or checklist for each of the 10 modules, using free tools only. Finish it and you know Google can find, index and load every page that earns you money, and you have a 90-day plan to keep it that way.
For: Business owners and marketers who run their own website and want to fix technical SEO without hiring a developer for every check.
- If you only have 15 minutes · 5
- Module 0: Why technical SEO decides who gets the customer · 2
- Module 1: How Google finds and reads your pages · 3
- Module 2: Indexing: get the right pages shown · 8
- Module 3: Sitemaps and robots.txt without fear · 6
- Module 4: Internal links that push buyers to money pages · 2
- Module 5: Speed and Core Web Vitals, fixed with free tools · 6
- Module 6: Mobile-first: your site on a phone · 5
- Module 7: Redirects, redesigns and broken links · 5
- Module 8: Structured data basics · 5
- Module 9: Your 90-day technical SEO checklist · 9
- Common mistakes · 6
- Short on time? Do the 15-minute quick start today. It finds the problems that cost the most.
- Then watch one module and do that module's section here. One a day is a good pace. Write your answers in the templates; they become your site's technical record.
- Finish with the 90-day checklist, one block of weeks at a time, and re-run the Day 1 numbers on Day 90.
If you only have 15 minutes
Do these five things before anything else. If all five pass, your site has no locked doors and you can work through the modules at a calm pace.
- yoursite.com/robots.txt does not say 'Disallow: /' under 'User-agent: *'
That one line blocks crawling of the whole site.
- URL Inspection on your homepage says 'URL is on Google'
If your homepage isn't indexed, start with Module 2 right away.
- Indexing > Pages shows no money page under 'Excluded by noindex tag'
A leftover noindex is the fastest way to vanish from Google.
- http, https, www and non-www versions all land on one address
One version per page means signals aren't split across copies.
- Sitemaps report shows 'Success' for your main sitemap
If it says 'Couldn't fetch', Google isn't reading your list of pages.
Module 0: Why technical SEO decides who gets the customer
Technical SEO is about one question: can Google find, read and show the pages that make you money? So start by naming those pages. Every later module checks these first.
# | URL | What it sells / leads to | Leads or sales last month | Indexed? (Y/N) 1 | ____ | ____ | ____ | ____ 2 | ____ | ____ | ____ | ____ 3 | ____ | ____ | ____ | ____ 4 | ____ | ____ | ____ | ____ 5 | ____ | ____ | ____ | ____ 6 | ____ | ____ | ____ | ____ 7 | ____ | ____ | ____ | ____ 8 | ____ | ____ | ____ | ____ 9 | ____ | ____ | ____ | ____ 10 | ____ | ____ | ____ | ____
Date: ____ Search Console, last 28 days: clicks ____ impressions ____ Indexed pages (Pages report): ____ Not indexed: ____ Core Web Vitals, mobile: Good ____ Need improvement ____ Poor ____ Generative AI impressions, last 28 days (if the report shows for your site): ____ Money pages indexed: __ of 10 Leads from organic search last month: ____
Module 1: How Google finds and reads your pages
Google crawls (fetches) pages by following links and sitemaps, renders them like a browser, then decides whether to index them. Your job is to remove anything in the way.
- Search site:yourdomain.com on Google
A rough look at what's indexed. It isn't an exact count. Use the Search Console Pages report for real numbers.
- Run URL Inspection on your homepage and top money page
Check 'URL is on Google', the Google-selected canonical and the crawled page (Test live URL > View tested page > Screenshot). If the screenshot is blank or missing content, Google can't see what humans see.
- Fill in the 'Indexed?' column of your money pages list
Any 'N' goes straight to Module 2.
Module 2: Indexing: get the right pages shown
Open Indexing > Pages > 'Why pages aren't indexed'. Use this table to decide what each reason needs. Google says many of these are normal.
| Reason in the Pages report | Usually normal? | What to do if it's a money page |
|---|---|---|
| Excluded by noindex tag | Only if you meant it | Remove the noindex (SEO plugin setting or template), then Validate fix |
| Blocked by robots.txt | Only if you meant it | Remove the Disallow rule for that path |
| Page with redirect | Yes | Nothing, if the redirect goes to the right page. Update internal links to the final URL |
| Alternate page with proper canonical tag | Yes | Nothing. Google is indexing the canonical version |
| Duplicate, Google chose different canonical than user | Sometimes | Check why Google sees it as a copy. Merge, redirect or make the page clearly different |
| Not found (404) | Yes for deleted pages | If the page should exist, restore it or 301 it to the closest live page |
| Crawled - currently not indexed | Common on weak pages | Improve the page so it clearly answers something, and link to it from related pages |
| Discovered - currently not indexed | Common on new or large sites | Add internal links and keep it in the sitemap. Be patient |
Module 3: Sitemaps and robots.txt without fear
- yourdomain.com/robots.txt loads and does not block the whole site
Open it in a browser. It's a short text file you can read.
- robots.txt is not used to hide pages from search results
Google says robots.txt controls crawling, not indexing. A blocked URL can still be indexed without its content. Use noindex to keep a page out, and let Google crawl it so it can see the tag.
- robots.txt lists your sitemap (a line like 'Sitemap: https://yoursite.com/sitemap.xml')
It helps any crawler find the sitemap, not just Google.
- The sitemap lists only canonical URLs that return status 200
No redirects, no 404s, no noindexed pages. Google's limit is 50,000 URLs or 50 MB uncompressed per sitemap file.
- The sitemap is submitted in Search Console and the Sitemaps report shows Success
If it says 'Couldn't fetch', Google isn't reading it.
- You've decided which AI crawlers you allow
AI tools like OpenAI, Perplexity and Anthropic send their own crawlers that you can allow or block by name in robots.txt. Google says AI Overviews and AI Mode need no extra crawler or file: indexed and snippet-eligible is enough.
Module 4: Internal links that push buyers to money pages
Money page URL: ____ Internal links pointing to it (Search Console > Links > Internal links): ____ Linked from homepage? Y/N Linked from main menu? Y/N Clicks from homepage to reach it: ____ 3 related pages that should link to it: 1. ____ anchor text: ____ 2. ____ anchor text: ____ 3. ____ anchor text: ____
Money page: /bathroom-remodel-cost/ Internal links pointing to it: 2 Linked from homepage? N Linked from main menu? N Clicks from homepage: 4 New links added: 1. /bathroom-remodel/ (service page) anchor: 'what a bathroom remodel costs' 2. /blog/small-bathroom-ideas/ anchor: 'bathroom remodel cost guide' 3. /about/ (projects section) anchor: 'see typical remodel prices' After: 5 internal links, 2 clicks from homepage
Module 5: Speed and Core Web Vitals, fixed with free tools
Google's 'good' thresholds, at the 75th percentile of real visits: LCP 2.5 s or less, INP 200 ms or less, CLS 0.1 or less. Poor starts above 4 s, 500 ms and 0.25. INP replaced FID as a Core Web Vital in 2024.
- Each money page tested in PageSpeed Insights on the Mobile tab
Read the real-user data at the top first. The lab score below is a test, not what customers felt.
- Search Console > Core Web Vitals checked for Poor URL groups on mobile
A group takes the status of its worst metric, so one template fix can clear many URLs.
- Big images compressed (WebP or AVIF) and resized to the size they're shown
Large images are a common cause of slow LCP. Squoosh (squoosh.app) is free in the browser.
- The main hero image is NOT lazy-loaded
web.dev says lazy-loading the LCP image delays it. Lazy-load images further down instead.
- Unused plugins, chat widgets and pop-up tools removed
Practical advice: every script competes for the main thread, which hurts INP.
- Images, ads and embeds have reserved space (width and height set)
Stops the page jumping as things load, which is what CLS measures.
Module 6: Mobile-first: your site on a phone
- Every money page opened on a real phone: text readable without zooming, buttons easy to tap
Google uses mobile-first indexing, so the mobile version is the one that counts.
- The mobile version has the same main content as desktop
If content is hidden or missing on mobile, Google may not see it.
- Titles, meta descriptions, structured data and robots tags match on mobile and desktop
Google's mobile-first guide asks for the same metadata on both.
- No pop-up covers the main content as soon as the page opens on mobile
It blocks the reader and can push layout around. Use a small banner instead.
- Phone number and booking button are visible without hunting
Practical advice: mobile buyers want to call or book fast.
Module 7: Redirects, redesigns and broken links
- Crawl the site with Screaming Frog SEO Spider (free up to 500 URLs) and export 4xx and 3xx
Shows broken internal links and redirect chains. The paid licence (£199/year) removes the 500-URL limit; most small sites don't need it.
- Internal links that point to redirects or 404s now point to the final URL
Saves crawling and keeps link signals clean.
- Every changed URL has a server-side 301 (or 308) to its closest new page
Google treats permanent server-side redirects as a strong signal the page moved. Use the Redesign SEO checklist for a full move.
- No redirect chains (old > older > new)
Point every redirect straight at the final URL.
- Many old URLs are not redirected to the homepage
Google says redirecting lots of old URLs to one unrelated page might be treated as a soft 404.
Module 8: Structured data basics
- Pick the types that match your pages
Common ones for small businesses: Organization or LocalBusiness on the homepage, Product on product pages, Article on blog posts, BreadcrumbList site-wide.
- Add it as JSON-LD
Google recommends JSON-LD. Many CMS plugins add it without code.
- Test it
Use the Rich Results Test for Google features and the Schema Markup Validator for general schema.org errors.
- Keep it honest
Markup must match what's visible on the page. Misleading markup can lead to a manual action, and valid markup doesn't guarantee a rich result.
- Skip FAQ stars
Google stopped showing FAQ rich results from 7 May 2026. Don't spend time adding FAQ schema for a feature that no longer appears.
Module 9: Your 90-day technical SEO checklist
- Days 1-7: Search Console (Domain property) and Bing Webmaster Tools set up, sitemap submitted, robots.txt and noindex checked
Nothing else matters if Google can't get in.
- Days 1-7: URL Inspection run on all 10 money pages, baseline numbers written down
This is your fix list and your before picture.
- Days 8-30: full crawl done, broken links and redirect chains fixed, one preferred domain version enforced
Cleans the hallways before you add more rooms.
- Days 8-30: PageSpeed Insights run on money pages, biggest image and script problems fixed
Start with LCP on mobile. It's usually images or a slow server.
- Days 31-60: every money page gets at least 3 relevant internal links with descriptive anchors
Practical advice: this is the cheapest ranking lever most small sites ignore.
- Days 31-60: thin and duplicate pages merged, improved or removed
Fewer weak pages, clearer signals.
- Days 61-90: structured data added and validated on homepage and key page types
Helps Google understand who you are and what each page is.
- Days 61-90: weekly 10-minute Search Console routine running, including the Generative AI performance report
That report shows how often your pages appear in AI Overviews and AI Mode (impressions only). Use the Search Console weekly checklist.
- Day 90: re-run the Day 1 baseline and compare
Write the before and after numbers down. That's your proof it worked, or your clue where it didn't.
Common mistakes
- Fixing speed before checking indexing
A fast page Google can't index earns nothing. Door first, then foundation.
- Treating every 'not indexed' reason as a problem
Redirects, canonical alternates and deleted pages are normal. Only act on money pages.
- Blocking a page in robots.txt and adding noindex
Google can't see the noindex if it can't crawl the page.
- Redirecting all old URLs to the homepage after a redesign
Map each to its closest new page instead.
- Adding schema for things the page doesn't show
It breaks Google's structured data policies.
- Doing all 10 modules in one weekend, then never checking again
Problems come back with every plugin update and redesign. The weekly routine catches them.
Unlock the full workbook
Everything above, plus the branded PDF to keep.
Frequently asked questions
Can I do technical SEO without coding?
What is the most important technical SEO check?
Does robots.txt stop a page from appearing in Google?
What are good Core Web Vitals scores?
How long does technical SEO take to show results?
Sources
- Google Search Central: In-depth guide to how Google Search works
- Search Console Help: Page indexing report
- Google Search Central: Introduction to robots.txt
- Google Search Central: Build and submit a sitemap
- Google Search Central: Link best practices
- Google Search Central: Mobile-first indexing best practices
- web.dev: Web Vitals
- Search Console Help: Core Web Vitals report
- Google Search Central: Redirects and Google Search
- Google Search Central: Site moves with URL changes
- Google Search Central: Introduction to structured data
- Google Search Central: Structured data general guidelines
- Google Search Central: AI features and your website
- Search Console Help: Generative AI performance report
- Screaming Frog SEO Spider