Archived document. This file has been superseded or completed and is kept for historical reference.

Duplicate Canonical Investigation - sempers.com

Date: January 25-26, 2026 Issue: “Duplicate, Google chose different canonical than user” affecting 64 pages Status: ROOT CAUSE IDENTIFIED - Requires Fixes


Executive Summary

The 64 “Duplicate, Google chose different canonical than user” errors in Google Search Console are primarily caused by relative canonical URLs instead of absolute URLs in the HTML pages. This is a significant technical SEO issue that requires updating canonical tags across all pages.

Key Findings

Issue Severity Affected Pages Status
Relative canonical URLs HIGH ~95% of pages Requires Fix
ftp.sempers.com duplicates MEDIUM Unknown FIXED (301 redirect)
Missing trailing slash consistency LOW All pages Monitoring
Homepage canonical format LOW 1 page Minor issue

Detailed Analysis

1. Canonical Tag Issues (PRIMARY CAUSE)

The Problem: Most pages use relative paths in canonical tags instead of absolute URLs.

Examples from Live Site:

Page Canonical Tag (Current) Should Be
/los-angeles-wrongful-termination-lawyer-explains.html los-angeles-wrongful-termination-lawyer-explains.html https://sempers.com/los-angeles-wrongful-termination-lawyer-explains.html
/blog/blog.html ../blog/blog.html https://sempers.com/blog/blog.html
/unpaid-wages/claiming-unpaid-wages-in-california.html ../unpaid-wages/claiming-unpaid-wages-in-california.html https://sempers.com/unpaid-wages/claiming-unpaid-wages-in-california.html

Why This Causes Issues:

  1. Google may misinterpret relative paths when crawling from different entry points
  2. Browsers resolve relative URLs based on the current URL, which can vary
  3. Canonical tags should always use absolute URLs per Google’s guidelines
  4. When Google sees ../blog/blog.html, it depends on the crawl context to resolve it

Pages with CORRECT absolute canonicals (only ~8 pages):

Pages with INCORRECT relative canonicals (~115+ pages):

All other pages use relative paths like:


2. ftp.sempers.com Duplicate Content (ALREADY FIXED)

Background: The ftp.sempers.com subdomain was serving the same content as the main site, creating duplicate pages.

Status: A 301 redirect was added on January 26, 2026:

Impact on 64 duplicates: This fix will resolve some of the duplicates where Google was choosing ftp.sempers.com versions over the main domain versions.


3. Sitemap vs Canonical Mismatch

Sitemap URLs: All URLs in sitemap.xml use correct absolute URLs:

<loc>https://sempers.com/blog/blog.html</loc>

But the page itself has:

<link href="../blog/blog.html" rel="canonical"/>

This creates conflicting signals - the sitemap says one thing, the canonical tag (when resolved) may say another depending on how Google crawls the page.


4. Homepage Canonical Issue

Current: <link href="https://sempers.com" rel="canonical"/>

Issue: Missing trailing slash. The canonical should match either:

The sitemap uses https://sempers.com/ (with implied trailing slash), creating a minor mismatch.


5. One Incorrect Cross-Page Canonical Found

File: discrimination-lawsuits/common-forms-of-workplace-discrimination.html

Current canonical:

<link href="../discrimination-lawsuits/filing-discrimination-claim-in-california.html" rel="canonical"/>

This page is pointing to a DIFFERENT page as its canonical, which may be intentional (consolidating similar content) or may be an error.


6. URL Redirect Status (All Working)

Verified via curl:

Test Result
http://sempers.com/ 301 redirect to https://sempers.com/
https://www.sempers.com/ 301 redirect to https://sempers.com/
https://ftp.sempers.com/ 301 redirect to https://sempers.com
https://sempers.com/ vs /index.html Both serve same content, same canonical

Why Google Chooses Different Canonicals

Based on research, Google uses ~20 signals to determine the canonical URL. When signals conflict, Google makes its own choice. The main issues here:

  1. Relative canonical URLs - Google may resolve them differently than intended
  2. Sitemap/canonical mismatch - Sitemap has absolute URLs, pages have relative
  3. Duplicate subdomain - ftp.sempers.com was serving identical content (now fixed)
  4. Internal links - May use different URL formats inconsistently

Will the ftp.sempers.com Redirect Fix This?

Partial Fix Only

The 301 redirect from ftp.sempers.com will help with:

But it will NOT fix:


Recommended Fixes

Priority 1: Fix All Canonical Tags (HIGH IMPACT)

Update all HTML files to use absolute URLs in canonical tags:

Pattern to find:

<link href="../folder/page.html" rel="canonical"/>
<link href="page.html" rel="canonical"/>

Replace with:

<link href="https://sempers.com/folder/page.html" rel="canonical"/>
<link href="https://sempers.com/page.html" rel="canonical"/>

Estimated effort: ~120 files need updating

Implementation options:

  1. Script to bulk update all files
  2. Use a template system that generates absolute canonicals
  3. Add base tag + relative (less ideal)

Priority 2: Verify Cross-Page Canonical (MEDIUM)

Check if common-forms-of-workplace-discrimination.html should really canonical to filing-discrimination-claim-in-california.html. If not, fix it.

Priority 3: Homepage Canonical Consistency (LOW)

Decide on canonical format and be consistent:

Current sitemap uses / as the homepage URL, so canonical should match.

Priority 4: Monitor After Fixes (ONGOING)

After implementing fixes:

  1. Wait 2-4 weeks for Google to recrawl
  2. Request indexing for key pages via Search Console
  3. Monitor “Duplicate, Google chose different canonical” count
  4. Use URL Inspection tool to verify Google’s chosen canonical

Files Requiring Changes

Template/Include File (if exists)

Check for a shared header template that generates canonical tags. Fixing one template could fix all pages.

Individual Files (if no shared template)

All ~120 HTML files in public_html/ need canonical tag updates.


Technical Implementation

Option 1: Build Script Update

If there’s a build process, modify it to generate absolute canonical URLs.

Option 2: Sed/Find-Replace Script

# Example pattern (would need refinement)
find public_html -name "*.html" -exec sed -i '' \
  's|href="\.\./\([^"]*\)" rel="canonical"|href="https://sempers.com/\1" rel="canonical"|g' {} \;

Option 3: Manual Updates

Update each file individually (time-consuming but safest).


Timeline Expectations

Action Timeline
Fix canonical tags 1-2 days
Google recrawl begins 1-7 days
Partial improvement visible 2-3 weeks
Full resolution 4-8 weeks

References


Summary

Root Cause % of 64 Duplicates Fix Required
Relative canonical URLs ~80-90% Yes - Update all pages
ftp.sempers.com duplicates ~10-20% Done (301 redirect)
Other factors Unknown Monitor

Bottom Line: The primary fix needed is converting all relative canonical URLs to absolute URLs. The ftp.sempers.com redirect we added will help, but is not sufficient to resolve all 64 duplicates.


Last updated: January 26, 2026