Monthly Archives - March 2015

Has Google been saving your location data?

google-bot-revAlot of people using apps on their phones and logging in from various locations with their location tracking enabled. It’s interesting to see what location data has been tracked and how much.  If you would like to see what location data Google has on you.

Sign in to your Gmail account:

Visit the Google url below:

WordPress website slow?

We receive alot of contacts from businesses who use WordPress and experience a less speedy experience.  Over the past 7 years or so in our experience with WordPress there are a few things can speed up many processes and response time with your site.

1. Page Caching

This would be the first thing you will want to setup (if you haven’t already).  A database driven content management system require alot of queries to load in data and build pages, by default every page is a query.  Page caching basically takes these queries and creates static html versions, which are then servered to the browser.  This increases site speed and also reduces over all baggage on your server.

2. Excessive Plugin usage

Try to only install plugins that you need, using plugins that are no longer developed can also lead to excessive memory issues and many other kinds of errors.

3. Widget Caching

This is similar to page caching only it’s religated to the widget objects of Word Press.

4. Minify JS and CSS

With wordpress each plugin adds a new set of css and js files to load in your header and on request, this means more load time. Minification of your JS and CSS will compress all the files into one file.  This can sometimes cause issues with WordPress themes and plugins to do alot of testing.

5.Content – Make sure your images and videos are a decent size for quick viewing, also try hosting certain files externally using a cdn (Content Delivery Network).


If you are still having problems, check your web hosting….Some hosts are better than others, any cms using a database can experience slowdown due to traffic, number of queries to database, render large db records etc.  If you have completed most of the items in this list, then your issue may be a slow host.


What to look for when picking a web host

Hosting has evolved quite a bit in the past 10 years, types of hosting and the technology has changed but, a few constants will remain the same when picking a web host.

In my experience these are the top things to consider before dedicating yourself to a host.  My answer to everyone is plan ahead, and plan for the worst case scenario and a contingency plan.



Many hosts are not integrated companies, meaning their hardware, support and even billing can be in different geographic locations.

Which causes a slow down in communication between departments, and most issues are addressed through a ticket system.  This is typically a standardized process within most hosts, however having a host you can talk to on the phone is more beneficial long term.  Use your intuition when it comes to customer service…if your host can’t or won’t help you with a small problem, just imagine when you have a big one!



SHARED/COHOST – This type of hosting is entry level both in functionality, customization and price. Basically your site is a folder on the server with thousands of other websites.  Which means you get a standard package, however customization to what you can do is limited.  On shared/cohosted servers the needs of the many out weigh the needs of the few…. If one site is generating too much bandwidth or using too much memory, there are automated process that will automatically shutdown your site. (this is where the customer support is important).

If your website requires functionality (php ini, libraries, codecs etc) outside the hosting packages offered with a shared host it can be a project killer, if they DO NOT have scalability with hardware to a vps or dedicated server a resolution.

BAD EXAMPLE SCENARIO – A client was using Blue Host, we had a viral campaign and after generating 80,000+ requests per hour they shut down the account.  They did not offer vps or dedicated servers so an upgrade in hardware was not possbile. Effectively killing free traffic and marketing opportunities to the website.

BAD EXAMPLE SCENARIO –  A client was using Host Papa, and they had a php injection virus from an old WordPress install, the shared host locked down the account/ftp/cpanel/http/pop  but also sends an email with infected file list and says “please remove these files to reactivate the account”.  How do you remove infected files if you are locked out of your account?..Answer you can’t…. the host had no method in place to address this issue.


VIRTUAL PRIVATE SERVER /CLOUD VPS – VPS or virtual private servers are similar to shared host except most vps servers only run a handful of sites, which can allow more base level server customization for your apps/websites etc.  Be very selective with what hardware you add when picking a vps package. Some VPS can actually perform worse than a shared host due to low cpus or memory. If you can afford to get ALOT of CPUs and MEMORY and hard drives, this is most important when making your initial purchase.

A mistake after the purcahse can cause you to have to build a whole new server with proper hardware, which relates to a ton of downtime that could kill a project budget and schedule. Those who have never used anything beyond a shared host will get a crash course into the joys hardware monitoring and site memory consumption and all the other processes that has to run. There is more to your file structure than just a root folder =).


DEDICATED SERVER – Ideally this is what you should have if you have big plans, generating alot of bandwidth, system intensive process and of course…if you can afford it, and with dedicated servers like a VPS …ALWAYS GET THE MOST RAM/CPUS and hard drives with your initial order.  A dedicated server means you have your very own computer for your website, you are the king of the ship….but also you easily run aground.

