Wait, what’s happening?

Google has turned their free Business Profiles (formerly called Google My Business … and Google+ Local … and Google Places) into a massive traffic generator for local businesses of all kinds, including apartment communities. For every type of business, Google Business Profiles show what it thinks is the most relevant, most useful content for the searcher.

In what we’d call a slightly misguided decision, Google has categorized apartment buildings primarily as personal residences or lodging and not places of business. As a residence, Google’s policy takes the position that private residences don’t have set opening or closing times … so the Business Profiles for some apartment communities aren’t showing office hours to potential prospects, even when the business has taken the steps to claim their profile and update their office hours.

This is a fairly recent change over the past few months — we aren’t seeing widespread disappearing office hours yet, but it’s happening often enough that multiple clients are noticing it and asking about it … so we want to share some tips based on what we’re seeing and what you can do to communicate your hours to your customers and prospects.

You may notice that business hours are no longer displayed on your Google Business Profile. But that doesn’t mean you can’t share your hours.

We have to add the disclaimer that we’re seeing some inconsistencies across clients … so while the steps outlined below are working for most clients, we’re still seeing some cases where hours aren’t showing up … and we’ve seen many other cases where the office hours never went away in the first place. That disclaimer out of the way, here’s what you can do:

Check your business categories

Within Google Business, there are a number of different categories that are relevant to multifamily, including:

  • Apartment Complex
  • Apartment Building
  • Apartment Rental Agency
  • Real Estate Rental Agency

In the past, we’ve always recommended that the primary category should match the style of the property … so a single high-rise would be categorized as an Apartment Building, while a garden-style community would fall under the Apartment Complex category.

For now, Apartment Building is the category that is affected most often by this policy change (along with hotels and other lodging).

Based on current guidance we’re hearing from Google (and honestly, it’s been tough to get a straight answer on this), if you want your property to be listed as a business with office hours, then you’ll want to change your primary business category from Apartment Building to Apartment Complex. From an SEO perspective, we don’t have any issue with this change — as long as Apartment Complex is your primary category, this should have little to no impact on your local rankings.

You can also use the other apartment-related categories as secondary categories, and you’ll want to provide as much detail as you can about the specific property type to provide additional context for Google (townhomes, single-family rentals, student housing, etc.) … but stick with Apartment Complex as your primary category.

Match everything up in your Local Listings tool

In your local listings provider (Yext, Chatmeter, Moz Local, Semrush, Birdeye, etc.), make sure your GBP pages are connected and data is being synced.

The first thing you’ll want to do is make the same update to your primary category that Google recommended — make sure you’re listed as an Apartment Complex.

While you’re there, check to ensure your office hours (and holiday hours) are listed and up to date. Those hours will syndicate out to Google and all the other local directories (Bing Local, Apple Maps, etc.). This will help to signal to Google that you are indeed running a business with office hours, and Google should start to pull it in if and when they change their mind on this decision.

As a fallback, we also have some clients adding a text callout in the business description to point prospects to the website for office/tour hours — “Visit our website for our best deals and available tour times.”

(Shameless plug: Want to save time managing your local listings? Make it way easier for everyone by connecting them directly to your property management software with RentPress Local. When you make an update to your office hours and other business info in your PMS, we automatically update Google and the rest of your local listings.)

Check your GBP dashboard

Go sign in at google.com/business. If the option to add/update hours is there for you in the Google Business Profile admin, then add them. We always want to include the location’s office hours here.

Again, even if your office hours are not currently showing up in Google search or map results, we want the information there in your profile. We are assuming that Google will decide to bring office hours back in the Knowledge Panel display at some point (or possibly add a secondary way within your profile to share your leasing office info).

Update through the GMB mobile app (while it’s still around)

In our experience, Google has tended to give preferential treatment to GBP updates made through the mobile app (iOS / Android), so download it and try to update your office hours from there. We’ve seen cases where those hours are getting passed through to the customer view in the search results (even for listings in the Apartment Building business category).

There’s a limit here … you can only access up to 100 locations through the app, so if you’re managing a large portfolio, you may need to set up multiple Google accounts to access all of your property listings this way.

Google will be moving away from the dedicated mobile app in the near future, so take advantage of this while you can.

Use your Business Profile Q&A section

Every Google Business Profile has a Q&A section where any customer can ask a question, and it’s perfectly ok for business owners to ask and answer questions on their own profiles. So leverage this!

Ask and answer the question “What are your office hours?” If you have different hours for self-guided touring, ask that as a separate question and answer that one, too.

It’s best practice to use as much real estate as Google will give you in your Business Profile — in short, “fill in all the blanks.” For example, many chatbot and live chat tools give you a way to share a direct link to start a chat conversation. Share that link on your Business Profile, then share your office hours there as an option when someone starts a chat.

