{"id":298854,"date":"2026-05-09T09:59:00","date_gmt":"2026-05-09T09:59:00","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/wpplaces-localrank-top-places-lists\/"},"modified":"2026-05-12T10:33:34","modified_gmt":"2026-05-12T10:33:34","slug":"georank-top-places-lists","status":"publish","type":"plugin","link":"https:\/\/ug.wordpress.org\/plugins\/georank-top-places-lists\/","author":23464258,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"1.0.5","stable_tag":"1.0.5","tested":"6.9.4","requires":"5.8","requires_php":"7.4","requires_plugins":null,"header_name":"GeoRank \u2013 Top Places Lists","header_author":"custonis","header_description":"Automatically display top restaurants and places for any city using Google Places data.","assets_banners_color":"2d873a","last_updated":"2026-05-12 10:33:34","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":71,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.3":{"tag":"1.0.3","author":"custonis","date":"2026-05-09 09:58:46"},"1.0.4":{"tag":"1.0.4","author":"custonis","date":"2026-05-12 09:14:13"},"1.0.5":{"tag":"1.0.5","author":"custonis","date":"2026-05-12 10:33:34"}},"upgrade_notice":{"1.0.5":"<p>Improved shortcode compatibility for mobile devices and smart quotes.<\/p>","1.0.4":"<p>Added support for many new Google Places types and improved automatic title generation.<\/p>","1.0.3":"<p>Security and naming improvements for WordPress.org compliance.<\/p>","1.0.2":"<p>Improved compliance with WordPress.org guidelines and stability fixes.<\/p>","1.0.1":"<p>Improved API cost transparency and documentation.<\/p>","1.0.0":"<p>Initial stable release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3527264,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3527264,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3527268,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":499},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3527268,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.3","1.0.4","1.0.5"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3529700,"resolution":"1","location":"assets","locale":"","width":1170,"height":2532},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3529700,"resolution":"2","location":"assets","locale":"","width":1170,"height":857},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3529700,"resolution":"3","location":"assets","locale":"","width":1170,"height":2532},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3529700,"resolution":"4","location":"assets","locale":"","width":1170,"height":568},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3529700,"resolution":"5","location":"assets","locale":"","width":1170,"height":2532}},"screenshots":{"1":"Mobile restaurant list","2":"Responsive card layout","3":"Different supported place types","4":"Settings page with API key setup"},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[262401,2466,6356,1122,20710],"plugin_category":[39],"plugin_contributors":[258443],"plugin_business_model":[],"class_list":["post-298854","plugin","type-plugin","status-publish","hentry","plugin_tags-city-guide","plugin_tags-directory","plugin_tags-google-places","plugin_tags-local-seo","plugin_tags-restaurant","plugin_category-business","plugin_contributors-custonis","plugin_committers-custonis"],"banners":{"banner":"https:\/\/ps.w.org\/georank-top-places-lists\/assets\/banner-772x250.png?rev=3527268","banner_2x":"https:\/\/ps.w.org\/georank-top-places-lists\/assets\/banner-1544x500.png?rev=3527268","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/georank-top-places-lists\/assets\/icon-128x128.png?rev=3527264","icon_2x":"https:\/\/ps.w.org\/georank-top-places-lists\/assets\/icon-256x256.png?rev=3527264","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/georank-top-places-lists\/assets\/screenshot-1.png?rev=3529700","caption":"Mobile restaurant list"},{"src":"https:\/\/ps.w.org\/georank-top-places-lists\/assets\/screenshot-2.png?rev=3529700","caption":"Responsive card layout"},{"src":"https:\/\/ps.w.org\/georank-top-places-lists\/assets\/screenshot-3.png?rev=3529700","caption":"Different supported place types"},{"src":"https:\/\/ps.w.org\/georank-top-places-lists\/assets\/screenshot-4.png?rev=3529700","caption":"Settings page with API key setup"},{"src":"https:\/\/ps.w.org\/georank-top-places-lists\/assets\/screenshot-5.png?rev=3529700","caption":""}],"raw_content":"<!--section=description-->\n<p>Build scalable local SEO content in minutes.<\/p>\n\n<p>GeoRank automatically creates high-quality lists like:<\/p>\n\n<p>\u2022 Best Restaurants in Berlin<br \/>\n\u2022 Top Cafes in Hamburg<br \/>\n\u2022 Best Hotels in Munich<br \/>\n\u2022 Best Florists in Kassel<br \/>\n\u2022 Top Gyms in Munich<\/p>\n\n<p>All based on real Google Places data \u2014 including ratings, reviews, photos and opening hours.<\/p>\n\n<p>No manual research. No data maintenance. Just use a shortcode.<\/p>\n\n\n\n<p>\ud83d\udd25 Why GeoRank?<\/p>\n\n<p>Most directory plugins require manual input or complex setup.<\/p>\n\n<p>GeoRank is different:<\/p>\n\n<ul>\n<li>Fetches real data automatically<\/li>\n<li>Ranks places intelligently<\/li>\n<li>Displays them in a clean, modern layout<\/li>\n<li>Optimized to reduce API usage through caching<\/li>\n<li>Supports many official Google Places types<\/li>\n<li>Mobile-friendly and lightweight<\/li>\n<\/ul>\n\n<p>Perfect for programmatic SEO and scalable location pages.<\/p>\n\n\n\n<p>\u26a1 Key Features<\/p>\n\n<ul>\n<li>Automatic top lists for any city worldwide<\/li>\n<li>Smart ranking (rating + review volume)<\/li>\n<li>Modern responsive card layout<\/li>\n<li>Advanced open \/ closed detection<\/li>\n<li>Place photos, ratings and review counts<\/li>\n<li>Optional website links<\/li>\n<li>Fast transient caching<\/li>\n<li>Developer-friendly architecture<\/li>\n<li>Custom titles and subtitles<\/li>\n<li>Support for many official Google Places types<\/li>\n<li>Improved mobile shortcode compatibility<\/li>\n<\/ul>\n\n\n\n<p>\ud83c\udfaf Perfect for<\/p>\n\n<ul>\n<li>Local SEO websites<\/li>\n<li>City guides<\/li>\n<li>Affiliate projects<\/li>\n<li>Travel blogs<\/li>\n<li>Niche content sites<\/li>\n<li>Programmatic SEO setups<\/li>\n<li>Local business directories<\/li>\n<\/ul>\n\n\n\n<p>\ud83e\udde9 Simple Usage<\/p>\n\n<ol>\n<li>Add your Google API key<\/li>\n<li>Insert shortcode:<\/li>\n<\/ol>\n\n<p>[grtpl_places city=\"berlin\" type=\"restaurant\"]<\/p>\n\n<p>Examples:<\/p>\n\n<p>[grtpl_places city=\"hamburg\" type=\"cafe\" limit=\"8\"]<\/p>\n\n<p>[grtpl_places city=\"munich\" type=\"hotel\" title=\"Top Hotels in Munich\"]<\/p>\n\n<p>[grtpl_places city=\"kassel\" type=\"florist\"]<\/p>\n\n<p>[grtpl_places city=\"berlin\" type=\"gym\" title=\"Best Gyms in Berlin\"]<\/p>\n\n\n\n<p>\ud83d\udd27 Supported Place Types<\/p>\n\n<p>Examples include:<\/p>\n\n<ul>\n<li>restaurant<\/li>\n<li>cafe<\/li>\n<li>bar<\/li>\n<li>bakery<\/li>\n<li>florist<\/li>\n<li>gym<\/li>\n<li>hotel<\/li>\n<li>pharmacy<\/li>\n<li>dentist<\/li>\n<li>doctor<\/li>\n<li>beauty_salon<\/li>\n<li>hair_care<\/li>\n<li>shopping_mall<\/li>\n<li>bookstore<\/li>\n<li>car_dealer<\/li>\n<li>museum<\/li>\n<li>zoo<\/li>\n<\/ul>\n\n<p>and many more official Google Places types.<\/p>\n\n\n\n<p>\ud83d\udd27 Requirements<\/p>\n\n<p>You need a Google API key with access to:<\/p>\n\n<ul>\n<li>Places API<\/li>\n<li>Place Details API<\/li>\n<li>Place Photos API<\/li>\n<\/ul>\n\n\n\n<h3>External services<\/h3>\n\n<p>This plugin uses the Google Maps Platform (Google Places API) to retrieve place data.<\/p>\n\n<p>What the service is used for:<\/p>\n\n<ul>\n<li>Fetching place search results<\/li>\n<li>Retrieving place details<\/li>\n<li>Loading place images<\/li>\n<\/ul>\n\n<p>What data is sent and when:<\/p>\n\n<ul>\n<li>The search query (e.g. \"restaurant in Berlin\") is sent when the shortcode is rendered<\/li>\n<li>Place IDs are sent when additional details are requested<\/li>\n<li>Requests are cached to reduce API usage<\/li>\n<\/ul>\n\n<p>This service is provided by Google.<\/p>\n\n<p>Terms of Service:\nhttps:\/\/cloud.google.com\/maps-platform\/terms<\/p>\n\n<p>Privacy Policy:\nhttps:\/\/policies.google.com\/privacy<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin to <code>\/wp-content\/plugins\/<\/code><\/li>\n<li>Activate the plugin<\/li>\n<li>Go to Settings \u2192 GeoRank<\/li>\n<li>Add your Google API key<\/li>\n<li>Use the shortcode<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"is%20this%20plugin%20free%3F\"><h3>Is this plugin free?<\/h3><\/dt>\n<dd><p>Yes. The core functionality is completely free.<\/p><\/dd>\n<dt id=\"do%20i%20need%20a%20google%20api%20key%3F\"><h3>Do I need a Google API key?<\/h3><\/dt>\n<dd><p>Yes, a Google API key is required to fetch real place data.<\/p><\/dd>\n<dt id=\"are%20there%20any%20api%20costs%3F\"><h3>Are there any API costs?<\/h3><\/dt>\n<dd><p>Google provides free usage quotas depending on the API. Additional costs may occur depending on your usage and Google Cloud pricing.<\/p>\n\n<p>GeoRank reduces API usage automatically through caching.<\/p><\/dd>\n<dt id=\"does%20it%20slow%20down%20my%20site%3F\"><h3>Does it slow down my site?<\/h3><\/dt>\n<dd><p>No. GeoRank uses caching to ensure fast loading times and minimize API requests.<\/p><\/dd>\n<dt id=\"can%20i%20use%20it%20worldwide%3F\"><h3>Can I use it worldwide?<\/h3><\/dt>\n<dd><p>Yes. GeoRank works globally for any city supported by Google Places.<\/p><\/dd>\n<dt id=\"can%20i%20customize%20the%20title%3F\"><h3>Can I customize the title?<\/h3><\/dt>\n<dd><p>Yes.<\/p>\n\n<p>Example:<\/p>\n\n<p>[grtpl_places city=\"berlin\" type=\"restaurant\" title=\"Best Fine Dining Restaurants in Berlin\"]<\/p><\/dd>\n<dt id=\"which%20place%20types%20are%20supported%3F\"><h3>Which place types are supported?<\/h3><\/dt>\n<dd><p>GeoRank supports many official Google Places types including restaurants, cafes, hotels, gyms, florists, pharmacies, beauty salons, shopping malls and more.<\/p>\n\n<\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.5<\/h4>\n\n<ul>\n<li>Fixed mobile smart quote shortcode compatibility (iPhone \/ iOS keyboards)<\/li>\n<li>Improved shortcode value normalization<\/li>\n<li>Improved shortcode reliability across mobile devices<\/li>\n<li>Minor internal cleanup and optimizations<\/li>\n<\/ul>\n\n<h4>1.0.4<\/h4>\n\n<ul>\n<li>Added support for many additional official Google Places types<\/li>\n<li>Improved automatic plural labels for place titles<\/li>\n<li>Improved shortcode flexibility with custom titles<\/li>\n<li>Improved mobile presentation<\/li>\n<li>Minor internal cleanup and optimizations<\/li>\n<\/ul>\n\n<h4>1.0.3<\/h4>\n\n<ul>\n<li>Fixed shortcode escaping to comply with WordPress security guidelines<\/li>\n<li>Introduced unique prefix (GRTopl \/ grtpl_) across all classes, hooks and functions<\/li>\n<li>Updated shortcode to [grtpl_places]<\/li>\n<li>Standardized naming across plugin (GeoRank)<\/li>\n<li>Improved overall WordPress.org compliance<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Fixed plugin naming and slug for WordPress.org compliance<\/li>\n<li>Updated text domain<\/li>\n<li>Updated contributors<\/li>\n<li>Removed directory assets from plugin package<\/li>\n<li>Added external services documentation<\/li>\n<li>Fixed admin cache clear functionality<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Updated Google API cost information to reflect current pricing model<\/li>\n<li>Improved transparency regarding API usage and billing<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial stable release<\/li>\n<\/ul>","raw_excerpt":"Generate top city lists like \u201cBest Restaurants in Berlin\u201d automatically using real Google Places data. Perfect for local SEO, city guides and programm &hellip;","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/ug.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/298854","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ug.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/ug.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/ug.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=298854"}],"author":[{"embeddable":true,"href":"https:\/\/ug.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/custonis"}],"wp:attachment":[{"href":"https:\/\/ug.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=298854"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/ug.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=298854"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/ug.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=298854"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/ug.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=298854"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/ug.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=298854"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/ug.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=298854"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}