Should I create a slug on the fly or store in DB?

后端 未结 4 428
有刺的猬
有刺的猬 2020-12-24 08:33

A slug is part of a URL that describes or titles a page and is usually keyword rich for that page improving SEO. e.g. In this URL PHP/JS - Create thumbnails on the fly or st

4条回答
  •  长情又很酷
    2020-12-24 08:52

    The best way to handle slugs is to only store the speaking part of the slug in the database and keep the routing part with the unique identifier for dynamic generation. Otherwise (if you store the whole url or uri) in the database it might become a massive task to rewrite all the slugs in the database first if you changed your mind about how to call them.

    Let's take this questions SO slug as example:

    /questions/807195/should-i-create-a-slug-on-the-fly-or-store-in-db

    it's:

    /route/unique-ID/the-speaking-part-thats-not-so-important
    

    The dynamic part is obviously:

    /route/unique-ID/
    

    And the one I would store in the database is the speaking part:

    the-speaking-part-thats-not-so-important
    

    This allows you to always change your mind about the route's name and do the proper redirects without to have to look inside the database first and you're not forced to do db changes. The unique Id is always your database data unique Id so you can identify it correctly and you of cause know what your routes are.

    And don't forget to set the canonical tag. If you take a look inside this page code it's there:

    
    

    This allows search engines to identify the correct page link and ignore others in case you have duplicate content.

提交回复
热议问题