News

How Caching Can Break Websites After Updates

Caching of your site tends to create a superior user experience as pages are served to your site visitors more quickly.  In the modern technological world of “NOW!”, where we expect our requests from technology to delivery immediately, anything that takes longer than a few seconds to deliver what the user asked for is considered slow, useless, or obsolete.

Caching of live WordPress sites is something that used to be a rare occurence.   With more informative articles, better hosting companies, and the user community “leveling up” their technical expertise, caching of WordPress sites has become more commonplace than ever before.   That is a good thing.

Many other web presence services and hosting companies have deployed caching for years.    Some are more advanced than others with their deployment process.   The better web presence platforms will manage flushing the cache for you.

If you are managing your own hosting and caching solutions here are some things we’ve encountered on our own WordPress sites and MySLP deployments.

Security or Proxy Service Caches

A security or proxy service is a “website request agent” that sits between your site and the real world.   It is like the bouncer that only lets the “good people” gain access to your site.    Many, like Sucuri, also have performance options built in.   These “performance” settings are a proxy cache.   They store a copy of the non-dynamic pieces of a website like CSS and sometimes JavaScript on their servers and send those resources from that copy.

That means you will need to clear these third party caches any time you update your site with something that changes the CSS or JavaScript.   Some caching services are more aggressive than others and cache ALL JavaScript files and CSS files.   Some are great at detecting file changes immediately while others could take an hour, day, or even a week to detect the changes.

The general rule of thumb we go by is any time we do a major software update, clear the Proxy Service Cache.

Our proxy service has broken the JavaScript component of MySLP as the script they serve is out of sync with the back end payload that is sent.   It happened once and after a few hours of debugging we found the script going to a “random site visitor” was different than our production code.    Clearing the proxy service cache is now part of our standard production system update process.

System Code Caches

Speeding up the execution of code can be done with various server-side technologies.   For our WordPress deployments we often deploy OPcache.    All of our hosted PHP code uses this service to “remember” the code for the most-accessed PHP files and store it in fast access memory (RAM on most servers).  This eliminates a lot of file open/close requests which is still one of the slowest processes a hosted application performs even on solid state drives.   PHP code execution is much faster withOPcache in place.

This also means that updating ANY PHP code on the system requires anOPcache flush.  Doing this is easy but, like the proxy service cache, remembering to clear this cache is something that must be added to standard production system update processes.

We recently updated the Experience component along with a base upgrade of Store Locator Plus.    The sites broke with a fatal error that took down the site because a specific function required by the older Experience code was missing.    The problem was the opCache had the old code forExperience, not the newer code that referenced the replacement function instead.   Clearing theOPcache brought evertyhing online immediately.

Web Browser Caches

Web browsers all come with some level of caching enabled by default.   Some browsers, like Safari, are hyper-aggressive with caching.  The browsers are also doing a lot more performance tricks to “beat the competition” by pre-fetching pages based on search histories before you even GO to the page.    This can throw off proxy service caches and opcache requests as your web content may have loaded in some browsers, Safari seems to be the most egregious in this regard, BEFORE you cleared those caches and stored the page locally with the broken pre-flush version.

Nearly all browsers are aggressive at caching CSS and JavaScript these days.    Doing a force page reload, holding down shift and clicking the reload icon in the address bar on most browsers, often helps clear basic cache-related issues.   However more complex sites may require even “deeper cleaning”.    Clearing your browser history and related files often helps but can clear stuff out from sites you want to be remembered at.

We find that using the private mode browsing is a good litmus test to see whether browser-side caching is causing problems.  Private mode starts with a clean slate.  No cookes, no cached web content of any kind.    If private mode fixes your web experience then browser caching including CSS, JavaScript, or cookies is likely the issue.   Clearing the history for the specific site you are visiting can help.  Often, however, today’s websites pull content from several different service which means clearing just the stuff from www.storelocatorplus.com for example does not clear the map content coming from maps.google.com.     Often we get away with clearing only those things that updated in the past hour if clearing a single site doesn’t work.

