URL contains underscores or uppercase
What this means
Section titled “What this means”Your URL paths contain underscores (_) or uppercase letters. Google treats hyphens as word separators when it parses URLs — “about-us” is indexed as two words, “about” and “us”. It does not split on underscores, so “about_us” is indexed as the single token “aboutus”.
Uppercase letters introduce a related problem: a page accessible at both /About-Us and /about-us can appear to be two separate URLs, creating potential duplicate content issues and splitting any link equity between them.
The convention for web URLs is lowercase, hyphen-separated. This check flags any route that departs from it.
How to fix it
Section titled “How to fix it”Rename routes to use lowercase and hyphens. The approach differs per framework.
Next.js App Router
Section titled “Next.js App Router”Rename the folder inside app/:
app/about_us/page.tsx → app/about-us/page.tsxapp/OurTeam/page.tsx → app/our-team/page.tsxapp/case_studies/page.tsx → app/case-studies/page.tsxNext.js Pages Router
Section titled “Next.js Pages Router”Rename the file inside pages/:
pages/about_us.tsx → pages/about-us.tsxpages/OurTeam.tsx → pages/our-team.tsxpages/case_studies.tsx → pages/case-studies.tsxRename the file or folder inside src/pages/:
src/pages/about_us.astro → src/pages/about-us.astrosrc/pages/OurTeam/index.astro → src/pages/our-team/index.astrosrc/pages/case_studies.astro → src/pages/case-studies.astroSvelteKit
Section titled “SvelteKit”Rename the route directory inside src/routes/:
src/routes/about_us/+page.svelte → src/routes/about-us/+page.sveltesrc/routes/OurTeam/+page.svelte → src/routes/our-team/+page.svelteRename the file inside pages/:
pages/about_us.vue → pages/about-us.vuepages/OurTeam.vue → pages/our-team.vuepages/case_studies.vue → pages/case-studies.vuePlain HTML
Section titled “Plain HTML”Rename the HTML file:
about_us.html → about-us.htmlOurTeam.html → our-team.htmlVerify the fix
Section titled “Verify the fix”Re-run the audit:
npx orino auditThe check scans all detected route paths for underscores and uppercase in path segments. Once renamed — with redirects in place — the check passes.