SEO

Slugs and URLs: writing an address people can read

A readable slug uses lowercase words joined by hyphens and stays short. The 458 blog slugs have a median of 27 characters: past 40 you cut.

Key points

  • A slug is readable when it uses lowercase words joined by hyphens, with no IDs, dates or capitals.
  • The 458 blog articles have slugs from 11 to 48 characters, median 27: the long tail buys nothing.
  • Changing a slug after publication needs a 301: on a catalogue of 111,985 records the cost is a generated map, not a per-page decision.

A readable slug is made of lowercase words joined by hyphens and stays short: it describes the page to anyone reading the address and to anyone sharing it. Google treats it as part of the URL structure, not as a ranking factor.

What Google asks for

The documentation on URL structure, read on 1 November 2026, asks for descriptive URLs: readable words instead of long identification numbers. It also asks you to use the audience's language and not to change content with a fragment, because Google does not treat the fragment as a page. None of these rules moves the position: they are conditions for crawling to work.

The shape that holds

  • Lowercase and hyphens, never underscores: the hyphen is the separator search engines read as a space.
  • Three or four words left once you remove the articles.
  • No dates: an article refreshed in 2027 with /2024/ in the URL is a redirect waiting to happen.
  • No trailing slash, or a trailing slash everywhere: the two forms are two URLs and one of them needs a canonical.

Measuring the slugs of a site

cat > slug-audit.mjs  f.endsWith(".json"))
  .map((f) => f.replace(/\.json$/, ""));
const sorted = [...slugs].sort((a, b) => a.length - b.length);
const long = slugs.filter((s) => s.length > 40);
const noisy = slugs.filter((s) => /\d{4,}|[_A-Z]/.test(s));
console.log(`${slugs.length} slugs, median ${sorted[Math.floor(slugs.length / 2)].length} chars`);
console.log("over 40 chars:", long.length, long.slice(0, 5));
console.log("digits or capitals:", noisy.length, noisy.slice(0, 5));
EOF
node slug-audit.mjs

The script lists the slugs over 40 characters and the ones with digits or capitals. On this site's blog the median is 27 characters and the maximum 48: the longest page stays readable. The number to watch is not the maximum, it is the tail: the slugs nobody can dictate over the phone.

One URL per page

One article answers on three forms: /blog/<slug>, /it/blog/<slug> and the trailing-slash variant. All three return 200, and the canonical always points at /it/blog/<slug>. The variant with capitals returns 404. Measured on 1 November 2026 on one blog article.

The live record

On a category page the slug is already decided by the catalogue: /blocks/category/blog, /blocks/category/pricing and the root /blocks follow the same hierarchy, with no IDs. Copying a block into your own site inherits the structure, not the URL. Checked on 1 November 2026.

The limitation

A slug does not rescue a weak page and does not sink a strong one: Google reads the content, not the address. Changing a slug does carry a real cost. Every old address needs a 301, and on a catalogue of 111,985 records the redirect map is an artefact to generate and version, not a decision taken by hand.

Where to continue

The rules for the canonical address are in canonicalisation; the format Google reads in lists is in sitemap index or single file; the sequence for getting into the index is in getting a site indexed by Google. If you are picking the platform, control over URLs differs between them: the comparison is in frontend frameworks compared.

Frequently asked questions

Is a trailing slash better or worse?

Only one of the two, with a 301 or a canonical pointing at the other. Here both forms return 200 and the canonical picks the form without the slash.

Can I use capitals in a slug?

No. To the server /Blog/Slug and /blog/slug are two different addresses; here the capitalised variant returns 404, measured on 1 November 2026.

Does the keyword need to be in the slug?

It helps people understand the topic and read a shared link, it does not help ranking. Once, in natural form: repetition adds nothing.

Does changing a slug after publication hurt?

Only when the 301 from the old address is missing. With the 301 the signal moves; without it, whoever saved that link lands on an error.

Are dates in the slug a good idea?

Rarely. When you refresh the article the date in the URL becomes false, and changing it costs a redirect. A blog can make an exception when the date is part of the content.