Classibase update version 2 – Fuzzy search, PWA, lazy load, duplicate prevention

Classifieds script version 2

We updated our script to version 2 with more mobile support and simplification to user interface. Added performance optimizations, PWA support, ad blocker compliance, fuzzy search, mobile friendly dropdowns, duplicate finder, increased ad statuses and more optimizations. We will display major updates and explain how your classifieds website will benefit using them.

Fuzzy search with caching results

fuzzy search classifieds script

Search for user generated content is difficult in terms of possible typo errors. That is why we implemented Fuzzy search algorithm to our classifieds script. Fuzzy search, in other words approximate string matching, is the technique of finding strings that match a pattern approximately. With fuzzy search users will find matches even when search term or item text is miss-typed. Item title and description text will be used for fuzzy search with title being prioritized on search results. We tweaked our search algorithm to show closest possible match for searching given term.

We also implemented caching for term search and searches using custom fields for narrowed down results. Humans do not go beyond 1000 items in search results where web crawlers and bots do. That is why we cache first 1000 results and provide pagination to those items only. Web crawlers will try to fetch more results and cause server overloads. To prevent unnecessary page generation and overloading servers we deny pagination beyond matching 1k results. If users want more precise results they can always rephrase their search term or use custom fields to narrow down results.

PWA (Progressive Web App) for classifieds website

PHP Classifieds script with PWA

PWA is new way of offering your website content with web application. With growing popularity of mobile users, especially for classifieds websites mobile users count for 80-90% users, PWA gives ability to install your website as an application. You do not have to submit it to Google or Apple stores. Application is available to everyone who visits your website in regular way. Users will be prompted to install application if they interact with your website. Pwa is much smaller and measured in kilobytes, where native applicatins can weight tens megabytes depending on platform.

Here are some case studies of popular websites who started using PWA:

  • OLX PWA 
    • Boosts re-engagement on the mobile web by 250% with a Progressive Web App
    • 23% less time until page is interactive
    • 80% lower bounce rates
    • 146% higher CTR on Ads
  • After building a PWA to improve their mobile experience, the company Alibaba.com saw a 4x higher interaction rate only with the add to screen feature.

We have good news for you. We added PWA to our classifieds script so you can use enterprise level technology on your classifieds website. You can switch it on in admin panel and define app icon.

PWA enables offline pages for users who searched for items and viewed listing details. Then when that user go offline they will be able to view all content they viewed while they were online. This is very useful if you are calling sellers on the go without need to connect to internet.

And other great feature of PWA is caching and serving static content without even sending any request to web server. This will reduce great amount of server load.

New admin panel design

Admin panel redesigned for better mobile usage. All tables are collapsing to fit mobile screen. Drag and drop interactions removed on widgets page and replaced with dropdown menu navigation. Ads listed on admin panel are redesigned to fit screen. Ad actions are moved to dropdown menu related to each ad. Bulk actions also can be performed by selecting multiple or all items on page. Ad count per page can be increased up to 500 items so moderators can perform bulk approval, removal or any other bulk actions applied to 500 items at once.

Mobile friendly dropdowns

classifieds script with mobile friendly dropdowns

Converted all HTML select boxes to mobile friendly dropdowns. Nested categories and locations better shown on new dropdown (same as select box). This makes all selecboxes to act similar across multiple devices, desktop, tablet and mobile. As you know selecbox on mobile rendered different depending on OS version, browser version. And on some mobile phones to select one option you may need to perform 4 clicks. That is insane. 4 clicks for each dropdown, and on average form there might be 5 dropdowns, which will result in 20 clicks to perform in order submit a form. That is very discouraging for mobile users to fill in forms while searching for an item or posting new item. With custom selectbox all selectboxes will behave similar be it on different device, different operating system, different browser. Consistency makes usage of dropdowns predictable, easy to use, less time consuming.

Using custom dropdown for category and location fields reduces html size and caches location and category data. On average classifieds website there may be around 300 locations and so many categories with 3-4 level depth. With old selectboxes it would be 4 slectboxes for locations and 4 slectboxes for category loaded on each page request. With new dropdowns it will be 1 selectbox for location and 1 for category, and data loaded only once from server and then used from browser cache. This will make your website faster and reduce download size. Also nested category and locations will be shown in single select box with expanding sub items which makes them more intuitive.

Contextual menu on items in admin panel and dropdown menu for user account on front-end is also displayed using custom dropdowns. It makes it more relevant to selected item and more intuitive for mobile users.

Dynamic generation of custom fields for forms

Redesigned form population with custom fields. When posting new item users select location and category. This will generate form with related custom fields without reloading page or requesting data from server. User will experience fast response and can continue filling form without waiting. If they decide to use other category then custom fields related to that category will be loaded immediately.

This feature used on new item submission, editing existing item and when performing advanced search. Technically all custom field data loaded and cached with javascript and used by all related components. Which reduces page size, makes form generation super fast, does not interrupt users from populating form fields.

