Create a GEO-Optimized Article with AI

Build a repeatable AI content workflow that earns citations from AI search engines.

Introduction

30 Second Summary

When you search for something online, AI tools like ChatGPT and Perplexity now generate answers by pulling from web articles. If your content isn't structured for these AI engines to find and cite, it's invisible to a growing share of your audience.

In this project, you will build a repeatable AI content workflow that produces articles optimized for both traditional search engines and AI citation engines. You'll apply it to a real niche keyword and publish a live, citation-ready article to your WordPress site.

What You'll Build

A GEO-optimized article with schema markup and AI crawler configuration, produced through a repeatable keyword research and AI content generation workflow.

By the end of this project, you'll have:

  • A keyword research brief with your target keyword, search intent, and subtopic map.
  • A fully written, human-edited article with GEO optimization applied and published live on your WordPress site.
  • Reusable FAQPage and Article JSON-LD schema templates plus a robots.txt configuration that welcomes AI crawlers.
  • Secret Mission: Build a GEO Audit Scorecard that grades any article against 10 citation-readiness criteria before publishing.

Are there any prerequisites?

You'll need a WordPress site you can publish to and a Google account. You'll also use free tiers of ChatGPT and Google Gemini, so make sure you can access both in your browser.

Set Up Your Tools

Before you can research keywords or generate content, you need the right tools in place.

In this step, you will install the Ubersuggest Chrome extension for keyword data, create a Google Ads account to access Google Keyword Planner, and confirm that ChatGPT and Gemini are both ready to go.

In this step, get ready to:
  • Install the Ubersuggest Chrome extension and create a free account.
  • Set up a Google Ads account to unlock Keyword Planner.
  • Verify that all four tools are accessible in your browser.
Install the Ubersuggest Chrome extension

Ubersuggest is a free SEO tool that displays keyword volume, CPC, and related keywords directly inside Google search results.

  • In Google Chrome, navigate to the Chrome Web Store at chromewebstore.google.com.
  • Search for Ubersuggest - SEO and Keyword Discovery by Neil Patel.
  • Click Add to Chrome on the extension listing.
  • Confirm the installation by clicking Add extension in the pop-up that appears.

Once installed, you will see the Ubersuggest icon in your browser toolbar.

  • Open a new tab and navigate to app.neilpatel.com.
  • Click Sign Up and create a free Ubersuggest account using your email or Google login.
  • Once signed in, the extension is connected and will show keyword data the next time you search on Google.

Why do I need a free account?

The extension pulls keyword volume data from Ubersuggest's servers. A free account authenticates you so the extension can display monthly search volume, CPC, and related keywords directly in Google SERPs. The free plan has daily search limits, but that is more than enough for a single-article research session.

Extension not appearing in the toolbar?

Click the puzzle-piece icon in the top-right corner of Chrome to see all installed extensions. Pin Ubersuggest by clicking the pin icon next to it.

If you do not see the extension at all, make sure you are using Google Chrome and not a different browser.

Help me troubleshoot my Ubersuggest Chrome extension installation.

Set up your Google Ads account for Keyword Planner access

Google Keyword Planner is free to use, but it lives inside the Google Ads platform. You need a Google Ads account with billing information on file to unlock it.

  • Navigate to ads.google.com and click Start Now.
  • Sign in with your Google account.
  • When prompted for your business information, enter your portfolio site URL.
  • When prompted to create a campaign, look for the option that says Create an account without a campaign and select it.
  • Enter your billing information (credit or debit card, or PayPal) when prompted.

Why do I need billing information?

Google requires you to complete your account setup by entering your billing information to access basic features like Keyword Planner. No charges occur unless you actively create and run an ad campaign.

You selected the option to create an account without a campaign, so nothing will be charged.

  • Once your account is active, click Tools in the top menu.
  • Select Keyword Planner.
  • Click Discover new keywords to confirm you can access the tool.

You should see a search box where you can enter keywords. This confirms Keyword Planner is working.

Can't find Keyword Planner in the menu?

If you do not see Tools in the top navigation, check that you are logged into the correct Google account. Also confirm that your billing setup is complete.

Google requires billing information before unlocking Keyword Planner. If you skipped that step, go to Billing in the left sidebar and add a payment method.

Help me find Keyword Planner in my Google Ads account.