Influencer marketing!

Like many other brands today, Google Maps has its own influencer program, called Local Guides. Google describes the program as a “community of explorers” — these Guides earn points and rewards by contributing reviews, adding photos, editing business listings, and checking facts about locations.

If you can connect with one or more Local Guides in your area, they may be able to help you add info and context to your Business Profile listings. We have a few high-level Local Guides on our team here at 30 Lines, so we can work directly through the search results and Google Maps to add/update the office hours for our clients’ listings.

Use your website

Our last step is to check your website. Ideally, you should display your office hours in the footer on every page and on the main contact page.

Then you want to add some info just for the search engines – include the “opening hours” schema formatting in the source code of your property websites. Here’s all the information you can include in the schema for Apartment Complexes — in this case, you specifically want to include a schema property called openingHoursSpecification.

While you’re doing this, you can also use schema to add any special hours, like if you offer different hours for self-guided tours. You want all of this info on your website regardless, so go ahead and work with your website partner to get it done! (If your website developer is using RentPress, the schema formatting is automatically added for you.)

Google will start to pick this up and display it with your organic listings … it doesn’t mean that the hours will always show in the GBP Knowledge Panel, but it should help with context and the formatted data in the regular search results.

And if you’re in a more walkable area, include your website or a QR code on your property signage. Give interested prospects an easy way to scan and get to your office hours (and other important info) as they’re walking by.


So there you have it. If your office hours aren’t appearing on your Google Business Profiles for your properties, it’s probably not just you … but there are still plenty of ways you can communicate your hours to current and potential customers.

As with all things SEO, changes can happen fast — these are the suggestions and guidance we have for now. If we hear anything different from Google or any of our sources, we will pass along those updates ASAP.

Reach out anytime if you need help or have any questions about local SEO for apartments. See you on the map!

