Skip to content

fix: resolve Google Search Console indexing issues#46

Merged
GeiserX merged 2 commits into
mainfrom
fix/seo-indexing-canonical
May 6, 2026
Merged

fix: resolve Google Search Console indexing issues#46
GeiserX merged 2 commits into
mainfrom
fix/seo-indexing-canonical

Conversation

@GeiserX
Copy link
Copy Markdown
Owner

@GeiserX GeiserX commented May 6, 2026

Summary

  • Duplicate content fix: Root / now 302-redirects to /{locale} instead of internally rewriting. Google was seeing pumperly.com and pumperly.com/es as duplicate content with conflicting canonical URLs.
  • Canonical fix: Every locale page now consistently declares canonical: https://pumperly.com/{locale} — no special-casing for root.
  • Sitemap fix: Removed bare pumperly.com entry (it's just a redirect). Each locale URL now has full hreflang alternates including x-default.

What this fixes in Search Console

Issue Cause Fix
"Duplicada: el usuario no ha indicado ninguna versión canónica" Root / and /es served same content with different canonicals Root now redirects, canonical always points to locale URL
"Página con redirección" (×3) Root / was in sitemap but redirects Removed from sitemap; only indexable locale URLs listed

Test plan

  • All 365 tests pass (including updated middleware tests)
  • TypeScript type check passes
  • After deploy: verify curl -I pumperly.com returns 302 → /es
  • After deploy: verify curl -s pumperly.com/en | grep canonical shows pumperly.com/en
  • Revalidate in Google Search Console after 1-2 weeks

GeiserX added 2 commits April 28, 2026 17:53
- Change root "/" from rewrite to 302 redirect so search engines see
  distinct locale URLs instead of duplicate content
- Always set canonical to locale-specific URL (pumperly.com/es, /en, etc.)
- Remove bare root from sitemap — only locale URLs are indexable
- Add hreflang x-default + per-locale alternates to each sitemap entry
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 6, 2026

Warning

Rate limit exceeded

@GeiserX has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 52 minutes and 13 seconds before requesting another review.

To continue reviewing without waiting, purchase usage credits in the billing tab.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: a5fdc5e0-5a9c-4811-9512-287c5ced9366

📥 Commits

Reviewing files that changed from the base of the PR and between f5f25f3 and 7cf67bd.

📒 Files selected for processing (6)
  • .coderabbit.yaml
  • CLAUDE.md
  • src/app/[locale]/layout.tsx
  • src/app/sitemap.ts
  • src/middleware.test.ts
  • src/middleware.ts
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/seo-indexing-canonical

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@GeiserX GeiserX merged commit 07d668a into main May 6, 2026
6 checks passed
@GeiserX GeiserX deleted the fix/seo-indexing-canonical branch May 6, 2026 06:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant