A continuation of Janady13/crawler-signal-reference / framework-html-canonical-alternate.md. The complete source identity, every recorded occurrence, and linked equations are on its first page.
Source transcript · continued
Download complete source text ↓1,717 lines · 69.0 KB
---
## 26. THE COMMON FAILURES AND FIXES
### 26.1 "Google Search Console reports duplicate without user selected canonical"
Cause 1: `<link rel="canonical">` is missing.
Fix: Add self referencing canonical to every page.
Cause 2: Canonical is JS injected; Google's first crawl missed it.
Fix: Move to server side rendered HTML.
Cause 3: Multiple competing URLs (trailing slash variant, parameter variants) exist.
Fix: Enforce canonical with 301 redirects at nginx layer plus declare canonical.
### 26.2 "Google is indexing the wrong URL variant"
Cause: Canonical points to one URL but internal links and sitemap point elsewhere.
Fix: Align all signals (canonical, sitemap, og:url, internal links) to a single URL.
### 26.3 "Hreflang return tag error in Search Console"
Cause: Reciprocity broken. Page A references B but B does not reference A.
Fix: Add the return reference on B. Audit every page in the cluster.
### 26.4 "Hreflang is being ignored entirely"
Cause: Canonical alignment broken. A French page canonicalizes to the English version.
Fix: Each variant must self canonicalize.
### 26.5 "Marshallese page is appearing in English search results"
Cause: hreflang cluster not validating; Google falls back to merging the two variants.
Fix: Run through the three rules (reciprocity, self reference, canonical alignment); fix the broken one.
### 26.6 "RSS feed is not appearing in Feedly when users paste the URL"
Cause 1: `<link rel="alternate" type="application/rss+xml">` is missing.
Fix: Add the link element in the `<head>`.
Cause 2: Feed file returns wrong MIME type.
Fix: Configure nginx to serve `/feed.xml` with `application/rss+xml`.
Cause 3: Feed XML has syntax errors.
Fix: Validate with `xmllint --noout /feed.xml`.
### 26.7 "AMP versions are still appearing in Google search after migration off"
Cause: Google has not yet re crawled. AMP URLs in the cache still match.
Fix: Wait for re crawl; ensure 301 redirects are in place to accelerate.
### 26.8 "Canonical points to a 301 redirect"
Cause: Canonical URL itself is a redirect target.
Fix: Update canonical to point to the final 200 URL.
### 26.9 "Canonical and og:url do not match"
Cause: Inconsistent URL declaration across signals.
Fix: Align canonical, og:url, twitter:url (if set), and XML sitemap entry.
### 26.10 "Page returns 404 but is listed in hreflang cluster"
Cause: A linked URL no longer exists.
Fix: Update or remove the hreflang reference. Maintain cluster integrity.
---
## 27. THE FEDERAL AND SDVOSB CONTEXT
For Joseph's SDVOSB federal subcontracting work, canonical discipline matters operationally.
### 27.1 The Procurement Officer Link Sharing Pattern
Federal procurement officers and contracting officers share vendor URLs via email, agency messaging systems, and LinkedIn. The shared URL becomes the canonical reference in agency documentation.
If the same content is reachable via multiple URLs (www and non www, http and https, trailing slash variants), agency systems may bookmark inconsistent URLs. The canonical signal ensures the agency settles on one URL as the authoritative reference.
### 27.2 The PDF Capability Statement Canonical
For SDVOSB capability statements distributed as PDFs:
```nginx
location = /capability-statement.pdf {
add_header Link "<https://thatdeveloperguy.com/capability-statement.pdf>; rel=\"canonical\"";
}
```
The HTTP Link header ensures Google indexes the PDF at the canonical URL even if it's distributed via direct email or document sharing.
### 27.3 The SAM.gov URL Consistency
The URL registered on SAM.gov should match the canonical URL declared on the vendor site. Procurement officers cross reference; inconsistency raises diligence concerns.
For ThatDeveloperGuy.com SDVOSB registration: ensure the SAM.gov URL and the site canonical agree exactly (https, no www if bare is canonical, trailing slash if present).
### 27.4 The WeCoverUSA Federal Context
Same pattern. The canonical URL declared on the WeCoverUSA site must match the URL used in:
* SAM.gov vendor profile.
* F&I dealer outreach materials.
* Capability statement PDFs.
* Email signatures used by Richard and the team.
Consistency signals operational maturity.
---
## 28. QUICK REFERENCE TAG BLOCKS
For copy paste into any Bubbles client page `<head>`:
### 28.1 Standard Pattern (Every Bubbles Client)
```html
<!-- Canonical -->
<link rel="canonical" href="https://[CLIENT].com/[PATH/]">
```
One line. Self referencing. Trailing slash. HTTPS.
### 28.2 Multi Language Pattern (Marshallese-Voices Only)
```html
<!-- On English page -->
<link rel="canonical" href="https://marshallese-voices.org/[path/]">
<link rel="alternate" hreflang="en-US" href="https://marshallese-voices.org/[path/]">
<link rel="alternate" hreflang="mh" href="https://marshallese-voices.org/mh/[path/]">
<link rel="alternate" hreflang="x-default" href="https://marshallese-voices.org/[path/]">
<!-- On Marshallese page -->
<link rel="canonical" href="https://marshallese-voices.org/mh/[path/]">
<link rel="alternate" hreflang="en-US" href="https://marshallese-voices.org/[path/]">
<link rel="alternate" hreflang="mh" href="https://marshallese-voices.org/mh/[path/]">
<link rel="alternate" hreflang="x-default" href="https://marshallese-voices.org/[path/]">
```
### 28.3 Blog Enabled Pattern (Clients With Blogs)
```html
<!-- RSS, Atom, JSON Feed -->
<link rel="alternate" type="application/rss+xml" href="/feed.xml" title="[CLIENT] Blog RSS">
<link rel="alternate" type="application/atom+xml" href="/atom.xml" title="[CLIENT] Blog Atom">
<link rel="alternate" type="application/json" href="/feed.json" title="[CLIENT] Blog JSON Feed">
```
For developer audience clients (ThatDeveloperGuy, ThatAIGuy): all three.
For general audience clients with blogs: RSS and Atom; skip JSON.
### 28.4 AMP Pattern (Do Not Implement)
```html
<!-- DO NOT INCLUDE rel="amphtml" on new Bubbles builds -->
<!-- AMP is mostly deprecated in 2026 -->
```
### 28.5 The PDF Canonical Header (nginx)
```nginx
location ~ \.pdf$ {
add_header Link "<https://example.com$uri>; rel=\"canonical\"";
}
```
End every nginx change with:
```bash
nginx -t && systemctl reload nginx
```
---
## 29. REFERENCES
* Google Search Central canonical URLs: https://developers.google.com/search/docs/crawling-indexing/consolidate-duplicate-urls
* Google Search Central hreflang: https://developers.google.com/search/docs/specialty/international/localized-versions
* RSS 2.0 specification: https://www.rssboard.org/rss-specification
* Atom 1.0 specification (RFC 4287): https://datatracker.ietf.org/doc/html/rfc4287
* JSON Feed 1.1: https://www.jsonfeed.org/version/1.1/
* IETF BCP 47 language tags: https://datatracker.ietf.org/doc/html/rfc5646
* Google AMP deprecation status (Page Experience update, May 2021): https://developers.google.com/search/blog/2021/04/more-details-page-experience
**Companion frameworks in the HTML signal track:**
* framework-html-meta-robots.md
* framework-html-meta-charset.md
* framework-html-meta-viewport.md
* framework-html-meta-description.md
* framework-html-meta-keywords.md
* framework-html-meta-author.md
* framework-html-meta-generator.md
* framework-html-meta-copyright.md
* framework-html-meta-theme-color.md
* framework-html-meta-color-scheme.md
* framework-html-meta-referrer.md
* framework-html-content-language.md (direct companion for hreflang)
* framework-html-meta-refresh.md
* framework-html-open-graph.md (direct companion for canonical/og:url alignment)
* framework-html-twitter-cards.md
* framework-html-search-engine-verification.md
* framework-html-app-pwa-meta.md
**Companion frameworks in adjacent tracks:**
* framework-http-3xx-status-codes.md (the 301 redirect mechanism that interacts with canonical)
* framework-http-dns-records.md (the DNS layer)
* framework-html-xml-sitemap.md (the sitemap layer that mirrors canonical)
* framework-html-schema-jsonld.md (Schema.org structured data)
**Parent reference:** UNIVERSAL-RANKING-FRAMEWORK.md (the 27 section master document).
---
*End of framework-html-canonical-alternate.md.*