Appendix A — Platform playbooks¶
The Technical SEO Reference · ⚪ throughout
Provenance notice: everything in this appendix is ⚪ industry/vendor-doc territory — Google documents none of it, and platform behavior changes with releases. Each trap maps to the mechanics chapter where the Google-side rule lives; verify current platform behavior against the vendor's own docs at audit time. This is deliberately a trap catalog, not a setup guide.
A.1 WordPress¶
| Trap | Mechanism | Book home |
|---|---|---|
| Attachment pages | Every media upload can mint a thin /?attachment_id= page; themes vary on whether they redirect. Modern WP redirects attachment pages to the file by default, but plugins/themes resurrect them |
Ch 21 §21.4 (index bloat), Ch 7 |
?replytocom= links |
Comment-reply links mint parameter duplicates of every post at scale | Ch 10 §10.9, Ch 8 |
| Tag/date/author archive bloat | Default taxonomies create low-value indexable archives; every tag used once = one thin page | Ch 21 §21.4 |
| SEO-plugin robots/sitemap collisions | Two plugins (or plugin + core) each emitting sitemaps/robots rules/canonicals — conflicting canonical tags "may lead to unexpected results" | Ch 8, Ch 9, Ch 3 |
| Staging leaks | Discourage search engines checkbox forgotten in either direction — production noindexed after a copy-down, or staging indexed |
Ch 7 §7.10, Ch 20 §20.2 |
| Plugin/theme injections after compromise | The classic hack surface (outdated plugins are Google's named vector) | Ch 17 §17.10 |
| Page-builder DOM weight | Builder markup ballooning HTML toward the 2MB fetch limit and wrecking INP via DOM size | Ch 6 §6.3, Ch 15 §15.5 |
A.2 Shopify¶
| Trap | Mechanism | Book home |
|---|---|---|
/collections/.../products/... duplicate paths |
The same product is reachable under every collection path; Shopify canonicalizes to /products/ — correct, but internal links to collection-scoped URLs split crawl |
Ch 8, Ch 10 §10.10 |
?variant= URLs |
Variant parameters mint per-SKU URLs; canonical handling is theme-dependent | Ch 10 §10.10 (variant URL doctrine), Ch 8 |
robots.txt.liquid |
Editable since 2021 via a Liquid template — most stores never touch it; facet/filter and tag pages (/collections/all?filter..., + tag combinations) stay crawlable |
Ch 3, Ch 10 §10.8 |
myshopify.com domain leakage |
The default subdomain serving alongside the custom domain; Shopify 301s when primary domain is set — verify it | Ch 8, Ch 16 |
| Blog architecture rigidity | /blogs/<name>/ path structure is fixed; subfolder-of-choice migrations aren't possible — plan URLs accordingly |
Ch 10 |
| Checkout/cart/account crawl noise | Core paths are robots-blocked by default — audits flagging "blocked pages!" here are noise | Ch 3 |
| App-injected scripts | Review/upsell apps injecting render-blocking JS and duplicate structured data (two Product schemas → conflicting markup) | Ch 12, Ch 15 |
A.3 Headless / Next.js (and React frameworks generally)¶
| Trap | Mechanism | Book home |
|---|---|---|
| Metadata rendered client-side only | Titles/canonicals/robots emitted after hydration — subject to render-queue delay and the JS-injection rulebook's constraints | Ch 6 §6.7/§6.11 |
| ISR staleness on money data | Stale-while-revalidate serving desynchronizes page content from Merchant Center feeds | Ch 6 §6.11, Ch 12 §12.1 |
| Soft-404 SPA error routes | Error boundaries rendering 200-status "not found" shells at scale | Ch 6 §6.6 |
| Middleware redirect drift | Redirect logic split between middleware, framework config, and CDN — chains and type mismatches (307s where 301s intended: framework default temporary redirects) | Ch 16 §16.1 |
next/image (and equivalents) loaders |
Image URLs behind optimizer endpoints — URL stability and crawlability of the optimized variants matter | Ch 14 §14.4 |
| Service-worker-first architectures | Content dependent on SW = officially unanswered indexing territory | Ch 6 §6.2 |
| Edge/origin config divergence | SEO tags patched at the CDN edge while origin serves different values | Ch 4 §4.7, Ch 20 §20.2 |
A.4 Magento / Adobe Commerce (brief)¶
Layered navigation is the archetypal facet explosion (→ Ch 10 §10.8 — the robots.txt pattern block is the fix); session parameters (SID=) in URLs (→ Ch 10 §10.2); flat vs configurable product URL duplication (→ Ch 8); admin-path exposure (→ Ch 17 §17.10).
A.5 The general method¶
Platform gotchas are instances, not new mechanics: every row above reduces to a Chapter 2–17 rule. On any new platform: (1) crawl a sample and inventory URL classes (→ Ch 10); (2) read its robots.txt/sitemap/canonical emission (→ Chs 3/8/9); (3) diff rendered vs raw HTML on each template (→ Ch 6 §6.14); (4) check its redirect and error-status behavior (→ Chs 16/2); (5) then open the platform's own SEO docs for what's configurable. The book's rules decide what should happen; the platform docs tell you which knob does it.