Verify all your tools are accessible

You now need to confirm that all four tools are ready before moving on to keyword research.

  • Open a new Google search tab and type any keyword (for example, real estate virtual assistant).
  • Check that Ubersuggest data appears alongside the search results (you should see monthly search volume and CPC below the search bar or in a sidebar panel).
  • Open a new tab and navigate to chat.openai.com.
  • Confirm you can access the ChatGPT interface (sign in with a free account if prompted).
  • Open another new tab and navigate to gemini.google.com.
  • Confirm you can access the Gemini chat interface using your Google account.

You should now have four tools confirmed: Ubersuggest showing keyword data in Google SERPs, Keyword Planner accessible in Google Ads, and both ChatGPT and Gemini open in separate browser tabs.

Ubersuggest not showing data on the SERP?

Make sure you are signed in to your free Ubersuggest account at app.neilpatel.com. The extension requires authentication to display keyword metrics.

Try refreshing the Google search results page. If data still does not appear, click the Ubersuggest icon in your toolbar and check if it prompts you to log in.

Help me get Ubersuggest to show keyword data on my search results.

Your toolkit is locked and loaded. Next up, you will use these tools to research your niche keyword and build a subtopic map for your article.

Research Your Niche Keyword

Your tools are set up and ready to go. Now it's time to find the right keyword to target with your article.

Great content starts with a great keyword. You need a topic people are actually searching for, with low enough competition that your article can rank. In this step, you'll use Google Keyword Planner and Ubersuggest together to discover, validate, and document the perfect keyword for your REVA listing coordinator niche.

In this step, get ready to:
  • Discover keyword ideas from seed terms in Google Keyword Planner.
  • Validate your primary keyword using the Ubersuggest Chrome extension.
  • Create a keyword research brief document you can reuse for any future niche.
Discover seed keywords in Google Keyword Planner

Seed keywords are the broad terms that describe your niche. You'll enter these into Keyword Planner to generate dozens of more specific keyword ideas with real search data.

  • Open your Google Ads account at ads.google.com.
  • Click Tools in the top menu bar.
  • Click Keyword Planner.
  • Click Discover new keywords.
  • Enter these seed terms one at a time in the keyword input field: real estate listing coordinator, REVA listing coordinator, real estate virtual assistant.
  • Click Get results.

Keyword Planner generates a list of keyword ideas based on your seed terms. Each keyword shows monthly search volume and competition level.

  • Review the keyword ideas list and look for informational queries. These are keywords that start with what, how, or why.
  • Sort by Avg. monthly searches to find keywords with moderate volume.
  • Note down your top 5 keyword candidates. For each one, record the monthly search volume and competition level (Low, Medium, or High).

What makes a good keyword candidate?

Look for keywords with informational intent (people wanting to learn something), moderate monthly search volume (not zero, but not so high that huge sites dominate), and Low or Medium competition.

High-competition keywords are dominated by established sites. Low-competition informational keywords are where a new article can earn visibility quickly.

Informational vs. transactional intent

Keywords like "hire a listing coordinator" signal someone ready to buy (transactional intent). Keywords like "what does a listing coordinator do" signal someone researching (informational intent). Target informational keywords for content articles.

Validate your keyword with Ubersuggest

Keyword Planner gives you volume and competition, but Ubersuggest adds SEO difficulty and related keywords from real search results. This gives you a fuller picture of whether your keyword is worth targeting.

  • Open a new tab in Google Chrome.
  • Type your top keyword candidate into the Google search bar and press Enter.

The Ubersuggest extension activates automatically on the search results page. You should see keyword data appear alongside the Google results.

  • Check the Ubersuggest data panel for your keyword's monthly search volume, CPC, and SEO difficulty score.
  • Scroll down to find the People Also Search For keywords that Ubersuggest displays. Note down 4-6 of the most relevant related keywords.
  • Check the Google SERP itself for the People Also Ask section. Note down any questions that relate to your niche.

Why validate with Ubersuggest after Keyword Planner?

Keyword Planner shows you what people search for. Ubersuggest shows you how hard it will be to rank. The SEO difficulty score reflects how many backlinks and how much domain authority you need to compete on page one.

The related keywords and "People Also Ask" questions become your subtopic map. These are the angles your article needs to cover to be comprehensive.

