Tag: URL structure

  • Google URL Structure Best Practices (2026): Hyphens, Underscores, and Crawlable URLs

    Google URL Structure Best Practices (2026): Hyphens, Underscores, and Crawlable URLs

    Publisher takeaway: On October 23, 2026, Google refreshed its URL structure best practices to clarify word separation: use hyphens (-) instead of underscores (_) when you split words in paths and query keys. The update is a documentation sync (tied to Google’s “The Non-Canonical Cabinet” video series), not a sudden ranking flip — but it is the clearest official stance yet for anyone still debating URL structure SEO, permalinks, and crawlable parameters.

    If you have been shipping AI Mode and GEO explainers (we covered Google’s official generative AI SEO guide recently), this is a useful pivot back to foundational technical SEO: crawlable URLs, faceted-nav traps, and a practical WordPress/permalink checklist. The changelog entry is listed on Google Search documentation updates under October 23, 2026.

    What changed on October 23, 2026

    Google’s updates page summarizes the change as: updated guidance on crawlable URL structures to clarify word separation guidelines using hyphens versus underscores — synchronized with episodes of “The Non-Canonical Cabinet.” In other words: the live URL structure doc now spells out why hyphens are preferred, not only that they are preferred.

    The rest of the page still covers the hard crawlability requirements (IETF STD 66 / RFC 3986-style URLs, no content-changing fragments, common parameter encoding) plus best practices (descriptive paths, audience language, percent encoding, fewer parameters, case sensitivity, multi-regional patterns) and common explosion issues (additive filters, session IDs, calendars, broken relative links).

    Hyphens vs underscores: Google’s reason

    Google recommends separating words in URLs when possible. Specifically, it recommends hyphens (-) instead of underscores (_) because that helps users and search engines identify concepts in the URL.

    The historical rationale Google now documents: underscores are commonly used in programming to keep tokens together (for example format_date), whereas hyphens clearly signal a word boundary. So /summer-clothing/ reads as two concepts; /summer_clothing/ looks more like one glued identifier.

    • Recommended: https://example.com/summer-clothing/filter?color-profile=dark-grey
    • Not recommended: underscores as separators — https://example.com/summer_clothing/filter?color_profile=dark_grey
    • Also not recommended: joining words with no separator — https://example.com/greendress

    Practical SEO note: do not mass-rename years of live URLs overnight for a hyphen cosmetic pass. If you migrate, plan 301s, update internal links and sitemaps, and watch Search Console coverage. Prefer hyphens on new content and on redesigns where you already own the redirect map.

    Hard requirements for a crawlable URL structure

    Before style choices, Google states that if URLs fail basic criteria, Search may crawl the site inefficiently — including extremely high crawl rates — or barely crawl it at all. Requirements called out on the doc:

    • Follow IETF STD 66: reserved characters must be percent-encoded. Google Search supports URLs as defined by that standard (see RFC 3986 for the familiar URI reference).
    • Don’t use URL fragments to change content: Google Search generally does not support fragments for content variants. Avoid patterns like https://example.com/#/potatoes. If JavaScript changes content, use the History API instead of hash routes for indexable states.
    • Use common encoding for URL parameters: separate key-value pairs with = and join additional parameters with &. Multiple values for one key can use a non-conflicting character such as a comma.

    Parameter encoding examples from Google:

    • Recommended: ?category=dresses&sort=low-to-high&sid=789
    • Not recommended: colon/bracket styles like ?[category:dresses][sort:price-low-to-high]
    • Recommended multi-value: ?category=dresses&color=purple,pink,salmon&sort=low-to-high
    • Not recommended: comma-as-pair-separator patterns like ?category,dresses,,sort,lowtohigh

    Recommended vs not recommended URL patterns

    Use this sheet when reviewing permalinks, ecommerce filters, or CMS templates. Left column tracks Google’s examples and best practices; right column is the anti-pattern.

    Recommended (URL structure SEO)Not recommended
    Descriptive words: /wiki/AviationOpaque IDs only: /index.php?topic=42&area=3a5ebc…
    Hyphen word breaks: /summer-clothing/Underscores: /summer_clothing/ or glued words: /greendress
    Audience language in the path (e.g. German/Japanese words when that is the audience)ASCII-only junk strings when readers search in another language
    Percent-encode non-ASCII in href when neededRaw non-ASCII or emoji paths without encoding in links
    Key=value&key=value parametersColon/bracket or double-comma parameter schemes
    Few parameters; drop ones that do not change contentSession IDs, referral junk, every sort/filter combo as indexable URLs
    Consistent case if the server is case-insensitivePublishing both /Apple and /apple as separate pages
    History API for JS stateHash fragments that swap main content

    Make the structure easy for humans (and Google)

    Beyond crawlability, Google recommends a simple, logical structure that is intelligible to people — aligned with the broader SEO Starter Guide advice on site structure:

    • Descriptive URLs: readable words beat long ID numbers when you can.
    • Audience language: match the language (and transliteration) your audience searches in.
    • Percent encoding: unreserved ASCII can stay as-is; non-ASCII should be percent-encoded in links.
    • Fewer parameters: trim parameters that do not change content.
    • Case sensitivity: Google treats /APPLE and /apple as distinct. If your server folds case, normalize to one casing so duplicates collapse cleanly.
    • Multi-regional: country domains (example.de) or locale subdirectories (example.com/de/) help geotargeting when used consistently.

    Common pitfalls: faceted navigation and parameter explosion

    Overly complex, multi-parameter URLs can create huge numbers of near-duplicate URLs. Googlebot may burn bandwidth or fail to index important content. Issues Google highlights:

    • Additive filtering: combining beach + fitness + “value rates” hotel filters multiplies URL space even when the underlying inventory is the same set of hotel detail pages.
    • Irrelevant parameters: click IDs, referrers, shopping sort params, and especially session IDs in URLs — prefer cookies for sessions and block junk patterns in robots.txt when needed.
    • Infinite calendars: unrestricted past/future date links; use nofollow on open-ended future calendar links when appropriate.
    • Broken relative links: parent-relative links on the wrong page can invent infinite path spaces; prefer root-relative URLs and correct 404s.

    If Google is already crawling problematic URLs, Google recommends blocking them via robots.txt when appropriate (dynamic search results, infinite calendars, ordering/filtering functions) and following dedicated guidance on managing crawling of faceted navigation URLs. Pair that with crawl-budget hygiene and, when AI crawlers are in scope, the same robots discipline we outlined for robots.txt AI crawler allow/block rules.

    WordPress / permalink checklist

    Concrete steps for a typical WordPress site (including Twenty Twenty-Five + AIOSEO stacks like ours):

    1. Settings → Permalinks: use a post name structure such as /%postname%/. Avoid default plain ?p=123 for public content.
    2. Slugs: write lowercase, hyphen-separated focus phrases (google-url-structure-hyphens-underscores-2026), not google_url_structure_….
    3. Don’t change published slugs casually: if you must, add a redirect (AIOSEO Redirects or server rules) and update internal links.
    4. Taxonomies: keep category/tag base paths short and hyphenated; avoid deep nested category URLs that add no user value.
    5. Ecommerce / filters: decide which facet combinations are indexable. Canonicalize or noindex thin filtered views; don’t let every sort= and color= variant enter the sitemap.
    6. UTM and tracking: fine for campaigns, but strip them from canonicals and don’t bake session tokens into links shared sitewide.
    7. Sitemaps: submit only canonical, content-bearing URLs; re-check after a permalink migration.
    8. Internal links: link with descriptive anchors to stable paths — the same clarity that helps classic SEO still supports retrieval and citation paths discussed in getting cited in AI search retrieval.

    How this fits your broader tech SEO work

    Clean URL structure SEO does not replace content quality or eligibility controls. It reduces crawl waste so Googlebot (and your own monitoring) can spend time on pages that deserve indexing. Keep generative-AI eligibility and controls in Search Console as a separate layer — see our Search Console generative AI control walkthrough — and treat URL hygiene as the plumbing underneath both classic results and AI surfaces.


    FAQ

    Does Google still recommend hyphens over underscores in 2026?

    Yes. The October 23, 2026 documentation update reaffirms recommending hyphens (-) instead of underscores (_) to separate words in URLs, with an explicit historical explanation about underscores keeping programming-style tokens together.

    Will changing underscores to hyphens boost rankings overnight?

    Treat it as a clarity and crawlability improvement, not a magic ranking lever. Migrate carefully with redirects. Google’s update was framed as clarifying documentation (and syncing with a video series), not announcing a new scoring feature.

    Are underscores a penalty?

    Google does not describe underscores as a spam penalty. It simply does not recommend them for word separation and notes the historical programming convention. Prefer hyphens for new URLs.

    Should faceted filter URLs be indexed?

    Usually only a small, intentional subset. Additive filters explode URL counts. Use robots.txt, canonicals, and faceted-navigation crawl management so Googlebot reaches product/detail pages without crawling every combination.

    Do fragment (#) URLs get indexed as separate pages?

    Google generally does not support URL fragments for changing page content. Don’t rely on hash routes for indexable states; use the History API for JavaScript-driven content changes you want crawled.