{"id":289478,"date":"2026-03-24T23:05:00","date_gmt":"2026-03-24T23:05:00","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/grandview-rank-rent-builder\/"},"modified":"2026-03-24T23:04:25","modified_gmt":"2026-03-24T23:04:25","slug":"grandview-rank-rent-builder","status":"publish","type":"plugin","link":"https:\/\/tt.wordpress.org\/plugins\/grandview-rank-rent-builder\/","author":23464595,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"1.0.2","stable_tag":"1.0.2","tested":"6.7.5","requires":"5.8","requires_php":"7.4","requires_plugins":null,"header_name":"Grandview Rank & Rent Builder","header_author":"Grandview Street Inc","header_description":"AI-powered local SEO plugin for service businesses. Generate hundreds of SEO-optimized service area pages with schema markup, FAQ content, and Google Business Profile integration. Perfect for rank and rent SEO agencies.","assets_banners_color":"3e4760","last_updated":"2026-03-24 23:04:25","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/grandviewstreet.com\/","header_plugin_uri":"https:\/\/grandviewstreet.com\/","header_author_uri":"https:\/\/grandviewstreet.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":114,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.2":{"tag":"1.0.2","author":"grandviewstreet","date":"2026-03-24 23:04:25"}},"upgrade_notice":{"1.0.2":"<p>Fixes a critical bug where page generation would fail silently due to a nonce mismatch. Update recommended for all users.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3490398,"resolution":"128x128","location":"assets","locale":""},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3490398,"resolution":"256x256","location":"assets","locale":""}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3490398,"resolution":"1544x500","location":"assets","locale":""},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3490398,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.2"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"Dashboard showing generated page count, cities, and services at a glance","2":"Generate Pages screen \u2014 select services, paste cities, click generate","3":"Settings screen \u2014 phone number, CTA text, default state"},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[337,1122,258562,186,258563],"plugin_category":[55],"plugin_contributors":[258564],"plugin_business_model":[],"class_list":["post-289478","plugin","type-plugin","status-publish","hentry","plugin_tags-lead-generation","plugin_tags-local-seo","plugin_tags-rank-and-rent","plugin_tags-seo","plugin_tags-service-area-pages","plugin_category-seo-and-marketing","plugin_contributors-grandviewstreet","plugin_committers-grandviewstreet"],"banners":{"banner":"https:\/\/ps.w.org\/grandview-rank-rent-builder\/assets\/banner-772x250.png?rev=3490398","banner_2x":"https:\/\/ps.w.org\/grandview-rank-rent-builder\/assets\/banner-1544x500.png?rev=3490398","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/grandview-rank-rent-builder\/assets\/icon-128x128.png?rev=3490398","icon_2x":"https:\/\/ps.w.org\/grandview-rank-rent-builder\/assets\/icon-256x256.png?rev=3490398","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p><strong>Grandview Rank &amp; Rent Builder<\/strong> helps SEO agencies and local lead generation businesses create optimized service area pages at scale. Select your services, enter your target cities, and generate hundreds of properly structured pages in seconds.<\/p>\n\n<p>Each generated page includes:<\/p>\n\n<ul>\n<li><strong>Schema.org LocalBusiness markup<\/strong> \u2014 structured data Google uses for rich results<\/li>\n<li><strong>Semantic HTML structure<\/strong> \u2014 H1, H2, lists, and CTA all in the right order<\/li>\n<li><strong>Your tracking phone number<\/strong> \u2014 pre-filled into every call-to-action<\/li>\n<li><strong>Duplicate prevention<\/strong> \u2014 skips pages that already exist so re-runs are safe<\/li>\n<\/ul>\n\n<p><strong>Who it's for<\/strong><\/p>\n\n<ul>\n<li>Rank and rent SEO agencies building local lead gen assets<\/li>\n<li>Multi-location service businesses (plumbing, HVAC, roofing, etc.)<\/li>\n<li>Marketing agencies managing city + service matrix sites for clients<\/li>\n<\/ul>\n\n<p><strong>How it works<\/strong><\/p>\n\n<ol>\n<li>Install and activate the plugin<\/li>\n<li>Go to <strong>Rank &amp; Rent \u2192 Settings<\/strong> and enter your phone number, CTA text, and default state<\/li>\n<li>Go to <strong>Rank &amp; Rent \u2192 Generate Pages<\/strong>, select services, and paste in your city list<\/li>\n<li>Click <strong>Generate Pages<\/strong> \u2014 done<\/li>\n<\/ol>\n\n<p>Generated pages follow a <code>\/service-city<\/code> URL pattern (e.g., <code>\/plumbing-phoenix<\/code>) and are published immediately. You can edit any page afterward in the standard WordPress editor.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>grandview-rank-rent-builder<\/code> folder to <code>\/wp-content\/plugins\/<\/code><\/li>\n<li>Activate via <strong>Plugins \u2192 Installed Plugins<\/strong><\/li>\n<li>Navigate to the <strong>Rank &amp; Rent<\/strong> menu in your WordPress admin<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"is%20there%20a%20limit%20on%20how%20many%20pages%20i%20can%20generate%3F\"><h3>Is there a limit on how many pages I can generate?<\/h3><\/dt>\n<dd><p>No hard limit. The plugin loops through every service \u00d7 city combination you provide. Generating thousands of pages at once on a low-memory host may time out \u2014 if that happens, break it into smaller batches.<\/p><\/dd>\n<dt id=\"will%20duplicate%20pages%20be%20created%20if%20i%20run%20the%20generator%20twice%3F\"><h3>Will duplicate pages be created if I run the generator twice?<\/h3><\/dt>\n<dd><p>No. The plugin checks for an existing page at each URL slug before creating a new one and skips it if found.<\/p><\/dd>\n<dt id=\"can%20i%20edit%20the%20generated%20pages%20afterward%3F\"><h3>Can I edit the generated pages afterward?<\/h3><\/dt>\n<dd><p>Yes \u2014 each page is a standard WordPress page and can be edited freely in Gutenberg or the Classic Editor.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20work%20with%20any%20theme%3F\"><h3>Does the plugin work with any theme?<\/h3><\/dt>\n<dd><p>Yes. Pages are created with standard WordPress page content and use no theme-specific shortcodes or templates.<\/p><\/dd>\n<dt id=\"is%20my%20data%20sent%20anywhere%3F\"><h3>Is my data sent anywhere?<\/h3><\/dt>\n<dd><p>No. All page generation happens locally on your server. No data is sent to external services.<\/p><\/dd>\n<dt id=\"can%20i%20change%20the%20default%20city%20list%3F\"><h3>Can I change the default city list?<\/h3><\/dt>\n<dd><p>The default list (Phoenix metro area) is used when the city textarea is left blank. You can always type in your own cities \u2014 one per line \u2014 to override it.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Fixed: Nonce action mismatch between form and AJAX handler (generation would return 403)<\/li>\n<li>Fixed: Removed esc_html\/esc_attr from JSON-LD schema values \u2014 was causing double-encoded entities in structured data<\/li>\n<li>Fixed: Replaced deprecated get_page_by_path() with WP_Query (deprecated in WP 6.7)<\/li>\n<li>Fixed: Hardcoded post_author 1 replaced with get_current_user_id()<\/li>\n<li>Improved: JS city count fallback now uses localized PHP value instead of hardcoded 10<\/li>\n<li>Improved: Submit button disabled during AJAX request to prevent double-submission<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Security: Nonce verification added to all AJAX endpoints<\/li>\n<li>Security: current_user_can( 'manage_options' ) check added to all AJAX endpoints<\/li>\n<li>Fixed: JS and CSS now enqueued via wp_enqueue_script \/ wp_enqueue_style<\/li>\n<li>Fixed: All echoed variables escaped with esc_html \/ esc_attr \/ esc_url<\/li>\n<li>Fixed: Unique plugin prefix (granrareb) applied throughout<\/li>\n<li>Fixed: Input sanitization on all $_POST values<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release<\/li>\n<\/ul>","raw_excerpt":"Generate hundreds of SEO-optimized service area pages for local lead generation and rank &amp; rent sites \u2014 no coding required.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/tt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/289478","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/tt.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/tt.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=289478"}],"author":[{"embeddable":true,"href":"https:\/\/tt.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/grandviewstreet"}],"wp:attachment":[{"href":"https:\/\/tt.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=289478"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/tt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=289478"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/tt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=289478"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/tt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=289478"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/tt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=289478"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/tt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=289478"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}