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.