Preserve file names with sorl for better SEO

Reading Time : ~ .

We use sorl-thumbnail for scaling images by keeping the original one intact. Sorl proven to be a great tool for generating different sized images throughout the website.

I presume that you know how to use sorl-thumbnail. Here we see how to preserve filename.

Search Engines will give importance to image alt tag content but it definitely has some impact on relevant image file name too.

Sorl will generate random names for the thumbnails it will create and as of now, there is no default setting to preserve filename in generating thumbnails. It is possible to have the same name for different sized images as sorl will create thumbnails in random folders, so, there will be no conflict in names.

Here is the way to achieve that.

We must override the thumbnail backend. So provide

  THUMBNAIL_BACKEND=’SEOThumbnailBackend’

Now we should create the class that returns our custom filenames.

  # thumbnailname.py

  from sorl.thumbnail.base import ThumbnailBackend, EXTENSIONS
  from sorl.thumbnail.conf import settings
  from sorl.thumbnail.helpers import tokey, serialize
  import os.path

  class SEOThumbnailBackend(ThumbnailBackend):

      def _get_thumbnail_filename(self, source, geometry_string, options):
          """
          Computes the destination filename.
          """
          key = tokey(source.key, geometry_string, serialize(options))

          filename, _ext = os.path.splitext(os.path.basename(source.name))

          path = '%s/%s' % (key, filename)
          return '%s%s.%s' % (settings.THUMBNAIL_PREFIX, path, EXTENSIONS[options['format']])

It’s important to keep source key or else there will be an issue of different images with same names, so we should create a folder with source key and save the file with our custom name.

Example:

'micropyramid.png' is stored as THUMBNAIL_PREFIX/source_key/micropyramid.png.

    By Posted On
SENIOR DEVELOPER at MICROPYRAMID

Need any Help in your Project?Let's Talk

Latest Comments
Related Articles
Best Practices of Using Django Celery in Django Social Auth Sandeep Jagata

Best Practices of Using Django Celery in Django Social Auth.

Continue Reading...
Django Forms basics explained Vamsi Popuri

Django forms is powerful module to help django application development in rendering html from model, validate input from http request to model specifications. And we ...

Continue Reading...
How To Write Custom migrations in Django Shirisha Gaddi

This blog post will help you to get deeper into Django Migrations - how Migrations works and how to create or add our custom migrations. ...

Continue Reading...

Subscribe To our news letter

Subscribe to our news letter to receive latest blog posts into your inbox. Please fill your email address in the below form.
*We don't provide your email contact details to any third parties