SEO Basics cheat sheet

A scannable SEO Basics reference: 19 short snippets across 11 topics, each linking back to the lesson it came from.

At a glance

TopicWhat it covers
How search engines crawl and indexA search engine keeps a queue of URLs waiting to be fetched. It learns about them from links on pages it already knowslesson
On-page essentialsThe <title> is the strongest on-page signal you control and it is also the clickable headline in results. Put thelesson
Technical SEO and measuring itThe same content is reachable from many URLs: with and without www, with and without a trailing slash, uppercase pathslesson
Site architecture, URLs and internal linkingCrawlers follow links and pass authority along them. Depth is the number of clicks from the homepage to a page; a pagelesson
Structured data and rich resultsStructured data is a machine-readable statement about the page. Add JSON-LD inside a script element with typelesson
Content strategy: topic clusters and briefsA topic cluster is one broad pillar page and a set of focused pages that each answer a narrower question, all linked tolesson
Page speed and Core Web Vitals optimisationAll three are measured on real visits at the 75th percentile, split by device. A green desktop score with a red mobilelesson
Local SEO and Google Business ProfileName, address and phone must be identical everywhere - the profile, the website, directories and any structured datalesson
Link building and digital PRA link is a vote, but not all votes are equal. The two properties that matter are the authority of the linking page andlesson
International SEO and hreflanghreflang uses ISO 639-1 for language and optional ISO 3166-1 alpha-2 for region. It tells an engine which version of alesson
SEO for JavaScript-rendered sitesHow rendering is handled, the difference between SSR, prerendering and client-side rendering, hydration and SPAlesson

Quick snippets

How search engines crawl and index

Crawling: how URLs are discovered

# robots.txt - must be served at the root of the host
User-agent: *
Disallow: /admin/
Disallow: /search?
Allow: /

Sitemap: https://example.com/sitemap.xml

Indexing: what actually gets stored

<head>
  <title>Wireless Headphones Guide - Buyer Checklist</title>
  <meta name="description" content="How to choose wireless headphones: battery, codecs, comfort and noise cancelling.">
  <link rel="canonical" href="https://example.com/guides/wireless-headphones">
  <meta name="robots" content="index, follow">
</head>

Full lesson: How search engines crawl and index →

On-page essentials

Title and description

<!-- weak: no subject, no specificity -->
<title>Home | Acme</title>

<!-- stronger: subject first, brand last -->
<title>Docker Volume Permissions Fix - Acme Guides</title>
<meta name="description" content="Why a mounted volume ends up owned by root and three ways to fix the permissions, with commands you can paste.">

Headings and internal links

<h1>Docker volume permissions</h1>
<h2>Why the mount is owned by root</h2>
<h2>Fix 1: match the container user</h2>
<h3>Setting UID and GID at runtime</h3>
<h2>Fix 2: change ownership after the first start</h2>

<!-- descriptive anchor text beats "click here" -->
<p>See <a href="/guides/docker-compose-basics">Docker Compose basics</a> for the file format.</p>

Structured data

{
  "@context": "https://schema.org",
  "@type": "Article",
  "headline": "Docker volume permissions",
  "datePublished": "2026-09-18",
  "dateModified": "2026-09-18",
  "author": { "@type": "Person", "name": "A. Writer" },
  "publisher": { "@type": "Organization", "name": "Acme Guides" }
}

Full lesson: On-page essentials →

Technical SEO and measuring it

Canonicals and duplicate URLs

<!-- on every duplicate variant, point at the same target -->
<link rel="canonical" href="https://example.com/guides/wireless-headphones">

<!-- and enforce it in the server layer, not just in markup -->
# nginx
# return 301 https://example.com$request_uri;   # drop http and www once

Core Web Vitals

/* reserve space for media to avoid layout shift */
img { width: 100%; height: auto; aspect-ratio: 16 / 9; }

/* defer non-critical fonts; a font swap reflows the whole page */
@font-face { font-family: Inter; src: url(/inter.woff2) format("woff2"); font-display: swap; }

Full lesson: Technical SEO and measuring it →

Site architecture, URLs and internal linking

Flat, deep and hub and spoke

Home
  /guides                      <- hub
    /guides/dns                 <- pillar
      /guides/dns/ttl           <- spoke, links back to the pillar
      /guides/dns/record-types  <- spoke
    /guides/tls
  /pricing
  /docs
    /docs/api

URLs that survive a redesign

https://example.com/guides/dns/ttl

Rules that pay off later:
  lowercase, hyphenated words          not  /Guides/DNS_TTL
  no dates unless truly time-bound     not  /2026/09/18/dns-ttl
  no tracking or session parameters    not  /dns?utm_source=newsletter
  no file extensions where avoidable   not  /dns-ttl.html
  stable once published: changes need a 301

URLs that survive a redesign

<!-- breadcrumbs: visible to users, and mirrored in structured data -->
<nav aria-label="Breadcrumb">
  <ol>
    <li><a href="/guides">Guides</a></li>
    <li><a href="/guides/dns">DNS</a></li>
    <li aria-current="page">TTL and caching</li>
  </ol>
</nav>

Full lesson: Site architecture, URLs and internal linking →

