Generative AI for SEO - balance efficiency gains with accuracy
A warning, tips, workflows, and copy-and-paste prompts for generative AI
The jury is still out on whether AI-generated content from the likes of chatGPT, Jasper, Claude, or SudoWrite is widely appropriate for generating SEO content.
The propensity of generative AI to make up facts or "hallucinate" has led to risk averse or highly-regulated organizations banning it's internal use. The propensity to prompt with trade secrets to get more contextually-relevant results has led to a host of other organizations banning it’s internal use.
Simultaneously, other established media organizations have wholeheartedly embraced generative AI for SEO (see Buzzfeed).
One inherent risk is that many genAI providers are experimenting with watermarking generated content. The content will read just fine to humans. But can easily be identifiable to machines as machine generated.
As of February '23, chatGPT was experimenting with including such a watermark. This leaves the door open that search engines could -- in one fell swoop -- penalize large collections of AI-generated content.
At the same time, Google has explicitly stated that "Appropriate use of AI or automation is not against our guidelines. This means that it is not used to generate content primarily to manipulate search rankings, which is against our spam policies."
The key here is “manipulating search rankings” an action which Google seems to be saying can be achieved manually or via automation and AI. In short, AI that observes quality content standards such as E-E-A-T should — as of now — have the same standing as manually created content. It’s up to creators to ensure valuable content whatever tools we use.
This is a feat that’s easier said than done. But we’ll try to step you towards balancing productivity gains with an appreciation of nuance and fact needed to ensure value to site visitors through content.
Even if you don’t outright generate SEO content using generative AI, there are tons of ways to save time and boost productivity using generative AI throughout broader SEO-related workflows.
In this guide, we’ll step through a range of tools and techniques that aim to balance productivity gains from generative AI tools and techniques with data (that generative AI may not have) to back up our decisions and improve output. While we’ll utilize a range of tools, we’ll primarily focus on chatGPT as our generative AI tool of choice.
Skip to:
Loose pattern matching and bulk redirects with generative AI [Techniques]
Meta descriptions, title tags, and image alt text with generative AI [Techniques]
Our first three sections will focus on building out your “toolkit” for better execution of techniques in the following sections. To skip directly to prompts that are useful for SEO click here.
Upskilling with generative AI
For any of the following sections, it’s worth noting that generative AI like chatGPT can be your “best friend” when it comes to upskilling or refreshing on best practices for a given workflow.
Provide me with a list of best practices for PR outreach for backlink building as well as three top thought leaders I should follow
Best Practices for PR Outreach for Backlink Building:
Research target websites: Understand the type of content they publish and their target audience. Focus on high-quality, relevant websites that can provide valuable backlinks.
Personalize your pitch: Tailor your email or message to the recipient, addressing them by name and mentioning specific content they have published that resonates with your pitch.
Offer valuable content: Create high-quality, engaging, and informative content that the target website's audience would appreciate. This could be a well-researched article, an infographic, or an exclusive study.
Showcase your expertise: Establish your credibility by demonstrating your knowledge and experience in your niche. This can make your pitch more attractive to the recipient.
[...]
Three Top Thought Leaders to Follow:
Rand Fishkin - Co-founder of Moz and SparkToro, Rand Fishkin is a leading expert in SEO and digital marketing. Follow him on Twitter (@randfish) and through his blog on SparkToro's website.
Neil Patel - Co-founder of Crazy Egg, Hello Bar, and KISSmetrics, Neil Patel is a renowned digital marketing expert, entrepreneur, and best-selling author. Follow him on Twitter (@neilpatel) and his blog on neilpatel.com.
Brian Dean - Founder of Backlinko, Brian Dean is a widely recognized SEO expert, specializing in link building and content marketing. Follow him on Twitter (@Backlinko) and through his blog on backlinko.com.
We’ll touch on this in the next section, but beware of topics that may be particularly sensitive to recent developments as they relate to the “knowledge cut-off” date for training data.
Presently the knowledge cut-off date for GPT-4 is September 2021. This means that GPT-4 is unlikely to know facts from after this date. With this said, there are tons of topics where the knowledge cut-off date isn’t quite as important.
For these topics, breaking your inquiry into small discrete steps — mining in with follow-up questions after each result — returns better, more contextually-relevant information.
For example, following the above results with specific prompts around each component of the original answer:
What are the most effective ways to research target websites for PR link building outreach in SEO?
More structured learning can also be facilitated with chatGPT. Among others, an open source project called “Mr. Ranedeer” provides a highly customizable “AI Tutor” for any chatGPT user. Simply paste the json file at this link into chatGPT and answer the prompts about how you want to learn. A conversation with “Mr. Ranedeer”:
Thank you for providing your preferences! Your current configuration/preferences are now set as follows:
🎯Depth: Level 9 - Specialization
🧠Learning Style: Inductive
🗣️Communication Style: Socratic
🌟Tone Style: Informative
🔎Reasoning Framework: Deductive
😀Emojis: Enabled
If you would like to make any changes, please let me know. Otherwise, you can proceed with a command such as "/plan" to create a lesson plan or "/config" to adjust your configuration.
/plan
Lesson Plan:
Introduction to the specialized topic of your choice
In-depth exploration of key concepts and theories
Review of relevant case studies and real-world applications
Socratic questioning to stimulate critical thinking and analysis
Engaging in problem-solving exercises with deductive reasoning
Discussion of ongoing research and developments in the field
Independent study and analysis of primary sources or scholarly articles
Synthesis of acquired knowledge and application to practical scenarios
Evaluation of personal progress and understanding of the topic
Reflection on future learning goals and potential areas for further specialization
How I know I succeeded teaching you: You can articulate complex concepts and theories, analyze case studies, and effectively apply deductive reasoning to solve problems within the specialized topic.
How you know you succeeded learning: You demonstrate deep understanding, critical analysis, and the ability to engage with ongoing research and developments in the field.
Please say "/start" to start the lesson plan.
/start
closures in javascript
Great choice! In this lesson, we'll focus on understanding closures in JavaScript, an important concept in functional programming. Let's start with an introduction to closures.
Introduction to closures in JavaScript
Closures are a powerful feature in JavaScript, allowing functions to remember and access variables from their parent scopes even after the parent function has finished executing. They provide a way to create private variables and maintain their state across different function calls.
Now, let's move on to exploring key concepts and theories.
In-depth exploration of key concepts and theories
To deeply understand closures, we must first examine some fundamental concepts:
a. Lexical scoping: In JavaScript, the scope of a variable is determined by its position in the source code. Nested functions have access to variables declared in their outer (enclosing) scope.
b. First-class functions: JavaScript supports first-class functions, meaning functions can be treated like any other value (assigned to variables, passed as arguments, returned from other functions).
c. Function closures: When a function references a variable from its parent scope, JavaScript creates a closure, preserving access to the variable even after the parent function has completed execution.
Now that we have a foundation, let's consider a simple example of closures in action:
[...]
Connecting to the internet with generative AI
The vast majority of “facts” within content have not changed since the knowledge cut-off dates for most major LLM-based tools, however, there are many uses where up-to-date knowledge is preferred.
SEO-specific tasks where connecting generative AI to the internet may drastically improve results include:
Generation of contact data or form urls for link building outreach
Competitive or keyword analysis among newer sites
Content generation that is fact heavy in quickly changing fields [firmographic data, sports data, politics, scientific discoveries, shopping]
There are presently several routes to utilizing genAI with a (nearly) live view of the internet.
Bing’s AI-enabled search has direct access to the most recently cached version of all web pages in it’s index. This enables prompts such as
summarize the contents of [your_url]
Utilize a third-party plugin like webchatGPT or webChat for Google
OpenAI provides a variety of plugins, including “browse” which can not only retrieve data from pages on the web but interact with them (presently there’s a waitlist).
Using the OpenAI chat completions API accessing the internet is as simply as changing the configuration setting
“internet”: true
alongside your promptSeeding your prompt with web-based data you have gathered is another great way to ensure your instance of generative AI receives only the up-to-date data you seek
As we’ll cover in the next section, using no-code tools like Zapier to connect chatGPT to other tools is a great way to harness web data through some other service and pass it directly to generative AI
It should be noted that chatGPT’s ability to “hallucinate” particularly compelling output has been witnessed in a range of contexts. For example, when passing a url directly to the chatGPT chat interface, chatGPT can often come up with a plausible “guess” for what the contents of the page include.
As access to generative AI features are changing rapidly, a simple test could be your best route towards verifying what your instance of generative AI has access to:
what is the text in the second h2 element on this page? [url]
The largest positive aspects of connecting generative AI directly to the internet include (a) the fact that you’re provided with a wider range of topics you can access via a chat-like interface, and (b) you have access to time-sensitive or recently updated information.
On the flip side, a strong negative aspect of connecting generative AI to the internet is the fact that you’ll have less control over which sources are cited (and whether they’re reputable).
In many uses, these negatives outweigh the positives, particularly in light of the fact that you can pass web data of a variety of formats — and that you’ve chosen — directly to generative AI.
Within the chat interface for chatGPT we can pass something like the following (csv format) as well as json, tsv, and other common file types.
Please provide the average time on page across all pages mentioned in the below csv data (header row included):
page, time on page
page 1, 0:50
page 2, 0:45
page 3, 0:55
From the given CSV data, we have the time on page for each page as follows:
page 1: 0:50 (50 seconds)
page 2: 0:45 (45 seconds)
page 3: 0:55 (55 seconds)
To calculate the average time on page across all pages, we sum the time spent on each page and divide by the total number of pages.
Total time on page: 50 seconds (page 1) + 45 seconds (page 2) + 55 seconds (page 3) = 150 seconds
Total number of pages: 3
Average time on page: 150 seconds (total time) / 3 (total pages) = 50 seconds
So, the average time on page across all pages is 50 seconds.
(A solid case for asking for a less verbose response 🤖, but you get the point.)
This is perhaps the best of both worlds in that you’ve supplied your generative AI instance with up-to-date information while simultaneously controlling what sources are drawn from.
No-code app connections for chatGPT
We’re getting to SEO-specific prompts. Our final toolkit section includes yet another way to feed valuable prompt data to chatGPT: no-code connections with Zapier.
If you’ve never used Zapier, they offer a free tier that is plenty generous to test out most simple workflows.
The basic building block of Zapier is “a zap”. Zaps occur when something happens in an app, and then trigger another action in another app.
For the purposes of SEO, simple zaps could be useful in a variety of contexts. For example:
When a new spreadsheet row is populated (say, with metadata about a blog post):
Send this data as part of a prompt to chatGPT to rewrite in some way
Then send the result back to the spreadsheet (or perhaps better yet update a value in your CMS)
The same pattern could work with input about competing domains, or urls of posts you want to redirect, or a list of outreach targets. The point is that the use of spreadsheets or other forms of databases that connect to Zapier can be much easier to manipulate at scale compared to individual prompts to generative AI.
While a large portion of marketers already know how to use Zapier, there are a few chatGPT-specific settings you may want to brush up on in the event you aren’t pleased with your output.
If you’ve only interfaced with generative AI via a chat interface, these may look foreign but they’re similar to prompting generative AI to take on a certain persona. The best explanation of these fields is within the Zapier interface or chatGPT’s documentation. Just note that these are very standard values that likely don’t need to be altered for most outputs.
This leaves the actual prompt input.
In this case we can write a prompt as we usually would, with dynamic values passed from other apps connected to the zap. In this case we have a column in our spreadsheet with company names. And we want a brief text blurb for each new row.
Number of employees: 250 (as of 2021, may have changed since then)
Industry: Artificial Intelligence Research
Headquarters: San Francisco, California, USA
Brief description: OpenAI is an artificial intelligence research lab focused on developing and promoting friendly AI for the benefit of humanity. The organization conducts cutting-edge research in machine learning and AI, producing widely-recognized advancements such as the GPT series of language models.
Of course the desired format of returned data will depend on what you plan on doing with it next. You could ask for plain text, text as part of a javascript object, or text formatted in html in a specific way. As noted by many generative AI users, providing a specific example of what return data should look like (like the example above) helps ensure your output is immediately useful.
Generative AI for keyword research
First and foremost it’s worth noting that generative AI doesn’t have access to search volume or keyword difficulty unless you provide it with such data.
Where generative AI can provide the most value in keyword research is by helping you map content topics that sound viable back to actual data on whether there’s demand.
In short, you’ll want to couple your ideation from generative AI with actual data. Perhaps the most efficient route with minimal technical overhead would be to export a list of parent topics or keywords as well as their search volume and difficulty to a spreadsheet, then trigger chatGPT for each opportune row (see the last section).
This isn’t to say generative AI can’t provide a ton of value for keyword research. Because in reality keyword research involves many steps that only use an opportune keyword —per the data — as a jumping off point:
What sub topics should I write about when targeting [keyword x]?
Here is a list of personas: [solopreneurs, operations managers, SMB execs]
For each of the personas in our list, document some of their most pressing questions as they relate to [keyword x]
Given the keyword “filing taxes” and the above list of personas, here’s our response:
Solopreneurs:
a. What are the different tax deductions and credits available for solopreneurs?
b. How do I properly separate my personal and business expenses for tax purposes?
c. Can I deduct home office expenses, and if so, how do I calculate them?
d. What are the best practices for tracking and documenting business expenses throughout the year?
e. How do I report self-employment income on my tax return?
Operations Managers:
a. What are the tax implications for hiring full-time employees versus independent contractors?
b. How do we handle payroll taxes, and what are our responsibilities as an employer?
c. Are there specific tax credits or incentives available for investing in new equipment or technology?
d. How do we manage state and local taxes in addition to federal taxes?
e. What are the tax implications of offering employee benefits, such as retirement plans and health insurance?
SMB Execs (Small and Medium-sized Business Executives):
a. How do we determine the best legal structure for our business in terms of tax liability and compliance?
b. What are the deadlines and requirements for filing quarterly estimated taxes?
c. Are there tax benefits or credits available for research and development or innovation in our industry?
d. How do we account for inventory and its impact on our tax obligations?
e. What tax planning strategies can we implement to minimize our overall tax liability?
The role of generative AI in keyword generation is different than other popular SEO tools. But in the end it actually supports E-E-A-T more so than many existing workflows because generative AI can quickly help you to jump into the headspace of a diverse range of roles and linguistic styles.
The same can be true of centering funnels around opportune keywords.
We're generating ideas for SEO content for a service that files taxes for our list of personas.
Given the above personas, the topic of "filing taxes", and the most pressing questions these personas have, what topics would you write about for the following funnel stages?
Awareness
Interest
Desire
Action
Note that we’ve provided additional context at this point and that we’re relying on our past chat history. Unless you’re optimizing for usage in a scaled use case, there’s no downside for being explicit about exactly what you want.
Awareness:
Solopreneurs: "Top Tax Deductions Every Solopreneur Should Know About"
Operations Managers: "Understanding Payroll Taxes: Employer Responsibilities and Compliance"
SMB Execs: "Choosing the Right Business Structure: A Guide to Tax Benefits and Compliance"
Interest:
Solopreneurs: "Streamlining Your Tax Filing Process: Tools and Tips for Solopreneurs"
Operations Managers: "A Comprehensive Guide to State and Local Taxes for Operations Managers"
SMB Execs: "Unlocking R&D Tax Credits: How SMBs Can Benefit from Innovation"
Desire:
Solopreneurs: "Maximizing Home Office Deductions: A Step-by-Step Guide for Solopreneurs"
Operations Managers: "Employee Benefits and Tax Implications: What Operations Managers Need to Know"
SMB Execs: "Strategic Tax Planning for SMBs: How to Minimize Your Tax Liability"
Action:
Solopreneurs: "Effortless Tax Filing for Solopreneurs: Let Our Experts Handle Your Taxes"
Operations Managers: "Stay Compliant and Save Time: Our Tax Service for Operations Managers"
SMB Execs: "Partner with Us for Tailored Tax Solutions: Expertise for Small and Medium-Sized Businesses"
This task alone balloons in complexity for human marketers past a few funnel stages and personas. It’s much more efficient to “gut check” the viability of the topics after they’re generated than it is to try and embody multiple personas along multiple stages of a buyers journey one after another.
And yet in this hypothetical example we’ve still backed our ideation in real data on the original keyword (presumably something we have real volume and difficulty data to back up) and personas (presumably something we have real business data to back up).
By moving back and forth between fresh ideas from generative AI, and data from external sources, we can begin to build efficiency while minimizing ungrounded decisions based on AI.
An example workflow from the above could involve placing each AI-generated funnel-stage-specific title into search and then investigating the top ranking results.
From there we could see what secondary keywords the results yield using your SEO tool of choice. And feed this data back to generative AI. You should be starting to see why the ability to dynamically prompt generative AI with an external dataset is key to saving time.
Below we’ve investigated the results for our potential content topic for the awareness stage of operations managers (“Understanding Payroll Taxes: Employer Responsibilities and Compliance”). We outputted the top 20 keywords of the top-ranking site by visitor traffic and we’ll feed these in to refine our view of what keywords we should focus on in our article below.
Secondary keywords: [payroll compliance, payroll laws, payroll law, payroll tax compliance, global payroll compliance, payroll rules and regulations, payroll laws and regulations, payroll regulations, compliance payroll, payroll rules, payroll reporting compliance, payroll compliance checklist, adp fast wage and tax facts 2022, payroll guidelines, payroll changes, payroll tax laws, payroll requirements, which of the following are automatically withheld from paychecks?, employee tax laws, payroll policy]
Article topic: Understanding Payroll Taxes: Employer Responsibilities and Compliance
Primary keyword: filing taxes
Funnel stage: awareness
Audience persona: operations manager
Please outline an article on [article topic] for [audience persona] in the [funnel stage] stage of the funnel searching for [primary keyword]. The article should be centered around the [primary keyword] and incorporate as many [secondary keywords] as will read naturally in the text. For each section of the outline, list what the primary or secondary focus keywords should be.
Title: Understanding Payroll Taxes: Employer Responsibilities and Compliance
Introduction
Focus keyword: filing taxes
Secondary keywords: payroll compliance, payroll laws
- Briefly introduce the connection between payroll compliance and filing taxes for operations managers
- Set the context for the article and its focus on employer responsibilities
Overview of Payroll Taxes
Focus keyword: payroll taxes
Secondary keywords: payroll laws and regulations, employee tax laws
- Define payroll taxes and discuss the various types
- Explain the role of payroll laws and regulations in shaping payroll processes
- Mention employee tax laws and their impact on employers
Employer Responsibilities and Compliance Payroll
Focus keyword: employer responsibilities
Secondary keywords: payroll compliance, compliance payroll, payroll policy, payroll requirements
- Discuss the importance of payroll compliance for operations managers
- Explain key employer responsibilities related to payroll policy and requirements
Understanding Payroll Tax Compliance Checklist
Focus keyword: payroll tax compliance
Secondary keywords: payroll compliance checklist, payroll reporting compliance
- Present a payroll compliance checklist for operations managers
- Describe the importance of payroll reporting compliance in maintaining overall payroll tax compliance
Navigating Federal, State, and Local Payroll Regulations
Focus keyword: payroll regulations
Secondary keywords: payroll regulations, global payroll compliance, payroll tax laws
- Explain the differences between federal, state, and local payroll regulations
- Discuss the challenges of global payroll compliance and the need to stay informed about payroll tax laws
Resources for Staying Informed and Compliant
Focus keyword: payroll guidelines
Secondary keywords: Payroll changes, payroll rules, which of the following are automatically withheld from paychecks?
- Suggest resources for staying up-to-date with payroll guidelines and changes
- Recommend consulting with professionals or using payroll software to ensure accurate withholding and compliance
Conclusion
Focus keyword: filing taxes
- Recap the importance of understanding payroll taxes and employer responsibilities for operations managers
- Encourage a proactive approach to payroll compliance in order to streamline the process of filing taxes and avoid penalties
As the amount of information you’ve generated balloons you’ll want to think through where it is being stored and what format is most useful for the data. If you’re following along with Zapier, you likely know that this output can be piped to almost all of the most popular tools for content planning, briefing, and project management. As you’ve likely seen in other tutorials, providing examples of precisely how you want outputs to be formatted both gives chatGPT additional context and makes it easier to manage the data that is returned.
Loose pattern matching and bulk redirects with generative AI
Bulk redirects often follow a pattern and may well be better suited to generating new values from old values in a a spreadsheet and then implementing.
There is one use case, however, in which generative AI excels: loose pattern matching.
Let’s say you’re moving your site or changing site structure and you want each redirect to end up in the following format within an htaccess file:
Redirect 301 /pagename.php http://www.domain.com/pagename.html
You have too many pages to efficiently craft redirects manually. If all old and new pagenames follow a reliable naming convention this is fairly to simple to solve within a spreadsheet (using sort and then concatenate function or similar).
But lets say you inherited a domain where naming conventions are all over the place.
/a-pagename
/2023-top-b-pagename
/ultimate-guide-to-c-pagename-2023
Which in reality don’t even share “pagename” as a commonality.
/tea
/2023-top-coffee-brands
/ultimate-guide-to-root-beer-2023
We want our resulting redirect domains to follow a structure like below.
/tea
/coffee
/root-beer
While this is a simplistic example, if you’ve ever played with pattern matching you can likely imagine how complex 100’s, 1000’s, or more pages could get.
Sure you could remove numbers, some common phrases like “ultimate,” “guide,” “top.” But where does it end? And assuming we’re using a scripting language or spreadsheet, good luck with the convoluted pattern matching functions.
What we really need here is a little bit of judgement (or the appearance of judgement) and knowledge of common beverage types. Generative AI has both.
All we need is a prompt that provides specifics, syntax of our output, and what generative AI is looking for in the input.
old urls = [/tea, /2023-top-coffee-brands, /ultimate-guide-to-root-beer-2023]
Write 301 redirects for an htaccess file. For our new domains we need to discern the beverage type each [old url] contains and write a new url in the format https://mydomain.com/beverage
The syntax for the final 301 redirect should look like the following:
Redirect 301 /500-wine-brands-to-watch https://mydomain.com/wine
And the result:
To create 301 redirects for the old URLs in an .htaccess file, you can use the following syntax:
Redirect 301 /tea https://mydomain.com/tea
Redirect 301 /2023-top-coffee-brands https://mydomain.com/coffee
Redirect 301 /ultimate-guide-to-root-beer-2023 https://mydomain.com/root-beer
Needless to say there are numerous pattern matching-related site manager or SEO workflows that are unrelated to redirects for which this basic technique also works. Pattern matching is in many ways the “spike skill” of generative AI to begin with. And when you begin thinking of generative AI capabilities as similar to what historically requires scripting or advanced spreadsheet manipulation — but with the ability to prompt in natural language — the number of workflows you can imagine enhancing grow exponentially.
Keep reading with a 7-day free trial
Subscribe to genAI for the rest of us Substack to keep reading this post and get 7 days of free access to the full post archives.