Quickstart β Your first local SEO site in 10 minutes 10 min
Three steps to a 50-page local-SEO site:
- Create a project β Name, domain, brand color, niche.
- Add 5β10 cities β paste a list, or upload a CSV (tip:
city, state, zip_codeas headers). - Generate pages β pick types (Home / Service / Location / Blog), click Generate, walk away. Hero images and content land in 2β4 minutes.
Open the generated previews β anything you want to change, open the Visual Editor. When you're happy, push to WordPress, publish by FTP, or download as a ZIP.
Create your first project
From the dashboard, click + New Project. The wizard asks for:
- Brand details: name, logo, domain. The domain is what your generated pages will use for links.
- Niche: e.g. "Plumber", "Roofing", "Carpet Cleaning". This shapes every page's tone.
- Locations: at least 1 city. You can bulk-add later.
- Services: 3β10 service types you sell. We use these for page topics.
Add 100s of locations via CSV
Open Locations β Upload CSV. Required column: city. Optional: state, country, zip_code. Up to 10,000 rows per upload, ~10MB max. Duplicates are auto-skipped.
Generate pages
Generate Pages tab β tick the page types (Home, About, Services, Locations, Blog, Contact). For Locations, choose Strategy:
- π Standard β one AI template, city name swapped per location. Fastest.
- π Unique Page β fully different content per city. Costs more AI; better for SEO.
- π Sub-Domain β full standalone site at
city.yourdomain.com.
Unique vs Standard mode
Standard: shared template; pages are 90% identical with city/zip swapped. Faster, cheaper.
Unique: AI generates fully different headings, FAQs, testimonials per city. Slower, but Google sees real variation β better for ranking.
Human-quality content Updated
Every page is written to read like a real local business owner wrote it β not like AI. The generator avoids the usual "AI fingerprint": buzzwords (delve, leverage, seamless, robustβ¦), canned phrases ("in today's digital age", "when it comes to"), robotic transitions, and repetitive sentence rhythm. It favours plain words, concrete local detail, varied sentence length and a warm, direct voice.
You can steer tone further with Project Settings β Master Prompt, and add Banned / Preferred keywords to block claims you can't back up and substitute safer wording.
Sub-domain sites Pro
Go to Location Strategy β toggle π Sub-Domain on a city β click π Build Sub-Site (1-click). We create a full standalone site at city.yourdomain.com with home, about, services, contact and per-service pages. DNS is auto-created via Cloudflare if you've connected your CF token. Sub-site pages can be edited in the Visual Editor and deployed by FTP just like main-site pages.
Refresh business stats sitewide Updated
Project Settings β π Business Stats. Set Jobs Completed, Years in Business, Reviews, Rating and Response Time, then hit Save Stats. We re-render every page so the new numbers appear immediately β including pages you've edited in the Visual Editor, and the live website itself. Tip: the Rating field should be a number like 4.9 (the β
is added for you).
The Visual Editor
Open any page and click Visual Editor to edit it directly β no code needed. The right-hand panel is organised into five groups: Design, SEO, Content, Pages and Tools.
- Click any element on the page to select it. The Inspect tab shows its text, link, classes and lets you clone, delete, move, hide, or swap an image.
- Inline edit mode lets you type directly on the page with a formatting toolbar.
- Reorder mode lets you drag whole sections up and down.
- Undo/redo (Ctrl+Z / Ctrl+Y), autosave, and a History tab that snapshots every save so you can revert.
Design tools
The Design tab styles the selected element with live controls grouped into collapsible sections:
- Typography β colour, size, weight, line height, letter spacing, alignment, transform.
- Layout β display (block / flex / grid), direction, gap, justify & align, grid columns.
- Spacing β a visual box model: margin and padding per side.
- Size β width, height, max-width, min-height.
- Background & effects β colour, gradient builder, background image, opacity.
- Border & shadow β border, corner radius, shadow presets.
- Responsive visibility β hide an element on desktop, tablet or mobile.
In-editor SEO panel
The SEO group has four sub-tabs that work on the page you're editing:
- Score β enter a focus keyword and get a 0β100 score with a pass/warn/fail checklist (keyword in title, H1, intro, URL; density; title and meta length; word count; image alt; internal links). Edit the title and meta description with a live Google preview.
- Social β Open Graph and Twitter Card fields with a live share-card preview, so the page looks right when shared.
- Technical β canonical URL, robots indexing (index/noindex, follow/nofollow), meta keywords, language and schema type.
- Audit β heading outline with hierarchy warnings, internal/external link audit, image alt audit, and a WCAG accessibility check.
Add elements & sections
The Add tab is an element palette and section library β headings, buttons, images, cards, full hero/CTA/feature sections and more. Click to insert after the selected element, or drag-and-drop into place. Save any element you like as a reusable Block and drop it onto other pages.
AI Image Studio
Open AI Images to generate on-brand photos from a text prompt. Pick a built-in prompt template (hero, service, about, blogβ¦), or write your own β placeholders like {service}, {location} and {brand_name} are filled in from the project. Choose a model and size, generate, and the result lands in your image library.
Every generated image is also available in the Visual Editor's image picker, so you can swap or insert it onto any page.
AI Videos New
Open AI Videos to create short marketing clips from a prompt. Video generation is asynchronous β submit a job, and it finishes in the background; the gallery updates when it's ready. Built-in prompt templates (hero loop, service demo, before/after, van arrival, vertical social clip, testimonial background) use the same {service} / {location} / {brand name} placeholders. Use clips standalone or embed them into a page from the Visual Editor's video picker.
Studio API key
AI images and videos both run through OpenRouter. Add one OpenRouter API key under Account β API Keys and it powers both studios. If a generation fails, the studio shows the exact reason (bad key, no balance, unsupported model) so you can fix it fast.
Forms & lead capture
Every generated site includes a contact / quote form. Leads from those forms are managed in the Lead Control section β one place with two tabs: π¬ Lead Inbox (every lead that came in) and π Forms & Notifications (the setup). The full step-by-step is below.
Lead Control setup guide New
How a lead flows: a visitor fills a form on the published site → the app saves the lead (it appears in Lead Control → Lead Inbox) → an email goes to your notification address → the visitor lands on the Thank-You page. Optionally the lead is also pushed to a CRM, a Google Sheet, or by SMS.
One-time setup
Configured once for the whole tool β without these, leads can't reach the app or emails won't send:
- Set
APP_URLon Railway (Variables) to your app's public URL β so forms on published sites know where to send leads. - Set up email sending in System SMTP: host
smtp.resend.com, usernameresend, password = your Resend API key (re_β¦), and a From address on a domain you've verified in Resend. Until the domain is verified, Resend only delivers to your own account address. - Re-publish your sites after setting
APP_URLβ the form's destination is baked into each page when it's published.
Per-project setup β Lead Control → Forms & Notifications
Open Lead Control in the sidebar, then the Forms & Notifications tab, and work top to bottom:
- Step 1 β Forms on your website: shows the three forms every site has (page contact/quote form, floating quote widget, footer mini-form) and a running submission count.
- Step 2 β Where your leads are sent (required): enter the notification email(s), optional CC, tick "Enable email notifications", and click Save.
- Step 3 β Form connection: leave blank in normal use β forms use
APP_URLautomatically. Only set it to send leads to a custom endpoint. - Step 4 β Integrations (optional): Google Sheets export, CRM webhook (Zapier / HubSpot / GoHighLevel / Zoho), and Twilio SMS alerts.
- Step 5 β Lead Capture Widget (optional): copy the embed snippet to add the floating quote popup to any external site.
Test it works
Submit a test form on a published page β you should be redirected to the Thank-You page, the lead should appear in Lead Control → Lead Inbox, and the notification email should arrive.
Using the Lead Inbox
The Lead Inbox tab shows KPIs (total, new, contacted, qualified, won, conversion %), filters by status / city / service / source / date, and full-text search. Open a lead to call or email it, add notes, and move its status (New → Contacted → Qualified → Won). + Add Lead records a phone enquiry manually; Export CSV downloads everything.
APP_URL isn't set or the site was published before it was set β re-publish the site. If leads arrive but no email goes out, the Resend sending domain isn't verified, or the Step 2 notification email is empty.Connect Google Search Console
Search Console tab β click Connect Google Account. The popup asks for read access to your verified GSC properties. We auto-pick the matching property by domain. After connect, Indexing / Coverage / Impressions data flows in.
Rank tracking Business
Add keywords from Rank Tracking. Daily SERP checks happen overnight. View by keyword, position, trend, and visibility score.
Schema markup
Auto-generated as JSON-LD: LocalBusiness on every page, Service on service pages, FAQPage when an FAQ section is detected. You can also set the schema type per page from the Visual Editor's SEO β Technical tab.
WordPress publish
Project Settings β WordPress. Set the URL, username, and an Application Password (Users β Profile β Application Passwords on your WP site). Then in any page click Publish to WP. Yoast / RankMath SEO meta is mapped automatically via our mu-plugin (download from Settings).
One-click publish (FTP)
Deploy tab β enter your host's FTP details (or save defaults in Settings) β Publish. We upload every page, the sitemaps, robots.txt and .htaccess, and β automatically β every AI image and video the pages reference, so the live site is complete. If you've connected a Cloudflare token, DNS is configured for you.
Static ZIP export
Deploy tab β Download ZIP. Contains index.html per page in a folder structure that works on Hostinger / cPanel / any static host. Includes sitemap.xml, robots.txt, .htaccess with clean URLs, and all AI images and videos.
Images on the live site
AI images and videos you generate or insert are real files. Whenever you publish β FTP, ZIP export, or sub-site deploy β those files are bundled and uploaded alongside the HTML, so the live site is never missing an image. If you ever see a broken image on a published page, re-publish: the deploy will carry any newly added media.
Custom domain verification
Project Settings β set the domain. Add the TXT record we show you (geoauthority-verify=...) at the apex. Click Verify β DNS can take 1-30 min to propagate. Once verified, sub-sites can be auto-DNS'd via Cloudflare.
Trial & billing
You start on a 14-day full Pro trial. No card required. After 14 days the account drops to Free unless you upgrade. Open the Pricing page in the sidebar, pick a plan, and pay securely via Cashfree. Change plan or cancel anytime via Account β Billing β Manage subscription.
API keys Pro+
Account Settings β API Keys β Create. Save the ga_... token immediately β we don't store it in plaintext, only its hash. Use as Authorization: Bearer ga_... on any /api/... endpoint. This is also where you add your OpenRouter key for the AI Image and Video studios.
Two-factor auth
Account Settings β Security β Enable 2FA. Scan the QR with Google Authenticator / 1Password / Authy. Verify with a 6-digit code. Save the 8 recovery codes β each works once if you lose your phone.
Delete account / export data
Account β Danger Zone. Export-my-data downloads a JSON of every project, page, location, lead, and invoice. Delete-my-account permanently removes all your data within 30 days (legally we hold for 30 days for chargeback protection, then purge).
Last updated May 2026. Can't find what you need? Email support@geoauthority.local β we read every message.