[gravityform id="14" title="false" description="false"]
<script type="text/javascript">var gform;gform||(document.addEventListener("gform_main_scripts_loaded",function(){gform.scriptsLoaded=!0}),window.addEventListener("DOMContentLoaded",function(){gform.domLoaded=!0}),gform={domLoaded:!1,scriptsLoaded:!1,initializeOnLoaded:function(o){gform.domLoaded&&gform.scriptsLoaded?o():!gform.domLoaded&&gform.scriptsLoaded?window.addEventListener("DOMContentLoaded",o):document.addEventListener("gform_main_scripts_loaded",o)},hooks:{action:{},filter:{}},addAction:function(o,n,r,t){gform.addHook("action",o,n,r,t)},addFilter:function(o,n,r,t){gform.addHook("filter",o,n,r,t)},doAction:function(o){gform.doHook("action",o,arguments)},applyFilters:function(o){return gform.doHook("filter",o,arguments)},removeAction:function(o,n){gform.removeHook("action",o,n)},removeFilter:function(o,n,r){gform.removeHook("filter",o,n,r)},addHook:function(o,n,r,t,i){null==gform.hooks[o][n]&&(gform.hooks[o][n]=[]);var e=gform.hooks[o][n];null==i&&(i=n+"_"+e.length),gform.hooks[o][n].push({tag:i,callable:r,priority:t=null==t?10:t})},doHook:function(n,o,r){var t;if(r=Array.prototype.slice.call(r,1),null!=gform.hooks[n][o]&&((o=gform.hooks[n][o]).sort(function(o,n){return o.priority-n.priority}),o.forEach(function(o){"function"!=typeof(t=o.callable)&&(t=window[t]),"action"==n?t.apply(null,r):r[0]=t.apply(null,r)})),"filter"==n)return r[0]},removeHook:function(o,n,t,i){var r;null!=gform.hooks[o][n]&&(r=(r=gform.hooks[o][n]).filter(function(o,n,r){return!!(null!=i&&i!=o.tag||null!=t&&t!=o.priority)}),gform.hooks[o][n]=r)}});</script> <div class='gf_browser_unknown gform_wrapper gform_legacy_markup_wrapper' id='gform_wrapper_14' ><form method='post' enctype='multipart/form-data' id='gform_14' action='/blog/apartment-marketing/google-business-for-apartments-missing-office-hours/' novalidate> <div class='gform_body gform-body'><ul id='gform_fields_14' class='gform_fields top_label form_sublabel_below description_below'><li id="field_14_1" class="gfield gfield_contains_required field_sublabel_below field_description_below gfield_visibility_visible" data-js-reload="field_14_1"><label class='gfield_label gfield_label_before_complex' >Name<span class="gfield_required"><span class="gfield_required gfield_required_asterisk">*</span></span></label><div class='ginput_complex ginput_container no_prefix has_first_name no_middle_name has_last_name no_suffix gf_name_has_2 ginput_container_name' id='input_14_1'> <span id='input_14_1_3_container' class='name_first' > <input type='text' name='input_1.3' id='input_14_1_3' value='' aria-required='true' /> <label for='input_14_1_3' >First</label> </span> <span id='input_14_1_6_container' class='name_last' > <input type='text' name='input_1.6' id='input_14_1_6' value='' aria-required='true' /> <label for='input_14_1_6' >Last</label> </span> </div></li><li id="field_14_2" class="gfield gfield_contains_required field_sublabel_below field_description_below gfield_visibility_visible" data-js-reload="field_14_2"><label class='gfield_label' for='input_14_2' >Email<span class="gfield_required"><span class="gfield_required gfield_required_asterisk">*</span></span></label><div class='ginput_container ginput_container_email'> <input name='input_2' id='input_14_2' type='email' value='' class='medium' aria-required="true" aria-invalid="false" /> </div></li><li id="field_14_3" class="gfield field_sublabel_below field_description_below gfield_visibility_visible" data-js-reload="field_14_3"><label class='gfield_label' for='input_14_3' >Company</label><div class='ginput_container ginput_container_text'><input name='input_3' id='input_14_3' type='text' value='' class='medium' aria-invalid="false" /> </div></li><li id="field_14_5" class="gfield field_sublabel_below field_description_below gfield_visibility_visible" data-js-reload="field_14_5"><label class='gfield_label' for='input_14_5' >Property Website/Blog</label><div class='ginput_container ginput_container_text'><input name='input_5' id='input_14_5' type='text' value='' class='medium' aria-invalid="false" /> </div></li><li id="field_14_6" class="gfield field_sublabel_below field_description_below gfield_visibility_visible" data-js-reload="field_14_6"><label class='gfield_label screen-reader-text gfield_label_before_complex' ></label><div class='ginput_container ginput_container_checkbox'><ul class='gfield_checkbox' id='input_14_6'><li class='gchoice gchoice_14_6_1'> <input class='gfield-choice-input' name='input_6.1' type='checkbox' value='I&#039;m a current Community Sherpa customer' id='choice_14_6_1' /> <label for='choice_14_6_1' id='label_14_6_1'>I'm a current Community Sherpa customer</label> </li></ul></div></li><li id="field_14_4" class="gfield gform_hidden field_sublabel_below field_description_below gfield_visibility_visible" data-js-reload="field_14_4"><div class='ginput_container ginput_container_text'><input name='input_4' id='input_14_4' type='hidden' class='gform_hidden' aria-invalid="false" value='' /></div></li><li id="field_14_7" class="gfield gform_hidden field_sublabel_below field_description_below gfield_visibility_visible" data-js-reload="field_14_7"><div class='ginput_container ginput_container_text'><input name='input_7' id='input_14_7' type='hidden' class='gform_hidden' aria-invalid="false" value='' /></div></li></ul></div> <div class='gform_footer top_label'> <input type='submit' id='gform_submit_button_14' class='gform_button button' value='Send me the slides!' onclick='if(window["gf_submitting_14"]){return false;} if( !jQuery("#gform_14")[0].checkValidity || jQuery("#gform_14")[0].checkValidity()){window["gf_submitting_14"]=true;} ' onkeypress='if( event.keyCode == 13 ){ if(window["gf_submitting_14"]){return false;} if( !jQuery("#gform_14")[0].checkValidity || jQuery("#gform_14")[0].checkValidity()){window["gf_submitting_14"]=true;} jQuery("#gform_14").trigger("submit",[true]); }' /> <input type='hidden' class='gform_hidden' name='is_submit_14' value='1' /> <input type='hidden' class='gform_hidden' name='gform_submit' value='14' /> <input type='hidden' class='gform_hidden' name='gform_unique_id' value='' /> <input type='hidden' class='gform_hidden' name='state_14' value='WyJbXSIsIjg0ZGZiNzZhNjMyOGJkNWU5NWY3MDVlMzE0Y2Y1ZGVkIl0=' /> <input type='hidden' class='gform_hidden' name='gform_target_page_number_14' id='gform_target_page_number_14' value='0' /> <input type='hidden' class='gform_hidden' name='gform_source_page_number_14' id='gform_source_page_number_14' value='1' /> <input type='hidden' name='gform_field_values' value='' /> </div> <p style="display: none !important;"><label>&#916;<textarea name="ak_hp_textarea" cols="45" rows="8" maxlength="100"></textarea></label><input type="hidden" id="ak_js_2" name="ak_js" value="18"/><script>document.getElementById( "ak_js_2" ).setAttribute( "value", ( new Date() ).getTime() );</script></p></form> </div>