WordPress permalinks control the URL of every post and page, and the default Plain setting produces addresses like /?p=123 that tell search engines and readers nothing. Switch to Post name under Settings, then Permalinks, save, and WordPress writes the rewrite rules for you; if you use a custom structure or moved an existing site, you may need to refresh .htaccess before the new URLs stop returning 404. Old links will break unless you add redirects, so plan that step at the same time.

Why Plain permalinks hurt

  • The URL carries no keywords, so it earns no relevance from the address itself.
  • Visitors cannot tell what a page is about before clicking it.
  • Links are harder to share, print, or say out loud.
  • Plain URLs look dated and reduce trust on a page people are asked to link to.

A readable slug such as /fix-500-error/ is easier to remember and gives you a natural anchor for internal links.

Set Post name in four steps

  1. In the dashboard, open Settings, then Permalinks.
  2. Select Post name. Avoid adding dates unless your content is strictly news, because dates make old posts look stale.
  3. Click Save Changes. Saving is what regenerates the rewrite rules, even if the setting already looked correct.
  4. Open a post, a page, and a category archive in a private window. All three should load without a 404.

Check the .htaccess rewrite rule

WordPress needs a rule block to send pretty URLs to index.php. If the site returns 404 on every inner page, open .htaccess in the file manager, keep a copy, and make sure it contains this block:

<IfModule mod_rewrite.c>

RewriteEngine On

RewriteBase /

RewriteRule ^index\.php$ - [L]

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule . /index.php [L]

</IfModule>

If WordPress cannot write the file itself, it shows the rules on the Permalinks screen for you to paste. Rules only apply when the file sits in the same folder as wp-config.php.

Fixing 404s after the change

  1. Save the Permalinks screen again, which rebuilds the rules.
  2. Confirm that mod_rewrite is available on the server; a host that disables it cannot serve pretty URLs.
  3. If the site lives in a subfolder, set RewriteBase to that folder, for example /blog/.
  4. Clear any caching plugin, then test again in a private window so you are not seeing a cached 404.
  5. If a single post 404s while others work, check its slug for conflicts with a page, category, or media file.

Redirect the old URLs

Do not leave old links pointing at nothing. If you changed slugs, add 301 redirects so rankings and bookmarks carry over:

  • Use your SEO plugin's redirect tool to map each old URL to its new one.
  • For a small site, add rules to .htaccess with Redirect 301 /old-page/ /new-page/.
  • Keep the redirects for at least a year, then review the access log before removing them.
  • Update internal links and the menu so visitors land on the new URLs directly.

Test the whole site with a link checker after the switch. If you need a fresh install to practise on, the hosting page lists what the free plan includes, and the FAQ covers common setup questions.