This is the technical side of SEO, the plumbing that decides whether a search engine, or an AI assistant, can find a page, read it, and trust it. This page is where I keep what the site does, written down as the checklist I run before anything ships.
How I keep an eye on it
Three tools, each answering a different question. Search Console is what Google sees, Ahrefs is the second opinion, PageSpeed is the stopwatch.
- Google Search Console The source of truth for how Google sees the site: which pages are indexed, what they show up for, and any crawl or Core Web Vitals problems. If something is wrong with indexing, it shows here first.
- Ahrefs A site audit that scores overall health and flags broken links, missing or duplicate tags, redirect chains and thin pages. It also tracks backlinks, which Search Console only half shows.
- PageSpeed Insights and Lighthouse The Core Web Vitals (LCP, CLS, INP) measured on a throttled mobile profile. The closest read on how a real phone, rather than a fast laptop, loads the page.
Crawling and indexing
First, let search engines and AI crawlers in and hand them a map.
robots.txtallows crawlers and links the sitemap.- An XML sitemap lists every page, generated automatically so new pages are never left out.
- One canonical tag per page, absolute, on the https address.
- Meta robots set to
index, followwithmax-image-preview:large. - An
llms.txtat the root, a plain-text summary of the site for the AI assistants that read it.
How each page describes itself
A crawler should understand a page from honest metadata and machine-readable structure, written for each page.
- A unique
titleand meta description on every page. - Open Graph and Twitter card tags with a 1200x630 image for shared previews.
- JSON-LD structured data that fits the page type: a Person or Organisation and a WebSite across the site, Article and BreadcrumbList on posts.
- One
h1per page, with headings in order. - A
langattribute on the html tag and a theme colour for mobile browsers.
Links
A link should say where it goes on its own, away from the text around it. That serves ranking and the person on a screen reader in the same move.
- Anchor text names the destination. A heading or title makes a better link than a generic "read more".
- A clickable card is a single link with descriptive text. Stretch that one link to cover the card so the whole block is the target.
- Internal links are absolute and point at the canonical URL.
- Breadcrumbs on deeper pages, in the markup and in BreadcrumbList structured data.
- External links carry
rel="noopener".
Images
A few habits keep images fast, described, and steady as they load.
- Meaningful images carry alt text. Decorative ones are marked
aria-hiddenso assistive tech skips them. - Width and height on every image, so the page holds still as they load (the CLS in Core Web Vitals).
- The largest image above the fold gets
fetchpriority="high"and a preload, as it is usually the LCP element. - Images are exported close to their display size, and compressed.
Speed is a ranking signal
Core Web Vitals feed into ranking, and well before that a slow page loses people before they read a word. Performance work is SEO work. The levers that move the vitals most are inlining critical CSS, self-hosting fonts, and giving the largest image priority. Those build choices have their own write-up.
The boring essentials
Easy to assume, worth confirming.
- Everything served over HTTPS.
- A responsive, mobile-friendly layout.
- Clean, readable URLs, words rather than ids.
- One canonical host, so a page lives at exactly one address.
The habit
Run the checklist before anything ships. Check Search Console for coverage and queries and Ahrefs for the health score and broken links every few weeks, and run PageSpeed after any change that touches the head or the CSS. Keep the list growing as the site does.
The eye that catches a missing canonical is the same one that catches a missing auth check. If you want someone to go over your site or app with it, that's what I do, with my team at Fingoweb behind the fixes.