A dedicated server has more hardware/software maintenance that has to be addressed and can sometimes require constant monitoring.   Some dedicated server hosts provide support for server maintenance for an extra fee and this is what you want to be looking for….once again back to communication with the host.



Does your host have big enough pipes for your business? Besides the hardware aspect of your web host, the other important thing to look into is bandwidth.  Does the web host have ability to scale your speed if you start generating more traffic?  Does the server data center allow real time monitoring and scalability of  bandwidth if need be?



In recent years a new issue in stability has arisen with some web hosts, and that is the companies themselves sometimes go through business model changes, legal issues, politics, disagreements with hardware vendors, support teams etc.  Web hosting companies are bought and sold like hot cakes due to chatoic investment and economic situations.   This trickles down to your level of service, the type of hardware and even support you receive. Many times this will happen without any notice to end user.   A management issue at a webhost can lead to segmentation in the support departments, not responding to calls, emails, tickets etc. Find out how long your host has been around is something good to check, shows long term viability.



Magento email notifications stopped sending?

During a Magento migration some issues can arise, one of them being notification emails to both admin and users stop being sent. Apparently this is a tricky one for alot of people to find a solution for.  Here is my fix, hopefully it prevents someone from repeatedly smashing their face against a wall =)

By default Magento has a decent set of default functionality for cron jobs setup.  One thing than can happen during an upgrade is the magento mail que will stop communicating with server.

NOTE:  Older versions of Magento send notification emails instantly, Magento 1.9.x stores the email notifications in the database table “core_email_queue” so check here if you want to see if the table is full, if it is you may have a cron issue.


1. The first thing to check is your CPANEL -> CRON JOBS section see if there is anything already setup.

2. Check Magento cron file is typically in the Magento Root


3. In the CPANEL -> CRON JOBS section add in
Here is the full code sample:
*/15 * * * * curl -s -o /dev/null

*/15 in the ‘minute’ field
* is the ‘hour’ field
* is the ‘day’ field
* is the ‘month’ field
* is the ‘weekday’ field
curl -s -o /dev/null in the command field.

This should enable Magento the ability to send out the mail that is stored in the que.

Remember if you want to test the cron job you can enter in an email address in cpanel after testing to stop cron email spam.



Use a special cron management Magento  extension AOE SCHEDULER – This plugin should be included in the Magento Core by default, that is how awesome this extention is!


This will show all cron tabs in Magento and allow you to see what is being processed and what’s not.

If there is a problem with the heartbeat cron job then you are on the right track…it is a cron issue not setup properly.


NOTE: for some configurations adding 1 piece of code to magento cron.php

<code> $isShellDisabled = (stripos(PHP_OS, ‘win’) === false) ? $isShellDisabled : true; </code>

<code> $isShellDisabled = true; </code>


Go back through CLI or CPANEL CRON TAB and make sure you are running “*/5 * * * * php -q path/to/magento/cron.php”



select the core_email_queue_send_all cron task and select RUN from the drop and then submit

Go back to phpmyadmin or sqli and look up your `core_email_queue` database table, which should be empty meaning the email sent.

Go back to AOE Scheduler and look at the visual timeline to see if all the cron jobs are processing correctly.

STILL GETTING ERRORS: If you see errors about cron jobs timing out in AOE Scheduler like the sample error below, adjust your cron settings in magento

Message: exception ‘Mage_Core_Exception’ with message ‘Too late for the schedule.’ in /home/path/to/shop/app/Mage.php:595


If the cronjob runs every 5 minutes, try this configuration:

Generate Schedules Every  5
(enter here the cronjob execution time, in this case 5 minutes)

Schedule Ahead for  125
(based on cronjob execution time plus the maximum time one job needs. For example: sitemap xml takes 120 minutes, then enter 120 minutes + 5 = 125 minutes)

Missed if Not Run Within  180
(rumtime of the longest process, for example: an import takes 120 minutes, then enter 120 minutes + 60 minutes – because sometimes there is a difference between mysql and server time)

History Cleanup Every  10
(minimum cronjob execution time = 5 * 2 = 10 minutes in this case)

Success History Lifetime  1440
(duration of cronjob storage, to prove if everything works fine. 1440 = 24 hours)

Failure History Lifetime  1440
(duration of cronjob storage, to prove if there are any errors. 1440 = 24 hours)