Lazy load and lazy resize images

Classifieds website is marketplace where all sellers compete with each other by providing much information and many photos of items they are selling and offering. That is why every page will have from 50 to 200 photos be it thumbnail or big image. All those images are resized accordingly on server side and loaded on each page. So many images may slow down web pages that is why we load all posting related images after page content is fully loaded. If image is not already resized and stored in cache then it will be resized when loaded with lazy load.

Previously all images were resized on page generation on server side and loaded with html. Page generation could be initiated by humans 20% or robots 80%. Resizing single image may take on average 0.1 second. Resizing 100 images will take 10 seconds which is too much for a single page generation and on some servers this process may use too much resources and timeout returning blank or server error page. Now imagine 80% of your resources used by robots crawling your classifieds website for information and using server resources. While 20% of real users feel slowness of your server because it allocates most of its power for generating pages for robots which is not even visible to humans.

With new lazy resize feature page with 100 images will generate in 0.3 second on average and request to resize and load each image. While images are being loaded users will be able to read page content. Lazy load and lazy resize will not be triggered by robots. With this new feature users will benefit from fast page load time, fast page generation time. Server will benefit by using resources without waste and serve more users than it did previously.

Mobile image gallery with gestures

According to recent studies users prefer familiar website layout and use such websites with ease. This is more valid for users on mobile devices. That is why we redesigned our image gallery.

New image gallery is placed at the top of ad item page on classifieds website. Image gallery can be swiped and tapped to cover whole screen making it convenient to view. Big images also can be swiped to view next image. After viewing users can click close icon or back button on mobile device to close image gallery and continue to view classified ad details.

We replicated basic behavior and gestures to match default mobile operating system design. Users will feel natural using updated image gallery and find appropriate items that they were looking for much quicker.

Updated image gallery looks and performs great on desktops as well. Click to view bigger images, swipe with mouse navigation, button navigation, “ESC” button for closing also works as expected.

Duplicate classified ad finder

Duplicates are nightmare for any classifieds website. Especially property and service listings are filled up by duplicates on general classifieds website. We added new feature that can be used to search for duplicates and mark them as duplicates. Duplicates will be reflected to user karma and future postings by this user will be held for moderation if defined in site settings. I remember deleting 2900 items out of 3000 posted by single real estate agent. Basically she were posting all of their inventory daily for couple month. After getting rid of all duplicates website became more useful for users. We deleted 15k items which was 30% of all items on website.

How duplicate classified ad finder works?

Script checks item title and description text for similarity. Moderator can define options for detecting duplicates. Finding duplicates is not one size fit all feature so moderator have to try different option combinations for finding duplicates. Match percentage, deviation between maximum and minimum match percentages, minimum and maximum number of matched words, number of different words are available options. Also duplicates can be searched within items pending moderation, items with same owner only if selected.

Found items will be presented with two options: skip or mark one of items as duplicate. Moderator has to check both items and click on related button. Human decision required because some items will have slightly different property for example number of rooms, floor number etc. can be different. Such items are similar but not duplicates. Other items may have different wording or additional info for same item, they will be duplicates. Moderator has to make decision viewing at found items.

Double classified entry prevention

Happens with double form submission caused by interrupted internet connection. Prevents by checking with recent items similarity 100%. Metaphone algorithm to check text similarity. If user enters couple letters incorrectly and their methaphone values same then text will be considered similar and new post will not be posted. Instead user will see previously posted similar item with proper notification.

Contact phone number validation

Some time people mistype their phone numbers when posting items on classifieds website. Or they mix short number with international number format We added phone number validation feature which can be configured with regex to restrict numbers for matching specific format. This also discourages spammers from other countries to post content not relevant to your location.

New classified ad moderation page

Manual moderation is safest but resource taking process for classifieds website to prevent spam and unwanted ads. We changed how item moderation works and combined all useful info for moderation to be shown in one page. Moderation page lists pending items by user, recently approved items, total number of items grouped by item status, karma of related user. All this info allows to see if user posts same listing with slight change, if user has good karma which means user do not have any duplicate or banned items. With this overview moderator can decide whether approve pending listings by this user. There is one button that will approve pending items in batch of 20 items at once. Also moderator can select several items and apply bulk actions like banning items, marking as duplicate or as incomplete. After moderating current user page will show next user who has items pending moderation. So this is one user at a time to overview and moderate on single page.

This optimization as many others come from our daily usage of classifieds script on our websites. We moderate items posted by users and optimized it to reduce time spend analyzing pending items posted by users.

Auto moderation based on user karma

Moderation takes time and human resources. We added karma to auto moderation feature. If user has some previously approved items and no record of duplicate or prohibited items then future posting by user can be auto moderated. Karma will be reduced if user detected posting duplicate content or brakes posting rules. Also user with bad karma can recover it by continuing posting good content without breaking site rules. Banned and duplicated items can be moved automatically by certain time to trash and over time user karma will be recovered to good state again.