Not seeing Ubersuggest data on the SERP?

Make sure you are signed into your free Ubersuggest account at app.neilpatel.com. The extension requires an active session to display data.

Check that the extension is enabled by clicking the puzzle piece icon in your Chrome toolbar and confirming Ubersuggest is toggled on. If you've hit your daily search limit on the free plan, try again tomorrow.

help me troubleshoot why my Ubersuggest Chrome extension isn't showing keyword data on Google search results

Select your target keyword and create your research brief

You now have keyword ideas from Keyword Planner and validation data from Ubersuggest. Time to pick your primary keyword and document everything in a brief you can reuse for future projects.

  • From your top 5 candidates, choose one primary keyword that meets all three criteria: informational intent, moderate monthly volume, and achievable difficulty (Low or Medium competition).
  • Compile your subtopic map of 4-6 subtopics. Pull these from the Ubersuggest related keywords and the "People Also Ask" questions you noted.
  • Open a new document (Google Docs, Notion, or any text editor you prefer).
  • Title it "Keyword Research Brief" and fill in the following fields:
  • Primary Keyword: your selected keyword.
  • Search Intent: informational (people want to learn about this topic).
  • Monthly Volume: the number from Keyword Planner or Ubersuggest.
  • Difficulty Score: the SEO difficulty from Ubersuggest.
  • Subtopic List: your 4-6 subtopics from related keywords and "People Also Ask" questions.

Why create a formal brief?

This brief becomes your reusable template. Next time you target a new niche, you follow the same process and fill in the same fields. The structure stays the same. Only the keyword and data change.

  • Save your keyword research brief document.
  • Confirm your brief has all five fields filled in: Primary Keyword, Search Intent, Monthly Volume, Difficulty Score, and Subtopic List with at least 4 subtopics.

Struggling to find a keyword with achievable difficulty?

Try longer, more specific keyword phrases. "Real estate listing coordinator" might be competitive, but "what does a real estate listing coordinator do daily" is more specific and often has lower difficulty.

These longer phrases are called long-tail keywords. They have lower volume but also lower competition, making them ideal for newer sites.

help me find a less competitive keyword variation for my REVA listing coordinator niche

Your keyword research is locked in and documented. Next up, you'll turn this brief into a full content outline using ChatGPT and Gemini to build your AI content brief.

Build an AI Content Brief with ChatGPT

You have a solid keyword research brief with a target keyword, search intent data, and a subtopic map. Now it's time to turn that research into a structured plan for your article.

A content brief tells AI exactly what to write and how to organize each section. You'll use ChatGPT to generate a detailed outline and Gemini to uncover angles your competitors missed.

In this step, get ready to:
  • Prompt ChatGPT to generate a detailed article outline with question-format headings and an FAQ section.
  • Use Gemini to identify competitor content gaps and unique angles.
  • Finalize a reusable content brief template you can apply to any niche.
Create the content brief prompt

Your keyword research brief contains the raw ingredients. Now you need to give ChatGPT a structured prompt that turns those ingredients into a full article outline optimized for AI citation.

  • Switch to your ChatGPT tab at chat.openai.com.
  • Copy the following prompt and paste it into the ChatGPT message box, replacing the placeholder values with your own keyword research:
I'm writing a blog article targeting the keyword [[PRIMARY_KEYWORD="your primary keyword from your research brief"]].

Here are the details:
- Target audience: potential clients searching for REVA listing coordinator services
- Search intent: informational
- Desired article length: 1,500-2,000 words
- Content angle: practical guide for anyone evaluating or hiring a REVA listing coordinator
- Subtopics to cover: [[SUBTOPICS="your 4-6 subtopics from keyword research"]]

Please generate:
1. A detailed article outline with H2 headings structured as questions or direct answer phrases
2. For each H2, a brief note on what to cover in that section
3. Suggested statistics or data points to include (with the type of source to look for)
4. An FAQ section with 5 questions that match common search queries related to this keyword

Why structure headings as questions?

AI search engines like Google AI Overviews and Perplexity pull answers from content that directly matches the user's query. When your H2 headings are phrased as questions, they become exact matches for how people search.

This makes your content far more likely to be cited as the direct answer to those queries.

  • Press Enter to send the prompt.
  • Wait for ChatGPT to generate the full outline.