Caching Is Not Always The Problem

While caching is not always the problem when a web experience goes wrong, we find more-and-more often that our customers “forget to clear the cache” after doing a software update of Store Locator Plus.    Our MySLP users have far less issues in this regard as we ensure that several levels of caching are cleared every time we update the production software; they can, however, still encounter issues with browser caching or the content that contains the location maps if they have not cleared their Bootstrap server-side caches for example.

 

Premier Adds IP Security

Premier Members now have access to the 4.7.11 update of the Premier plugin.  This update allows you to set location lookup limits per IP address.  This will help keep competitors from scraping your locations list from your site.   All Premier Members with an active membership can download the latest release and activate IP filtering on their sites today.

Premier 4.7.11 Security Controls 2017-06-06_11-06-46.png
Security Filters available in Premier 4.7.11

What’s Baking? Updates for SLP, Power, Experience, Premier

Store Locator Plus updates are ready to roll out for May  2017.   The updates will first come to the WordPress plugins.   MySLP will be updated in the next 3-4 weeks pending testing.   Here is what is coming in this series of updates.

Store Locator Plus

The base plugin that impacts all levels of MySLP service and the Store Locator Plus application stack.

Various updates have been made to allow the Style Gallery to better support additional user experience modifiers available in the Experience and Premier Add On packs.   For example the base plugin now has a Search Form Styles selection that provides access to built-in jQuery styling that makes things like drop down menus and autocomplete features look a little nicer.

The Default style in the Style Gallery has been updated.  You do not need to update the base plugin to take advantage of this update.  If you are already using the Default style select a different style from the Settings / View tab in Store Locator Plus (start with Advaned Options in MySLP) and switch it back to Default to pull the new style from the Style Gallery server.    If you have SLP 4.7.10 it will take advantage of some new HTML attributes to better style the search form layout, especially when dropping labels in front of some input fields on the locator.

Default Updated Style 2017-05-24_17-51-32.png
The updated Default style better lines up the search form with the map.
Default with no label 2017-05-24_17-52-36.png
The updated Default Style better handles the option to drop the search label and use a placeholder instead (Experience Add On).

More elements have been culled that reduces the overhead of the plugin.  This makes the plugin more efficient for both WordPress and MySLP users. This simplification also has an impact on what will work with this release.   MySLP users won’t have to worry about compatibility issues but our WordPress plugin users should not the following compatibility changes:

Power needs to be version 4.7.11, also being released this week.

Premier will need to be version 4.7.10, it is being released this week.

Experience does not need to be updated but if you do update you’ll need SLP 4.7.10.

Gravity Forms Locations has been updated, released earlier this week, for SLP 4.7.10 compatibility.

Enhanced Map, Enhanced Search, and Widget legacy add ons have not worked for a few releases now.  You need to upgrade to the Experience Add On if you wish to update to SLP 4.7.10.

Experience 4.7.10

The Experience Add On , which is part of the MySLP Professional level of service, focuses on interface style updates.   It works with the updated SLP 4.7.10 base plugin as well as the extended Search Form Style options provided by the Premier 4.7.10 release to style drop down menus and the address zip code autocomplete feature.

This release also fixes the Allow Address In URL setting and provides an updated translation for sv_SE Swedish language users.

Premier 4.7.10

The Premier Add On, available to all active Premier Members and part of the MySLP Enterprise service has updated the Dropdown Styler to work with the Search Form Styles in SLP 4.7.10.    The Dropdown Styler utilizes a jQuery library to create a replacement for the browser dropdown entries on the locator search form that can be easily styled with standard CSS rules.   The 4.7.10 update adds the UI Lighteness style to the pre-existing Smoothness and Vader active interface elements styling.    The styles also now apply to the Experience auto-complete interface for zip code autocomplete.

Smoothness DropDown 2017-05-24_18-00-59.png
The Smoothness style replacing the default Safari drop down look-and-feel.   Select Smoothness from the Search / Appearance / Search Form Style setting.

