illustration

Coming Soon

New WordPress website is being built and will be published soon

```html . */ (function () { "use strict";/* EDIT THESE TWO URLS */ var PACKAGE_PAGE_URL = "/seo-packages/"; var BOOKING_PAGE_URL = "/schedule-a-consultation/";var root = document.getElementById("rn-seo-quiz"); if (!root || root.dataset.rnqReady === "true") return; root.dataset.rnqReady = "true";var questions = [ { title: "What best describes your business?", hint: "Choose the closest match.", options: [ ["Local service business", "You serve customers in a defined area", "⌂", {local:4,growth:1}], ["Ecommerce store", "You sell products online", "◫", {growth:3,authority:2}], ["B2B or professional services", "You generate leads or build expertise", "◇", {growth:3,authority:2}], ["Something else", "We’ll account for it in your result", "•••", {consultation:2}, "unsure"] ]}, { title: "Where do you want to compete?", hint: "This helps us estimate the campaign scope.", options: [ ["One local area", "One city or service area", "◎", {local:4}], ["Several locations", "Multiple cities, offices or service areas", "⌘", {growth:4,local:1}], ["Nationally or online", "No single geographic focus", "↗", {authority:4,growth:2}], ["I’m not sure yet", "Help me choose the right scope", "?", {consultation:2}, "unsure"] ]}, { title: "What is your main SEO goal?", hint: "Pick the outcome that matters most right now.", options: [ ["More local leads", "Calls, forms and booked appointments", "+", {local:4}], ["Grow qualified traffic", "Reach more buyers searching for your services", "↑", {growth:4}], ["Build market authority", "Compete for difficult, high-value topics", "★", {authority:5}], ["Fix the SEO foundation", "Resolve technical or website issues first", "✓", {consultation:3,growth:1}] ]}, { title: "What is the current state of your website?", hint: "An honest answer leads to a better recommendation.", options: [ ["Established and working well", "It already generates some traffic or leads", "✓", {growth:2,authority:2,local:1}], ["New, but ready to promote", "It is live and has the core pages", "◇", {local:2,growth:2}], ["It probably needs work", "Slow, outdated or technically limited", "!", {consultation:4}, "unsure"], ["I don’t have a website", "I need help starting from the beginning", "+", {consultation:10}, "no-website"] ]}, { title: "How quickly do you want to grow?", hint: "There’s no wrong answer—this helps match the level of effort.", options: [ ["Build a solid foundation", "Focused essentials and steady progress", "—", {local:3}], ["Grow consistently", "Ongoing content and broader optimization", "↑", {growth:4}], ["Compete aggressively", "Higher competition and greater content depth", "↗", {authority:5}], ["Recommend what makes sense", "I prefer an expert recommendation", "?", {consultation:2}, "unsure"] ]} ];var plans = { local: ["Local SEO", "Your best-fit plan", "A focused campaign designed to improve visibility and generate leads in the areas you serve.", ["Local search visibility", "Google Business Profile growth", "Service and location page optimization"]], growth: ["Growth SEO", "Your best-fit plan", "A broader ongoing campaign for businesses ready to grow qualified traffic across several services or markets.", ["Multi-service keyword growth", "Ongoing content and on-page SEO", "Technical improvements and reporting"]], authority: ["Authority SEO", "Your best-fit plan", "A deeper campaign for competitive markets where content depth, authority and sustained execution matter most.", ["National or high-competition searches", "Strategic content development", "Authority and digital PR opportunities"]], consultation: ["Start with a Website Review", "Recommended next step", "Your answers suggest that choosing a monthly SEO package immediately could be premature. Let’s confirm the website, scope and priorities first.", ["Website readiness review", "Clear priorities and required fixes", "An honest package recommendation"]] };var step = 0; var answers = []; var locked = false;function escapeHtml(value) { return String(value).replace(/[&<>'"]/g, function (char) { return {"&":"&","<":"<",">":">","'":"'",'"':"""}[char]; }); }function shell(content) { root.innerHTML = '

60-second SEO plan finder

Find the right SEO plan
for your business

Answer 5 quick questions. Get a clear recommendation—no email required.

' + content + '
'; }function renderQuestion() { var q = questions[step]; var optionHtml = q.options.map(function (option, index) { return ''; }).join("");shell('
' + (step + 1) + ' of ' + questions.length + '

' + escapeHtml(q.title) + '

' + escapeHtml(q.hint) + '

' + optionHtml + '
'); }function recommendation() { var totals = {local:0,growth:0,authority:0,consultation:0}; var noWebsite = false; answers.forEach(function (answer, index) { var option = questions[index].options[answer]; Object.keys(option[3]).forEach(function (plan) { totals[plan] += option[3][plan]; }); if (option[4] === "no-website") noWebsite = true; }); if (noWebsite) return "consultation"; return Object.keys(totals).sort(function (a, b) { return totals[b] - totals[a]; })[0]; }function renderResult() { var key = recommendation(); var plan = plans[key]; var url = key === "consultation" ? BOOKING_PAGE_URL : PACKAGE_PAGE_URL; var button = key === "consultation" ? "Schedule a free review" : "View the " + plan[0] + " plan"; var reasons = plan[3].map(function (reason) { return '
  • ' + escapeHtml(reason) + '
  • '; }).join(""); shell('
    ' + escapeHtml(plan[1]) + '

    ' + escapeHtml(plan[0]) + '

    ' + escapeHtml(plan[2]) + '

    Why this fits your answers

    ' + escapeHtml(button) + '

    Your recommendation is a starting point. We’ll confirm fit during the free website review before any subscription begins.

    '); }root.addEventListener("click", function (event) { var optionButton = event.target.closest("[data-rnq-option]"); if (optionButton && !locked) { locked = true; optionButton.classList.add("is-selected"); var selected = Number(optionButton.getAttribute("data-rnq-option")); window.setTimeout(function () { answers = answers.slice(0, step); answers.push(selected); step += 1; locked = false; if (step < questions.length) renderQuestion(); else renderResult(); }, 180); return; }if (event.target.closest(".rnq-back") && step > 0) { step -= 1; answers = answers.slice(0, step); renderQuestion(); return; }if (event.target.closest("[data-rnq-restart]")) { step = 0; answers = []; renderQuestion(); } });renderQuestion(); })(); ```