You should see a structured outline with multiple H2 headings phrased as questions, notes under each section, a list of suggested statistics, and 5 FAQ entries.

  • Copy the entire ChatGPT response and paste it into a new document (Google Docs, Notion, or any text editor).
  • Label this document "AI Content Brief" at the top.

ChatGPT giving a generic or short outline?

If the output is too short or generic, add more specificity to your prompt. Try adding a follow-up message like: "Please expand each H2 section with 2-3 bullet points of what to cover, and make the FAQ answers more specific to the REVA niche."

help me get a more detailed content outline from ChatGPT

Refine with Gemini for competitor gaps

ChatGPT gave you a solid structure, but it only knows what's in its training data. Gemini can analyze what current top-ranking pages cover for your keyword and spot the gaps they leave open.

  • Switch to your Gemini tab at gemini.google.com.
  • Paste the following prompt, replacing the placeholder with your primary keyword:
Analyze what the top-ranking articles currently cover for the keyword [[PRIMARY_KEYWORD="your primary keyword"]].

Then give me:
1. A list of the common subtopics that most top results cover
2. A list of subtopics or angles that competitors miss or undercover
3. Any unique data points, frameworks, or perspectives I could include to differentiate my article
  • Press Enter to send the prompt.
  • Review Gemini's response for the competitor gap analysis.

You should see two distinct lists. One showing what competitors already cover, and another highlighting angles they miss.

  • Copy the "missed subtopics" and "unique angles" sections from Gemini's response.
  • Paste them into your AI Content Brief document under a new heading called "Competitor Gap Angles."
  • Review the gaps and select 2-3 angles that fit naturally into your existing outline structure.
  • Add those new angles as additional H2 headings or as subsections under existing headings in your outline.

Why use two AI tools instead of one?

ChatGPT excels at structured creative generation. It builds strong outlines from a detailed prompt. Gemini has access to more current web data and can analyze what's actually ranking today.

Using both gives you a well-structured outline (ChatGPT) validated against real competitor coverage (Gemini). The combination catches blind spots that either tool alone would miss.

Finalize the brief

