Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Technical SEO Masterclass for Beginners - brigh...

Technical SEO Masterclass for Beginners - brightonSEO October 2026

Slides from 80min masterclass in Beginners Technical SEO presented on brightonSEO October 2026 edition.

Avatar for Tamara Novitovic

Tamara Novitovic

October 08, 2026

More Decks by Tamara Novitovic

Other Decks in Marketing & SEO

Transcript

  1. TODAY’S EXAMPLE SITE bazoom.com My own company’s site = no

    NDAs. NOTE This is the site I work o n. The issues are from our latest crawls. 198 URLs return a 404 59 pages have no internal links 44 internal links still use http://
  2. AGENDA What we'll cover 01 Crawling, indexing and the HTML

    behind them 02 Search Console, Rich Results, Core Web Vitals 03 Status codes, links, canonicals and more 04 AI crawlers 05 Practical fixes Pick one URL from a site you work on, or use my examples. We’ll need this for the site clinics.
  3. SITE CLINIC · WARM-UP Quick show of hands Who has

    opened a robots.txt file? Who has used URL Inspection? Who has never done a technical audit? No GSC access? Most checks today work without a login, so don’t worry!
  4. TOOLS TO BEGIN WITH The free tools we'll use today

    Search Console View-source: Screaming Frog Indexing and search data for your own site Built into every browser Free version crawls up to 500 URLs! Rich Results Test PageSpeed Insights Ahrefs WT Structured data and rendered HTML Core Web Vitals for any URL Free site audit once you verify your site
  5. PART 1 · BASICS Terms you'll hear a lot noindex

    Canonical = "don't store this page" = "this is the main version" Status code Redirect The server's 3-digit reply. 200 = fine, 404 = gone. A forward. 301 = moved for good, 302 = temporarily.
  6. PART 1 · BASICS How a URL gets into the

    index via links or a sitemap HTML downloaded scripts and CSS loaded canonical chosen
  7. PART 1 · BASICS How a URL gets into the

    index Technical SEO = removing friction at Found to Indexed. Content and links do the heavy lifting at Ranked and Cited. shows for a query used in AI answers
  8. PART 1 · HTML The head and the body of

    a page <head> Head <title>Page title</title> Title, robots meta tag, canonical <meta name="robots" ...> <link rel="canonical" ...> </head> <body> Body <h1>Main heading</h1> Headings, text and links <a href="/pricing/">Pricing</a> </body>
  9. PART 1 · HTML What to search for in the

    source name="robots" Is the page allowed to be indexed? rel="canonical" Which URL is the main version? <a href= Where do the links go? TIP Ctrl+U opens the sou rce code and Ctrl+F searc hes it. On a Mac: Cmd+Opti o n+ U .
  10. EXAMPLE The bazoom.com homepage head <meta name="robots" content="index, follow, maximage-preview:large,

    max-snippet:-1"> <link rel="canonical" href="https://bazoom.com/"> * A page with no robots meta tag can also be indexed. "index, follow" means the page can be indexed The canonical points to the homepage itself
  11. PART 1 · URLS What a good URL looks like

    EASY TO READ bazoom.com/link-building/ HARD TO READ site.com/p?id=23&sessionid=8f3a lowercase hyphens, not _underscores words, not IDs one trailing-slash style Changing URLs later means redirects, so pick the format before launch.
  12. PART 1 · ROBOTS.TXT What robots.txt does It tells crawlers

    which paths they shouldn't fetch. It doesn't remove a page from search, and it doesn't hide it from people. Each subdomain also has its own robots.txt file.
  13. PART 1 · ROBOTS.TXT Reading a robots.txt file User-agent which

    crawler the rule is for User-agent: * Disallow: /checkout/ Allow: /checkout/help/ Sitemap: https://site.com/sitemap.xml Disallow a path not to fetch Allow an exception to it Sitemap where your sitemap is
  14. PART 1 · ROBOTS.TXT Reading a robots.txt file visit link

    > domain.com/robots.txt User agent: * Disallow: Allow: User-agent: * User-agent: * User-agent: * Disallow: / Allow: / Disallow:
  15. PART 1 · ROBOTS.TXT When robots.txt itself breaks robots.txt returns

    What Google does 200 Follows the rules in the file 404 or 410 Acts as if there are no rules and crawls everything 5xx or timeout Stops crawling the site for a while CASE STUDY Our full crawl found 10 4 preview and staging h osts where robots.txt doe sn't load. The file must sit at the root, be called robots.txt and be plain UTF-8 text.
  16. PART 1 · ROBOTS.TXT Four robots mistakes I keep finding

    Usually opied from staging at launch. Whole site blocked. WordPress › Settings › Reading. Left ticked after a relaunch. Google can't render the page the way users see it. A server error on robots.txt can pause crawling.
  17. WHERE TO CHECK The robots.txt files on both Bazoom hosts

    TIP Search Console › Set tings › robots.txt shows the last version Google fetch ed.
  18. QUICK CHECK Is this URL blocked? User-agent: * Disallow: /?s=

    Found in Search Console: Disallow: /page/*/?s= /?search=Zirkus&page=34 Disallow: /search/
  19. SITE CLINIC 1 · 2 MIN Open your robots.txt 1.

    Go to yourdomain.com/robots.txt 2. Find a rule that could affect your URL 3. Tell me what it does Works on any site, no login needed. Use examples: lego.com, techcrunch.com
  20. PART 1 · NOINDEX noindex is set on the page

    itself <meta name="robots" content="noindex"> Crawlers have to fetch the page to see it. It's the right choice for pages like thank-you pages and internal search results.
  21. PART 1 · NOINDEX Values you can put in the

    robots meta tag Value What it does noindex Keeps the page out of the index nofollow Crawlers don't follow links on the page noimageindex Images on the page aren't indexed nosnippet No text snippet in results, or in AI Overviews max-snippet:50 Snippet is 50 characters at most CASE STUDY 24 /tag/ pages use no index, follow. The affiliate te rms page uses noindex, n ofollow and 202 pages link to it. For PDFs and other files, send the same values in an X-Robots-Tag HTTP header.
  22. COMMON MISTAKE Blocking a page and adding noindex Blocked in

    robots.txt → The crawler can't open the page, so it never sees the noindex. The URL can stay in the index. To remove a page: allow crawling, add noindex, and wait for it to drop out.
  23. PART 1 · RENDERING What arrives vs what appears Raw

    HTML Rendered HTML What the server sends The page after JavaScript runs Ctrl+U / view-source: Rich Results Test › HTML Main content and links should ideally be in the raw HTML.
  24. PART 1 · RENDERING If your site depends on JavaScript

    <a href="/page/"> Links must be real links. Buttons with onclick aren't followed. /page/ not /#page Each page needs its own URL. Content after a # isn't a separate page. noindex · canonical Must say the same thing before and after JavaScript runs. TIP Don't block your JS a nd CSS files in robots.txt. Cra wlers need them to render the page. Ask developers for server-side rendering for important pages where possible.
  25. WHERE TO CHECK Finding one sentence in both versions If

    it only shows up in the rendered HTML, it depends on JavaScript.
  26. PART 1 · SITEMAPS The sitemap files on bazoom.com sitemap_index.xml

    ↓ 78 68 12 1 Yoast created these automatically for us. Shopify does the same at /sitemap.xml.
  27. PART 1 · SITEMAPS What to put in a sitemap

    Include Leave out Pages that return 200 Redirects and 404s Indexable, canonical URLs noindex pages and duplicates A URL in the sitemap still isn't guaranteed to be indexed. BAZOOM /help/ was listed in p agesitemap.xml, but it re directs to help.bazoom.com.
  28. PART 1 · SITEMAPS Submitting a sitemap in Search Console

    You only submit the index file. Search Console finds the child sitemaps inside it.
  29. WHERE TO CHECK Checking the sitemap "Success" means Google could

    read the file. It doesn't tell you what got indexed.
  30. PART 1 · SEARCH CONSOLE What the sitemap status means

    Status What to do Success Google read the file. Check the number of discovered pages Has errors Open it and fix the URLs or lines it lists Couldn't fetch Open the URL in a browser: does it load, return 200, and isn't blocked in robots.txt? TIP Click a sitemap, then See page indexing. The Pa ges report now shows only the URLs from that sitema p.
  31. PART 2 Search Console, Rich Results and Core Web Vitals

    URL Inspection, the Pages report, Performance, the Rich Results Test and PageSpeed Insights
  32. PART 2 · SEARCH CONSOLE Which report to open Is

    this one URL indexed? URL Inspection Which pages aren't indexed? Indexing › Pages Was my sitemap read? Indexing › Sitemaps Which queries bring clicks? Performance
  33. PART 2 · SEARCH CONSOLE URL Inspection Read the indexing

    status, the referring page and the last crawl date. TIP This is Google's stored data. Click Test live URL to check the page as it is now.
  34. PART 2 · SEARCH CONSOLE Pages report: all submitted pages

    Only URLs from your sitemaps. TIP On the same site, 7,12 0 dropped to 114. Start with this view.
  35. PART 2 · SEARCH CONSOLE Reasons that are often fine

    Reason What to check Page with redirect Does the new URL work? Alternate page with proper canonical Is it the duplicate you expected? Excluded by 'noindex' tag Was the noindex added on purpose? You don't need zero pages here. Check that the right pages are indexed.
  36. PART 2 · SEARCH CONSOLE Reasons to look into Reason

    Where to start Discovered, not indexed Internal links Crawled, not indexed Thin or duplicate content Soft 404 Is the page empty? Google chose a different canonical Compare both pages The reason tells you where to start looking. It doesn't tell you the cause.
  37. PART 2 · SEARCH CONSOLE Not found (404) Deleted pages

    should return 404. The problem is linking to them.
  38. PART 2 · SEARCH CONSOLE Page with redirect If one

    of these URLs is in your menu or footer, update the link.
  39. SITE CLINIC 2 · 3 MIN Inspect your URL 1.

    Paste it into URL Inspection 2. Write down the status and the canonical 3. Say what you'd check next No access? Work with the person next to you.
  40. PART 2 · PERFORMANCE Performance data for one page Add

    a page filter with the exact URL Open the Queries tab Tick CTR and position Average position mixes all queries, so check it per query.
  41. PART 2 · PERFORMANCE Filter by your brand name /

    QUERY FILTER bazoom 54 URLs got impressions /pricing/ /pricingbazoom/ /contact-2/ /contact-2/ has no internal links and still ranks around 4 for "bazoom chat".
  42. PART 2 · PERFORMANCE A page with many impressions and

    few clicks 191,066 impressions Position 16.6, CTR 0%
  43. PART 2 · RICH RESULTS Structured data {"@context":"https://schema.org", "@type":"Article", "headline":"Your

    real title", "author":{"@type":"Person", "name":"Real author"}} Valid markup makes a page eligible for a rich result. It isn't guaranteed. RULE Only mark up things people can see on th e page.
  44. PART 2 · RICH RESULTS Rich Results Test Shows the

    structured data it found Works on any public URL.
  45. PART 2 · RICH RESULTS Rich Results Test View tested

    page shows the rendered HTML Works on any public URL.
  46. SITE CLINIC 3 · 2 MIN Test your page's markup

    1. Run your URL in the Rich Results Test 2. Open one detected item, or note "none" 3. Check it matches what's on the page
  47. PART 2 · CORE WEB VITALS Core Web Vitals LCP

    INP CLS ≤ 2.5 s ≤ 200 ms ≤ 0.1 Loading Response to clicks Measured on real visits. 75% of visits need to be under the limit. Layout shifts
  48. PART 2 · CORE WEB VITALS Field data and lab

    data Field Lab Real Chrome users over the last 28 days One test load, run right now Used for finding the cause Used for Core Web Vitals No field data for your page? Look at the origin data instead.
  49. PART 2 · CORE WEB VITALS Common fixes for each

    metric Metric What usually helps LCP Compress the main image (WebP or AVIF), don't lazy-load it, faster server response INP Remove unused JavaScript, delay third-party scripts like chat widgets CLS Set width and height on images, reserve space for ads, embeds and banners Change one thing, then test again in PageSpeed Insights.
  50. BAZOOM · PAGESPEED INSIGHTS bazoom.com on mobile, real users LCP

    4.4 s INP 335 ms CLS 0.05 pagespeed.web.dev, bazoom.com, mobile, 4 October 2026
  51. BAZOOM · PAGESPEED INSIGHTS The bazoom.com lab test Scroll to

    Diagnostics and find the LCP element first. ALSO Find the cause before you install another spe ed plugin. Same report, lab test, 4 October 2026
  52. PART 3 · STATUS CODES HTTP status codes 200 OK

    301 moved permanently 302 moved temporarily 404 not found 410 deleted 5xx server error FREE CHECK httpstatus.io for a fe w URLs. Screaming Fro g› Response Codes for the whole site.
  53. PART 3 · STATUS CODES A redirect chain on bazoom.com

    /best-place-to-buy-backlinks-a-buyers-guide/ ↓ /best_place_to_buy_backlinks/ ↓ /best-place-to-buy-backlinks/ Fix: redirect the first URL straight to the final one. 301 301 200
  54. PART 3 · STATUS CODES Footer links that redirect Menu

    or footer link Redirects to On pages /astralis /astralis/ 201 /affiliates-benefits/ /referrer-benefits/ 202 /help/ help.bazoom.com 202 Change the link once in the menu or footer and it's fixed on every page.
  55. WHERE TO CHECK · SCREAMING FROG A menu link that

    points to a redirect homepage › Outlinks › searched ‘astralis’
  56. PART 3 · CANONICALS Canonical tags → /pricing/ Google usually

    follows the canonical, but not always. If nobody should land on a URL, redirect it.
  57. PART 3 · CANONICALS Three ways to choose the main

    URL 301 redirect Canonical tag Sitemap STRONGEST MEDIUM WEAKEST Use when only one URL should exist. Use when both URLs must stay live, like tracking or filter URLs. List only the main URL. It supports the other two. Canonical, sitemap and internal links should all point to the same URL.
  58. SITE CLINIC · QUICK CHECK What's wrong with this canonical?

    Found on bazoom.com/blog/3/ <link rel="canonical" href="https://bazoom.com/blog/"> Pages /blog/2/ to /blog/5/ all point their canonical to the first blog page.
  59. SITE CLINIC · QUICK VOTE Which pricing page should stay?

    A · /pricing/ B · /pricingbazoom/ 3,072 impressions 12,757 impressions 2 internal links 200 internal links Both rank for "bazoom" at around position 2.6.
  60. PART 3 · INTERNAL LINKS Orphan pages NOTE 59 Bazoom

    pages with no internal links Crawlers follow <a hre f> links. A button with onclick doesn't count. One of them: /link-building/ Ranks 1.9 for "bazoom" with 9,634 impressions Fix: add a link to it from a related page.
  61. PART 3 · INTERNAL LINKS Links crawlers can follow FOLLOWED

    NOT FOLLOWED OR WEAK <a href="/link-building/"> Link building services </a> <span onclick="go(..)"> <a href="#">Click here</a> <a rel="nofollow" ...> Descriptive anchor text Link to the final URL, not a redirect The anchor text tells search engines what the linked page is about. No nofollow on your own pages
  62. WHERE TO CHECK · SCREAMING FROG How many clicks from

    the homepage? Internal tab › Crawl Depth column TIP Keep important page s within 3 clicks of the homepage.
  63. PART 3 · MOBILE AND HTTPS Mobile and HTTPS Mobile

    HTTPS Same content and links as on desktop http:// redirects to https:// Menu and text work on a phone Internal links use https:// Bazoom still has 44 internal links that use http://.
  64. PART 3 · HREFLANG hreflang <link rel="alternate" hreflang="en-gb" href=".../uk/"> <link

    rel="alternate" hreflang="da-dk" href=".../dk/"> bazoom.com is English only, so it doesn't need hreflang. Use it when the same page exists in another language or market. Each version lists all versions, including itself.
  65. PART 3 · HREFLANG hreflang rules en-gb <link rel="alternate" hreflang="en-gb"

    href="https://site.com/uk/"> <link rel="alternate" hreflang="es-mx" href="https://site.com/mx/"> <link rel="alternate" hreflang="x-default" href="https://site.com/"> Language first, then country. "gb" alone isn't valid. x-default The version for everyone else Every version Lists all versions, including itself You can also add hreflang in the XML sitemap or an HTTP header for PDFs.
  66. PART 4 · AI CRAWLERS Google's AI features use the

    normal index To appear in AI Overviews or AI Mode, a page has to be indexed and allowed to show a snippet. There's no extra file or markup you need for this. 😉
  67. PART 4 · AI CRAWLERS OpenAI's crawlers User agent Used

    for OAI-SearchBot ChatGPT search results GPTBot Training models ChatGPT-User Visits a user asked for ALSO Google-Extended is for Gemini training. Block ing it doesn't affect Google Search. Bot names change, so check each company's documentation.
  68. PART 4 · AI CRAWLERS Example: block training, allow search

    User-agent: GPTBot Disallow: / User-agent: OAI-SearchBot Allow: / Allowing a bot doesn't mean you'll be cited! Also check Cloudflare or your CDN. Its bot settings can block AI crawlers before they ever read robots.txt.
  69. PART 4 · USING AI Using AI to write the

    ticket Explain this finding for a junior SEO. Separate facts from possible causes. List the next checks. Draft a ticket with a re-test step. Don't assume a cause I haven't checked. Check the page and the suggested fix yourself before you send it.
  70. CASE STUDY · BAZOOM next.bazoom.com was supposed to be hidden

    robots.txt allows everything No noindex tag and no X-Robots-Tag 94 URLs return 200, all with the title "Bazoom" It ranks #1 for "bazoom app"
  71. CASE STUDY · BAZOOM How we found it Next step:

    decide if the login page should be in search, and keep the app pages out.
  72. PART 5 · PRACTICAL FIXES How to keep a page

    out of search If you want... Use It out of search results noindex, and allow crawling Nobody to see it A login or password Crawlers to skip it Disallow in robots.txt It gone quickly noindex + GSC Removals
  73. SITE CLINIC 4 · VOTE Which would you fix first?

    1. The main service page has noindex by mistake 2. A footer link redirects once 3. A deleted page returns 404
  74. ONCE A MONTH A 15-minute monthly check 1 min 4

    min 6 min 4 min Open robots.txt Check the Pages report for changes Crawl for new 404s, redirects and noindex Inspect your most important page
  75. TAKE HOME The audit checklist All the checks from today,

    in 8 sections. [ QR CODE ] Start with the rows marked "Must check". Each row lists a free tool. Scan to make your own copy
  76. SOURCES Keep learning, free LearningSEO.io · Aleyda Solis's free roadmap

    Crawling Mondays · Aleyda's video tips Google Search Central · the source docs Screaming Frog user guide · every tab explained Core Updates · Mark Williams-Cook's newsletter Gus Pelogia on SEL · tickets, testing, product Bazoom data: Ahrefs Site Audit 1 Oct 2026, Search Console Jul to Oct 2026, PageSpeed Insights 4 Oct 2026 Search Central Live Deep Dive 2026, latest Google insights on Crawling, Rendering and Indexing