This update also includes an updated translation file for sv_SE Swedish language users.

Power 4.7.11

The Power Add On, available as part of the Power level for MySLP users, has been updated to work with the updated SLP 4.7.10 release.   It also includes an updated translation file for sv_SE Swedish language users.

 

 

Gravity Forms Locations 4.7.10

In preparation for the of Store Locator Plus 4.7.10 for WordPress, we have release an updated version of DeBaat’s Gravity Forms Locations add on.    The SLP 4.7.10 release will be dropping some legacy methods and functions in the base plugin in order to increase performance and reduce the memory footprint of the base plugin.

Supported plugins including Gravity Forms Locations, Power, Experience, and Premier have been updated to ensure compatibility with the 4.7.10 release.   Legacy add ons including Enhanced Map, Enhanced Search, and the Widget Pack are no longer supported.  Users of Enhanced Map, Enhanced Search, and the Widget Pack should upgrade to theExperience Add On which includes all 3 legacy add ons as well as Enhanced Results and some new features.

Interested in Gravity Forms Add Ons for Store Locator Plus?  Here is a video on how it can be used to allow users to add locations to your site:

Power Add On 4.7.10 Patches Categories

Version 4.7.10 of the Power Add On for Store Locator Plus was released today to patch an issue with recording new category assignments for locations.    Version 4.7.9 introduced an issue that broke the mapping between locations and new category assignments.

If you have existing locations that “lost their categories” you will need to re-assign the categories.    For most installations you can edit each location via the admin edit page for the location; the location categories should appear as being checked.  Saving the location will re-assign the proper category numbers to the category mapping table.

We have also revised our test suites to ensure the category tests are properly included in the Power Add On testing process.  We are not certain why the testing scripts became disconnected from our Power Add On Test Suite but we have rebuilt the suite to reduce the chances of an issue like this from happening in the future.

MySLP users, other than those on the Advanced level which does not include category features, have already received the patched files.     Users of our WordPress add on should update the Power Add On before working with location categories.

MySLP Service Is Getting Stripe – Downtime May 16th 2017

The My Store Locator Plus subscription service is ready for Stripe.   Stripe provides better coupon management, account upgrade and downgrade prorated fees, and direct credit card billing.    During our testing we have also found that subscription changes are instantaneous which eliminates the “in limbo” state that was problematic with some PayPal accounts.

All new accounts will go through Stripe.    Pre-existing accounts that wish to switch to Stripe can contact us to assist with changing their processor to Stripe after they cancel their PayPal subscription.   We will make sure all account data and settings remain intact and that you have as little downtime as possible.  Most accounts will have ZERO downtime should they choose to change over to Stripe.    Existing accounts that choose to stay with PayPal will be able to do so.

Along with this update are several minor updates such as improved history logging on all accounts to better track what is going on with subscription renewals, account upgrades, and the current state of the subscription.

2017-05-16 Maintenance Window

The MySLP website will experience a brief period of downtime on Tuesday May 16th 2017 from 11AM EST until 11:20AM EST.    Customer Maps may be offline for up 2 to 3 minutes during part of the upgrade process.

MySLP 17.5 Brings Store Locator Plus 4.7.9 Online

The latest version of the MySLP service is now online and includes the latest versions of the Store Locator Plus application stack.

Locator Features

The locator now employs a lighter communication interface in JavaScript reducing memory on the user’s browser and network traffic between your site and the MySLP server to increase locator performance.    Enterprise level users that are using  the territory bounds feature have some patches that fix an issue where some searches would not get a response from the server when no locations were being returned.  Power level users that employ the location categories to filter their location results will not improved performance on searches.  Power level users also get improved CSV import performance in the latest MySLP update.

Account Upgrade/Downgrade

This update also includes a revised dashboard that has an improved interface for upgrading your account level and performing other account features.   Changing your account level or restarting a suspended subscription is now a one-click process from My Profile when logged into the MySLP Dashboard.