Your brief now has a ChatGPT-generated outline plus Gemini's competitor insights. The final step is organizing everything into a clean, reusable format.

  • Open your AI Content Brief document.
  • Organize the document so it contains these clearly labeled sections:
  • Article Title (include your primary keyword in the title).
  • H2 Headings (structured as questions or direct answer phrases, incorporating Gemini's gap angles).
  • Key Statistics to Source (with named attribution for each, e.g., "NAR 2024 report" or "Zillow market data").
  • FAQ Questions (5 minimum, matching common search queries).
  • Target Word Count (1,500-2,000 words).
  • Internal Linking Opportunities (pages on your site you can link to from this article).
  • Review each H2 heading and confirm it is phrased as a question or a direct answer phrase (not a vague topic label).
  • Confirm you have at least 5 FAQ questions that are specific to your niche.
  • Save the document.

This brief is your reusable template

Everything you just created works for any niche keyword. Next time, swap in a new keyword, update the subtopics, and re-run the same prompts. The structure stays the same.

✔️ My brief has all six sections

Your content brief is ready. You have a structured plan that combines AI-generated outline structure with real competitor gap analysis.

ⓧ I'm missing sections or my outline feels thin

Go back to ChatGPT and ask it to expand on any section that feels incomplete. Try a follow-up prompt like: "For the H2 headings section, please add 2-3 more headings that address common objections or misconceptions about this topic."

For the statistics section, ask Gemini: "What are the most commonly cited statistics in articles about [your keyword]? List the source names and data types."

Your content brief is locked in. Next, you'll use this blueprint to generate a full article draft with AI and then apply human-first editing to make it citation-ready.

Generate and Edit Your Article with AI

Your content brief is locked in with a clear structure, target keywords, and subtopics. Now it is time to turn that blueprint into a full article that is built for both human readers and AI citation engines.

The key difference between a standard AI-generated article and a GEO-optimized one is structure. Every section must lead with a direct answer that AI systems can extract and cite. You will generate the draft with ChatGPT, then apply a human editing pass that transforms it from generic AI output into citation-ready content.

In this step, get ready to:
  • Generate a full article draft section by section using ChatGPT and your content brief.
  • Apply a human-first editing pass to make every section citable and data-backed.
  • Write a 5-question FAQ section with self-contained, citation-ready answers.
Generate the draft with ChatGPT

Instead of asking ChatGPT to write the entire article in one go, you will prompt it section by section using your content brief. This gives you more control over the structure and ensures each H2 section follows the answer-first format that AI citation engines prefer.

  • Switch to your ChatGPT tab at chat.openai.com.
  • Start a new chat and paste the following prompt, replacing the placeholder sections with details from your content brief:
I have a content brief for an article. I want you to write the article section by section. Here is the brief:

Article Title: [[ARTICLE_TITLE="your article title from your content brief"]]
Primary Keyword: [[PRIMARY_KEYWORD="your primary keyword"]]
Target Audience: Potential clients searching for REVA listing coordinator services
Search Intent: Informational
Target Length: 1,500-2,000 words

For EACH H2 section, follow this exact structure:
1. Lead with a direct answer in the first 1-3 sentences (40-60 words maximum)
2. Follow with supporting evidence and name a specific source
3. End with a practical takeaway the reader can act on

Start with the introduction and first H2 section. Here is my first H2 heading:
[[FIRST_H2="your first H2 heading from your content brief"]]

Why section by section?

Generating one section at a time keeps ChatGPT focused on the answer-first structure. When you ask for a full 2,000-word article at once, it tends to drift into generic filler by the third section.

The 40-60 word direct answer at the top of each section is the most important part. This is the passage AI systems like Google AI Overviews and Perplexity are most likely to extract and cite.

  • After ChatGPT generates the introduction and first section, continue prompting it for each remaining H2 section from your content brief. Use this follow-up prompt for each section:
Now write the next section. The H2 heading is:
[[NEXT_H2="your next H2 heading from your content brief"]]

Remember: lead with a direct answer (40-60 words), then supporting evidence with a named source, then a practical takeaway.
  • Repeat for every H2 heading in your content brief until you have a complete draft.
  • Copy the full generated draft into a document (Google Docs, Notion, or a plain text file) where you can edit it.

Keep your draft in one place

As you generate each section, paste it into your working document immediately. ChatGPT conversations can get long and hard to navigate. Having everything in one document makes the editing pass much smoother.

ChatGPT ignoring the structure?

If ChatGPT starts writing long introductory paragraphs instead of leading with a direct answer, remind it explicitly. Paste this correction: "The first 1-3 sentences MUST directly answer the heading question in 40-60 words. Do not write a preamble. Start with the answer."

Help me get ChatGPT to follow the answer-first structure for my GEO-optimized article

Apply a human-first editing pass

Raw AI-generated content is a starting point, not a finished product. The editing pass is where your article transforms from generic output into something that earns citations. Perplexity evaluates content at the passage level, not the page level. A single well-structured section can earn a citation even on an otherwise average page.

  • Open your complete draft in your editing document.
  • Work through each section and apply the following five edits:

Edit 1: Replace generic phrases with sourced data.

  • Find any sentence that makes a claim without a source (for example, "many businesses are adopting this approach").
  • Replace it with a specific statistic using this format: "According to [Source Name], [specific statistic] in [Year]."
  • Use the statistics you identified in your content brief, or search for current data to support your claims.

Edit 2: Add your own perspective.

  • In at least 2-3 sections, add a sentence that shares your personal experience or professional insight related to REVA services.
  • This differentiates your content from what any AI could generate and adds credibility.

Edit 3: Ensure every section has a standalone citable sentence.

  • A citable sentence is one that fully answers a question without needing surrounding context.
  • Check each section and confirm it contains at least one sentence that could be quoted on its own and still make complete sense.

Edit 4: Check paragraph length.

  • Each paragraph should be 75-150 words. Blocks under 50 words are too thin for AI extraction. Blocks over 300 words make it harder for AI to isolate a specific passage.
  • Split any paragraph longer than 150 words into two. Expand any paragraph shorter than 75 words or merge it with an adjacent one.

Edit 5: Remove AI filler language.

  • Delete phrases like "In today's fast-paced world," "It's important to note that," "In conclusion," and "Let's dive in."
  • Replace vague transitions with direct statements. Every sentence should add information, not padding.

Why does paragraph length matter for GEO?

AI citation engines extract content at the passage level. A paragraph of 75-150 words is the sweet spot because it is long enough to contain a complete, useful answer but short enough for the AI to pull cleanly without truncation.

Think of each paragraph as a potential standalone citation. If an AI system pulled just that paragraph and showed it to a user, would it make sense on its own?

  • Save your edited draft. Confirm your article is between 1,500-2,000 words total (use the word count feature in your document editor).

Article too short after editing?

If removing filler language dropped your word count below 1,500, go back to ChatGPT and ask it to expand specific sections with more supporting evidence or examples. Prompt it with: "Expand the section under [H2 heading] with one additional supporting example and a sourced statistic. Keep the answer-first structure."

Help me expand my article without adding filler

Add the FAQ section

FAQ sections are powerful for GEO because each question-answer pair is a self-contained, citable unit. AI systems can extract a single FAQ answer and present it as a direct response to a user query. These same FAQ entries will become your FAQPage schema markup in the next step.

  • Open your content brief and find the 5 FAQ questions you defined earlier.
  • At the end of your article draft, add an H2 heading titled "Frequently Asked Questions" (or a variation using your primary keyword).
  • Write each FAQ entry following these rules:
  • Each question is formatted as an H3 heading.
  • Each answer is 50-150 words. No shorter, no longer.
  • Each answer is completely self-contained. A reader (or AI system) should understand the answer without reading any other part of the article.
  • Each answer starts by directly answering the question in the first sentence.

What makes a good FAQ answer for GEO?

A well-written FAQ answer can stand completely alone. If someone asked the question in ChatGPT Search or Perplexity, your answer should make sense as the complete response without any other context from your page.

Avoid answers that say "As mentioned above" or reference other sections. Each answer is its own mini-article.

  • If you need help drafting the FAQ answers, prompt ChatGPT with the following:
Write a self-contained answer to this FAQ question in 50-150 words. The answer must make complete sense without any external context. Start with a direct answer in the first sentence.

Question: [[FAQ_QUESTION="your FAQ question from your content brief"]]
  • Review each AI-generated FAQ answer and apply the same editing standards: add sourced data where possible, remove filler, and ensure the answer is self-contained.
  • Add all 5 FAQ entries to the end of your article draft.
  • Do a final word count check. Your complete article (including the FAQ section) should be between 1,500-2,000 words.
  • Save your final draft. This is the article you will publish to WordPress in the next step.

FAQ answers too long or too short?

If ChatGPT writes answers over 150 words, tell it to shorten to exactly 50-150 words. If answers are under 50 words, ask it to add one supporting detail or example while keeping the answer self-contained.

Help me write FAQ answers that are the right length for GEO

Your article is fully written, edited, and ready for publication. Next up, you will add schema markup to help AI systems parse your content, configure your site to welcome AI crawlers, and publish the article live on WordPress.

Apply GEO Optimization and Publish to WordPress

Your article is written, edited, and ready for the final push. Publishing alone is not enough to earn citations from AI search engines like Google AI Overviews and Perplexity.

In this step, you will add structured data markup that helps AI systems parse your content with confidence. You will also configure your site to explicitly welcome AI crawlers and verify everything is working.

In this step, get ready to:
  • Add FAQPage and Article JSON-LD schema markup to your WordPress post.
  • Update your robots.txt to allow AI search crawlers.
  • Publish your article and verify schema markup with Google's Rich Results Test.
Add schema markup to your post

Schema markup is structured data you embed in your page's HTML. It tells search engines and AI systems exactly what your content is, who wrote it, and what questions it answers.

You will add two types of JSON-LD schema: FAQPage (for your FAQ section) and Article (for authorship and publication metadata).

  • In your WordPress dashboard, open the post you have been writing in the previous steps.
  • In the post editor, switch to the HTML or Code editor view. In the Block Editor, click the three-dot menu in the top-right corner and select Code editor.
  • Scroll to the bottom of your post content (after the FAQ section) and paste the following FAQPage schema markup:
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "name": "[[FAQ_Q1="Your first FAQ question"]]",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "[[FAQ_A1="Your first FAQ answer"]]"
      }
    },
    {
      "@type": "Question",
      "name": "[[FAQ_Q2="Your second FAQ question"]]",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "[[FAQ_A2="Your second FAQ answer"]]"
      }
    },
    {
      "@type": "Question",
      "name": "[[FAQ_Q3="Your third FAQ question"]]",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "[[FAQ_A3="Your third FAQ answer"]]"
      }
    },
    {
      "@type": "Question",
      "name": "[[FAQ_Q4="Your fourth FAQ question"]]",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "[[FAQ_A4="Your fourth FAQ answer"]]"
      }
    },
    {
      "@type": "Question",
      "name": "[[FAQ_Q5="Your fifth FAQ question"]]",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "[[FAQ_A5="Your fifth FAQ answer"]]"
      }
    }
  ]
}
</script>

