URL structure checklist

Looking for a simple checklist to help improve your WordPress site's URL structure? Check out our top tips for creating clear, concise URLs that improve your SEO and make your site more user-friendly.
On this page

URL structure checklist

    Progress

    0 out of 13
  • Avoid repetititon

    Don’t repeat words in your URLs, for example:
    • ❌ /armchairs/leather-armchars/
    • ✅ /armchairs/leather/
     
  • Limit the number of directories

    Stick to a maximum of 2/3 directories within your URLs. URL directories should indicate site structure, but they should not be used to show your full site structure. For example:
    • ✅ /mens/white-trainers/
    • ❌ /mens/clothing/shoes/trainers/white/
    Do this to reduce the chances you’ll need to do risky redirects in the future. Keeping directories and site structures separate will reduce the chance of needing to change URLs.
  • Make sure to use both the key and value for parameters

    • ✅ https://www.example.com/products?category=clothing&color=blue
    • ❌ https://www.example.com/products?category
    In the first example, the URL includes the key (category) and the value (clothing) for the category parameter. In the second example, only the key or the value is used.
  • Use hyphens to separate words

    • ✅ https://www.example.com/keyword-rich-url
    • ❌ https://www.example.com/keywordrichurl
    • ❌ https://www.example.com/keyword_rich_url
    The first example uses hyphens to separate words in the URL. This helps search engines and users understand the page’s content from the URL and can boost its ranking. In contrast, the second and third examples do not use hyphens, making it harder for search engines and users to comprehend the page. Using underscores, as in the third example, has the same effect as not separating the words.
  • Keep URLs relevant to the page

    • ✅ https://www.example.com/blue-widgets
    • ❌ https://www.example.com/widgets-12345
    The first example’s URL is relevant to the content. It explains the page is about “blue widgets”, helping search engines and users understand the content better and improving its ranking. The second example’s URL is not as relevant. It uses a numeric identifier instead of describing the page’s content. This makes it harder for search engines and users to comprehend the content.
  • Use lowercase letters

    Use lowercase letters
    • ✅ https://www.example.com/lowercase-url
    • ❌ https://www.example.com/MixedCaseURL
    The norm for URLs is to use only lowercase letters, as seen in the first example. This helps prevent potential problems with some servers. However, the second example uses mixed-case letters. This can lead to issues with specific servers, which may consider URLs with different case letters as different pages. To avoid this, using only lowercase letters in URLs is best.
  • Avoid using stop words

    • ✅ https://www.example.com/widgets-blue
    • ❌ https://www.example.com/the-blue-widgets
    In the first example, the URL omits stop words like “the”, “a” and “an”. These words make URLs longer and more complicated, so it’s best to avoid them.
  • Avoid using dynamic URLs

    • ✅ https://www.example.com/static-page
    • ❌ https://www.example.com/page.php?id=12345
    The first example shows a static URL. It does not change. The second example uses a dynamic URL. It has a query string with a parameter and value (id=12345). Dynamic URLs are more likely to alter. For instance, if the page ID changes, the content of the page will be found on a different URL. It is best for users and SEO to use a URL that won’t change often.
    Dynamic URLs can also cause issues with caching.
  • Don't use hashes

    • ✅ https://www.example.com/blue-widgets
    • ❌ https://www.example.com/widgets#blue
    In the first example, the URL uses a static, or non-changing URL. The second example includes a URL with a hash (#). This can make it harder for search engines to discover the page content. Google usually ignores content hidden behind hashes. To make sure search engines can index the content, it’s best to avoid using hashes in URLs.
    It is acceptable to use # links to anchor to a particular page section. However, do not conceal content behind a hash.
  • Localize them if possible

    • ✅ https://www.example.com/de/produkte
    • ❌ https://www.example.com/de/products
    The first example includes the language (de) in the URL, and the rest of the URL is written in German. This helps search engines and users understand the language and content of the page and can boost its ranking for users searching for content in German. In contrast, the second example includes the language in the URL, but the rest of the URL is in English. This makes it harder for search engines and users to understand the language and content of the page and can lower its ranking for users searching for content in German. Therefore, it is best to use localized URLs that include the language and use the language for the rest of the URL whenever possible.
  • Use UTF-8 encoding, avoid non-ASCII characters

    • ✅ https://www.example.com/caf%C3%A9
    • ❌ https://www.example.com/café
    The first example uses UTF-8 encoding for the non-ASCII character é. It is represented as %C3%A9 in the URL. This helps search engines and users understand it correctly. In the second example, the URL uses the non-ASCII character directly. This can cause problems with how it is displayed and interpreted. Therefore, it is best to use UTF-8 encoding for non-ASCII characters in URLs. This avoids any potential issues.
  • Use subdomains, TLDs, or sub-directories with a gTLD for language/geo variants

    • ✅ https://de.example.com/products
    • ✅ https://example.de/products
    • ✅ https://www.example.com/de/products
    • ❌ https://www.example.com/products?locale=de
    In these examples, the URL uses different structures to indicate the language of the page. The first three examples use a subdomain, TLD, or sub-directory to indicate the language, which can help search engines and users understand the language of the page and can improve its ranking for users searching for content in that language. The fourth example uses a parameter (locale=de) to indicate the language, which can make it more difficult for search engines and users to understand the language of the page and can reduce its ranking for users searching for content in that language.
  • Avoid session IDs, use cookies instead

    • ✅ https://www.example.com/products
    • ❌ https://www.example.com/products?jsessionid=1234567890
    The first example omits a session ID in the URL and uses cookies to track the user’s session. This helps keep the URL static, improving its ranking and accessibility. However, the second example includes a session ID as a parameter, making the URL change for each user and making it hard for search engines and users to access the page. It’s best to avoid using session IDs in URLs and use cookies instead.