Coming Soon

We are well underway with the 17.6 release of the MySLP service.   This coming release brings direct credit card billing through Stripe services for all new accounts.    Existing accounts will be able to request assistance if they wish to migrate from PayPal to direct credit card billing for their service.

Version 4.7.9 Allows Location Highlighting Via URL

Version 4.7.9 of Store Locator Plus as well as the Experience, Premier, and Power add ons was released for WordPress today.     The features and updates will roll out on the MySLP platform in the next 30-60 days after it passes full integration testing on the MySLP service.

The 4.7.9 update focuses on bringing the new Premier URL Control module functionality to the locator application.  The URL Control module adds two new features to the Store Locator Plus application: passing in a location ID via a URL and passing in location limits via URL.    These features can be enabled or disabled globally on a per-site basis.

Location ID via URL

With this feature enabled adding a ?location=<#> parameter to a URL will highlight that location.  The location will be set as the center of the map and the marker will be clicked which will bring up the info bubble by default.

Limits via URL

With this feature enabled adding a ?limit=<#> parameter to a URL will set the initial map loading and search results limit on locations returned.   Passing in ?location=<#>&limit=1 will highlight and only show that location on the map.

Premier members with an active subscription will be able to turn on the URL Control module which will load in the code necessary to add new Location ID and Limits via URL features.

Directory Builder Updates

The Power add on directory builder, invoked with the [slp_directory] shortcode on a page, has also had updates that work in conjunction with the new Premier URL Control module.     You can now add a locator_data attribute to the shortcode to override the standard parameter passing when linking to a landing page.    The default behavior is to link to the locator and filter results to match the given shortcode “by” attribute.  For example [slp_directory by=”city” locator_page=”/map/”] would pass ?city=<city-name> to the map and show only locations in that city.

If you had one location in each city you could not pass [slp_directory by=”city” locator_page=”/map/” locator_data=”sl_id”] which would pass in the ?sl_id=<id> to the map.  If the Location ID via URL feature is enabled this would allow people to see a list of cities and when clicking on a city bring up the map page highlighting that location on the map.

PTI is using the new Store Locator Plus features on their upcoming route map.  PTI site design by KO.

Other Updates

There have been a few minor patches as well as updates to the base Store Locator Plus plugin and Experience add on that ensures all the major components communication with each other properly on how to build the data queries properly when various parameters like location_id is passed in via a URL.    Older legacy add ons will not have the necessary code updates and may conflict with the latest Power and Premier updates.   Mixing-and-matching the Experience, Premier, or Power add ons with the legacy add ons is not recommended and is no longer supported.

MySLP Service Update 17.4

My Store Locator Plus will be undergoing a brief maintenance window at 3:15PM EST while we update the sign up and subscription management system.   Map services should not be impacted by this update.    Access to MySLP login and dashboard functionality may be impacted for 5 to 10 minutes during the update process.

The updates improve the interface with the PayPal subscription system to make it easier to setup a new account or extend a subscription for existing users.

MySLP is our business location map and directory service for mobile and web apps.  It is a monthly service that is hosted in the cloud.  We manage the system backup and upgrade compatibility when new versions of the Store Locator Plus application are available.   You enter your locations and add a snippet of JavaScript code to your web or mobile app and gain a fully functional locator for your web and mobile presence.

MySLP Update Notice 2017-Mar-27

March 17th, 2017 11:30AM EST (GMT+4)

The MySLP service may experience a temporary service disruption expected to last no more than 5 minutes while we upgrade the system to our 17.3 release.   This update focuses on the subscription renewal process as it deals with an issues some of our subscribers have had with their PayPal recurring payment not properly extending their subscription.  In addition this update will include the following service refinements:

All Levels

Minor performance improvements when logging into the dashboard and when the locator interface is being pushed from our server to your website.

Enterprise Accounts

Addresses issues with the Advanced Options interface for importing locations.   Some users could have experienced issues with the import not starting when clicking “upload” depending which features were checked.