What does this markup do?

The FAQPage schema tells Google and AI engines that your page contains a structured FAQ. Each Question object pairs a question with its acceptedAnswer.

AI citation engines use this structured data to extract self-contained answers from your page. Without it, they have to guess which text block answers which question.

  • Replace each placeholder with the actual question and answer text from the 5 FAQ entries you wrote in the previous step.
  • Directly below the FAQPage script tag, paste this Article schema markup:
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Article",
  "headline": "[[ARTICLE_TITLE="Your article title with primary keyword"]]",
  "datePublished": "[[DATE_PUBLISHED="2026-05-15"]]",
  "dateModified": "[[DATE_MODIFIED="2026-05-15"]]",
  "author": {
    "@type": "Person",
    "name": "[[AUTHOR_NAME="Your full name"]]",
    "jobTitle": "[[AUTHOR_CREDENTIALS="Your professional title or credentials"]]"
  },
  "publisher": {
    "@type": "Organization",
    "name": "[[PUBLISHER_NAME="Your site or business name"]]"
  }
}
</script>

What does the Article schema do?

Article schema gives AI systems structured metadata about who wrote the content and when. The datePublished and dateModified fields help AI engines prioritize fresh content.

The author and publisher fields establish credibility. AI systems weigh attributed content more heavily when deciding what to cite.

  • Replace each placeholder with your actual values. Use today's date in YYYY-MM-DD format for both date fields.
  • Switch back to the Visual editor by clicking the three-dot menu and selecting Visual editor.

