Tag Archives: Businesses

SEO Friendly, Static Local Directory Without Caching Data

I’m working on several prototypes for building CityGrid local directories, demonstrating best practices when building web and mobile apps using CityGrid APIs. One question I’ve gotten a lot lately is how are developers supposed to build SEO friendly local directories with static pages if they aren’t allowed to cache businesses and places from the CityGrid API?

It is true, per the CityGrid Usage Requirements, you aren’t allowed to store places data in a local database or cache locally. But if you think about this, it isn’t a negative, its a positive. You don’t have to manage the potentially millions of business listings (which isn’t easy), and when a business updates their profile you don’t have to worry about having out of date information.

If you can’t store the data, then how do you build out local directories, with static pages?

To begin I would start with the root of all places search with CityGrid, the what and the where. I recommend building a folder structure that looks like this /where/what/, for example /newyorkcity/pubs/. Then in the root of this folder, put a single index page that parses the folder structure and sets your where and what variables, before making a live search using the CityGrid places API.

Now with the results of your places API search you can list the results for the user to select from. For each business listing you will get back a CityGrid places ID and public ID. The public ID is a pretty SEO friendly representation of the business, such as macs-irish-pub-new-york-city. This should work as your SEO detail, and you have two options: you can either use a mod_rewrite that will interpret this as next folder or page, or you have to statically build out a folder or page that represents each places listing. Either way your page should have a way to interpret the public ID into a numeric CityGrid ID and then make a call to the CityGrid Places API and make a detail request, returning back the full detail of a business listing.

As I write this, I realize how tough this is to explain, even though it is a pretty simple approach. The basic concept is you use your folder structure to provide the what, where and places SEO friendly detail ID. These are all the core elements you will need to make searches and detail requests against CityGrid API.

I’m working on two separate prototypes to demonstrate this, one is a mod_rewrite version and the other will statically build out pages that actually don’t store any data, except for the places ID–then make live calls again the CityGrid Places API to get what you need in real-time. Stay tuned and I will post the prototypes with accompanying blog posts, this week.

Local Directory vs. Local Guide

When I started working with the CityGrid Places API I needed a project to help me learning about how to use the API, and wrap my head around whats possible when building local web applications. I built Hyp3rL0cal which is a local web directory, that I wrote in PHP, then created Python and Ruby versions as well.

While I think local directories are still a very valuable and relevant part of the CityGrid network, I do not think they reflect the future of local web applications. So I”m spending time trying to brainstorm what is next, and I want to explore the difference between a local directory and local guide.

In my opinion a local directory is a web application that provides search and browsing mechanisms for users to discover local businesses and places on the web. The concept of a directory is really built around the user navigating the places data, and finding what they are looking for. Which requires the user to be willing to work for the discovery, something that not every user we be able or willing to do.

This is where I think an important evolution of local comes in–from the local directory to local guide. Rather than requiring users to find their own places, we should be guiding them more and making our local web applications more intelligent in helping users discover what they are looking for.

These are just initial thoughts on this, but one example that comes to mind in the travel industry, is Hipmunk hotel search. Hipmunk provides a streamlined way of guiding you through finding a hotel in a city, between specific dates and allows you to effortlessly filter, drag and mouseover your way to finding your room.

Hipmunk is just one example that comes to mind, I’m sure there are a lot more out there. I will keep hunting for better examples of how to help evolve the definition of local from a directory experience to form of discovery that helps guide you through business and places, and share with you developers, so you can use in your local web and mobile apps.