Same rule applied for editing existing items. If item content is changed then it will go to moderation.

There are also other options for moderating new items like approve all or hold all for moderation. Using karma is good choice if you have too many items posted regularly and you do not want your site to be filled with spam content and left without control.

Listings has more statuses

Every listed item should have proper status when it comes to moderating items and auto cleaning expired and completed listings. We added more status types to listing items.

Previously users could delete their listings and there was no way returning them back if item was not sold or it was deleted by mistake. Also deleting and re-adding same listing as new item everyday was major flow which spammers could use to dominate on top of listings. We added more status types to prevent spammers and give control to users to relist their completed listings. Removed direct item deletion by users, items can be marked as completed and removed from live listings shown to public.

Added status for duplicates. Number of duplicate items in user account is used as an indicator for manual moderation for new items added by user. To make moderation easy we added basic scoring system known as karma for users. Duplicates will effect user karma negatively.

On public classifieds sometime users will post illegal items which is prohibited in terms of service. Such items can be market with “banned” status. This is also used as negative score for user karma calculation.

There is status for incomplete listings if users provide different value for custom fields than it is in their item description text. Also not complete can be used to mark items posted in wrong category or location. Incomplete items can be edited and send to moderation again.

With all these statuses users can never delete any listing directly. Instead they can mark items as completed. Then garbage collector after defined period of time can mark completed, duplicate, banned items as trash. Deleting banned and duplicate entries after some time will recover user karma, which is good practice because users should recover their karma if they do not continue post duplicates. And after some time garbage collector will delete items from trash. This times and status types can be defined in settings.

Keeping trashed items for some time before completely deleting from servers may be required by some regulations depending on country where this website used. This feature was asked by some of our clients some time ago and we finally added it to our classifieds script.

Speed optimizations on classifieds website

On classifieds website pages generated dynamically. When your site grows to couple thousand active items some features will take longer to generate. One of them is related items widget. It will check all posted items for related custom fields and depending on your server some pages may slow down. To prevent this we moved time taking queries to separate requests which is not visible to regular visitor or search bots. This will keep page generation fast and keep users happy.

One other optimization is sending emails regarding approved items is done in batches in background. They are known as acknowledgment emails. Multiple items form same user is combined to one mail and sent once to user with related links to items. This reduces mail server load, reduces page load time for moderators and reduces similar mail cont in user’s mailbox.

Session storage now handled in cookie

To increase server performance and reduce time for session storage we switched to cookie based session handling. On one of our websites after regular PHP updates session garbage collection was miss-configured. Within couple weeks our PHP session storage filled up with 21 million files with no space for additional file creation in single folder. Website slowed down because with every page request it tried to create session which was not possible to create. Users couldn’t login to website. After investigating this issue we found that session folder is full f file descriptirs and no new more files can be created. Garbage collection for expired session didn't work for that long and old files remained in that folder. Deleting those files took 1 day. After that unpleasant lesson we moved session storage to cookies and do not store any session data on server side. This improves load time for big websites and reduces server load. By the way WordPress CMS also switched from PHP sessions to client side cookie sessions long time ago.

Optimized Classifieds Website URL structure

Users on mobile devices tend to reduce bandwidth usage and save battery power. They prefer using ad blockers where possible. 11% of all internet users used adblocker, counting 615 million devices in 2017. Popular mobile browser vendors like Samsung, Opera, Firefox, Yandex started to implement built in ad blocking features or add-ons to allow users to block ads. But sometimes false positives can be caught with these ad blocking addons.

Adblock usage report 2017
Adblock usage report 2017 by blockthrough.com

We initially designed our classifieds script in 2013 to not be detected by these ad blockers. Because classified ads website is place where users come to view local items for sale and find local services. Recently we found that some admin pages may falsely be blocked by aggressive ad blockers and removed “ad”, “ads” phrases from related URL structures. We thoroughly tested classifieds website on desktop and mobile devices with popular ad blockers and made sure that all pages and content on websites built with our php classifieds script is always visible visitors. We can say that our classified ads script is 100% ad blocker safe.

Full list of changes can be found in change log here.

This is one of the major updates since initial release of the classifieds script. We keep updating our script to stay on par with new technology, user behavior and preferences. Some of these new features are seen in big classifieds websites like Gumtree, Craigslist, OLX, Avito. We are very happy to give this power of technologies used by market leaders to your classifieds website. Update your website to stay ahead of competition.

I want to say big THANK YOU for participating in release of these updates, testing and giving valuable feedback, suggesting little tweaks and fixing some bugs. Thank you for all your support.

139 (+1) visits

Leave a Reply

Your email address will not be published. Required fields are marked *

  • Classifieds Business Newsletter

    Receive all our future posts about growing your classifieds website. Enter your email to enroll.

    Subscribe