Keep your schema complete

Incomplete schema (missing required fields or empty values) can perform worse than no schema at all. Double-check that every field has a real value before publishing.

Update robots.txt for AI crawlers

Your robots.txt file tells web crawlers what they can and cannot access on your site. By default, many WordPress sites do not explicitly mention AI search crawlers. You need to add rules that welcome them.

What are OAI-SearchBot and PerplexityBot?

OAI-SearchBot is used to surface websites in search results in ChatGPT's search features. Sites opted out of OAI-SearchBot will not be shown in ChatGPT search answers.

PerplexityBot is designed to surface and link websites in search results on Perplexity. It is not used to crawl content for AI foundation models.

These are distinct from GPTBot, which is used for training generative AI models. You may choose to allow or block GPTBot separately based on your preference.

  • In your WordPress dashboard, navigate to your SEO plugin settings. If you use Yoast, go to Yoast SEO then Tools then File editor. If you use Rank Math, go to Rank Math then General Settings then Edit robots.txt.
  • If you do not have an SEO plugin, you can edit the robots.txt file directly via your hosting provider's file manager or FTP.
  • Add the following rules to your robots.txt file:
User-agent: OAI-SearchBot
Allow: /

User-agent: PerplexityBot
Allow: /

User-agent: Googlebot
Allow: /

What do these rules do?

  • User-agent: OAI-SearchBot with Allow: / lets ChatGPT Search discover and cite your content.
  • User-agent: PerplexityBot with Allow: / lets Perplexity index and link to your pages.
  • User-agent: Googlebot with Allow: / confirms Google can crawl your site (usually already the default, but worth making explicit).
  • Confirm that no existing rules in your robots.txt file block these crawlers. Look for any Disallow lines that might override your new Allow rules.
  • Click Save Changes (or the equivalent button in your plugin or file manager).

When do these changes take effect?

It can take up to 24 hours from a robots.txt update for AI crawler systems to reflect changes. Your rules are live immediately on your server, but the bots may not re-check for up to a day.

Publish and verify your markup

