The Complete Technical SEO Playbook for Domain & Business Owners
Deliberate Learner’s Tutorial Series
If you just launched a WordPress site — or inherited one that’s never been properly configured for search — this guide walks through every step needed to get Google to find it, understand it, and rank it fairly. It’s written as a checklist you can work through top to bottom, but each item includes the *why*, the *how*, and the mistakes that trip people up.
This is the general-purpose version of the playbook. It assumes a WordPress site with Yoast SEO installed, but the underlying principles (canonical URLs, verified ownership, a clean sitemap, and healthy Core Web Vitals) apply to any CMS on any host.
Who this is for: a domain or small-business owner who manages their own WordPress site — not necessarily a developer, but comfortable poking around hPanel/cPanel, WP Admin, and a terminal for a handful of copy-pasted commands.
Quick-Reference Checklist
- [ ] Canonical URL decided (www vs. non-www, https only)
- [ ] Redirect chain collapsed to a single hop
- [ ] Domain ownership verified in Google Search Console
- [ ] XML sitemap confirmed and submitted
- [ ] Canonical version confirmed as the indexed version
- [ ] Yoast SEO configured: focus keyword, title, meta description per page
- [ ] Images compressed and alt text added
- [ ] Core Web Vitals checked and passing
- [ ] Monitoring cadence scheduled (monthly/quarterly)
Each item is expanded below.
Phase 1 — Pick and Enforce One Canonical URL
Why it matters: Search engines treat https://example.com, https://www.example.com, and http://example.com as up to four *different* URLs unless you tell them otherwise. Splitting traffic and links across all four dilutes ranking signals, wastes crawl budget, and can cause duplicate-content issues. Every hop in a redirect chain also adds latency, which factors into Core Web Vitals.
More detailed infoLess info
Step by step:
- Decide the canonical format. Pick one:
https://example.com/(no www) orhttps://www.example.com/. Either is fine for SEO — consistency is what matters. - Check the current chain from a terminal:
curl -IL http://www.example.com curl -IL https://www.example.com
Count the hops. More than one 301 before the final 200 means there’s a chain to fix.
- Remove the server-level redirect if your host adds one automatically (e.g., Hostinger’s "Force HTTPS" toggle in hPanel → Websites → SSL). This is usually what causes the *extra* hop — the host redirects to HTTPS, and then WordPress redirects again to strip or add www.
- Add one redirect rule in
.htaccess(Apache/LiteSpeed) that handles all entry points in a single hop:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.example\.com [NC,OR]
RewriteCond %{HTTPS} off
RewriteRule ^ https://example.com%{REQUEST_URI} [R=301,L]Note: Never edit inside those managed blocks — plugins and WordPress core regenerate them and will silently discard your changes.
- Match WordPress’s own settings: WP Admin → Settings → General → set both "WordPress Address (URL)" and "Site Address (URL)" to the canonical form.
- Re-verify with the same curl commands. You should see exactly one 301 before the 200.
Common Mistakes:
- Editing inside a plugin’s managed
.htaccessblock instead of above it. - Creating a redirect loop by fixing WordPress’s URL but forgetting the server-level toggle (or vice versa).
- Mixed content warnings after switching to HTTPS-only — check for hardcoded
http://image or script URLs in old posts.
References:
- MDN — HTTP redirections:
developer.mozilla.org/en-US/docs/Web/HTTP/Redirections - Google Search Central — canonicalization:
developers.google.com/search/docs
Phase 2 — Verify Domain Ownership in Google Search Console
Why it matters: Search Console is the only place you can see how Google actually crawls and indexes your site — impressions, clicks, indexing errors, manual actions, Core Web Vitals field data. Nothing else substitutes for it.
More detailed infoLess info
Step by step:
- Go to Google Search Console (
search.google.com/search-console) and choose Add Property → Domain (not "URL prefix"). The Domain property type automatically covershttp,https,www, and non-wwwin one property — this is why fixing your redirect chain first matters less for GSC coverage, but still matters for users and PageSpeed. - Copy the TXT record value Google gives you (
google-site-verification=...). - Add it as a TXT record in your domain’s DNS zone:
- Type:
TXT - Name/Host:
@ - Value: the string Google gave you
- TTL: default or 3600
- Type:
- Return to Search Console and click Verify. DNS propagation is typically 5–15 minutes but can take up to 24 hours.
Common mistakes:
- Adding the TXT record to the wrong DNS zone (e.g., a subdomain zone instead of the root).
- Verifying with "URL prefix" instead of "Domain" — you’ll end up needing four separate properties to see the full picture.
- Giving up before propagation finishes — retry after 15 minutes before assuming it’s broken.
References:
- Search Console Help — verify ownership:
support.google.com/webmasters
Phase 3 — Confirm and Submit Your XML Sitemap
Why it matters: A sitemap doesn’t directly boost rankings, but it tells Google exactly which URLs you consider canonical and worth crawling — critical for large or newly-launched sites where organic discovery via links alone is slow.
More detailed infoLess info
Step by step:
- If you’re running Yoast SEO, it generates a sitemap automatically at
https://example.com/sitemap_index.xml(notsitemap.xml— that path redirects to the index). Confirm it loads and lists your actual content sitemaps (posts, pages, categories). - In Search Console: Sitemaps → enter
sitemap_index.xml→ Submit. - Check back after a few days for "Success" status with no "Couldn’t fetch" or parsing errors.
- Spot-check that every URL inside the sitemap uses your canonical domain form (no stray
wwworhttp://entries) — Yoast normally handles this automatically once your WordPress URL settings from Phase 1 are correct.
Common mistakes:
- A sitemap that’s accidentally blocked by
robots.txt(checkhttps://example.com/robots.txtfor a strayDisallow). - Noindexed pages still appearing in the sitemap — Yoast excludes these by default, but custom post types or manual noindex tags can slip through.
- Forgetting to resubmit after a domain migration or URL structure change.
References:
- Sitemaps protocol:
www.sitemaps.org - Yoast SEO documentation:
yoast.com
Phase 4 — Verify Google Is Indexing the Canonical Version
Why it matters: Submitting a sitemap doesn’t guarantee indexing. This step confirms Google picked your intended canonical URL over duplicates, and that your actual content is reachable in search.
More detailed infoLess info
Step by step:
- In Search Console, use URL Inspection on your canonical homepage (
https://example.com/). You want to see "URL is on Google." If it says "Discovered — not indexed" or "Crawled — not indexed," click Request Indexing. - Inspect the non-canonical variant (
https://www.example.comif that’s not your chosen form). It should show "Page with redirect" with Google-selected canonical pointing to your real URL. This is correct — the www version should *not* be independently indexed. - Repeat spot-checks on a few key pages (not just the homepage) — service pages, top blog posts — to confirm they’re indexed too.
Timeframes: Search Console data typically lags 3–5 days behind reality. Don’t panic-check daily; give changes a week before troubleshooting further.
References:
- Search Console Help — URL Inspection tool:
support.google.com/webmasters
Phase 5 — On-Page SEO Fundamentals
Why it matters: Technical SEO gets you indexed; on-page SEO determines whether you rank for the terms your customers actually search.
More detailed infoLess info
Step by step:
- Focus keyword per page. In Yoast, set one primary focus keyword per post/page — the specific phrase a reader would type into Google to find that content. Don’t target the same keyword on two pages (keyword cannibalization).
- Meta title. Keep to roughly 50–60 characters so it doesn’t get truncated in search results. Lead with the keyword or the core benefit, not your brand name (unless brand recognition is the point).
- Meta description. Roughly 140–160 characters. This doesn’t directly affect rankings but drives click-through rate — write it like ad copy, not a summary.
- Header hierarchy. One H1 per page (usually the title), H2s for major sections, H3s for subsections. Don’t skip levels or use headers purely for visual styling.
- Internal linking. Link relevant pages to each other using descriptive anchor text (not "click here"). This helps both users and crawlers understand site structure.
- Images. Add descriptive alt text (for accessibility and image search — not keyword-stuffed) and compress before upload. Aim for WebP where possible; tools like ShortPixel or the built-in compression in most modern hosting panels can automate this.
Common mistakes:
- Writing meta descriptions that get auto-truncated or duplicated across pages (Yoast will warn you).
- Treating alt text as a keyword-stuffing opportunity — it should describe the image for someone who can’t see it.
- Multiple H1s per page from theme/page-builder templates.
References:
- Google’s SEO Starter Guide:
developers.google.com/search/docs/fundamentals/seo-starter-guide - Yoast SEO documentation:
yoast.com
Phase 6 — Core Web Vitals & Performance
Why it matters: Core Web Vitals are part of Google’s ranking signals and directly affect user experience — slow, jumpy pages lose visitors regardless of how well they rank.
More detailed infoLess info
The three metrics:
- LCP (Largest Contentful Paint) — how long until the main content renders. Target: under 2.5 seconds.
- INP (Interaction to Next Paint) — responsiveness to user interaction (replaced FID in 2024). Target: under 200ms.
- CLS (Cumulative Layout Shift) — visual stability; how much content jumps around while loading. Target: under 0.1.
Step by step:
- Check Search Console → Experience → Core Web Vitals for field data (real user measurements) grouped by URL.
- Cross-check specific pages with PageSpeed Insights for a lab-data breakdown and specific fix suggestions.
- Common WordPress fixes:
- Use a caching plugin (LiteSpeed Cache if you’re on LiteSpeed hosting) to reduce server response time.
- Lazy-load below-the-fold images.
- Reserve explicit width/height on images and embeds to prevent layout shift.
- Minimize plugin count — each one adds render-blocking CSS/JS; audit for ones you don’t actually use.
- Use a lightweight, well-coded theme (e.g., GeneratePress) instead of a heavy page-builder theme.
References:
- web.dev — Core Web Vitals:
web.dev - PageSpeed Insights:
pagespeed.web.dev
Phase 7 — Ongoing Monitoring
Technical SEO isn’t a one-time setup. Put a recurring reminder on the calendar:
More detailed infoLess info
- Monthly: Check Search Console for new coverage errors, manual actions, or a sudden drop in impressions/clicks.
- Quarterly: Re-run Core Web Vitals checks, especially after theme/plugin updates. Re-audit on-page SEO for your top-traffic pages — search intent and competition shift over time.
- After any migration, redesign, or URL structure change: repeat Phases 1–4 in full. This is the single most common cause of a traffic cliff.
Appendix
Quick Diagnostic Commands
More detailed infoLess info
# Redirect chain curl -IL http://www.example.com curl -IL https://www.example.com # Sitemap reachability curl -I https://example.com/sitemap.xml # DNS TXT verification record dig TXT example.com +short # Response headers curl -I https://example.com
References & Further Reading
Learn more about SEO concepts below:
More detailed infoLess info
- Google Search Console:
search.google.com/search-console - Google Search Central documentation:
developers.google.com/search/docs - Google SEO Starter Guide:
developers.google.com/search/docs/fundamentals/seo-starter-guide - Search Console Help Center:
support.google.com/webmasters - web.dev (Core Web Vitals):
web.dev - PageSpeed Insights:
pagespeed.web.dev - Sitemaps protocol:
www.sitemaps.org - Yoast SEO:
yoast.com - MDN — HTTP Redirections:
developer.mozilla.org/en-US/docs/Web/HTTP/Redirections - Hostinger tutorials (hosting-specific steps referenced above):
www.hostinger.com/tutorials