Structured data and rich results

JSON-LD in practice

// inside a script element with type application/ld+json
{
  "@context": "https://schema.org",
  "@type": "Article",
  "headline": "DNS TTL and caching explained",
  "description": "What TTL controls at each cache layer and how to plan a cutover.",
  "author": { "@type": "Person", "name": "Alex Doe", "url": "https://example.com/authors/alex" },
  "publisher": { "@type": "Organization", "name": "Example", "logo": { "@type": "ImageObject", "url": "https://example.com/logo.png" } },
  "datePublished": "2026-04-02",
  "dateModified": "2026-09-18",
  "mainEntityOfPage": { "@type": "WebPage", "@id": "https://example.com/guides/dns/ttl" }
}

Full lesson: Structured data and rich results →

Content strategy: topic clusters and briefs

Pillar and cluster planning

Cluster: DNS operations

Pillar    /guides/dns                     primary: dns guide
  Spoke   /guides/dns/ttl                 primary: dns ttl
  Spoke   /guides/dns/record-types        primary: dns record types
  Spoke   /guides/dns/email-records       primary: spf dkim dmarc
  Spoke   /guides/dns/troubleshooting     primary: dig command examples

Link rules
  pillar -> every spoke, in body copy, descriptive anchor
  spoke  -> pillar, once, near the top
  spoke  -> two or three sibling spokes, only where genuinely useful

Full lesson: Content strategy: topic clusters and briefs →

Page speed and Core Web Vitals optimisation

What each metric punishes

<!-- the hero image is usually the LCP element: make it discoverable and correctly sized -->
<link rel="preload" as="image" href="/hero.avif" fetchpriority="high" type="image/avif" />

<img src="/hero.avif" width="1200" height="675" alt="Dashboard overview"
     fetchpriority="high" decoding="async" />

<!-- everything below the fold: lazy load it, but never the LCP image -->
<img src="/detail.webp" width="800" height="450" loading="lazy" decoding="async" alt="Report detail" />

Full lesson: Page speed and Core Web Vitals optimisation →

Local SEO and Google Business Profile

Multi-location structure and reviews

Each location page needs, at minimum:
  - unique local content, not a template with the city swapped
  - the full address and a local phone number in text
  - the services offered at that location
  - staff, opening hours, parking or access notes
  - the local business markup above, with that location's @id
  - links to nearby locations, not to every location

Full lesson: Local SEO and Google Business Profile →

Link building and digital PR

Campaigns that earn links

Template: original data study

Asset        An aggregate only you can produce (your own platform data,
             a survey, a public dataset analysed properly)
Angle        One clear finding worth quoting in a headline
Proof        Methodology, sample size, limitations stated openly
Formats      Web page with charts, a chart image set, a CSV download
Outreach     Journalists and writers who covered the same topic before
Timing       Start outreach the day it publishes, not a week later
Update       Refresh annually under the same URL so the links compound

Full lesson: Link building and digital PR →

International SEO and hreflang

Language and country codes

<link rel="alternate" hreflang="en" href="https://example.com/guides/dns/ttl" />
<link rel="alternate" hreflang="en-GB" href="https://example.com/en-gb/guides/dns/ttl" />
<link rel="alternate" hreflang="en-US" href="https://example.com/en-us/guides/dns/ttl" />
<link rel="alternate" hreflang="de-DE" href="https://example.com/de/guides/dns/ttl" />
<link rel="alternate" hreflang="x-default" href="https://example.com/guides/dns/ttl" />

Choosing a structure

Recommendation order for most teams
  1. subfolder        - simplest to run, one domain, one certificate, one CDN
  2. ccTLD            - when local trust or legal presence demands it
  3. subdomain        - only when markets genuinely need separate infrastructure
  never: parameters   - the effort saved is repaid many times over

Full lesson: International SEO and hreflang →

SEO for JavaScript-rendered sites

The rendering options

# what does a crawler actually receive? ask as a plain client, no JS execution
curl -sL -A "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)" \
  https://example.com/guides/dns/ttl | head -60

# and then compare with a rendered view
# 1. open the URL in a browser with JavaScript disabled
# 2. check the rendered HTML in the browser devtools after load
# 3. compare the two - anything only in the second is at risk

Testing the rendered output

Weekly check, five minutes

1. curl the URL without JavaScript       -> is the content there?
2. Inspect with JavaScript disabled      -> does the page work at all?
3. Search Console URL inspection         -> does the rendered HTML match?
4. Block the script in devtools          -> is a fallback or message shown?
5. Check the canonical in both views     -> same URL, no client-side override

Full lesson: SEO for JavaScript-rendered sites →

FAQ

Is this SEO Basics cheat sheet free to use?
Yes. No sign-up and no tracking: the page is static, every example is on the page itself, and you can print it or save it as a one-page reference.
Where do the examples come from?
Every snippet is taken from the 11 lessons of the SEO Basics course on this site, and each section links back to the lesson it was pulled from.
How do I go deeper than a cheat sheet?
Open the full SEO Basics course — it carries the worked explanations, the edge cases and the exercises behind every line here.

Domains & DNS Web Hosting CDNs & Caching Accessibility

Last refreshed 2026-09-27.