With your schema embedded and robots.txt updated, it is time to publish and confirm everything works.

  • In your WordPress post editor, click Publish (or Update if you previously saved a draft).
  • Open a new browser tab and navigate to Google's Rich Results Test:
https://search.google.com/test/rich-results
  • Paste your published article URL into the URL field and click Test URL.
  • Wait for the test to complete. Confirm that both FAQPage and Article schemas are detected without errors.

Seeing schema errors?

  • Check that your JSON-LD has no trailing commas after the last item in any array or object.
  • Verify that every opening { has a matching } and every opening [ has a matching ].
  • Ensure datePublished and dateModified are in YYYY-MM-DD format.
  • If the test cannot fetch your URL, make sure your site is publicly accessible (not behind a password or maintenance mode).

Help me fix schema errors in my WordPress post.

  • Verify your robots.txt is live by opening a new tab and navigating to your site's robots.txt URL:
[[YOUR_SITE_URL="yourdomain.com"]]/robots.txt
  • Confirm you can see the OAI-SearchBot and PerplexityBot Allow rules in the output.

Your article is now live with full GEO optimization. The schema markup makes your content machine-readable, and your robots.txt update ensures AI search engines can actually find it. Next up, take on the Secret Mission to build a reusable GEO Audit Scorecard.

Secret mission

Build a GEO Audit Scorecard

You have a live, GEO-optimized article. But how do you know if your next article hits the same standard? Build a reusable scorecard that grades any article's citation-readiness in under 5 minutes.

Clean Up Your Resources

Clean Up Your Resources

This project runs entirely on free tools and browser-based services, so there are no ongoing costs. Decide whether to keep your resources active, pause them to come back later, or delete them entirely.

Resources you used:

  • Ubersuggest Chrome Extension (installed in your browser).
  • Google Ads account (created for Keyword Planner access).
  • Published article on your WordPress site.
  • Content brief and workflow documents (saved locally or in your cloud drive).

Keep everything running

No action needed. Choose this if you plan to continue using Keyword Planner for future keyword research or want the Ubersuggest extension available for quick SERP checks.

  • Your Google Ads account stays active with no charges unless you create and run a campaign.
  • The Ubersuggest extension remains in Chrome and continues providing keyword data on your searches (subject to daily free-tier limits).
  • Your published article remains live on your WordPress site as a portfolio piece.

Pause - I'll come back to this later

Disable the extension and leave your accounts intact so you can pick up where you left off.

  • In Chrome, right-click the Ubersuggest extension icon to the right of your address bar and select Manage extensions. Toggle the extension off to disable it without removing it.
  • Your Google Ads account requires no action. It has no active campaigns and incurs no charges while idle.
  • Your WordPress article and documents remain as they are.

Delete - I don't want to use this again

Remove all project resources and accounts you no longer need.

  • Remove the Ubersuggest Chrome Extension: right-click the Ubersuggest icon to the right of your address bar and select Remove from Chrome. Click Remove to confirm.
  • Cancel your Google Ads account: go to ads.google.com and sign in. Click Admin in the left menu, then select Account settings. Click the Account status section to expand it, then select Cancel my account.
  • Delete your published article: in your WordPress dashboard, go to Posts, hover over your GEO-optimized article, click Trash, then empty the trash to permanently remove it.
  • Delete your content brief and workflow documents from wherever you saved them (local drive, Google Docs, or cloud storage).
  • Revert your robots.txt changes: remove the AI crawler Allow rules you added for OAI-SearchBot and PerplexityBot if you no longer want AI search engines to crawl your site.

That's a Wrap!

That's a Wrap!

Nice work! You just built a complete AI content workflow from keyword research to live publication, with GEO optimization baked in.

You've learned how to:

  • Research and select a niche keyword using Ubersuggest and Google Keyword Planner, then build a reusable AI content brief template you can apply to any topic.
  • Generate, edit, and structure a full article using ChatGPT and Gemini with answer-first paragraphs optimized for AI citation engines.
  • Add FAQPage and Article JSON-LD schema markup and configure robots.txt to welcome AI search crawlers like OAI-SearchBot and PerplexityBot.
  • Created a GEO Audit Scorecard for grading future articles against 10 citation-readiness criteria before publication.

This workflow is now repeatable. Swap in any niche keyword and the same process produces publish-ready, GEO-optimized content every time.

Ready to quiz yourself?